1 /* { dg-do compile } */
2 /* { dg-options "-O2 -ftree-loop-linear" } */
3 /* { dg-require-effective-target size32plus } */
4 
foo(int * p,int n)5 int 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