1/* { dg-options "-O2" } */
2/* PR optimization/11536 */
3/* Origin: samal@kam.mff.cuni.cz <samal@kam.mff.cuni.cz> */
4/* Testcase by Andrew Pinski <pinskia@physics.uc.edu> */
5
6/* Verify that the loop optimizer doesn't use moving targets
7   to calculate the number of iterations of a loop.  */
8
9extern void abort(void);
10
11void foo(int) __attribute__((__noinline__));
12
13void foo(int i)
14{
15  abort();
16}
17
18int main()
19{
20  int i;
21  int first= 0;
22  int last= 0;
23
24  while (last<3) {
25    last = first;
26
27    while (first<=last) {
28      first++;
29
30      for (i=0;i<3;i++)
31        last++;
32
33      if (last>10)
34        return 0;
35    }
36
37    foo(first);
38  }
39
40  return 0;
41}
42