2015-09-30 Joseph Myers <joseph@codesourcery.com>
+ [BZ #19032]
+ * sysdeps/i386/fpu/e_acosh.S (__ieee754_acosh): For arguments < 1,
+ compute result as (x - x) / (x - x) not as 0 / 0.
+ * sysdeps/i386/fpu/e_acoshf.S (__ieee754_acoshf): Likewise.
+ * math/libm-test.inc (acosh_test_data): Add another test of acosh.
+
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
atan, atan2, atanh, cbrt, cos, cosh, erf, erfc, exp, exp10, exp2
and expm1.
18789, 18790, 18795, 18796, 18803, 18820, 18823, 18824, 18825, 18857,
18863, 18870, 18872, 18873, 18875, 18887, 18921, 18951, 18952, 18956,
18961, 18966, 18967, 18969, 18970, 18977, 18980, 18981, 18985, 19003,
- 19016.
+ 19016, 19032.
* The obsolete header <regexp.h> has been removed. Programs that require
this header must be updated to use <regex.h> instead.
TEST_f_f (acosh, plus_infty, plus_infty, ERRNO_UNCHANGED),
TEST_f_f (acosh, minus_infty, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
TEST_f_f (acosh, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_f_f (acosh, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
/* x < 1: */
TEST_f_f (acosh, 0.75L, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
fyl2x // log(2*x+1/(x+sqrt(x^2-1)))
ret
- // x < 1 => NaN
+ // x < 1 (or -NaN) => NaN
.align ALIGNARG(4)
-5: fldz
+5: fldl 4(%esp)
+ fsub %st
fdiv %st, %st(0)
ret
END(__ieee754_acosh)
fyl2x // log(2*x+1/(x+sqrt(x^2-1)))
ret
- // x < 1 => NaN
+ // x < 1 (or -NaN) => NaN
.align ALIGNARG(4)
-5: fldz
+5: flds 4(%esp)
+ fsub %st
fdiv %st, %st(0)
ret
END(__ieee754_acoshf)