111
|
1 /* { dg-do compile } */
|
|
2 /* { dg-options "-O2 -fno-ipa-icf -fdump-tree-vrp1" } */
|
|
3
|
|
4 extern void arf (unsigned x, unsigned y);
|
|
5 extern void baz (unsigned x, unsigned y);
|
|
6
|
|
7 unsigned
|
|
8 f1 (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
|
|
21 unsigned
|
|
22 f1r (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
|
|
34 unsigned
|
|
35 f1n (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
|
|
47 unsigned
|
|
48 f1nr (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
|
|
61 unsigned
|
|
62 f1o (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
|
|
74 unsigned
|
|
75 f1ro (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
|
|
87 unsigned
|
|
88 f1no (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
|
|
100 unsigned
|
|
101 f1nro (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
|
|
114 unsigned
|
|
115 f2 (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
|
|
127 unsigned
|
|
128 f2r (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
|
|
140 unsigned
|
|
141 f2n (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
|
|
153 unsigned
|
|
154 f2nr (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
|
|
167 unsigned
|
|
168 f2o (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
|
|
180 unsigned
|
|
181 f2ro (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
|
|
193 unsigned
|
|
194 f2no (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
|
|
206 unsigned
|
|
207 f2nro (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
|
|
220 unsigned
|
|
221 f3 (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
|
|
233 unsigned
|
|
234 f3r (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
|
|
246 unsigned
|
|
247 f3n (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
|
|
259 unsigned
|
|
260 f3nr (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
|
|
273 unsigned
|
|
274 f3o (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
|
|
286 unsigned
|
|
287 f3ro (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
|
|
299 unsigned
|
|
300 f3no (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
|
|
312 unsigned
|
|
313 f3nro (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
|
|
326 unsigned
|
|
327 f4 (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
|
|
339 unsigned
|
|
340 f4r (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
|
|
352 unsigned
|
|
353 f4n (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
|
|
365 unsigned
|
|
366 f4nr (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
|
|
379 unsigned
|
|
380 f4o (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
|
|
392 unsigned
|
|
393 f4ro (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
|
|
405 unsigned
|
|
406 f4no (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
|
|
418 unsigned
|
|
419 f4nro (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. */
|
|
432 /* { dg-final { scan-tree-dump-times "baz \\(a_\[0-9\]+\\(D\\), b_\[0-9\]+\\)" 32 "vrp1"} } */
|
|
433
|
|
434
|
|
435 /* All calls to arf should have constant arguments. */
|
|
436 /* { dg-final { scan-tree-dump-times "arf \\(\[0-9\]+, \[0-9\]+\\)" 32 "vrp1"} } */
|