modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/pr68376-2.c (about)

     1  /* PR rtl-optimization/68376 */
     2  
     3  extern void abort (void);
     4  
     5  __attribute__((noinline, noclone)) int
     6  f1 (int x)
     7  {
     8    return x < 0 ? ~x : x;
     9  }
    10  
    11  __attribute__((noinline, noclone)) int
    12  f2 (int x)
    13  {
    14    return x < 0 ? x : ~x;
    15  }
    16  
    17  __attribute__((noinline, noclone)) int
    18  f3 (int x)
    19  {
    20    return x <= 0 ? ~x : x;
    21  }
    22  
    23  __attribute__((noinline, noclone)) int
    24  f4 (int x)
    25  {
    26    return x <= 0 ? x : ~x;
    27  }
    28  
    29  __attribute__((noinline, noclone)) int
    30  f5 (int x)
    31  {
    32    return x >= 0 ? ~x : x;
    33  }
    34  
    35  __attribute__((noinline, noclone)) int
    36  f6 (int x)
    37  {
    38    return x >= 0 ? x : ~x;
    39  }
    40  
    41  __attribute__((noinline, noclone)) int
    42  f7 (int x)
    43  {
    44    return x > 0 ? ~x : x;
    45  }
    46  
    47  __attribute__((noinline, noclone)) int
    48  f8 (int x)
    49  {
    50    return x > 0 ? x : ~x;
    51  }
    52  
    53  int
    54  main ()
    55  {
    56    if (f1 (5) != 5 || f1 (-5) != 4 || f1 (0) != 0)
    57      abort ();
    58    if (f2 (5) != -6 || f2 (-5) != -5 || f2 (0) != -1)
    59      abort ();
    60    if (f3 (5) != 5 || f3 (-5) != 4 || f3 (0) != -1)
    61      abort ();
    62    if (f4 (5) != -6 || f4 (-5) != -5 || f4 (0) != 0)
    63      abort ();
    64    if (f5 (5) != -6 || f5 (-5) != -5 || f5 (0) != -1)
    65      abort ();
    66    if (f6 (5) != 5 || f6 (-5) != 4 || f6 (0) != 0)
    67      abort ();
    68    if (f7 (5) != -6 || f7 (-5) != -5 || f7 (0) != 0)
    69      abort ();
    70    if (f8 (5) != 5 || f8 (-5) != 4 || f8 (0) != -1)
    71      abort ();
    72    return 0;
    73  }