/* { dg-do compile { target { ! ia32 } } } */
/* { dg-options "-mavx -mcmodel=large -O3" } */

typedef double v2df __attribute__ ((vector_size (16)));
v2df f (double a, double b)
{
  v2df v;
  double *c = (double *)&v;
  *c = a;
  *(c+1) = b;
  return v;
}
void g ()
{
  v2df x = f (1.0, 1.0);
  v2df y = f (2.0, 2.0);
  for (;*(double *)&x<=8; x+=y)
    g ();
}
