1 /* PR tree-optimization/66299 */ 2 /* { dg-do run } */ 3 /* { dg-options "-fdump-tree-original" } */ 4 5 void __attribute__ ((noinline, noclone)) test1(int x)6test1 (int x) 7 { 8 if ((2 << x) == 1 9 || (8 << x) == 1 10 || (8 << x) == 2 11 || (3072 << x) == 3 12 || (294912 << x) == 9 13 || (45056 << x) == 11 14 || (2176 << x) == 17) 15 __builtin_abort (); 16 } 17 18 void __attribute__ ((noinline, noclone)) test2(int x)19test2 (int x) 20 { 21 if ((2 << x) != 1 22 && (8 << x) != 1 23 && (8 << x) != 2 24 && (3072 << x) != 3 25 && (294912 << x) != 9 26 && (45056 << x) != 11 27 && (2176 << x) != 17) 28 ; 29 else 30 __builtin_abort (); 31 } 32 33 void __attribute__ ((noinline, noclone)) test3(int x)34test3 (int x) 35 { 36 if ((3 << x) == 4 37 || (1 << x) == 12 38 || (40 << x) == 1024 39 || (2 << x) == 84 40 || (3 << x) == 16384 41 || (10 << x) == 6144) 42 __builtin_abort (); 43 } 44 45 void __attribute__ ((noinline, noclone)) test4(int x)46test4 (int x) 47 { 48 if ((3 << x) != 4 49 && (1 << x) != 12 50 && (40 << x) != 1024 51 && (2 << x) != 84 52 && (3 << x) != 16384 53 && (10 << x) != 6144) 54 ; 55 else 56 __builtin_abort (); 57 } 58 59 int main(void)60main (void) 61 { 62 test1 (0); 63 test2 (1); 64 test3 (1); 65 test4 (2); 66 } 67 68 /* { dg-final { scan-tree-dump-not "(<<|==|!=)" "original" } } */ 69