/* PR tree-optimization/66299 */ /* { dg-do run } */ /* { dg-options "-fdump-tree-original" } */ void __attribute__ ((noinline, noclone)) test1 (int x) { if ((2 << x) == 1 || (8 << x) == 1 || (8 << x) == 2 || (3072 << x) == 3 || (294912 << x) == 9 || (45056 << x) == 11 || (2176 << x) == 17) __builtin_abort (); } void __attribute__ ((noinline, noclone)) test2 (int x) { if ((2 << x) != 1 && (8 << x) != 1 && (8 << x) != 2 && (3072 << x) != 3 && (294912 << x) != 9 && (45056 << x) != 11 && (2176 << x) != 17) ; else __builtin_abort (); } void __attribute__ ((noinline, noclone)) test3 (int x) { if ((3 << x) == 4 || (1 << x) == 12 || (40 << x) == 1024 || (2 << x) == 84 || (3 << x) == 16384 || (10 << x) == 6144) __builtin_abort (); } void __attribute__ ((noinline, noclone)) test4 (int x) { if ((3 << x) != 4 && (1 << x) != 12 && (40 << x) != 1024 && (2 << x) != 84 && (3 << x) != 16384 && (10 << x) != 6144) ; else __builtin_abort (); } int main (void) { test1 (0); test2 (1); test3 (1); test4 (2); } /* { dg-final { scan-tree-dump-not "(<<|==|!=)" "original" } } */