1 /* { dg-do run } */
2 /* { dg-options "-O2" } */
3 /* { dg-require-effective-target ia32 } */
4 int a, b, c, d, e[2], f, l, m, n, o;
5 long long g = 1, j;
6 static unsigned int h;
7 static int i, k;
8 
9 void
fn1(long long p)10 fn1 (long long p)
11 {
12   int q = p;
13   f = 1 ^ e[f ^ (q & 1)];
14 }
15 
16 static void
fn2(long long p)17 fn2 (long long p)
18 {
19   f = 1 ^ e[(f ^ 1) & 1];
20   fn1 (p >> 1 & 1);
21   fn1 (p >> 32 & 1);
22 }
23 
24 void
fn3(int p)25 fn3 (int p)
26 {
27   g |= j = p;
28 }
29 
30 int
main()31 main ()
32 {
33   e[0] = 1;
34   char p = l;
35   h = --g;
36   i = o = c;
37   m = d ? 1 / d : 0;
38   fn3 (l || 0);
39   b = a;
40   n = j++;
41   k--;
42   fn2 (g);
43   fn2 (h);
44   fn2 (i);
45 
46   if (k + f)
47     __builtin_abort ();
48 
49   return 0;
50 }
51 
52