@@ -1790,6 +1790,7 @@ static const struct test_f_f_data acosh_test_data[] =
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),
@@ -91,9 +91,10 @@ ENTRY(__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: fldl 4(%esp)
+ fsub %st
fdiv %st, %st(0)
ret
END(__ieee754_acosh)
@@ -91,9 +91,10 @@ ENTRY(__ieee754_acoshf)
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)