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