131
|
1 /* { dg-do run { target size32plus } } */
|
111
|
2 /* { dg-options "-O3 -ftree-loop-distribute-patterns -fdump-tree-ldist-details" } */
|
131
|
3 /* { dg-skip-if "too big data segment" { visium-*-* } } */
|
111
|
4
|
|
5 #define M (300)
|
|
6 #define N (200)
|
|
7
|
|
8 struct st
|
|
9 {
|
|
10 double a[M];
|
|
11 double b[M];
|
|
12 double c[M][N];
|
|
13 };
|
|
14
|
|
15 int __attribute__ ((noinline))
|
|
16 foo (struct st *s)
|
|
17 {
|
|
18 int i, j;
|
|
19 for (i = 0; i != M;)
|
|
20 {
|
|
21 s->a[i] = 0.0;
|
|
22 s->b[i] = 1.0;
|
|
23 for (j = 0; 1; ++j)
|
|
24 {
|
|
25 if (j == N) goto L2;
|
|
26 s->c[i][j] = 0.0;
|
|
27 }
|
|
28 L2:
|
|
29 ++i;
|
|
30 }
|
|
31 return 0;
|
|
32 }
|
|
33
|
|
34 struct st s;
|
|
35
|
|
36 int
|
|
37 main (void)
|
|
38 {
|
|
39 return foo (&s);
|
|
40 }
|
|
41
|
|
42 /* { dg-final { scan-tree-dump "distributed: split to " "ldist" } } */
|