1 /* PR rtl-optimization/68376 */ 2 3 extern void abort (void); 4 5 __attribute__((noinline, noclone)) int f1(int x)6f1 (int x) 7 { 8 return x < 0 ? ~x : x; 9 } 10 11 __attribute__((noinline, noclone)) int f2(int x)12f2 (int x) 13 { 14 return x < 0 ? x : ~x; 15 } 16 17 __attribute__((noinline, noclone)) int f3(int x)18f3 (int x) 19 { 20 return x <= 0 ? ~x : x; 21 } 22 23 __attribute__((noinline, noclone)) int f4(int x)24f4 (int x) 25 { 26 return x <= 0 ? x : ~x; 27 } 28 29 __attribute__((noinline, noclone)) int f5(int x)30f5 (int x) 31 { 32 return x >= 0 ? ~x : x; 33 } 34 35 __attribute__((noinline, noclone)) int f6(int x)36f6 (int x) 37 { 38 return x >= 0 ? x : ~x; 39 } 40 41 __attribute__((noinline, noclone)) int f7(int x)42f7 (int x) 43 { 44 return x > 0 ? ~x : x; 45 } 46 47 __attribute__((noinline, noclone)) int f8(int x)48f8 (int x) 49 { 50 return x > 0 ? x : ~x; 51 } 52 53 int main()54main () 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 } 74