x86_64: add single instruction fma
[musl] / src / math / x32 / fmaf.c
1 #include <math.h>
2
3 #if __FMA__
4
5 float fmaf(float x, float y, float z)
6 {
7         __asm__ ("vfmadd132ss %1, %2, %0" : "+x" (x) : "x" (y), "x" (z));
8         return x;
9 }
10
11 #elif __FMA4__
12
13 float fmaf(float x, float y, float z)
14 {
15         __asm__ ("vfmaddss %3, %2, %1, %0" : "=x" (x) : "x" (x), "x" (y), "x" (z));
16         return x;
17 }
18
19 #else
20
21 #include "../fmaf.c"
22
23 #endif