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  
       8  extern double fma (double, double, double);
       9  extern float fmaf (float, float, float);
      10  extern long double fmal (long double, long double, long double);
      11  
      12  volatile float f;
      13  volatile double d;
      14  volatile long double ld;
      15  
      16  int
      17  main ()
      18  {
      19    f = fmaf (f, f, f);
      20    d = fma (d, d, d);
      21    ld = fmal (ld, ld, ld);
      22    __asm__ volatile ("" : : "r" (&f), "r" (&d), "r" (&ld) : "memory");
      23    return 0;
      24  }