(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
pr108447.c
       1  /* { dg-do run } */
       2  /* { dg-options "-O2" } */
       3  
       4  __attribute__((noipa)) int
       5  foo (float x, float y)
       6  {
       7    _Bool cmp1 = x <= y;
       8    _Bool cmp2 = x >= y;
       9    if (cmp1 && cmp2)
      10      return 1;
      11    else if (!cmp1 && !cmp2)
      12      return -1;
      13    return 0;
      14  }
      15  
      16  int
      17  main ()
      18  {
      19    if (foo (0.0f, __builtin_nanf ("")) != -1)
      20      __builtin_abort ();
      21    if (foo (__builtin_nanf (""), -42.0f) != -1)
      22      __builtin_abort ();
      23    if (foo (0.0f, -0.0f) != 1)
      24      __builtin_abort ();
      25    if (foo (42.0f, 42.0f) != 1)
      26      __builtin_abort ();
      27    if (foo (42.0f, -0.0f) != 0)
      28      __builtin_abort ();
      29    if (foo (0.0f, -42.0f) != 0)
      30      __builtin_abort ();
      31    return 0;
      32  }
      33