(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
aarch64/
cmp.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-O2" } */
       3  
       4  int
       5  cmp_si_test1 (int a, int b, int c)
       6  {
       7    if (a > b)
       8      return a + c;
       9    else
      10      return a + b + c;
      11  }
      12  
      13  int
      14  cmp_si_test2 (int a, int b, int c)
      15  {
      16    if ((a >> 3) > b)
      17      return a + c;
      18    else
      19      return a + b + c;
      20  }
      21  
      22  typedef long long s64;
      23  
      24  s64
      25  cmp_di_test1 (s64 a, s64 b, s64 c)
      26  {
      27    if (a > b)
      28      return a + c;
      29    else
      30      return a + b + c;
      31  }
      32  
      33  s64
      34  cmp_di_test2 (s64 a, s64 b, s64 c)
      35  {
      36    if ((a >> 3) > b)
      37      return a + c;
      38    else
      39      return a + b + c;
      40  }
      41  
      42  int
      43  cmp_di_test3 (int a, s64 b, s64 c)
      44  {
      45    if (a > b)
      46      return a + c;
      47    else
      48      return a + b + c;
      49  }
      50  
      51  int
      52  cmp_di_test4 (int a, s64 b, s64 c)
      53  {
      54    if (((s64)a << 3) > b)
      55      return a + c;
      56    else
      57      return a + b + c;
      58  }
      59  
      60  /* { dg-final { scan-assembler-times "cmp\tw\[0-9\]+, w\[0-9\]+" 2 } } */
      61  /* { dg-final { scan-assembler-times "cmp\tx\[0-9\]+, x\[0-9\]+" 2 } } */
      62  /* { dg-final { scan-assembler-times "cmp\tx\[0-9\]+, w\[0-9\]+, sxtw" 2 } } */