about summary refs log tree commit diff
path: root/sysdeps/ieee754
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/ieee754')
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/e_remainderl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_remquol.c2
2 files changed, 4 insertions, 0 deletions
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_remainderl.c b/sysdeps/ieee754/ldbl-128ibm/e_remainderl.c
index 800416f29a..1dc59a4785 100644
--- a/sysdeps/ieee754/ldbl-128ibm/e_remainderl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/e_remainderl.c
@@ -42,7 +42,9 @@ __ieee754_remainderl(long double x, long double p)
 	EXTRACT_WORDS64 (hp, phi);
 	EXTRACT_WORDS64 (lp, plo);
 	sx = hx&0x8000000000000000ULL;
+	lp ^= hp & 0x8000000000000000ULL;
 	hp &= 0x7fffffffffffffffLL;
+	lx ^= sx;
 	hx &= 0x7fffffffffffffffLL;
 
     /* purge off exception values */
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_remquol.c b/sysdeps/ieee754/ldbl-128ibm/s_remquol.c
index 20e17cc823..14b27ca616 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_remquol.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_remquol.c
@@ -43,7 +43,9 @@ __remquol (long double x, long double y, int *quo)
   EXTRACT_WORDS64 (ly, ylo);
   sx = hx & 0x8000000000000000ULL;
   qs = sx ^ (hy & 0x8000000000000000ULL);
+  ly ^= hy & 0x8000000000000000ULL;
   hy &= 0x7fffffffffffffffLL;
+  lx ^= sx;
   hx &= 0x7fffffffffffffffLL;
 
   /* Purge off exception values.  */