2 /*---------------------------------------------------------------*/
3 /*--- begin host_amd64_maddf.c ---*/
4 /*---------------------------------------------------------------*/
7 Compute x * y + z as ternary operation with intrinsics.
11 #include "libvex_basictypes.h"
12 #include "host_amd64_maddf.h"
14 #if defined(VGA_amd64)
16 h_amd64_calc_MAddF32_fma4 ( /*OUT*/Float
* res
,
17 Float
* argX
, Float
* argY
, Float
* argZ
)
19 __asm__ ("vfmaddss %3,%2,%1,%0;" :
20 "=x"(*res
): "x"(*argX
),"x"(*argY
), "x"(*argZ
));
25 h_amd64_calc_MAddF64_fma4 ( /*OUT*/Double
* res
,
26 Double
* argX
, Double
* argY
, Double
* argZ
)
28 __asm__ ("vfmaddsd %3,%2,%1,%0;" :
29 "=x"(*res
): "x"(*argX
),"x"(*argY
), "x"(*argZ
));
33 /*---------------------------------------------------------------*/
34 /*--- end host_amd64_maddf.c --*/
35 /*---------------------------------------------------------------*/