Print this page
*** 49,69 ****
/* if y is nan, replace it by x */
if (y != y)
y = x;
! /* if x is less than y or x and y are unordered, replace x by y */
! #if defined(COMPARISON_MACRO_BUG)
! if (x != x || x < y)
! #else
! if (!isgreaterequal(x, y))
! #endif
x = y;
/*
! * now x and y are either both NaN or both numeric; clear the
! * sign of the result if either x or y has its sign clear
*/
xx.ld = x;
yy.ld = y;
#if defined(__sparc)
s = ~(xx.i[0] & yy.i[0]) & 0x80000000;
--- 49,68 ----
/* if y is nan, replace it by x */
if (y != y)
y = x;
! /* if x is nan, replace it by y */
! if (x != x)
! x = y;
!
! /* At this point, x and y are either both numeric, or both NaN */
! if (!isnan(x) && !isgreaterequal(x, y))
x = y;
/*
! * clear the sign of the result if either x or y has its sign clear
*/
xx.ld = x;
yy.ld = y;
#if defined(__sparc)
s = ~(xx.i[0] & yy.i[0]) & 0x80000000;