| /* PR tree-optimization/59014 */ | |
| __attribute__((noinline, noclone)) long long int | |
| foo (long long int x, long long int y) | |
| { | |
| if (((int) x | (int) y) != 0) | |
| return 6; | |
| return x + y; | |
| } | |
| int | |
| main () | |
| { | |
| if (sizeof (long long) == sizeof (int)) | |
| return 0; | |
| int shift_half = sizeof (int) * __CHAR_BIT__ / 2; | |
| long long int x = (3LL << shift_half) << shift_half; | |
| long long int y = (5LL << shift_half) << shift_half; | |
| long long int z = foo (x, y); | |
| if (z != ((8LL << shift_half) << shift_half)) | |
| __builtin_abort (); | |
| return 0; | |
| } |