1 /* PR tree-optimization/83337 */
2 /* { dg-do run { target int32plus } } */
3 /* { dg-options "-O2 -floop-interchange -fdump-tree-linterchange-details" } */
4 /* { dg-skip-if "too big data segment" { visium-*-* } } */
6 /* Copied from graphite/interchange-5.c */
15 struct S
{ int a
: 3; int b
: 17; int c
: 12; };
18 static int __attribute__((noinline
))
23 for( i
= 0; i
< M
; i
++)
24 for( j
= 0; j
< N
; j
++)
25 A
[j
][i
].b
= 5 * A
[j
][i
].b
;
27 return A
[0][0].b
+ A
[N
-1][M
-1].b
;
32 static void __attribute__((noinline
))
37 for (j
= 0; j
< M
; j
++)
46 for (i
= 0; i
< N
; i
++)
52 fprintf (stderr
, "res = %d \n", res
);
61 /* { dg-final { scan-tree-dump-times "Loop_pair<outer:., inner:.> is interchanged" 1 "linterchange"} } */