From 7cb029ee6ec74801aebe41af62d20a44775d0697 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Tue, 1 May 2012 15:37:43 +0000 Subject: Fix nexttoward bugs (bugs 2550, 2570). --- sysdeps/i386/fpu/s_nexttoward.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) (limited to 'sysdeps/i386/fpu/s_nexttoward.c') diff --git a/sysdeps/i386/fpu/s_nexttoward.c b/sysdeps/i386/fpu/s_nexttoward.c index e5f0164ce1..74147c4f9e 100644 --- a/sysdeps/i386/fpu/s_nexttoward.c +++ b/sysdeps/i386/fpu/s_nexttoward.c @@ -55,11 +55,7 @@ double __nexttoward(double x, long double y) return x; } if(hx>=0) { /* x > 0 */ - if (esy>=0x8000||((ix>>20)&0x7ff)>iy-0x3c00 - || (((ix>>20)&0x7ff)==iy-0x3c00 - && (((hx<<11)|(lx>>21))>(hy&0x7fffffff) - || (((hx<<11)|(lx>>21))==(hy&0x7fffffff) - && (lx<<11)>ly)))) { /* x > y, x -= ulp */ + if (x > y) { /* x -= ulp */ if(lx==0) hx -= 1; lx -= 1; } else { /* x < y, x += ulp */ @@ -67,11 +63,7 @@ double __nexttoward(double x, long double y) if(lx==0) hx += 1; } } else { /* x < 0 */ - if (esy<0x8000||((ix>>20)&0x7ff)>iy-0x3c00 - || (((ix>>20)&0x7ff)==iy-0x3c00 - && (((hx<<11)|(lx>>21))>(hy&0x7fffffff) - || (((hx<<11)|(lx>>21))==(hy&0x7fffffff) - && (lx<<11)>ly)))) {/* x < y, x -= ulp */ + if (x < y) { /* x -= ulp */ if(lx==0) hx -= 1; lx -= 1; } else { /* x > y, x += ulp */ -- cgit 1.4.1