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))
foo(void)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
main(void)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 }
40