1  /* PR target/49504 */
       2  /* { dg-do run { target x32 } } */
       3  /* { dg-options "-O" } */
       4  
       5  unsigned long long 
       6  foo (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  
      12  int
      13  main ()
      14  {
      15    if (foo (foo, 0x100000000ULL) != 0x1)
      16      __builtin_abort ();
      17    return 0;
      18  }