/* { dg-do run } */ | |
/* { dg-options "-Og -fif-conversion -flive-range-shrinkage -fpeel-loops -frerun-cse-after-loop" } */ | |
static inline int | |
foo (int *x, int y) | |
{ | |
int z = *x; | |
while (y > z) | |
z *= 2; | |
return z; | |
} | |
int | |
main () | |
{ | |
int i; | |
for (i = 1; i < 17; i++) | |
{ | |
int j; | |
int k; | |
j = foo (&i, 7); | |
if (i >= 7) | |
k = i; | |
else if (i >= 4) | |
k = 8 + (i - 4) * 2; | |
else if (i == 3) | |
k = 12; | |
else | |
k = 8; | |
if (j != k) | |
__builtin_abort (); | |
} | |
return 0; | |
} |