2016-11-30 Vladimir Makarov <vmakarov@redhat.com>
[official-gcc.git] / gcc / testsuite / gcc.target / i386 / pr77856.c
blob81556bef7cf687da4a2d5181ffcd6146bc6edc38
1 /* { dg-do run } */
2 /* { dg-options "-O2" } */
4 extern void abort (void);
6 unsigned a, e;
8 struct S0
10 int f1;
11 int f8;
12 } c = {4, 6};
14 int b, f, g, h, i, j, l, p;
15 short d, o = -7;
16 char k, n = 5;
18 unsigned fn1 (int p1, int p2)
20 return p2 >= 2 || p1 >> p2 ? p1 : p1 << p2;
23 static short fn2 (struct S0 p1)
25 int *q = 0;
26 int r = 7;
27 if (!a)
29 c.f1 = 1;
30 for (; c.f1; c.f1--)
31 if (fn1 (10 != 0, p1.f8))
33 short s = 9 << ~o % (d ^ n);
34 int t = s >> h % ~d;
35 p = r;
36 r = s | p * (d && 9) | t;
37 int u = i & c.f1;
38 unsigned v = ~(~(u & h) | (~(8 >> c.f1) & i));
39 int w = v;
40 if (u < 9)
41 w = c.f1;
42 if (i > h && u)
44 __builtin_printf ("%d\n", c.f1);
45 continue;
47 c.f1 = w;
48 if (!p)
49 continue;
50 return 0;
52 for (;;)
53 *q = 0;
55 return 0;
58 static void fn3 ()
60 fn2 (c);
61 l = c.f1 < b;
62 if (l)
64 L1:
65 e = l | j / e % ~f;
66 j = f - 4 % k < c.f1 / e / b - j - 1;
67 if (l)
69 __builtin_printf ("%d\n", b);
70 goto L1;
72 int m[245];
73 g = m[2];
77 int main ()
79 fn3 ();
80 if (c.f1 != 1)
81 abort ();
82 return 0;