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
9 fn1 (int p1)
10 {
11 b = (b >> 1) & (1 ^ a[(1 ^ p1) & 5]);
12 }
13
14 void
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
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 }