/* { dg-do compile { target { ! ia32 } } } */ | |
/* { dg-options "-O2 -mavx" } */ | |
/* { dg-final { scan-assembler-times "vmovapd|vmovsd" 3 } } */ | |
static inline double g (double x){ | |
asm volatile ("" : "+x" (x)); | |
return x; | |
} | |
static inline double f (double a, double b){ | |
return g (g (a) + g (b)); | |
} | |
double h (double a, double b){ | |
return f (f (a, a), f (b, b)); | |
} |