2 /* { dg-options "-O2 -floop-interchange -fdump-tree-linterchange-details" } */
3 /* { dg-skip-if "too big stack" { avr-*-* visium-*-* } } */
5 /* Copied from graphite/interchange-6.c */
15 static int __attribute__((noinline
))
20 /* This loop should be interchanged. */
21 for(j
= 0; j
< M
; j
++)
22 for(i
= 0; i
< N
; i
++)
23 A
[i
][j
] = A
[i
][j
] + A
[i
][j
];
25 return A
[0][0] + A
[N
-1][M
-1];
30 static void __attribute__((noinline
))
31 init (int *arr
, int i
)
35 for (j
= 0; j
< M
; j
++)
45 for (i
= 0; i
< N
; i
++)
51 fprintf (stderr
, "res = %d \n", res
);
60 /* { dg-final { scan-tree-dump-times "Loop_pair<outer:., inner:.> is interchanged" 1 "linterchange"} } */