1 /* PR tree-optimization/67916 */
2 /* { dg-do run } */
3 
4 int a[6], b = 1, d, e;
5 long long c;
6 static int f = 1;
7 
8 void
fn1(int p1)9 fn1 (int p1)
10 {
11   b = (b >> 1) & (1 ^ a[(1 ^ p1) & 5]);
12 }
13 
14 void
fn2()15 fn2 ()
16 {
17   b = (b >> 1) & (1 ^ a[(b ^ 1) & 1]);
18   fn1 (c >> 1 & 5);
19   fn1 (c >> 2 & 5);
20   fn1 (c >> 4 & 5);
21   fn1 (c >> 8 & 5);
22 }
23 
24 int
main()25 main ()
26 {
27   int i, j;
28   for (; d;)
29     {
30       for (; e;)
31 	fn2 ();
32       f = 0;
33     }
34   for (i = 0; i < 8; i++)
35     {
36       if (f)
37 	i = 9;
38       for (j = 0; j < 7; j++)
39 	fn2 ();
40     }
41 
42   if (b != 0)
43     __builtin_abort ();
44 
45   return 0;
46 }
47