1 /* Prefetching when the step is loop invariant. */
2 /* { dg-do compile } */
3 /* { dg-require-effective-target sse2 } */
4 /* { dg-options "-O3 -msse2 -fprefetch-loop-arrays -fdump-tree-aprefetch-details --param min-insn-to-prefetch-ratio=3 --param simultaneous-prefetches=10 -fdump-tree-aprefetch-details" } */
8 void prefetch_when_non_constant_step_is_invariant(int step
, int n
)
12 for (a
= 1; a
< step
; a
++) {
13 for (b
= 0; b
< n
; b
+= 2 * step
) {
16 int j
= 2*(b
+ a
+ step
);
20 data
[j
+1] = data
[i
+1];
25 /* { dg-final { scan-tree-dump "Issued prefetch" "aprefetch" } } */
26 /* { dg-final { scan-assembler "prefetcht0" } } */
28 /* { dg-final { cleanup-tree-dump "aprefetch" } } */