/* { dg-do run { target avx_runtime } } */
/* { dg-require-effective-target avx } */
/* { dg-options "-O3 -mavx -fdump-tree-slp2" } */

float x[8], y[8], z[8];
void __attribute__((noipa)) foo ()
{
  x[0] = y[0] - z[0];
  x[1] = y[1] + z[1];
  x[2] = y[2] - z[2];
  x[3] = y[3] + z[3];
  x[4] = y[4] - z[4];
  x[5] = y[5] + z[5];
  x[6] = y[6] - z[6];
  x[7] = y[7] + z[7];
}
void __attribute__((noipa)) bar ()
{
  x[0] = y[0] + z[0];
  x[1] = y[1] - z[1];
  x[2] = y[2] + z[2];
  x[3] = y[3] - z[3];
  x[4] = y[4] + z[4];
  x[5] = y[5] - z[5];
  x[6] = y[6] + z[6];
  x[7] = y[7] - z[7];
}
int main()
{
  for (int i = 0; i < 8; ++i)
    {
      y[i] = i + 1;
      z[i] = 2 * i + 1;
    }
  foo ();
  if (x[0] != 0 || x[1] != 5 || x[2] != -2 || x[3] != 11
      || x[4] != -4 || x[5] != 17 || x[6] != -6 || x[7] != 23)
    __builtin_abort ();
  bar ();
  if (x[0] != 2 || x[1] != -1 || x[2] != 8 || x[3] != -3
      || x[4] != 14 || x[5] != -5 || x[6] != 20 || x[7] != -7)
    __builtin_abort ();
  return 0;
}

/* { dg-final { scan-tree-dump-times "ADDSUB" 1 "slp2" } } */
