1  /* PR rtl-optimization/81423 */
       2  
       3  extern void abort (void);
       4  
       5  unsigned long long int ll = 0;
       6  unsigned long long int ull1 = 1ULL;
       7  unsigned long long int ull2 = 12008284144813806346ULL;
       8  unsigned long long int ull3;
       9  
      10  unsigned long long int __attribute__ ((noinline))
      11  foo (void)
      12  {
      13    ll = -5597998501375493990LL;
      14  
      15    ll = (unsigned int) (5677365550390624949LL - ll) - (ull1 > 0);
      16    unsigned long long int ull3;
      17    ull3 = (unsigned int)
      18      (2067854353LL <<
      19       (((ll + -2129105131LL) ^ 10280750144413668236ULL) -
      20        10280750143997242009ULL)) >> ((2873442921854271231ULL | ull2)
      21  				    - 12098357307243495419ULL);
      22  
      23    return ull3;
      24  }
      25  
      26  int
      27  main (void)
      28  {
      29    /* We need a long long of exactly 64 bits and int of exactly 32 bits
      30       for this test.  */
      31    if (__SIZEOF_LONG_LONG__ * __CHAR_BIT__ != 64
      32        || __SIZEOF_INT__ * __CHAR_BIT__ != 32)
      33      return 0;
      34  
      35    ull3 = foo ();
      36    if (ull3 != 3998784)
      37      abort ();
      38    return 0;
      39  }