about summary refs log tree commit diff
path: root/sysdeps/ieee754/dbl-64/wordsize-64/s_getpayload.c
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/ieee754/dbl-64/wordsize-64/s_getpayload.c')
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_getpayload.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_getpayload.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_getpayload.c
index c8415daf25..5e4ccd9ad1 100644
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_getpayload.c
+++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_getpayload.c
@@ -20,6 +20,7 @@
 #include <math_private.h>
 #include <libm-alias-double.h>
 #include <stdint.h>
+#include <fix-int-fp-convert-zero.h>
 
 double
 __getpayload (const double *x)
@@ -30,6 +31,8 @@ __getpayload (const double *x)
       || (ix & 0xfffffffffffffULL) == 0)
     return -1;
   ix &= 0x7ffffffffffffULL;
+  if (FIX_INT_FP_CONVERT_ZERO && ix == 0)
+    return 0.0f;
   return (double) ix;
 }
 libm_alias_double (__getpayload, getpayload)