1/* PR tree-optimization/59358 */ 2 3__attribute__((noinline, noclone)) int 4foo (int *x, int y) 5{ 6 int z = *x; 7 if (y > z && y <= 16) 8 while (y > z) 9 z *= 2; 10 return z; 11} 12 13int 14main () 15{ 16 int i; 17 for (i = 1; i < 17; i++) 18 { 19 int j = foo (&i, 16); 20 int k; 21 if (i >= 8 && i <= 15) 22 k = 16 + (i - 8) * 2; 23 else if (i >= 4 && i <= 7) 24 k = 16 + (i - 4) * 4; 25 else if (i == 3) 26 k = 24; 27 else 28 k = 16; 29 if (j != k) 30 __builtin_abort (); 31 j = foo (&i, 7); 32 if (i >= 7) 33 k = i; 34 else if (i >= 4) 35 k = 8 + (i - 4) * 2; 36 else if (i == 3) 37 k = 12; 38 else 39 k = 8; 40 if (j != k) 41 __builtin_abort (); 42 } 43 return 0; 44} 45