2015-07-23 Richard Biener <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / gcc.dg / autopar / outer-6.c
blob6bef7ccc3e005511b158519c8285be25396ff53f
1 /* { dg-do compile } */
2 /* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops-details -fdump-tree-optimized" } */
4 void abort (void);
6 int x[500][500];
7 int y[500];
8 int g_sum=0;
10 __attribute__((noinline))
11 void init (int i, int j)
13 x[i][j]=1;
16 __attribute__((noinline))
17 void parloop (int N)
19 int i, j;
20 int sum;
22 /* Outer loop reduction, outerloop is parallelized. */
23 sum=0;
24 for (i = 0; i < N; i++)
26 for (j = 0; j < N; j++)
27 y[i]=x[i][j];
28 sum += y[i];
30 g_sum = sum;
33 int main(void)
35 int i,j;
36 for (i = 0; i < 500; i++)
37 for (j = 0; j < 500; j++)
38 init(i, j);
40 parloop(500);
42 return 0;
46 /* Check that outer loop is parallelized. */
47 /* { dg-final { scan-tree-dump-times "parallelizing outer loop" 1 "parloops" } } */
48 /* { dg-final { scan-tree-dump-times "parallelizing inner loop" 0 "parloops" } } */
49 /* { dg-final { scan-tree-dump-times "loopfn" 4 "optimized" } } */