131
|
1 /* { dg-do compile { target size32plus } } */
|
111
|
2 /* { dg-options "-O2 -ftree-loop-distribution -ftree-loop-distribute-patterns -fdump-tree-ldist-details" } */
|
|
3
|
|
4 #define M (256)
|
|
5 #define N (512)
|
|
6
|
|
7 struct st
|
|
8 {
|
|
9 int a[M][N];
|
|
10 int c[M];
|
|
11 int b[M][N];
|
|
12 };
|
|
13
|
|
14 void
|
|
15 foo (struct st * restrict p)
|
|
16 {
|
|
17 for (unsigned i = 0; i < M; ++i)
|
|
18 {
|
|
19 p->c[i] = 0;
|
|
20 for (unsigned j = N; j > 0; --j)
|
|
21 {
|
|
22 p->b[i][j - 1] = p->a[i][j - 1];
|
|
23 p->a[i][j - 1] = 0;
|
|
24 }
|
|
25 }
|
|
26 }
|
|
27
|
|
28 /* { dg-final { scan-tree-dump-times "Loop nest . distributed: split to 0 loops and 3 library" 1 "ldist" } } */
|