(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
riscv/
zba-shNadd-04.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-march=rv64gc_zba -mabi=lp64" } */
       3  /* { dg-skip-if "" { *-*-* } { "-O0" "-Og" } } */
       4  
       5  long long sub1(unsigned long long a, unsigned long long b)
       6  {
       7    b = (b << 32) >> 31;
       8    unsigned int x = a + b;
       9    return x;
      10  }
      11  
      12  long long sub2(unsigned long long a, unsigned long long b)
      13  {
      14    return (unsigned int)(a + (b << 1));
      15  }
      16  
      17  long long sub3(unsigned long long a, unsigned long long b)
      18  {
      19    return (a + (b << 1)) & ~0u;
      20  }
      21  
      22  /* { dg-final { scan-assembler-times "sh1add" 3 } } */
      23  /* { dg-final { scan-assembler-times "zext.w\t" 3 } } */