blob: 00d4b5315aeb8bb8ecb618f311766bef1a85becf [file] [log] [blame]
/* { dg-require-effective-target size32plus } */
double u[1782225];
void foo(int N, int *res)
{
int i, j;
double a, b;
double sum = 0.0;
for (j = 3; j < N; j = j * j)
{
sum += a + b;
}
/* Next two loops form first SCoP */
for (i = 0; i < N; i++)
sum += u[i];
for (i = 0; i < N; i++)
{
a = u[i];
u[i] = i * i;
b = u[i];
sum += a + b;
}
for (j = 3; j < N; j = j * j)
{
sum += a + b;
}
for (j = 3; j < N; j = j * j)
{
sum += a + b;
}
/* Next two loop-nests form second SCoP */
for (i = 0; i < N; i++)
sum += u[i];
for (i = 0; i < N; i++)
for (j = 0; j < N; j++)
{
a = u[i];
u[i] = i * i;
b = u[j];
sum += a + b;
}
*res = sum + N;
}
/* { dg-final { scan-tree-dump-times "number of SCoPs: 2" 1 "graphite"} } */
/* { dg-final { scan-tree-dump-times "Loops in SCoP" 2 "graphite"} } */
/* { dg-final { scan-tree-dump "Loops in SCoP: 2, 3" "graphite"} } */
/* { dg-final { scan-tree-dump "Loops in SCoP: 6, 7, 8" "graphite"} } */