summaryrefslogtreecommitdiff
path: root/src/math/fmaf.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/math/fmaf.c')
-rw-r--r--src/math/fmaf.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/math/fmaf.c b/src/math/fmaf.c
index 0dccf108..cc427fb5 100644
--- a/src/math/fmaf.c
+++ b/src/math/fmaf.c
@@ -54,7 +54,9 @@ float fmaf(float x, float y, float z)
* If result is inexact, and exactly halfway between two float values,
* we need to adjust the low-order bit in the direction of the error.
*/
+#ifdef FE_TOWARDZERO
fesetround(FE_TOWARDZERO);
+#endif
volatile double vxy = xy; /* XXX work around gcc CSE bug */
double adjusted_result = vxy + z;
fesetround(FE_TONEAREST);