29 lines
828 B
C
29 lines
828 B
C
/* { dg-do compile { target int32plus } } */
|
|
/* { dg-options "-O2 -ftree-loop-linear -fdump-tree-ltrans-all" } */
|
|
|
|
int foo (int n, int m)
|
|
{
|
|
int a[10000][10000];
|
|
int i, j, k;
|
|
|
|
for(k = 0; k < 1234; k++)
|
|
for(j = 0; j < 5; j++)
|
|
for(i = 0; i < 67; i++)
|
|
{
|
|
a[j+i-(-m+n+3)][i-k+4] = a[k+j][i];
|
|
}
|
|
|
|
return a[0][0];
|
|
}
|
|
|
|
|
|
/* For the data dependence analysis of the outermost loop, the
|
|
evolution of "k+j" should be instantiated in the outermost loop "k"
|
|
and the evolution should be taken in the innermost loop "i". The
|
|
pattern below ensures that the evolution is not computed in the
|
|
outermost "k" loop: the 4 comes from the instantiation of the
|
|
number of iterations of loop "j". */
|
|
|
|
/* { dg-final { scan-tree-dump-times "4, \\+, 1" 0 "ltrans" } } */
|
|
/* { dg-final { cleanup-tree-dump "ltrans" } } */
|