1#include <math.h>
2
3#if __FMA__
4
5double fma(double x, double y, double z)
6{
7	__asm__ ("vfmadd132sd %1, %2, %0" : "+x" (x) : "x" (y), "x" (z));
8	return x;
9}
10
11#elif __FMA4__
12
13double fma(double x, double y, double z)
14{
15	__asm__ ("vfmaddsd %3, %2, %1, %0" : "=x" (x) : "x" (x), "x" (y), "x" (z));
16	return x;
17}
18
19#else
20
21#include "../fma.c"
22
23#endif
24