1 /* { dg-do run } */
2 /* { dg-additional-options "-fweb" } */
3 
4 typedef unsigned char u8;
5 #if __SIZEOF_INT__ < 4
6   __extension__ typedef __UINT32_TYPE__ u32;
7 #else
8   typedef unsigned int u32;
9 #endif
10 typedef unsigned long long u64;
11 int a;
12 
13 static __attribute__ ((noinline, noclone)) u64
foo(u8 p1,u32 p2)14 foo (u8 p1, u32 p2)
15 {
16   u64 b = a <= 0;
17   p2 = 4;
18   b >>= a == 0;
19   p1 %= 0xfffffffff;
20   p2 >>= b & 31;
21   p1 += b;
22   p2 <<= 31;
23   return p1 + p2 + b;
24 }
25 
26 int
main(void)27 main (void)
28 {
29   u64 x = foo (0, 1);
30   if (x != 0)
31     __builtin_abort ();
32   return 0;
33 }
34