1  /* A test for strength reduction of ivs with nonconstant step.  */
       2  
       3  /* { dg-do compile } */
       4  /* { dg-options "-O1 -fdump-tree-optimized" } */
       5  
       6  int bar (void);
       7  
       8  int a[100];
       9  
      10  void xxx (void)
      11  {
      12    int iter, step = bar ();
      13  
      14    for (iter = 0; iter < 10; iter++)
      15      a[iter * step] = bar ();
      16  }
      17  
      18  /* The array access should be strength reduced.  But to determine the value of
      19     the step, we need to calculate step * sizeof (int), thus we need to be
      20     a bit careful about which multiplications we disallow.  */
      21  
      22  /* { dg-final { scan-tree-dump-times "step \\* \[^0-9\]" 0 "optimized" } } */
      23  /* { dg-final { scan-tree-dump-times "\[^0-9\] \\* step" 0 "optimized" } } */
      24