1/* { dg-do compile } */ 2/* { dg-options "-O2 -fdump-tree-ivopts-details" } */ 3 4double g; 5 6int foo(char *flags, long len, long i, long steps) 7{ 8 register long step, iter; 9 10 if(*(flags + i)) 11 { 12 step = i + i + 3; 13 for(iter = i + step ; iter <= len ; iter += step) 14 { 15 steps++; 16 *(flags + iter)=0; 17 } 18 } 19 g = 5.0*(double)steps; 20 21 return 0; 22} 23 24/* Don't expand iv {base+step, step}_loop into {base+x+y, step}_loop 25 even if "step == x + y". */ 26/* { dg-final { scan-tree-dump "base step_\[0-9\]* \\+ iter|base iter_\[0-9\]* \\+ step" "ivopts"} } */ 27/* { dg-final { cleanup-tree-dump "ivopts" } } */ 28