]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/testsuite/gcc.dg/tree-ssa/pr79095.c
Fix profile update in tree_transform_and_unroll_loop
[thirdparty/gcc.git] / gcc / testsuite / gcc.dg / tree-ssa / pr79095.c
CommitLineData
6c022f73 1/* { dg-do compile } */
7ea258a1 2/* { dg-options "-O2 -fno-ipa-icf -fdump-tree-evrp" } */
6c022f73
JL
3
4extern void arf (unsigned x, unsigned y);
5extern void baz (unsigned x, unsigned y);
6
7unsigned
8f1 (unsigned a, unsigned b)
9{
10 b = a + 1;
11 if (b < a)
12 {
13 arf (a, b);
14 return 42;
15 }
16 baz (a, b);
17 return b;
18}
19
20
21unsigned
22f1r (unsigned a, unsigned b)
23{
24 b = a + 1;
25 if (a < b)
26 {
27 baz (a, b);
28 return 42;
29 }
30 arf (a, b);
31 return b;
32}
33
34unsigned
35f1n (unsigned a, unsigned b)
36{
37 b = a + 1;
38 if (!(b < a))
39 {
40 baz (a, b);
41 return 42;
42 }
43 arf (a, b);
44 return b;
45}
46
47unsigned
48f1nr (unsigned a, unsigned b)
49{
50 b = a + 1;
51 if (!(a < b))
52 {
53 arf (a, b);
54 return 42;
55 }
56 baz (a, b);
57 return b;
58}
59
60
61unsigned
62f1o (unsigned a, unsigned b)
63{
64 b = a + 1;
65 if (a < b)
66 {
67 baz (a, b);
68 return 42;
69 }
70 arf (a, b);
71 return b;
72}
73
74unsigned
75f1ro (unsigned a, unsigned b)
76{
77 b = a + 1;
78 if (b < a)
79 {
80 arf (a, b);
81 return 42;
82 }
83 baz (a, b);
84 return b;
85}
86
87unsigned
88f1no (unsigned a, unsigned b)
89{
90 b = a + 1;
91 if (!(a < b))
92 {
93 arf (a, b);
94 return 42;
95 }
96 baz (a, b);
97 return b;
98}
99
100unsigned
101f1nro (unsigned a, unsigned b)
102{
103 b = a + 1;
104 if (!(b < a))
105 {
106 baz (a, b);
107 return 42;
108 }
109 arf (a, b);
110 return b;
111}
112
113
114unsigned
115f2 (unsigned a, unsigned b)
116{
117 b = a + 1;
118 if (b <= a)
119 {
120 arf (a, b);
121 return 42;
122 }
123 baz (a, b);
124 return b;
125}
126
127unsigned
128f2r (unsigned a, unsigned b)
129{
130 b = a + 1;
131 if (a <= b)
132 {
133 baz (a, b);
134 return 42;
135 }
136 arf (a, b);
137 return b;
138}
139
140unsigned
141f2n (unsigned a, unsigned b)
142{
143 b = a + 1;
144 if (!(b <= a))
145 {
146 baz (a, b);
147 return 42;
148 }
149 arf (a, b);
150 return b;
151}
152
153unsigned
154f2nr (unsigned a, unsigned b)
155{
156 b = a + 1;
157 if (!(a <= b))
158 {
159 arf (a, b);
160 return 42;
161 }
162 baz (a, b);
163 return b;
164}
165
166
167unsigned
168f2o (unsigned a, unsigned b)
169{
170 b = a + 1;
171 if (a <= b)
172 {
173 baz (a, b);
174 return 42;
175 }
176 arf (a, b);
177 return b;
178}
179
180unsigned
181f2ro (unsigned a, unsigned b)
182{
183 b = a + 1;
184 if (b <= a)
185 {
186 arf (a, b);
187 return 42;
188 }
189 baz (a, b);
190 return b;
191}
192
193unsigned
194f2no (unsigned a, unsigned b)
195{
196 b = a + 1;
197 if (!(a <= b))
198 {
199 arf (a, b);
200 return 42;
201 }
202 baz (a, b);
203 return b;
204}
205
206unsigned
207f2nro (unsigned a, unsigned b)
208{
209 b = a + 1;
210 if (!(b <= a))
211 {
212 baz (a, b);
213 return 42;
214 }
215 arf (a, b);
216 return b;
217}
218
219
220unsigned
221f3 (unsigned a, unsigned b)
222{
223 b = a - 1;
224 if (b < a)
225 {
226 baz (a, b);
227 return 42;
228 }
229 arf (a, b);
230 return b;
231}
232
233unsigned
234f3r (unsigned a, unsigned b)
235{
236 b = a - 1;
237 if (a < b)
238 {
239 arf (a, b);
240 return 42;
241 }
242 baz (a, b);
243 return b;
244}
245
246unsigned
247f3n (unsigned a, unsigned b)
248{
249 b = a - 1;
250 if (!(b < a))
251 {
252 arf (a, b);
253 return 42;
254 }
255 baz (a, b);
256 return b;
257}
258
259unsigned
260f3nr (unsigned a, unsigned b)
261{
262 b = a - 1;
263 if (!(a < b))
264 {
265 baz (a, b);
266 return 42;
267 }
268 arf (a, b);
269 return b;
270}
271
272
273unsigned
274f3o (unsigned a, unsigned b)
275{
276 b = a - 1;
277 if (a < b)
278 {
279 arf (a, b);
280 return 42;
281 }
282 baz (a, b);
283 return b;
284}
285
286unsigned
287f3ro (unsigned a, unsigned b)
288{
289 b = a - 1;
290 if (b < a)
291 {
292 baz (a, b);
293 return 42;
294 }
295 arf (a, b);
296 return b;
297}
298
299unsigned
300f3no (unsigned a, unsigned b)
301{
302 b = a - 1;
303 if (!(a < b))
304 {
305 baz (a, b);
306 return 42;
307 }
308 arf (a, b);
309 return b;
310}
311
312unsigned
313f3nro (unsigned a, unsigned b)
314{
315 b = a - 1;
316 if (!(b < a))
317 {
318 arf (a, b);
319 return 42;
320 }
321 baz (a, b);
322 return b;
323}
324
325
326unsigned
327f4 (unsigned a, unsigned b)
328{
329 b = a - 1;
330 if (b <= a)
331 {
332 baz (a, b);
333 return 42;
334 }
335 arf (a, b);
336 return b;
337}
338
339unsigned
340f4r (unsigned a, unsigned b)
341{
342 b = a - 1;
343 if (a <= b)
344 {
345 arf (a, b);
346 return 42;
347 }
348 baz (a, b);
349 return b;
350}
351
352unsigned
353f4n (unsigned a, unsigned b)
354{
355 b = a - 1;
356 if (!(b <= a))
357 {
358 arf (a, b);
359 return 42;
360 }
361 baz (a, b);
362 return b;
363}
364
365unsigned
366f4nr (unsigned a, unsigned b)
367{
368 b = a - 1;
369 if (!(a <= b))
370 {
371 baz (a, b);
372 return 42;
373 }
374 arf (a, b);
375 return b;
376}
377
378
379unsigned
380f4o (unsigned a, unsigned b)
381{
382 b = a - 1;
383 if (a <= b)
384 {
385 arf (a, b);
386 return 42;
387 }
388 baz (a, b);
389 return b;
390}
391
392unsigned
393f4ro (unsigned a, unsigned b)
394{
395 b = a - 1;
396 if (b <= a)
397 {
398 baz (a, b);
399 return 42;
400 }
401 arf (a, b);
402 return b;
403}
404
405unsigned
406f4no (unsigned a, unsigned b)
407{
408 b = a - 1;
409 if (!(a <= b))
410 {
411 baz (a, b);
412 return 42;
413 }
414 arf (a, b);
415 return b;
416}
417
418unsigned
419f4nro (unsigned a, unsigned b)
420{
421 b = a - 1;
422 if (!(b <= a))
423 {
424 arf (a, b);
425 return 42;
426 }
427 baz (a, b);
428 return b;
429}
430
431/* All calls to baz should still reference a & b as arguments. */
7ea258a1 432/* { dg-final { scan-tree-dump-times "baz \\(a_\[0-9\]+\\(D\\), b_\[0-9\]+\\)" 32 "evrp"} } */
6c022f73
JL
433
434
435/* All calls to arf should have constant arguments. */
7ea258a1 436/* { dg-final { scan-tree-dump-times "arf \\(\[0-9\]+, \[0-9\]+\\)" 32 "evrp"} } */