1 /* { dg-do compile } */ 2 /* { dg-options "-O2 -ftree-loop-linear" } */ 3 /* { dg-require-effective-target size32plus } */ 4 foo(int * p,int n)5int foo(int *p, int n) 6 { 7 int i, j, k = 0; 8 9 /* This is a reduction: there is a scalar dependence that cannot be 10 removed by rewriting IVs. This code cannot and should not be 11 transformed into a perfect loop. */ 12 for (i = 0; i < 2; ++i, p += n) 13 for (j = 0; j < 2; ++j) 14 k += p[j]; 15 16 return k; 17 } 18