PR inline-asm/84742
[official-gcc.git] / gcc / testsuite / gcc.c-torture / execute / pr59358.c
blob674026d62588d8ba0a84e9b15ae6dd6cd134f660
1 /* PR tree-optimization/59358 */
3 __attribute__((noinline, noclone)) int
4 foo (int *x, int y)
6 int z = *x;
7 if (y > z && y <= 16)
8 while (y > z)
9 z *= 2;
10 return z;
13 int
14 main ()
16 int i;
17 for (i = 1; i < 17; i++)
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 ();
43 return 0;