1 /* Not prefetching when the step is loop variant.  */
2 /* { dg-do compile } */
3 /* { 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" } */
4 
5 double data[16384];
donot_prefetch_when_non_constant_step_is_variant(int step,int n)6 void donot_prefetch_when_non_constant_step_is_variant(int step, int n)
7 {
8      int a;
9      int b;
10      for (a = 1; a < step; a++,step*=2) {
11         for (b = 0; b < n; b += 2 * step) {
12 
13           int i = 2*(b + a);
14           int j = 2*(b + a + step);
15 
16 
17           data[j]   = data[i];
18           data[j+1] = data[i+1];
19         }
20      }
21 }
22 
23 /* { dg-final { scan-tree-dump "Not prefetching" "aprefetch" } } */
24 /* { dg-final { scan-tree-dump "loop variant step" "aprefetch" } } */
25 
26 
27