1 /* PR tree-optimization/66299 */ 2 /* { dg-do run } */ 3 /* { dg-options "-fdump-tree-original" } */ 4 /* { dg-require-effective-target int32plus } */ 5 6 void test1(int x)7test1 (int x) 8 { 9 if ((0 << x) != 0 10 || (1 << x) != 2 11 || (2 << x) != 4 12 || (3 << x) != 6 13 || (4 << x) != 8 14 || (5 << x) != 10 15 || (6 << x) != 12 16 || (7 << x) != 14 17 || (8 << x) != 16 18 || (9 << x) != 18 19 || (10 << x) != 20) 20 __builtin_abort (); 21 } 22 23 void test2(int x)24test2 (int x) 25 { 26 if (!((0 << x) == 0 27 && (1 << x) == 4 28 && (2 << x) == 8 29 && (3 << x) == 12 30 && (4 << x) == 16 31 && (5 << x) == 20 32 && (6 << x) == 24 33 && (7 << x) == 28 34 && (8 << x) == 32 35 && (9 << x) == 36 36 && (10 << x) == 40)) 37 __builtin_abort (); 38 } 39 40 void test3(unsigned int x)41test3 (unsigned int x) 42 { 43 if ((0U << x) != 0U 44 || (1U << x) != 16U 45 || (2U << x) != 32U 46 || (3U << x) != 48U 47 || (4U << x) != 64U 48 || (5U << x) != 80U 49 || (6U << x) != 96U 50 || (7U << x) != 112U 51 || (8U << x) != 128U 52 || (9U << x) != 144U 53 || (10U << x) != 160U) 54 __builtin_abort (); 55 } 56 57 void test4(unsigned int x)58test4 (unsigned int x) 59 { 60 if (!((0U << x) == 0U 61 || (1U << x) == 8U 62 || (2U << x) == 16U 63 || (3U << x) == 24U 64 || (4U << x) == 32U 65 || (5U << x) == 40U 66 || (6U << x) == 48U 67 || (7U << x) == 56U 68 || (8U << x) == 64U 69 || (9U << x) == 72U 70 || (10U << x) == 80U)) 71 __builtin_abort (); 72 } 73 74 void test5(int x)75test5 (int x) 76 { 77 if ((0 << x) == 1 78 || (0 << x) != 0 79 || (0x8001U << x) != 0x20000U) 80 __builtin_abort (); 81 } 82 83 int main(void)84main (void) 85 { 86 test1 (1); 87 test2 (2); 88 test3 (4U); 89 test4 (3U); 90 test5 (17); 91 } 92 93 /* { dg-final { scan-tree-dump-not "<<" "original" } } */ 94