diff options
Diffstat (limited to 'libm/upstream-freebsd/lib/msun/src/s_fma.c')
-rw-r--r-- | libm/upstream-freebsd/lib/msun/src/s_fma.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/libm/upstream-freebsd/lib/msun/src/s_fma.c b/libm/upstream-freebsd/lib/msun/src/s_fma.c index 41a6424fd..95cffd0ba 100644 --- a/libm/upstream-freebsd/lib/msun/src/s_fma.c +++ b/libm/upstream-freebsd/lib/msun/src/s_fma.c @@ -35,6 +35,13 @@ __FBSDID("$FreeBSD$"); #include "math_private.h" +#ifdef USE_BUILTIN_FMA +double +fma(double x, double y, double z) +{ + return (__builtin_fma(x, y, z)); +} +#else /* * A struct dd represents a floating-point number with twice the precision * of a double. We maintain the invariant that "hi" stores the 53 high-order @@ -284,6 +291,7 @@ fma(double x, double y, double z) else return (add_and_denormalize(r.hi, adj, spread)); } +#endif /* !USE_BUILTIN_FMA */ #if (LDBL_MANT_DIG == 53) __weak_reference(fma, fmal); |