1 /* PR tree-optimization/86990 */
2 /* Testcase by Zhendong Su <su@cs.ucdavis.edu> */
3 
4 const char *ss;
5 
dummy(const char * s,...)6 int __attribute__((noipa)) dummy (const char *s, ...)
7 {
8   ss = s;
9 }
10 
11 int i[6];
12 static int j, v, e, f, h = 5, k, l, n, o, p, q, r, s, u, w, x, y, z, aa, ab, ac,
13                        ad, ae, af, ag = 8, ah, ai, aj, ak, al;
14 char c;
15 struct a {
16   unsigned b;
17   int c : 9;
18   int d;
19 } static g = {9, 5};
20 static short m[1], t = 95, am;
21 int an, ao, ap;
aq(int ar)22 void aq(int ar) {
23   j = j & 5 ^ i[j ^ v & 5];
24   j = j & 5 ^ i[(j ^ v) & 5];
25   j = j & 4095 ^ (j ^ v) & 5;
26 }
as(int ar)27 void as(int ar) {
28   if (n)
29     s = 0;
30 }
at()31 static unsigned at() {
32   int au[] = {2080555007, 0};
33   for (; al; al--) {
34     if (r)
35       --x;
36     if (g.d)
37       l++;
38     dummy("", j);
39     if (u)
40       ae = n = au[al];
41   }
42   r = 0;
43   return 0;
44 }
aw(int ar)45 int aw(int ar) {
46   int ax[] = {9, 5, 5, 9, 5}, ay = 3;
47   struct a az = {1, 3};
48 av:
49   an = (as((at(), ax)[2]), ax[4]);
50   {
51     int ba[] = {5, 5, 9, 8, 1, 0, 5, 5, 9, 8, 1, 0,
52                 5, 5, 9, 8, 1, 0, 5, 5, 9, 8, 1};
53     int a[] = {8, 2, 8, 2, 8, 2, 8};
54     int b[] = {1027239, 8, 1, 7, 9, 2, 9, 4, 4, 2, 8, 1, 0, 4, 4, 2,
55                4,       4, 2, 9, 2, 9, 8, 1, 7, 9, 2, 9, 4, 4, 2};
56     if (z) {
57       struct a bc;
58     bb:
59       for (; e; e++)
60         for (; q;)
61           return ax[e];
62       if (bc.c < g.d <= a[7])
63         aa--;
64     }
65     {
66       struct a bd = {5};
67       int d[20] = {1, 9, 7, 7, 8, 4, 4, 4, 4, 8, 1, 9, 7, 7, 8, 4, 4, 4, 4};
68       c = h | r % g.c ^ x;
69       dummy("", g);
70       am -= t | x;
71       if (h)
72         while (1) {
73           if (a[o]) {
74             struct a be;
75             if (ar) {
76               struct a bf = {908, 5, 3};
77               int bg[3], bh = k, bj = ag | ae, bk = aj + 3, bl = u << e;
78               if (f)
79                 if (ac)
80                   ak = w;
81               ag = -(ag & t);
82               af = ag ^ af;
83               if (8 < af)
84                 break;
85               if (bj)
86                 goto bi;
87               if (s)
88                 dummy("", 6);
89               be.d = k;
90               w = f - bh;
91               dummy("", be);
92               if (w)
93                 goto bb;
94               ao = r - aa && g.b;
95               if (y)
96                 k++;
97               goto av;
98             bi:
99               if (aa)
100                 continue;
101               if (f)
102                 if (k)
103                   dummy("", g);
104               aj = ac + k ^ g.c;
105               g.c = bk;
106               ah = 0;
107               for (; ah < 3; ah++)
108                 if (s)
109                   bg[ah] = 8;
110               if (!ay)
111                 dummy("", ai);
112               u = bl;
113               g = bf;
114             } else
115               for (;; o += a[ap])
116                 ;
117             int bm[] = {0};
118             for (; p; p++)
119               c = ad;
120             ad = l;
121             if (bd.c) {
122               dummy(" ");
123               goto bi;
124             }
125           }
126           int bn[] = {5, 2, 2, 5, 2, 2, 5, 2, 2, 5, 2, 2, 5, 2, 2, 5,
127                       2, 2, 5, 2, 2, 5, 2, 2, 5, 2, 2, 5, 2, 2, 5, 2,
128                       2, 5, 2, 2, 5, 2, 2, 5, 2, 2, 5, 2, 2, 5, 2};
129           struct a a[] = {3440025416, 2, 8, 4, 2, 8, 4, 4, 2, 8, 4};
130           struct a b = {3075920};
131           if (f) {
132             aq(m[am + e]);
133             dummy("", j);
134             dummy("", e);
135             ab--;
136           }
137           if (ax[4]) {
138             if (l)
139               goto av;
140             ++f;
141           } else
142             ay = az.c && a;
143           for (; ac; ac++)
144             m[f] = 0;
145         }
146       h = 9;
147       for (; y; y = 1)
148         if (f)
149           goto av;
150     }
151   }
152   return 0;
153 }
154 
main(void)155 int main (void)
156 {
157   aw(1);
158   if (g.c!= 5)
159     __builtin_abort ();
160   return 0;
161 }
162