/* { dg-do compile } */
/* { dg-options "-O2 -ftree-loop-vectorize -fdump-tree-pcom-details -fdisable-tree-vect" } */

extern double arr[100];
extern double foo (double, double);
extern double sum;

void
test (int i_0, int i_n)
{
  int i;
  for (i = i_0; i < i_n - 1; i++)
    {
      double a = arr[i];
      double b = arr[i + 1];
      sum += a * b;
    }
}

/* { dg-final { scan-tree-dump "Executing predictive commoning without unrolling" "pcom" } } */