1 /* { dg-do run } */
2 /* { dg-options "-Og -fif-conversion -flive-range-shrinkage -fpeel-loops -frerun-cse-after-loop" } */
3
4 static inline int
5 foo (int *x, int y)
6 {
7 int z = *x;
8 while (y > z)
9 z *= 2;
10 return z;
11 }
12
13 int
14 main ()
15 {
16 int i;
17 for (i = 1; i < 17; i++)
18 {
19 int j;
20 int k;
21 j = foo (&i, 7);
22 if (i >= 7)
23 k = i;
24 else if (i >= 4)
25 k = 8 + (i - 4) * 2;
26 else if (i == 3)
27 k = 12;
28 else
29 k = 8;
30 if (j != k)
31 __builtin_abort ();
32 }
33 return 0;
34 }