| /* { dg-do run { target size32plus } } */ |
| /* { dg-options "-O3 -ftree-loop-distribute-patterns -fdump-tree-ldist-details" } */ |
| /* { dg-skip-if "too big data segment" { visium-*-* } } */ |
| |
| #define M (300) |
| #define N (200) |
| |
| struct st |
| { |
| double a[M]; |
| double b[M]; |
| double c[M][N]; |
| }; |
| |
| int __attribute__ ((noinline)) |
| foo (struct st *s) |
| { |
| int i, j; |
| for (i = 0; i != M;) |
| { |
| s->a[i] = 0.0; |
| s->b[i] = 1.0; |
| for (j = 0; 1; ++j) |
| { |
| if (j == N) goto L2; |
| s->c[i][j] = 0.0; |
| } |
| L2: |
| ++i; |
| } |
| return 0; |
| } |
| |
| struct st s; |
| |
| int |
| main (void) |
| { |
| return foo (&s); |
| } |
| |
| /* { dg-final { scan-tree-dump "distributed: split to " "ldist" } } */ |