(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
tree-ssa/
pr71347.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-O2 -fdump-tree-optimized -fpredictive-commoning" } */
       3  
       4  double in;
       5  extern void Write (double);
       6  void foo (void)
       7  {
       8    static double X[9];
       9    int i;
      10          X[1] = in * in;
      11          for (i = 2; i <= 8; i++)
      12              X[i] = X[i - 1] * X[1];
      13          Write (X[5]);
      14  }
      15  
      16  /* Load of X[i - i] can be omitted by reusing X[i] in previous iteration.  */
      17  /* { dg-final { scan-tree-dump-not ".* = MEM.*;" "optimized" } } */