2 /* { dg-options "-O2 -floop-interchange -fdump-tree-linterchange-details" } */
3 /* { dg-skip-if "too big data segment" { avr-*-* visium-*-* } } */
6 int a
[M
][M
], b
[M
][M
], c
[M
], d
[M
];
7 void __attribute__((noinline
))
10 for (int j
= 0; j
< n
; j
++)
13 for (int i
= 0; i
< n
; i
++)
14 sum
= sum
+ a
[i
][j
]*b
[i
][j
];
20 void __attribute__((noinline
))
21 simple_reduc_2 (int n
)
23 for (int j
= 0; j
< n
; j
++)
26 for (int i
= 0; i
< n
; i
++)
27 sum
= sum
+ a
[i
][j
]*b
[i
][j
];
29 asm volatile ("" ::: "memory");
36 static void __attribute__((noinline
))
41 for (int j
= 0; j
< M
; j
++)
50 for (int i
= 0; i
< M
; ++i
)
56 for (int i
= 0; i
< M
; ++i
)
63 /* { dg-final { scan-tree-dump-times "Loop_pair<outer:., inner:.> is interchanged" 1 "linterchange" } } */