1 /* { dg-do compile } */
2 /* { dg-require-effective-target fgraphite } */
3 /* { dg-require-effective-target pthread } */
4 /* { dg-options "-floop-parallelize-all -fsave-optimization-record -ftree-parallelize-loops=2 -ftree-slp-vectorize" } */
5 
6 #include <stdint.h>
7 #include <stdlib.h>
8 
9 signed char qq;
10 int rm, mu, l9;
11 long long unsigned int ip;
12 
13 void
fi(void)14 fi (void)
15 {
16 }
17 
18 void
il(long long unsigned int c5)19 il (long long unsigned int c5)
20 {
21   int *na = &mu;
22 
23   while (l9 < 1)
24     {
25       if (qq < 1)
26         {
27           short int ds = 0;
28 
29           if ((ip - *na - ip / c5 != 0) && (*na / ((c5 + c5) && !!ip) != 0))
30             __builtin_trap ();
31 
32           rm = -1 / (!!rm && !!c5);
33 
34           while (qq < 1)
35             {
36               ++*na;
37               ++ip;
38               if (*na < (int) ip)
39                 while (ds < 2)
40                   {
41                     ++qq;
42                     ++ds;
43                   }
44             }
45         }
46 
47       ++l9;
48     }
49 
50   for (;;)
51     {
52     }
53 }
54 
55 void
uu(short int wk)56 uu (short int wk)
57 {
58   int64_t tl = ip;
59 
60   while (ip < 2)
61     {
62       signed char vn;
63 
64       for (vn = 1; vn != 0; ++vn)
65         {
66           int rh;
67 
68           if (qq < 1)
69             {
70               while (mu < 1)
71                 ip = 0;
72 
73               while (rm != 0)
74                 ++rm;
75             }
76 
77           for (rh = 0; rh < 3; ++rh)
78             {
79               int ab;
80 
81               for (ab = 0; ab < 5; ++ab)
82                 {
83                   tl -= qq;
84                   wk += rh - tl;
85                   ip += (ab < wk) + wk;
86                 }
87             }
88         }
89     }
90 }
91 
92 void
im(uint8_t kt)93 im (uint8_t kt)
94 {
95   int wu = 0;
96 
97   for (;;)
98     {
99       ++rm;
100       if (rm < 1)
101         {
102           short int ms = 0;
103 
104           while (kt < 1)
105             {
106               ms += rm < 0;
107 
108               if (wu != 0)
109                 for (;;)
110                   {
111                   }
112 
113               while (ms < 4)
114                 {
115                   while (wu < 1)
116                     wu += 2;
117 
118                   ++ms;
119                 }
120             }
121 
122           if (ms == 0 || wu == 0)
123             break;
124         }
125     }
126 
127   while (wu < 1)
128     while (qq < 1)
129       ++qq;
130 }
131