| /* PR rtl-optimization/81423 */ |
| |
| extern void abort (void); |
| |
| unsigned long long int ll = 0; |
| unsigned long long int ull1 = 1ULL; |
| unsigned long long int ull2 = 12008284144813806346ULL; |
| unsigned long long int ull3; |
| |
| unsigned long long int __attribute__ ((noinline)) |
| foo (void) |
| { |
| ll = -5597998501375493990LL; |
| |
| ll = (unsigned int) (5677365550390624949LL - ll) - (ull1 > 0); |
| unsigned long long int ull3; |
| ull3 = (unsigned int) |
| (2067854353LL << |
| (((ll + -2129105131LL) ^ 10280750144413668236ULL) - |
| 10280750143997242009ULL)) >> ((2873442921854271231ULL | ull2) |
| - 12098357307243495419ULL); |
| |
| return ull3; |
| } |
| |
| int |
| main (void) |
| { |
| /* We need a long long of exactly 64 bits and int of exactly 32 bits |
| for this test. */ |
| if (__SIZEOF_LONG_LONG__ * __CHAR_BIT__ != 64 |
| || __SIZEOF_INT__ * __CHAR_BIT__ != 32) |
| return 0; |
| |
| ull3 = foo (); |
| if (ull3 != 3998784) |
| abort (); |
| return 0; |
| } |