libcpp, c, middle-end: Optimize initializers using #embed in C
[official-gcc.git] / gcc / testsuite / gcc.dg / graphite / scop-22a.c
blob00d4b5315aeb8bb8ecb618f311766bef1a85becf
1 /* { dg-require-effective-target size32plus } */
2 double u[1782225];
4 void foo(int N, int *res)
6 int i, j;
7 double a, b;
8 double sum = 0.0;
10 for (j = 3; j < N; j = j * j)
12 sum += a + b;
15 /* Next two loops form first SCoP */
16 for (i = 0; i < N; i++)
17 sum += u[i];
19 for (i = 0; i < N; i++)
21 a = u[i];
22 u[i] = i * i;
23 b = u[i];
24 sum += a + b;
27 for (j = 3; j < N; j = j * j)
29 sum += a + b;
32 for (j = 3; j < N; j = j * j)
34 sum += a + b;
37 /* Next two loop-nests form second SCoP */
38 for (i = 0; i < N; i++)
39 sum += u[i];
41 for (i = 0; i < N; i++)
42 for (j = 0; j < N; j++)
44 a = u[i];
45 u[i] = i * i;
46 b = u[j];
47 sum += a + b;
50 *res = sum + N;
53 /* { dg-final { scan-tree-dump-times "number of SCoPs: 2" 1 "graphite"} } */
54 /* { dg-final { scan-tree-dump-times "Loops in SCoP" 2 "graphite"} } */
55 /* { dg-final { scan-tree-dump "Loops in SCoP: 2, 3" "graphite"} } */
56 /* { dg-final { scan-tree-dump "Loops in SCoP: 6, 7, 8" "graphite"} } */