1/* PR middle-end/40057 */ 2 3extern void abort (void); 4 5__attribute__((noinline)) int 6foo (unsigned long long x) 7{ 8 unsigned long long y = (x >> 31ULL) & 1ULL; 9 if (y == 0ULL) 10 return 0; 11 return -1; 12} 13 14__attribute__((noinline)) int 15bar (long long x) 16{ 17 long long y = (x >> 31LL) & 1LL; 18 if (y == 0LL) 19 return 0; 20 return -1; 21} 22 23int 24main (void) 25{ 26 if (sizeof (long long) != 8) 27 return 0; 28 if (foo (0x1682a9aaaULL)) 29 abort (); 30 if (!foo (0x1882a9aaaULL)) 31 abort (); 32 if (bar (0x1682a9aaaLL)) 33 abort (); 34 if (!bar (0x1882a9aaaLL)) 35 abort (); 36 return 0; 37} 38