about summary refs log tree commit diff
path: root/sysdeps/i386/fpu/s_nextafterl.c
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/i386/fpu/s_nextafterl.c')
-rw-r--r--sysdeps/i386/fpu/s_nextafterl.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/sysdeps/i386/fpu/s_nextafterl.c b/sysdeps/i386/fpu/s_nextafterl.c
index 82a0190ca6..a6ead79221 100644
--- a/sysdeps/i386/fpu/s_nextafterl.c
+++ b/sysdeps/i386/fpu/s_nextafterl.c
@@ -45,10 +45,10 @@ static char rcsid[] = "$NetBSD: $";
 	ix = esx&0x7fff;		/* |x| */
 	iy = esy&0x7fff;		/* |y| */
 
-	/* The additional &hx/&hy is required because Intel's extended format
-           has the normally implicit 1 explicit present.  Sigh!  */
-	if(((ix==0x7fff)&&(((hx|lx)|-(hx|lx))&hx)>>31!=0) ||   /* x is nan */
-	   ((iy==0x7fff)&&(((hy|ly)|-(hy|ly))&hy)>>31!=0))     /* y is nan */
+	/* Intel's extended format has the normally implicit 1 explicit
+	   present.  Sigh!  */
+	if(((ix==0x7fff)&&((hx&0x7fffffff|lx)!=0)) ||   /* x is nan */
+	   ((iy==0x7fff)&&((hy&0x7fffffff|ly)!=0)))     /* y is nan */
 	   return x+y;
 	if(x==y) return y;		/* x=y, return y */
 	if((ix|hx|lx)==0) {			/* x == 0 */