1/* PR target/49504 */
2/* { dg-do run { target { x32 } } } */
3/* { dg-options "-O" } */
4
5unsigned long long
6foo (const void* p, unsigned long long q)
7{
8  unsigned long long a = (((unsigned long long) ((unsigned long) p)) + q) >> 32;
9  return a;
10}
11
12int
13main ()
14{
15  if (foo (foo, 0x100000000ULL) != 0x1)
16    __builtin_abort ();
17  return 0;
18}
19