(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
aarch64/
ccmp_1.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-O2 -ffinite-math-only" } */
       3  
       4  int
       5  f1 (int a)
       6  {
       7    return a == 17 || a == 32;
       8  }
       9  
      10  int
      11  f2 (int a)
      12  {
      13    return a == 33 || a == 18;
      14  }
      15  
      16  int
      17  f3 (int a, int b)
      18  {
      19    return a == 19 && b == 34;
      20  }
      21  
      22  int
      23  f4 (int a, int b)
      24  {
      25    return a == 35 && b == 20;
      26  }
      27  
      28  int
      29  f5 (int a)
      30  {
      31    return a == 0 || a == 5;
      32  }
      33  
      34  int
      35  f6 (int a)
      36  {
      37    return a == 6 || a == 0;
      38  }
      39  
      40  int
      41  f7 (int a, int b)
      42  {
      43    return a == 0 && b == 7;
      44  }
      45  
      46  int
      47  f8 (int a, int b)
      48  {
      49    return a == 9 && b == 0;
      50  }
      51  
      52  int
      53  f9 (float a, float b)
      54  {
      55    return a < 0.0f && a > b;
      56  }
      57  
      58  int
      59  f10 (float a, float b)
      60  {
      61    return a == b || b == 0.0f;
      62  }
      63  
      64  int
      65  f11 (double a, int b)
      66  {
      67    return a < 0.0f && b == 30;
      68  }
      69  
      70  int
      71  f12 (double a, int b)
      72  {
      73    return b == 31 || a == 0.0f;
      74  }
      75  
      76  int
      77  f13 (int a, int b)
      78  {
      79    a += b;
      80    return a == 3 || a == 0;
      81  }
      82  
      83  /* { dg-final { scan-assembler "cmp\t(.)+32" } } */
      84  /* { dg-final { scan-assembler "cmp\t(.)+33" } } */
      85  /* { dg-final { scan-assembler "cmp\t(.)+34" } } */
      86  /* { dg-final { scan-assembler "cmp\t(.)+35" } } */
      87  
      88  /* { dg-final { scan-assembler-times "\tcmp\tw\[0-9\]+, 0" 4 } } */
      89  /* { dg-final { scan-assembler-times "fcmpe\t(.)+0\\.0" 2 } } */
      90  /* { dg-final { scan-assembler-times "fcmp\t(.)+0\\.0" 2 } } */
      91  
      92  /* { dg-final { scan-assembler "adds\t" } } */
      93  /* { dg-final { scan-assembler-times "\tccmp\t" 11 } } */
      94  /* { dg-final { scan-assembler-times "fccmp\t.*0\\.0" 1 } } */
      95  /* { dg-final { scan-assembler-times "fccmpe\t.*0\\.0" 1 } } */