/* { dg-do compile } */
/* { dg-options "-Ofast" } */

__attribute__ ((__simd__))
__attribute__ ((__nothrow__ , __leaf__ , __const__))
double foo (double x);

void bar(double *f, int n)
{
	int i;
	for (i = 0; i < n; i++)
		f[i] = foo(f[i]);
}

double foo(double x)
{
	return x * x / 3.0;
}

/* { dg-final { scan-assembler-not {\.variant_pcs\tfoo} } } */
/* { dg-final { scan-assembler-times {\.variant_pcs\t_ZGVnM1v_foo} 1 } } */
/* { dg-final { scan-assembler-times {\.variant_pcs\t_ZGVnM2v_foo} 1 } } */
/* { dg-final { scan-assembler-times {\.variant_pcs\t_ZGVnN1v_foo} 1 } } */
/* { dg-final { scan-assembler-times {\.variant_pcs\t_ZGVnN2v_foo} 1 } } */
