1/* PR target/47312 */ 2/* { dg-do link } */ 3/* { dg-require-effective-target lto } */ 4/* { dg-require-effective-target xop } */ 5/* { dg-require-effective-target c99_runtime } */ 6/* { dg-options "-O -flto -mno-sse3 -mxop" } */ 7/* { dg-add-options c99_runtime } */ 8 9extern double fma (double, double, double); 10extern float fmaf (float, float, float); 11extern long double fmal (long double, long double, long double); 12 13volatile float f; 14volatile double d; 15volatile long double ld; 16 17int 18main () 19{ 20 f = fmaf (f, f, f); 21 d = fma (d, d, d); 22 ld = fmal (ld, ld, ld); 23 __asm__ volatile ("" : : "r" (&f), "r" (&d), "r" (&ld) : "memory"); 24 return 0; 25} 26