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