PR rtl-optimization/87918
[official-gcc.git] / gcc / testsuite / gcc.target / i386 / pr66691.c
blob407aba908bcd868ef59e1c78388bf293893dcaa3
1 /* PR target/66691 */
2 /* { dg-do compile } */
3 /* { dg-require-effective-target ia32 } */
4 /* { dg-options "-O3 -g -mtune=generic -march=i686" } */
6 unsigned int a;
7 int b[2], c, d, e, f, g, h, i, k[8], l, m, s, t, w;
8 static int j;
10 void
11 fn1 (long long p)
13 int t = p;
14 c = c ^ b[c ^ (t & 1)];
17 static void
18 fn2 (long long p)
20 c = c ^ b[1 ^ (d & 1)];
21 fn1 (p >> 1 & 1);
22 fn1 (p >> 2);
25 static void
26 fn3 ()
28 unsigned char p;
29 f = g = 0;
30 for (h = 0; h < 6; h++)
32 for (s = 0; s < 7; s++)
33 if (k[s+1])
34 g = 0;
35 else
36 for (j = 0; j < 2; j++)
38 t = j > 2 ? 0 : 1 >> j;
40 if (l)
42 short q[2];
43 q[0] = q[1] = 0;
44 if (m)
45 for (i = 0; i < 2; i++)
47 unsigned char r = q[i];
48 p = f ? r % f : r;
49 e = ((p > 0) <= (q[i] ^ 1)) + a;
50 if (k[1])
51 for (e = 0; e != 18; ++e)
52 k[0] = 0;
57 int
58 main ()
60 fn3 ();
61 fn2 (w);
62 fn2 (j);
63 return 0;