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];
       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