1 /* PR middle-end/40057 */
2 
3 extern void abort (void);
4 
5 __attribute__((noinline)) int
foo(unsigned long long x)6 foo (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
bar(long long x)15 bar (long long x)
16 {
17   long long y = (x >> 31LL) & 1LL;
18   if (y == 0LL)
19     return 0;
20   return -1;
21 }
22 
23 int
main(void)24 main (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