| /* PR middle-end/40057 */ |
| |
| extern void abort (void); |
| |
| __attribute__((noinline)) int |
| foo (unsigned long long x) |
| { |
| unsigned long long y = (x >> 31ULL) & 1ULL; |
| if (y == 0ULL) |
| return 0; |
| return -1; |
| } |
| |
| __attribute__((noinline)) int |
| bar (long long x) |
| { |
| long long y = (x >> 31LL) & 1LL; |
| if (y == 0LL) |
| return 0; |
| return -1; |
| } |
| |
| int |
| main (void) |
| { |
| if (sizeof (long long) != 8) |
| return 0; |
| if (foo (0x1682a9aaaULL)) |
| abort (); |
| if (!foo (0x1882a9aaaULL)) |
| abort (); |
| if (bar (0x1682a9aaaLL)) |
| abort (); |
| if (!bar (0x1882a9aaaLL)) |
| abort (); |
| return 0; |
| } |