Fix asinh missing underflows (bug 16350).

Similar to various other bugs in this area, some asinh implementations
do not raise the underflow exception for subnormal arguments, when the
result is tiny and inexact.  This patch forces the exception in a
similar way to previous fixes.

Tested for x86_64, x86 and mips64.

	[BZ #16350]
	* sysdeps/i386/fpu/s_asinh.S (__asinh): Force underflow exception
	for arguments with small absolute value.
	* sysdeps/i386/fpu/s_asinhf.S (__asinhf): Likewise.
	* sysdeps/i386/fpu/s_asinhl.S (__asinhl): Likewise.
	* sysdeps/ieee754/dbl-64/s_asinh.c: Include <float.h>.
	(__asinh): Force underflow exception for arguments with small
	absolute value.
	* sysdeps/ieee754/flt-32/s_asinhf.c: Include <float.h>.
	(__asinhf): Force underflow exception for arguments with small
	absolute value.
	* sysdeps/ieee754/ldbl-128/s_asinhl.c: Include <float.h>.
	(__asinhl): Force underflow exception for arguments with small
	absolute value.
	* sysdeps/ieee754/ldbl-128ibm/s_asinhl.c: Include <float.h>.
	(__asinhl): Force underflow exception for arguments with small
	absolute value.
	* sysdeps/ieee754/ldbl-96/s_asinhl.c: Include <float.h>.
	(__asinhl): Force underflow exception for arguments with small
	absolute value.
	* math/auto-libm-test-in: Do not mark underflow exceptions as
	possibly missing for bug 16350.
	* math/auto-libm-test-out: Regenerated.
This commit is contained in:
Joseph Myers 2015-06-18 23:27:41 +00:00
parent a7a3c24632
commit 8db3cdefef
12 changed files with 218 additions and 142 deletions

View File

@ -1,5 +1,29 @@
2015-06-18 Joseph Myers <joseph@codesourcery.com>
[BZ #16350]
* sysdeps/i386/fpu/s_asinh.S (__asinh): Force underflow exception
for arguments with small absolute value.
* sysdeps/i386/fpu/s_asinhf.S (__asinhf): Likewise.
* sysdeps/i386/fpu/s_asinhl.S (__asinhl): Likewise.
* sysdeps/ieee754/dbl-64/s_asinh.c: Include <float.h>.
(__asinh): Force underflow exception for arguments with small
absolute value.
* sysdeps/ieee754/flt-32/s_asinhf.c: Include <float.h>.
(__asinhf): Force underflow exception for arguments with small
absolute value.
* sysdeps/ieee754/ldbl-128/s_asinhl.c: Include <float.h>.
(__asinhl): Force underflow exception for arguments with small
absolute value.
* sysdeps/ieee754/ldbl-128ibm/s_asinhl.c: Include <float.h>.
(__asinhl): Force underflow exception for arguments with small
absolute value.
* sysdeps/ieee754/ldbl-96/s_asinhl.c: Include <float.h>.
(__asinhl): Force underflow exception for arguments with small
absolute value.
* math/auto-libm-test-in: Do not mark underflow exceptions as
possibly missing for bug 16350.
* math/auto-libm-test-out: Regenerated.
* include/bits/ipc.h: Remove file.
* conform/Makefile (test-xfail-XPG3/sys/msg.h/conform): Remove
variable.

28
NEWS
View File

@ -10,20 +10,20 @@ Version 2.22
* The following bugs are resolved with this release:
438, 4719, 6792, 13028, 13064, 14094, 14841, 14906, 14958, 15319, 15467,
15790, 15969, 16159, 16339, 16351, 16352, 16512, 16560, 16704, 16783,
16850, 17053, 17090, 17195, 17269, 17293, 17322, 17523, 17542, 17569,
17581, 17588, 17596, 17620, 17621, 17628, 17631, 17692, 17711, 17715,
17776, 17779, 17792, 17836, 17912, 17916, 17930, 17932, 17944, 17949,
17964, 17965, 17967, 17969, 17978, 17987, 17991, 17996, 17998, 17999,
18007, 18019, 18020, 18029, 18030, 18032, 18034, 18036, 18038, 18039,
18042, 18043, 18046, 18047, 18049, 18068, 18080, 18093, 18100, 18104,
18110, 18111, 18116, 18125, 18128, 18138, 18185, 18196, 18197, 18206,
18210, 18211, 18217, 18220, 18221, 18234, 18244, 18247, 18287, 18319,
18324, 18333, 18346, 18397, 18409, 18410, 18412, 18418, 18422, 18434,
18444, 18468, 18469, 18470, 18479, 18483, 18495, 18496, 18497, 18498,
18507, 18512, 18519, 18520, 18522, 18527, 18528, 18529, 18530, 18532,
18533, 18534, 18536, 18539, 18540, 18542, 18544, 18545, 18546, 18547,
18553, 18558.
15790, 15969, 16159, 16339, 16350, 16351, 16352, 16512, 16560, 16704,
16783, 16850, 17053, 17090, 17195, 17269, 17293, 17322, 17523, 17542,
17569, 17581, 17588, 17596, 17620, 17621, 17628, 17631, 17692, 17711,
17715, 17776, 17779, 17792, 17836, 17912, 17916, 17930, 17932, 17944,
17949, 17964, 17965, 17967, 17969, 17978, 17987, 17991, 17996, 17998,
17999, 18007, 18019, 18020, 18029, 18030, 18032, 18034, 18036, 18038,
18039, 18042, 18043, 18046, 18047, 18049, 18068, 18080, 18093, 18100,
18104, 18110, 18111, 18116, 18125, 18128, 18138, 18185, 18196, 18197,
18206, 18210, 18211, 18217, 18220, 18221, 18234, 18244, 18247, 18287,
18319, 18324, 18333, 18346, 18397, 18409, 18410, 18412, 18418, 18422,
18434, 18444, 18468, 18469, 18470, 18479, 18483, 18495, 18496, 18497,
18498, 18507, 18512, 18519, 18520, 18522, 18527, 18528, 18529, 18530,
18532, 18533, 18534, 18536, 18539, 18540, 18542, 18544, 18545, 18546,
18547, 18553, 18558.
* Cache information can be queried via sysconf() function on s390 e.g. with
_SC_LEVEL1_ICACHE_SIZE as argument.

View File

@ -218,13 +218,12 @@ asinh 0x7.d8e5a8p-4
asinh -0x7.63a06320c42e4p-4
asinh 0x6.f4a93p-4
asinh -0x7.88bcc8p-4
# Bug 16350: underflow exception may be missing.
asinh 0x1p-500 missing-underflow
asinh 0x1p-5000 missing-underflow
asinh min missing-underflow
asinh -min missing-underflow
asinh min_subnorm missing-underflow
asinh -min_subnorm missing-underflow
asinh 0x1p-500
asinh 0x1p-5000
asinh min
asinh -min
asinh min_subnorm
asinh -min_subnorm
asinh max no-test-inline
asinh -max no-test-inline

View File

@ -6829,11 +6829,11 @@ asinh -0x7.88bcc8p-4
= asinh tonearest ldbl-128ibm -0x7.88bcc8p-4L : -0x7.47c17bbd7ba607458f4e549f14p-4L : inexact-ok
= asinh towardzero ldbl-128ibm -0x7.88bcc8p-4L : -0x7.47c17bbd7ba607458f4e549f12p-4L : inexact-ok
= asinh upward ldbl-128ibm -0x7.88bcc8p-4L : -0x7.47c17bbd7ba607458f4e549f12p-4L : inexact-ok
asinh 0x1p-500 missing-underflow
= asinh downward flt-32 0x8p-152f : 0x0p+0f : inexact-ok underflow underflow-ok errno-erange-ok
= asinh tonearest flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow underflow-ok errno-erange-ok
= asinh towardzero flt-32 0x8p-152f : 0x0p+0f : inexact-ok underflow underflow-ok errno-erange-ok
= asinh upward flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow underflow-ok errno-erange-ok
asinh 0x1p-500
= asinh downward flt-32 0x8p-152f : 0x0p+0f : inexact-ok underflow errno-erange-ok
= asinh tonearest flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow errno-erange-ok
= asinh towardzero flt-32 0x8p-152f : 0x0p+0f : inexact-ok underflow errno-erange-ok
= asinh upward flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow errno-erange-ok
= asinh downward dbl-64 0x8p-152 : 0x7.ffffffffffffcp-152 : inexact-ok
= asinh tonearest dbl-64 0x8p-152 : 0x8p-152 : inexact-ok
= asinh towardzero dbl-64 0x8p-152 : 0x7.ffffffffffffcp-152 : inexact-ok
@ -6898,11 +6898,11 @@ asinh 0x1p-500 missing-underflow
= asinh tonearest ldbl-128ibm 0x1p-500L : 0x1p-500L : inexact-ok
= asinh towardzero ldbl-128ibm 0x1p-500L : 0xf.fffffffffffffffffffffffffcp-504L : inexact-ok
= asinh upward ldbl-128ibm 0x1p-500L : 0x1p-500L : inexact-ok
asinh 0x1p-5000 missing-underflow
= asinh downward flt-32 0x8p-152f : 0x0p+0f : inexact-ok underflow underflow-ok errno-erange-ok
= asinh tonearest flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow underflow-ok errno-erange-ok
= asinh towardzero flt-32 0x8p-152f : 0x0p+0f : inexact-ok underflow underflow-ok errno-erange-ok
= asinh upward flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow underflow-ok errno-erange-ok
asinh 0x1p-5000
= asinh downward flt-32 0x8p-152f : 0x0p+0f : inexact-ok underflow errno-erange-ok
= asinh tonearest flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow errno-erange-ok
= asinh towardzero flt-32 0x8p-152f : 0x0p+0f : inexact-ok underflow errno-erange-ok
= asinh upward flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow errno-erange-ok
= asinh downward dbl-64 0x8p-152 : 0x7.ffffffffffffcp-152 : inexact-ok
= asinh tonearest dbl-64 0x8p-152 : 0x8p-152 : inexact-ok
= asinh towardzero dbl-64 0x8p-152 : 0x7.ffffffffffffcp-152 : inexact-ok
@ -6947,10 +6947,10 @@ asinh 0x1p-5000 missing-underflow
= asinh tonearest ldbl-128ibm 0x0p+0L : 0x0p+0L : inexact-ok
= asinh towardzero ldbl-128ibm 0x0p+0L : 0x0p+0L : inexact-ok
= asinh upward ldbl-128ibm 0x0p+0L : 0x0p+0L : inexact-ok
= asinh downward dbl-64 0x4p-1076 : 0x0p+0 : inexact-ok underflow underflow-ok errno-erange-ok
= asinh tonearest dbl-64 0x4p-1076 : 0x4p-1076 : inexact-ok underflow underflow-ok errno-erange-ok
= asinh towardzero dbl-64 0x4p-1076 : 0x0p+0 : inexact-ok underflow underflow-ok errno-erange-ok
= asinh upward dbl-64 0x4p-1076 : 0x4p-1076 : inexact-ok underflow underflow-ok errno-erange-ok
= asinh downward dbl-64 0x4p-1076 : 0x0p+0 : inexact-ok underflow errno-erange-ok
= asinh tonearest dbl-64 0x4p-1076 : 0x4p-1076 : inexact-ok underflow errno-erange-ok
= asinh towardzero dbl-64 0x4p-1076 : 0x0p+0 : inexact-ok underflow errno-erange-ok
= asinh upward dbl-64 0x4p-1076 : 0x4p-1076 : inexact-ok underflow errno-erange-ok
= asinh downward ldbl-96-intel 0x4p-1076L : 0x3.fffffffffffffffcp-1076L : inexact-ok
= asinh tonearest ldbl-96-intel 0x4p-1076L : 0x4p-1076L : inexact-ok
= asinh towardzero ldbl-96-intel 0x4p-1076L : 0x3.fffffffffffffffcp-1076L : inexact-ok
@ -6963,10 +6963,10 @@ asinh 0x1p-5000 missing-underflow
= asinh tonearest ldbl-128 0x4p-1076L : 0x4p-1076L : inexact-ok
= asinh towardzero ldbl-128 0x4p-1076L : 0x3.fffffffffffffffffffffffffffep-1076L : inexact-ok
= asinh upward ldbl-128 0x4p-1076L : 0x4p-1076L : inexact-ok
= asinh downward ldbl-128ibm 0x4p-1076L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh tonearest ldbl-128ibm 0x4p-1076L : 0x4p-1076L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh towardzero ldbl-128ibm 0x4p-1076L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh upward ldbl-128ibm 0x4p-1076L : 0x4p-1076L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh downward ldbl-128ibm 0x4p-1076L : 0x0p+0L : inexact-ok underflow errno-erange-ok
= asinh tonearest ldbl-128ibm 0x4p-1076L : 0x4p-1076L : inexact-ok underflow errno-erange-ok
= asinh towardzero ldbl-128ibm 0x4p-1076L : 0x0p+0L : inexact-ok underflow errno-erange-ok
= asinh upward ldbl-128ibm 0x4p-1076L : 0x4p-1076L : inexact-ok underflow errno-erange-ok
= asinh downward ldbl-96-intel 0x1p-5000L : 0xf.fffffffffffffffp-5004L : inexact-ok
= asinh tonearest ldbl-96-intel 0x1p-5000L : 0x1p-5000L : inexact-ok
= asinh towardzero ldbl-96-intel 0x1p-5000L : 0xf.fffffffffffffffp-5004L : inexact-ok
@ -6979,7 +6979,7 @@ asinh 0x1p-5000 missing-underflow
= asinh tonearest ldbl-128 0x1p-5000L : 0x1p-5000L : inexact-ok
= asinh towardzero ldbl-128 0x1p-5000L : 0xf.fffffffffffffffffffffffffff8p-5004L : inexact-ok
= asinh upward ldbl-128 0x1p-5000L : 0x1p-5000L : inexact-ok
asinh min missing-underflow
asinh min
= asinh downward flt-32 0x4p-128f : 0x3.fffff8p-128f : inexact-ok underflow-ok errno-erange-ok
= asinh tonearest flt-32 0x4p-128f : 0x4p-128f : inexact-ok underflow-ok errno-erange-ok
= asinh towardzero flt-32 0x4p-128f : 0x3.fffff8p-128f : inexact-ok underflow-ok errno-erange-ok
@ -7020,10 +7020,10 @@ asinh min missing-underflow
= asinh tonearest ldbl-128 0x4p-1024L : 0x4p-1024L : inexact-ok
= asinh towardzero ldbl-128 0x4p-1024L : 0x3.fffffffffffffffffffffffffffep-1024L : inexact-ok
= asinh upward ldbl-128 0x4p-1024L : 0x4p-1024L : inexact-ok
= asinh downward ldbl-128ibm 0x4p-1024L : 0x3.ffffffffffffcp-1024L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh tonearest ldbl-128ibm 0x4p-1024L : 0x4p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh towardzero ldbl-128ibm 0x4p-1024L : 0x3.ffffffffffffcp-1024L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh upward ldbl-128ibm 0x4p-1024L : 0x4p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh downward ldbl-128ibm 0x4p-1024L : 0x3.ffffffffffffcp-1024L : inexact-ok underflow errno-erange-ok
= asinh tonearest ldbl-128ibm 0x4p-1024L : 0x4p-1024L : inexact-ok underflow errno-erange-ok
= asinh towardzero ldbl-128ibm 0x4p-1024L : 0x3.ffffffffffffcp-1024L : inexact-ok underflow errno-erange-ok
= asinh upward ldbl-128ibm 0x4p-1024L : 0x4p-1024L : inexact-ok underflow errno-erange-ok
= asinh downward ldbl-96-intel 0x4p-16384L : 0x3.fffffffffffffff8p-16384L : inexact-ok underflow-ok errno-erange-ok
= asinh tonearest ldbl-96-intel 0x4p-16384L : 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
= asinh towardzero ldbl-96-intel 0x4p-16384L : 0x3.fffffffffffffff8p-16384L : inexact-ok underflow-ok errno-erange-ok
@ -7036,18 +7036,18 @@ asinh min missing-underflow
= asinh tonearest ldbl-128 0x4p-16384L : 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
= asinh towardzero ldbl-128 0x4p-16384L : 0x3.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok
= asinh upward ldbl-128 0x4p-16384L : 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
= asinh downward ldbl-96-intel 0x2p-16384L : 0x1.fffffffffffffff8p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh tonearest ldbl-96-intel 0x2p-16384L : 0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh towardzero ldbl-96-intel 0x2p-16384L : 0x1.fffffffffffffff8p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh upward ldbl-96-intel 0x2p-16384L : 0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh downward ldbl-96-intel 0x2p-16384L : 0x1.fffffffffffffff8p-16384L : inexact-ok underflow errno-erange-ok
= asinh tonearest ldbl-96-intel 0x2p-16384L : 0x2p-16384L : inexact-ok underflow errno-erange-ok
= asinh towardzero ldbl-96-intel 0x2p-16384L : 0x1.fffffffffffffff8p-16384L : inexact-ok underflow errno-erange-ok
= asinh upward ldbl-96-intel 0x2p-16384L : 0x2p-16384L : inexact-ok underflow errno-erange-ok
= asinh downward ldbl-96-m68k 0x2p-16384L : 0x1.fffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok
= asinh tonearest ldbl-96-m68k 0x2p-16384L : 0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
= asinh towardzero ldbl-96-m68k 0x2p-16384L : 0x1.fffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok
= asinh upward ldbl-96-m68k 0x2p-16384L : 0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
= asinh downward ldbl-128 0x2p-16384L : 0x1.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh tonearest ldbl-128 0x2p-16384L : 0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh towardzero ldbl-128 0x2p-16384L : 0x1.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh upward ldbl-128 0x2p-16384L : 0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh downward ldbl-128 0x2p-16384L : 0x1.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow errno-erange-ok
= asinh tonearest ldbl-128 0x2p-16384L : 0x2p-16384L : inexact-ok underflow errno-erange-ok
= asinh towardzero ldbl-128 0x2p-16384L : 0x1.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow errno-erange-ok
= asinh upward ldbl-128 0x2p-16384L : 0x2p-16384L : inexact-ok underflow errno-erange-ok
= asinh downward dbl-64 0x8p-972 : 0x7.ffffffffffffcp-972 : inexact-ok
= asinh tonearest dbl-64 0x8p-972 : 0x8p-972 : inexact-ok
= asinh towardzero dbl-64 0x8p-972 : 0x7.ffffffffffffcp-972 : inexact-ok
@ -7068,7 +7068,7 @@ asinh min missing-underflow
= asinh tonearest ldbl-128ibm 0x8p-972L : 0x8p-972L : inexact-ok underflow-ok errno-erange-ok
= asinh towardzero ldbl-128ibm 0x8p-972L : 0x7.fffffffffffffffffffffffffcp-972L : inexact-ok underflow-ok errno-erange-ok
= asinh upward ldbl-128ibm 0x8p-972L : 0x8p-972L : inexact-ok underflow-ok errno-erange-ok
asinh -min missing-underflow
asinh -min
= asinh downward flt-32 -0x4p-128f : -0x4p-128f : inexact-ok underflow-ok errno-erange-ok
= asinh tonearest flt-32 -0x4p-128f : -0x4p-128f : inexact-ok underflow-ok errno-erange-ok
= asinh towardzero flt-32 -0x4p-128f : -0x3.fffff8p-128f : inexact-ok underflow-ok errno-erange-ok
@ -7109,10 +7109,10 @@ asinh -min missing-underflow
= asinh tonearest ldbl-128 -0x4p-1024L : -0x4p-1024L : inexact-ok
= asinh towardzero ldbl-128 -0x4p-1024L : -0x3.fffffffffffffffffffffffffffep-1024L : inexact-ok
= asinh upward ldbl-128 -0x4p-1024L : -0x3.fffffffffffffffffffffffffffep-1024L : inexact-ok
= asinh downward ldbl-128ibm -0x4p-1024L : -0x4p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh tonearest ldbl-128ibm -0x4p-1024L : -0x4p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh towardzero ldbl-128ibm -0x4p-1024L : -0x3.ffffffffffffcp-1024L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh upward ldbl-128ibm -0x4p-1024L : -0x3.ffffffffffffcp-1024L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh downward ldbl-128ibm -0x4p-1024L : -0x4p-1024L : inexact-ok underflow errno-erange-ok
= asinh tonearest ldbl-128ibm -0x4p-1024L : -0x4p-1024L : inexact-ok underflow errno-erange-ok
= asinh towardzero ldbl-128ibm -0x4p-1024L : -0x3.ffffffffffffcp-1024L : inexact-ok underflow errno-erange-ok
= asinh upward ldbl-128ibm -0x4p-1024L : -0x3.ffffffffffffcp-1024L : inexact-ok underflow errno-erange-ok
= asinh downward ldbl-96-intel -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
= asinh tonearest ldbl-96-intel -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
= asinh towardzero ldbl-96-intel -0x4p-16384L : -0x3.fffffffffffffff8p-16384L : inexact-ok underflow-ok errno-erange-ok
@ -7125,18 +7125,18 @@ asinh -min missing-underflow
= asinh tonearest ldbl-128 -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
= asinh towardzero ldbl-128 -0x4p-16384L : -0x3.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok
= asinh upward ldbl-128 -0x4p-16384L : -0x3.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok
= asinh downward ldbl-96-intel -0x2p-16384L : -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh tonearest ldbl-96-intel -0x2p-16384L : -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh towardzero ldbl-96-intel -0x2p-16384L : -0x1.fffffffffffffff8p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh upward ldbl-96-intel -0x2p-16384L : -0x1.fffffffffffffff8p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh downward ldbl-96-intel -0x2p-16384L : -0x2p-16384L : inexact-ok underflow errno-erange-ok
= asinh tonearest ldbl-96-intel -0x2p-16384L : -0x2p-16384L : inexact-ok underflow errno-erange-ok
= asinh towardzero ldbl-96-intel -0x2p-16384L : -0x1.fffffffffffffff8p-16384L : inexact-ok underflow errno-erange-ok
= asinh upward ldbl-96-intel -0x2p-16384L : -0x1.fffffffffffffff8p-16384L : inexact-ok underflow errno-erange-ok
= asinh downward ldbl-96-m68k -0x2p-16384L : -0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
= asinh tonearest ldbl-96-m68k -0x2p-16384L : -0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
= asinh towardzero ldbl-96-m68k -0x2p-16384L : -0x1.fffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok
= asinh upward ldbl-96-m68k -0x2p-16384L : -0x1.fffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok
= asinh downward ldbl-128 -0x2p-16384L : -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh tonearest ldbl-128 -0x2p-16384L : -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh towardzero ldbl-128 -0x2p-16384L : -0x1.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh upward ldbl-128 -0x2p-16384L : -0x1.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh downward ldbl-128 -0x2p-16384L : -0x2p-16384L : inexact-ok underflow errno-erange-ok
= asinh tonearest ldbl-128 -0x2p-16384L : -0x2p-16384L : inexact-ok underflow errno-erange-ok
= asinh towardzero ldbl-128 -0x2p-16384L : -0x1.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow errno-erange-ok
= asinh upward ldbl-128 -0x2p-16384L : -0x1.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow errno-erange-ok
= asinh downward dbl-64 -0x8p-972 : -0x8p-972 : inexact-ok
= asinh tonearest dbl-64 -0x8p-972 : -0x8p-972 : inexact-ok
= asinh towardzero dbl-64 -0x8p-972 : -0x7.ffffffffffffcp-972 : inexact-ok
@ -7157,11 +7157,11 @@ asinh -min missing-underflow
= asinh tonearest ldbl-128ibm -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok errno-erange-ok
= asinh towardzero ldbl-128ibm -0x8p-972L : -0x7.fffffffffffffffffffffffffcp-972L : inexact-ok underflow-ok errno-erange-ok
= asinh upward ldbl-128ibm -0x8p-972L : -0x7.fffffffffffffffffffffffffcp-972L : inexact-ok underflow-ok errno-erange-ok
asinh min_subnorm missing-underflow
= asinh downward flt-32 0x8p-152f : 0x0p+0f : inexact-ok underflow underflow-ok errno-erange-ok
= asinh tonearest flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow underflow-ok errno-erange-ok
= asinh towardzero flt-32 0x8p-152f : 0x0p+0f : inexact-ok underflow underflow-ok errno-erange-ok
= asinh upward flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow underflow-ok errno-erange-ok
asinh min_subnorm
= asinh downward flt-32 0x8p-152f : 0x0p+0f : inexact-ok underflow errno-erange-ok
= asinh tonearest flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow errno-erange-ok
= asinh towardzero flt-32 0x8p-152f : 0x0p+0f : inexact-ok underflow errno-erange-ok
= asinh upward flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow errno-erange-ok
= asinh downward dbl-64 0x8p-152 : 0x7.ffffffffffffcp-152 : inexact-ok
= asinh tonearest dbl-64 0x8p-152 : 0x8p-152 : inexact-ok
= asinh towardzero dbl-64 0x8p-152 : 0x7.ffffffffffffcp-152 : inexact-ok
@ -7182,10 +7182,10 @@ asinh min_subnorm missing-underflow
= asinh tonearest ldbl-128ibm 0x8p-152L : 0x8p-152L : inexact-ok
= asinh towardzero ldbl-128ibm 0x8p-152L : 0x7.fffffffffffffffffffffffffep-152L : inexact-ok
= asinh upward ldbl-128ibm 0x8p-152L : 0x8p-152L : inexact-ok
= asinh downward dbl-64 0x4p-1076 : 0x0p+0 : inexact-ok underflow underflow-ok errno-erange-ok
= asinh tonearest dbl-64 0x4p-1076 : 0x4p-1076 : inexact-ok underflow underflow-ok errno-erange-ok
= asinh towardzero dbl-64 0x4p-1076 : 0x0p+0 : inexact-ok underflow underflow-ok errno-erange-ok
= asinh upward dbl-64 0x4p-1076 : 0x4p-1076 : inexact-ok underflow underflow-ok errno-erange-ok
= asinh downward dbl-64 0x4p-1076 : 0x0p+0 : inexact-ok underflow errno-erange-ok
= asinh tonearest dbl-64 0x4p-1076 : 0x4p-1076 : inexact-ok underflow errno-erange-ok
= asinh towardzero dbl-64 0x4p-1076 : 0x0p+0 : inexact-ok underflow errno-erange-ok
= asinh upward dbl-64 0x4p-1076 : 0x4p-1076 : inexact-ok underflow errno-erange-ok
= asinh downward ldbl-96-intel 0x4p-1076L : 0x3.fffffffffffffffcp-1076L : inexact-ok
= asinh tonearest ldbl-96-intel 0x4p-1076L : 0x4p-1076L : inexact-ok
= asinh towardzero ldbl-96-intel 0x4p-1076L : 0x3.fffffffffffffffcp-1076L : inexact-ok
@ -7198,39 +7198,39 @@ asinh min_subnorm missing-underflow
= asinh tonearest ldbl-128 0x4p-1076L : 0x4p-1076L : inexact-ok
= asinh towardzero ldbl-128 0x4p-1076L : 0x3.fffffffffffffffffffffffffffep-1076L : inexact-ok
= asinh upward ldbl-128 0x4p-1076L : 0x4p-1076L : inexact-ok
= asinh downward ldbl-128ibm 0x4p-1076L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh tonearest ldbl-128ibm 0x4p-1076L : 0x4p-1076L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh towardzero ldbl-128ibm 0x4p-1076L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh upward ldbl-128ibm 0x4p-1076L : 0x4p-1076L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh downward ldbl-96-intel 0x8p-16448L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh tonearest ldbl-96-intel 0x8p-16448L : 0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh towardzero ldbl-96-intel 0x8p-16448L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh upward ldbl-96-intel 0x8p-16448L : 0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh downward ldbl-96-m68k 0x8p-16448L : 0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh tonearest ldbl-96-m68k 0x8p-16448L : 0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh towardzero ldbl-96-m68k 0x8p-16448L : 0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh upward ldbl-96-m68k 0x8p-16448L : 0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh downward ldbl-128 0x8p-16448L : 0x7.fffffffffffcp-16448L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh tonearest ldbl-128 0x8p-16448L : 0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh towardzero ldbl-128 0x8p-16448L : 0x7.fffffffffffcp-16448L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh upward ldbl-128 0x8p-16448L : 0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh downward ldbl-96-m68k 0x4p-16448L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh tonearest ldbl-96-m68k 0x4p-16448L : 0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh towardzero ldbl-96-m68k 0x4p-16448L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh upward ldbl-96-m68k 0x4p-16448L : 0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh downward ldbl-128 0x4p-16448L : 0x3.fffffffffffcp-16448L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh tonearest ldbl-128 0x4p-16448L : 0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh towardzero ldbl-128 0x4p-16448L : 0x3.fffffffffffcp-16448L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh upward ldbl-128 0x4p-16448L : 0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh downward ldbl-128 0x4p-16496L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh tonearest ldbl-128 0x4p-16496L : 0x4p-16496L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh towardzero ldbl-128 0x4p-16496L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh upward ldbl-128 0x4p-16496L : 0x4p-16496L : inexact-ok underflow underflow-ok errno-erange-ok
asinh -min_subnorm missing-underflow
= asinh downward flt-32 -0x8p-152f : -0x8p-152f : inexact-ok underflow underflow-ok errno-erange-ok
= asinh tonearest flt-32 -0x8p-152f : -0x8p-152f : inexact-ok underflow underflow-ok errno-erange-ok
= asinh towardzero flt-32 -0x8p-152f : -0x0p+0f : inexact-ok underflow underflow-ok errno-erange-ok
= asinh upward flt-32 -0x8p-152f : -0x0p+0f : inexact-ok underflow underflow-ok errno-erange-ok
= asinh downward ldbl-128ibm 0x4p-1076L : 0x0p+0L : inexact-ok underflow errno-erange-ok
= asinh tonearest ldbl-128ibm 0x4p-1076L : 0x4p-1076L : inexact-ok underflow errno-erange-ok
= asinh towardzero ldbl-128ibm 0x4p-1076L : 0x0p+0L : inexact-ok underflow errno-erange-ok
= asinh upward ldbl-128ibm 0x4p-1076L : 0x4p-1076L : inexact-ok underflow errno-erange-ok
= asinh downward ldbl-96-intel 0x8p-16448L : 0x0p+0L : inexact-ok underflow errno-erange-ok
= asinh tonearest ldbl-96-intel 0x8p-16448L : 0x8p-16448L : inexact-ok underflow errno-erange-ok
= asinh towardzero ldbl-96-intel 0x8p-16448L : 0x0p+0L : inexact-ok underflow errno-erange-ok
= asinh upward ldbl-96-intel 0x8p-16448L : 0x8p-16448L : inexact-ok underflow errno-erange-ok
= asinh downward ldbl-96-m68k 0x8p-16448L : 0x4p-16448L : inexact-ok underflow errno-erange-ok
= asinh tonearest ldbl-96-m68k 0x8p-16448L : 0x8p-16448L : inexact-ok underflow errno-erange-ok
= asinh towardzero ldbl-96-m68k 0x8p-16448L : 0x4p-16448L : inexact-ok underflow errno-erange-ok
= asinh upward ldbl-96-m68k 0x8p-16448L : 0x8p-16448L : inexact-ok underflow errno-erange-ok
= asinh downward ldbl-128 0x8p-16448L : 0x7.fffffffffffcp-16448L : inexact-ok underflow errno-erange-ok
= asinh tonearest ldbl-128 0x8p-16448L : 0x8p-16448L : inexact-ok underflow errno-erange-ok
= asinh towardzero ldbl-128 0x8p-16448L : 0x7.fffffffffffcp-16448L : inexact-ok underflow errno-erange-ok
= asinh upward ldbl-128 0x8p-16448L : 0x8p-16448L : inexact-ok underflow errno-erange-ok
= asinh downward ldbl-96-m68k 0x4p-16448L : 0x0p+0L : inexact-ok underflow errno-erange-ok
= asinh tonearest ldbl-96-m68k 0x4p-16448L : 0x4p-16448L : inexact-ok underflow errno-erange-ok
= asinh towardzero ldbl-96-m68k 0x4p-16448L : 0x0p+0L : inexact-ok underflow errno-erange-ok
= asinh upward ldbl-96-m68k 0x4p-16448L : 0x4p-16448L : inexact-ok underflow errno-erange-ok
= asinh downward ldbl-128 0x4p-16448L : 0x3.fffffffffffcp-16448L : inexact-ok underflow errno-erange-ok
= asinh tonearest ldbl-128 0x4p-16448L : 0x4p-16448L : inexact-ok underflow errno-erange-ok
= asinh towardzero ldbl-128 0x4p-16448L : 0x3.fffffffffffcp-16448L : inexact-ok underflow errno-erange-ok
= asinh upward ldbl-128 0x4p-16448L : 0x4p-16448L : inexact-ok underflow errno-erange-ok
= asinh downward ldbl-128 0x4p-16496L : 0x0p+0L : inexact-ok underflow errno-erange-ok
= asinh tonearest ldbl-128 0x4p-16496L : 0x4p-16496L : inexact-ok underflow errno-erange-ok
= asinh towardzero ldbl-128 0x4p-16496L : 0x0p+0L : inexact-ok underflow errno-erange-ok
= asinh upward ldbl-128 0x4p-16496L : 0x4p-16496L : inexact-ok underflow errno-erange-ok
asinh -min_subnorm
= asinh downward flt-32 -0x8p-152f : -0x8p-152f : inexact-ok underflow errno-erange-ok
= asinh tonearest flt-32 -0x8p-152f : -0x8p-152f : inexact-ok underflow errno-erange-ok
= asinh towardzero flt-32 -0x8p-152f : -0x0p+0f : inexact-ok underflow errno-erange-ok
= asinh upward flt-32 -0x8p-152f : -0x0p+0f : inexact-ok underflow errno-erange-ok
= asinh downward dbl-64 -0x8p-152 : -0x8p-152 : inexact-ok
= asinh tonearest dbl-64 -0x8p-152 : -0x8p-152 : inexact-ok
= asinh towardzero dbl-64 -0x8p-152 : -0x7.ffffffffffffcp-152 : inexact-ok
@ -7251,10 +7251,10 @@ asinh -min_subnorm missing-underflow
= asinh tonearest ldbl-128ibm -0x8p-152L : -0x8p-152L : inexact-ok
= asinh towardzero ldbl-128ibm -0x8p-152L : -0x7.fffffffffffffffffffffffffep-152L : inexact-ok
= asinh upward ldbl-128ibm -0x8p-152L : -0x7.fffffffffffffffffffffffffep-152L : inexact-ok
= asinh downward dbl-64 -0x4p-1076 : -0x4p-1076 : inexact-ok underflow underflow-ok errno-erange-ok
= asinh tonearest dbl-64 -0x4p-1076 : -0x4p-1076 : inexact-ok underflow underflow-ok errno-erange-ok
= asinh towardzero dbl-64 -0x4p-1076 : -0x0p+0 : inexact-ok underflow underflow-ok errno-erange-ok
= asinh upward dbl-64 -0x4p-1076 : -0x0p+0 : inexact-ok underflow underflow-ok errno-erange-ok
= asinh downward dbl-64 -0x4p-1076 : -0x4p-1076 : inexact-ok underflow errno-erange-ok
= asinh tonearest dbl-64 -0x4p-1076 : -0x4p-1076 : inexact-ok underflow errno-erange-ok
= asinh towardzero dbl-64 -0x4p-1076 : -0x0p+0 : inexact-ok underflow errno-erange-ok
= asinh upward dbl-64 -0x4p-1076 : -0x0p+0 : inexact-ok underflow errno-erange-ok
= asinh downward ldbl-96-intel -0x4p-1076L : -0x4p-1076L : inexact-ok
= asinh tonearest ldbl-96-intel -0x4p-1076L : -0x4p-1076L : inexact-ok
= asinh towardzero ldbl-96-intel -0x4p-1076L : -0x3.fffffffffffffffcp-1076L : inexact-ok
@ -7267,34 +7267,34 @@ asinh -min_subnorm missing-underflow
= asinh tonearest ldbl-128 -0x4p-1076L : -0x4p-1076L : inexact-ok
= asinh towardzero ldbl-128 -0x4p-1076L : -0x3.fffffffffffffffffffffffffffep-1076L : inexact-ok
= asinh upward ldbl-128 -0x4p-1076L : -0x3.fffffffffffffffffffffffffffep-1076L : inexact-ok
= asinh downward ldbl-128ibm -0x4p-1076L : -0x4p-1076L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh tonearest ldbl-128ibm -0x4p-1076L : -0x4p-1076L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh towardzero ldbl-128ibm -0x4p-1076L : -0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh upward ldbl-128ibm -0x4p-1076L : -0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh downward ldbl-96-intel -0x8p-16448L : -0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh tonearest ldbl-96-intel -0x8p-16448L : -0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh towardzero ldbl-96-intel -0x8p-16448L : -0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh upward ldbl-96-intel -0x8p-16448L : -0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh downward ldbl-96-m68k -0x8p-16448L : -0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh tonearest ldbl-96-m68k -0x8p-16448L : -0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh towardzero ldbl-96-m68k -0x8p-16448L : -0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh upward ldbl-96-m68k -0x8p-16448L : -0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh downward ldbl-128 -0x8p-16448L : -0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh tonearest ldbl-128 -0x8p-16448L : -0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh towardzero ldbl-128 -0x8p-16448L : -0x7.fffffffffffcp-16448L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh upward ldbl-128 -0x8p-16448L : -0x7.fffffffffffcp-16448L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh downward ldbl-96-m68k -0x4p-16448L : -0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh tonearest ldbl-96-m68k -0x4p-16448L : -0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh towardzero ldbl-96-m68k -0x4p-16448L : -0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh upward ldbl-96-m68k -0x4p-16448L : -0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh downward ldbl-128 -0x4p-16448L : -0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh tonearest ldbl-128 -0x4p-16448L : -0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh towardzero ldbl-128 -0x4p-16448L : -0x3.fffffffffffcp-16448L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh upward ldbl-128 -0x4p-16448L : -0x3.fffffffffffcp-16448L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh downward ldbl-128 -0x4p-16496L : -0x4p-16496L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh tonearest ldbl-128 -0x4p-16496L : -0x4p-16496L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh towardzero ldbl-128 -0x4p-16496L : -0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh upward ldbl-128 -0x4p-16496L : -0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
= asinh downward ldbl-128ibm -0x4p-1076L : -0x4p-1076L : inexact-ok underflow errno-erange-ok
= asinh tonearest ldbl-128ibm -0x4p-1076L : -0x4p-1076L : inexact-ok underflow errno-erange-ok
= asinh towardzero ldbl-128ibm -0x4p-1076L : -0x0p+0L : inexact-ok underflow errno-erange-ok
= asinh upward ldbl-128ibm -0x4p-1076L : -0x0p+0L : inexact-ok underflow errno-erange-ok
= asinh downward ldbl-96-intel -0x8p-16448L : -0x8p-16448L : inexact-ok underflow errno-erange-ok
= asinh tonearest ldbl-96-intel -0x8p-16448L : -0x8p-16448L : inexact-ok underflow errno-erange-ok
= asinh towardzero ldbl-96-intel -0x8p-16448L : -0x0p+0L : inexact-ok underflow errno-erange-ok
= asinh upward ldbl-96-intel -0x8p-16448L : -0x0p+0L : inexact-ok underflow errno-erange-ok
= asinh downward ldbl-96-m68k -0x8p-16448L : -0x8p-16448L : inexact-ok underflow errno-erange-ok
= asinh tonearest ldbl-96-m68k -0x8p-16448L : -0x8p-16448L : inexact-ok underflow errno-erange-ok
= asinh towardzero ldbl-96-m68k -0x8p-16448L : -0x4p-16448L : inexact-ok underflow errno-erange-ok
= asinh upward ldbl-96-m68k -0x8p-16448L : -0x4p-16448L : inexact-ok underflow errno-erange-ok
= asinh downward ldbl-128 -0x8p-16448L : -0x8p-16448L : inexact-ok underflow errno-erange-ok
= asinh tonearest ldbl-128 -0x8p-16448L : -0x8p-16448L : inexact-ok underflow errno-erange-ok
= asinh towardzero ldbl-128 -0x8p-16448L : -0x7.fffffffffffcp-16448L : inexact-ok underflow errno-erange-ok
= asinh upward ldbl-128 -0x8p-16448L : -0x7.fffffffffffcp-16448L : inexact-ok underflow errno-erange-ok
= asinh downward ldbl-96-m68k -0x4p-16448L : -0x4p-16448L : inexact-ok underflow errno-erange-ok
= asinh tonearest ldbl-96-m68k -0x4p-16448L : -0x4p-16448L : inexact-ok underflow errno-erange-ok
= asinh towardzero ldbl-96-m68k -0x4p-16448L : -0x0p+0L : inexact-ok underflow errno-erange-ok
= asinh upward ldbl-96-m68k -0x4p-16448L : -0x0p+0L : inexact-ok underflow errno-erange-ok
= asinh downward ldbl-128 -0x4p-16448L : -0x4p-16448L : inexact-ok underflow errno-erange-ok
= asinh tonearest ldbl-128 -0x4p-16448L : -0x4p-16448L : inexact-ok underflow errno-erange-ok
= asinh towardzero ldbl-128 -0x4p-16448L : -0x3.fffffffffffcp-16448L : inexact-ok underflow errno-erange-ok
= asinh upward ldbl-128 -0x4p-16448L : -0x3.fffffffffffcp-16448L : inexact-ok underflow errno-erange-ok
= asinh downward ldbl-128 -0x4p-16496L : -0x4p-16496L : inexact-ok underflow errno-erange-ok
= asinh tonearest ldbl-128 -0x4p-16496L : -0x4p-16496L : inexact-ok underflow errno-erange-ok
= asinh towardzero ldbl-128 -0x4p-16496L : -0x0p+0L : inexact-ok underflow errno-erange-ok
= asinh upward ldbl-128 -0x4p-16496L : -0x0p+0L : inexact-ok underflow errno-erange-ok
asinh max no-test-inline
= asinh downward flt-32 0xf.fffffp+124f : 0x5.96a7ep+4f : no-test-inline inexact-ok
= asinh tonearest flt-32 0xf.fffffp+124f : 0x5.96a7ep+4f : no-test-inline inexact-ok

View File

@ -100,7 +100,16 @@ ENTRY(__asinh)
4: fld %st // x : x
faddl MO(huge) // huge+x : x
fstp %st(0) // x
ret
cmpl $0x00100000, %eax
jae 8f
subl $8, %esp
cfi_adjust_cfa_offset (8)
fld %st(0)
fmul %st(0)
fstpl (%esp)
addl $8, %esp
cfi_adjust_cfa_offset (-8)
8: ret
// |x| > 2^28 => y = sign(x) * (log(|x|) + log(2))
.align ALIGNARG(4)

View File

@ -100,7 +100,16 @@ ENTRY(__asinhf)
4: fld %st // x : x
faddl MO(huge) // huge+x : x
fstp %st(0) // x
ret
cmpl $0x00800000, %eax
jae 8f
subl $4, %esp
cfi_adjust_cfa_offset (4)
fld %st(0)
fmul %st(0)
fstps (%esp)
addl $4, %esp
cfi_adjust_cfa_offset (-4)
8: ret
// |x| > 2^14 => y = sign(x) * (log(|x|) + log(2))
.align ALIGNARG(4)

View File

@ -108,7 +108,12 @@ ENTRY(__asinhl)
fldt MO(huge) // huge : x : x
faddp // huge+x : x
fstp %st(0) // x
ret
cmpl $0x0001, %eax
jae 8f
fld %st(0)
fmul %st(0)
fstp %st(0)
8: ret
// |x| > 2^34 => y = sign(x) * (log(|x|) + log(2))
.align ALIGNARG(4)

View File

@ -21,6 +21,7 @@
* := sign(x)*log1p(|x| + x^2/(1 + sqrt(1+x^2)))
*/
#include <float.h>
#include <math.h>
#include <math_private.h>
@ -38,6 +39,11 @@ __asinh (double x)
ix = hx & 0x7fffffff;
if (__glibc_unlikely (ix < 0x3e300000)) /* |x|<2**-28 */
{
if (fabs (x) < DBL_MIN)
{
double force_underflow = x * x;
math_force_eval (force_underflow);
}
if (huge + x > one)
return x; /* return x inexact except 0 */
}

View File

@ -13,6 +13,7 @@
* ====================================================
*/
#include <float.h>
#include <math.h>
#include <math_private.h>
@ -29,6 +30,11 @@ __asinhf(float x)
GET_FLOAT_WORD(hx,x);
ix = hx&0x7fffffff;
if(__builtin_expect(ix< 0x38000000, 0)) { /* |x|<2**-14 */
if (fabsf (x) < FLT_MIN)
{
float force_underflow = x * x;
math_force_eval (force_underflow);
}
if(huge+x>one) return x; /* return x inexact except 0 */
}
if(__builtin_expect(ix>0x47000000, 0)) { /* |x| > 2**14 */

View File

@ -29,6 +29,7 @@ static char rcsid[] = "$NetBSD: $";
* := signl(x)*log1pl(|x| + x^2/(1 + sqrtl(1+x^2)))
*/
#include <float.h>
#include <math.h>
#include <math_private.h>
@ -51,6 +52,11 @@ __asinhl (long double x)
return x + x; /* x is inf or NaN */
if (ix < 0x3fc70000)
{ /* |x| < 2^ -56 */
if (fabsl (x) < LDBL_MIN)
{
long double force_underflow = x * x;
math_force_eval (force_underflow);
}
if (huge + x > one)
return x; /* return x inexact except 0 */
}

View File

@ -25,6 +25,7 @@ static char rcsid[] = "$NetBSD: s_asinh.c,v 1.9 1995/05/12 04:57:37 jtc Exp $";
* := sign(x)*log1p(|x| + x^2/(1 + sqrt(1+x^2)))
*/
#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math_ldbl_opt.h>
@ -45,6 +46,11 @@ long double __asinhl(long double x)
ix = hx&0x7fffffffffffffffLL;
if(ix>=0x7ff0000000000000LL) return x+x; /* x is inf or NaN */
if(ix< 0x3c70000000000000LL) { /* |x|<2**-56 */
if (fabsl (x) < LDBL_MIN)
{
long double force_underflow = x * x;
math_force_eval (force_underflow);
}
if(huge+x>one) return x; /* return x inexact except 0 */
}
if(ix>0x4370000000000000LL) { /* |x| > 2**56 */

View File

@ -29,6 +29,7 @@ static char rcsid[] = "$NetBSD: $";
* := signl(x)*log1pl(|x| + x^2/(1 + sqrtl(1+x^2)))
*/
#include <float.h>
#include <math.h>
#include <math_private.h>
@ -44,6 +45,11 @@ long double __asinhl(long double x)
GET_LDOUBLE_EXP(hx,x);
ix = hx&0x7fff;
if(__builtin_expect(ix< 0x3fde, 0)) { /* |x|<2**-34 */
if (fabsl (x) < LDBL_MIN)
{
long double force_underflow = x * x;
math_force_eval (force_underflow);
}
if(huge+x>one) return x; /* return x inexact except 0 */
}
if(__builtin_expect(ix>0x4020,0)) { /* |x| > 2**34 */