aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2014-06-25 11:33:22 +0000
committerJoseph Myers <joseph@codesourcery.com>2014-06-25 11:33:22 +0000
commita638de828d877376fb238efc8b0bc9220dd2601e (patch)
treedd366ccb27ca5aaeea9ba0e5406b50da9432b9f9
parent0f5b71850e7ae2a4fefade72c73556166d52bc93 (diff)
downloadglibc-a638de828d877376fb238efc8b0bc9220dd2601e.zip
glibc-a638de828d877376fb238efc8b0bc9220dd2601e.tar.gz
glibc-a638de828d877376fb238efc8b0bc9220dd2601e.tar.bz2
Fix exp10 spurious underflows (bug 16560).
This patch fixes spurious underflows from exp10 for arguments near 0 (part of bug 16560; that bug also includes spurious underflows from exp2, which are not fixed by this patch). The problem is underflows in the internal computation converting the exp10 argument to arguments for exp (with extra precision), and the fix is simply to return 1 early for arguments near enough to 0 (just as arguments with large enough magnitude have their own overflow / underflow logic at the start of the function). Tested x86_64 and x86 and ulps updated accordingly; also tested for powerpc32 and mips64 to validate the ldbl-128ibm and ldbl-128 changes. [BZ #16560] * sysdeps/ieee754/dbl-64/e_exp10.c (__ieee754_exp10): Return 1 for arguments close to 0. * sysdeps/ieee754/ldbl-128/e_exp10l.c (__ieee754_exp10l): Likewise. * sysdeps/ieee754/ldbl-128ibm/e_exp10l.c (__ieee754_exp10l): Likewise. * math/auto-libm-test-in: Add more tests of exp10. * math/auto-libm-test-out: Regenerated. * sysdeps/x86_64/fpu/libm-test-ulps: Update.
-rw-r--r--ChangeLog11
-rw-r--r--math/auto-libm-test-in18
-rw-r--r--math/auto-libm-test-out666
-rw-r--r--sysdeps/ieee754/dbl-64/e_exp10.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/e_exp10l.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/e_exp10l.c2
-rw-r--r--sysdeps/x86_64/fpu/libm-test-ulps8
7 files changed, 709 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 60a665d..00b91c7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,16 @@
2014-06-25 Joseph Myers <joseph@codesourcery.com>
+ [BZ #16560]
+ * sysdeps/ieee754/dbl-64/e_exp10.c (__ieee754_exp10): Return 1 for
+ arguments close to 0.
+ * sysdeps/ieee754/ldbl-128/e_exp10l.c (__ieee754_exp10l):
+ Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_exp10l.c (__ieee754_exp10l):
+ Likewise.
+ * math/auto-libm-test-in: Add more tests of exp10.
+ * math/auto-libm-test-out: Regenerated.
+ * sysdeps/x86_64/fpu/libm-test-ulps: Update.
+
* sysdeps/unix/sysv/linux/kernel-features.h
(__ASSUME_COMPLETE_READV_WRITEV): Remove macro.
* sysdeps/unix/sysv/linux/readv.c: Do not include
diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in
index f36d200..48c5c6c 100644
--- a/math/auto-libm-test-in
+++ b/math/auto-libm-test-in
@@ -902,6 +902,24 @@ exp10 -max
exp10 0.75
# GCC bug 59666: results on directed rounding may be incorrect.
exp10 0x1.348e45573a1dd72cp+8 xfail-rounding:ldbl-128ibm
+exp10 0x1p-10
+exp10 -0x1p-10
+exp10 0x1p-20
+exp10 -0x1p-20
+exp10 0x1p-30
+exp10 -0x1p-30
+exp10 0x1p-40
+exp10 -0x1p-40
+exp10 0x1p-50
+exp10 -0x1p-50
+exp10 0x1p-60
+exp10 -0x1p-60
+exp10 0x1p-100
+exp10 -0x1p-100
+exp10 min
+exp10 -min
+exp10 min_subnorm
+exp10 -min_subnorm
exp2 0
exp2 -0
diff --git a/math/auto-libm-test-out b/math/auto-libm-test-out
index ced5283..4187d61 100644
--- a/math/auto-libm-test-out
+++ b/math/auto-libm-test-out
@@ -91269,6 +91269,672 @@ exp10 0x1.348e45573a1dd72cp+8 xfail-rounding:ldbl-128ibm
= exp10 tonearest ldbl-128ibm 0x1.348e45573a1dd72cp+8L : plus_infty : inexact-ok overflow errno-erange
= exp10 towardzero ldbl-128ibm 0x1.348e45573a1dd72cp+8L : 0xf.ffffffffffffbffffffffffffcp+1020L : xfail:ldbl-128ibm inexact-ok overflow errno-erange-ok
= exp10 upward ldbl-128ibm 0x1.348e45573a1dd72cp+8L : plus_infty : xfail:ldbl-128ibm inexact-ok overflow errno-erange
+exp10 0x1p-10
+= exp10 downward flt-32 0x4p-12f : 0x1.009388p+0f : inexact-ok
+= exp10 tonearest flt-32 0x4p-12f : 0x1.009388p+0f : inexact-ok
+= exp10 towardzero flt-32 0x4p-12f : 0x1.009388p+0f : inexact-ok
+= exp10 upward flt-32 0x4p-12f : 0x1.00938ap+0f : inexact-ok
+= exp10 downward dbl-64 0x4p-12 : 0x1.009388004be7ep+0 : inexact-ok
+= exp10 tonearest dbl-64 0x4p-12 : 0x1.009388004be7ep+0 : inexact-ok
+= exp10 towardzero dbl-64 0x4p-12 : 0x1.009388004be7ep+0 : inexact-ok
+= exp10 upward dbl-64 0x4p-12 : 0x1.009388004be7fp+0 : inexact-ok
+= exp10 downward ldbl-96-intel 0x4p-12L : 0x1.009388004be7e558p+0L : inexact-ok
+= exp10 tonearest ldbl-96-intel 0x4p-12L : 0x1.009388004be7e55ap+0L : inexact-ok
+= exp10 towardzero ldbl-96-intel 0x4p-12L : 0x1.009388004be7e558p+0L : inexact-ok
+= exp10 upward ldbl-96-intel 0x4p-12L : 0x1.009388004be7e55ap+0L : inexact-ok
+= exp10 downward ldbl-96-m68k 0x4p-12L : 0x1.009388004be7e558p+0L : inexact-ok
+= exp10 tonearest ldbl-96-m68k 0x4p-12L : 0x1.009388004be7e55ap+0L : inexact-ok
+= exp10 towardzero ldbl-96-m68k 0x4p-12L : 0x1.009388004be7e558p+0L : inexact-ok
+= exp10 upward ldbl-96-m68k 0x4p-12L : 0x1.009388004be7e55ap+0L : inexact-ok
+= exp10 downward ldbl-128 0x4p-12L : 0x1.009388004be7e5592e3f8d6c8273p+0L : inexact-ok
+= exp10 tonearest ldbl-128 0x4p-12L : 0x1.009388004be7e5592e3f8d6c8273p+0L : inexact-ok
+= exp10 towardzero ldbl-128 0x4p-12L : 0x1.009388004be7e5592e3f8d6c8273p+0L : inexact-ok
+= exp10 upward ldbl-128 0x4p-12L : 0x1.009388004be7e5592e3f8d6c8274p+0L : inexact-ok
+= exp10 downward ldbl-128ibm 0x4p-12L : 0x1.009388004be7e5592e3f8d6c82p+0L : inexact-ok
+= exp10 tonearest ldbl-128ibm 0x4p-12L : 0x1.009388004be7e5592e3f8d6c828p+0L : inexact-ok
+= exp10 towardzero ldbl-128ibm 0x4p-12L : 0x1.009388004be7e5592e3f8d6c82p+0L : inexact-ok
+= exp10 upward ldbl-128ibm 0x4p-12L : 0x1.009388004be7e5592e3f8d6c828p+0L : inexact-ok
+exp10 -0x1p-10
+= exp10 downward flt-32 -0x4p-12f : 0xf.f6cccp-4f : inexact-ok
+= exp10 tonearest flt-32 -0x4p-12f : 0xf.f6ccdp-4f : inexact-ok
+= exp10 towardzero flt-32 -0x4p-12f : 0xf.f6cccp-4f : inexact-ok
+= exp10 upward flt-32 -0x4p-12f : 0xf.f6ccdp-4f : inexact-ok
+= exp10 downward dbl-64 -0x4p-12 : 0xf.f6cccd4498cb8p-4 : inexact-ok
+= exp10 tonearest dbl-64 -0x4p-12 : 0xf.f6cccd4498ccp-4 : inexact-ok
+= exp10 towardzero dbl-64 -0x4p-12 : 0xf.f6cccd4498cb8p-4 : inexact-ok
+= exp10 upward dbl-64 -0x4p-12 : 0xf.f6cccd4498ccp-4 : inexact-ok
+= exp10 downward ldbl-96-intel -0x4p-12L : 0xf.f6cccd4498cbd18p-4L : inexact-ok
+= exp10 tonearest ldbl-96-intel -0x4p-12L : 0xf.f6cccd4498cbd18p-4L : inexact-ok
+= exp10 towardzero ldbl-96-intel -0x4p-12L : 0xf.f6cccd4498cbd18p-4L : inexact-ok
+= exp10 upward ldbl-96-intel -0x4p-12L : 0xf.f6cccd4498cbd19p-4L : inexact-ok
+= exp10 downward ldbl-96-m68k -0x4p-12L : 0xf.f6cccd4498cbd18p-4L : inexact-ok
+= exp10 tonearest ldbl-96-m68k -0x4p-12L : 0xf.f6cccd4498cbd18p-4L : inexact-ok
+= exp10 towardzero ldbl-96-m68k -0x4p-12L : 0xf.f6cccd4498cbd18p-4L : inexact-ok
+= exp10 upward ldbl-96-m68k -0x4p-12L : 0xf.f6cccd4498cbd19p-4L : inexact-ok
+= exp10 downward ldbl-128 -0x4p-12L : 0xf.f6cccd4498cbd185346978c830b8p-4L : inexact-ok
+= exp10 tonearest ldbl-128 -0x4p-12L : 0xf.f6cccd4498cbd185346978c830b8p-4L : inexact-ok
+= exp10 towardzero ldbl-128 -0x4p-12L : 0xf.f6cccd4498cbd185346978c830b8p-4L : inexact-ok
+= exp10 upward ldbl-128 -0x4p-12L : 0xf.f6cccd4498cbd185346978c830cp-4L : inexact-ok
+= exp10 downward ldbl-128ibm -0x4p-12L : 0xf.f6cccd4498cbd185346978c83p-4L : inexact-ok
+= exp10 tonearest ldbl-128ibm -0x4p-12L : 0xf.f6cccd4498cbd185346978c83p-4L : inexact-ok
+= exp10 towardzero ldbl-128ibm -0x4p-12L : 0xf.f6cccd4498cbd185346978c83p-4L : inexact-ok
+= exp10 upward ldbl-128ibm -0x4p-12L : 0xf.f6cccd4498cbd185346978c834p-4L : inexact-ok
+exp10 0x1p-20
+= exp10 downward flt-32 0x1p-20f : 0x1.000024p+0f : inexact-ok
+= exp10 tonearest flt-32 0x1p-20f : 0x1.000024p+0f : inexact-ok
+= exp10 towardzero flt-32 0x1p-20f : 0x1.000024p+0f : inexact-ok
+= exp10 upward flt-32 0x1p-20f : 0x1.000026p+0f : inexact-ok
+= exp10 downward dbl-64 0x1p-20 : 0x1.000024d7661ep+0 : inexact-ok
+= exp10 tonearest dbl-64 0x1p-20 : 0x1.000024d7661e1p+0 : inexact-ok
+= exp10 towardzero dbl-64 0x1p-20 : 0x1.000024d7661ep+0 : inexact-ok
+= exp10 upward dbl-64 0x1p-20 : 0x1.000024d7661e1p+0 : inexact-ok
+= exp10 downward ldbl-96-intel 0x1p-20L : 0x1.000024d7661e0f62p+0L : inexact-ok
+= exp10 tonearest ldbl-96-intel 0x1p-20L : 0x1.000024d7661e0f64p+0L : inexact-ok
+= exp10 towardzero ldbl-96-intel 0x1p-20L : 0x1.000024d7661e0f62p+0L : inexact-ok
+= exp10 upward ldbl-96-intel 0x1p-20L : 0x1.000024d7661e0f64p+0L : inexact-ok
+= exp10 downward ldbl-96-m68k 0x1p-20L : 0x1.000024d7661e0f62p+0L : inexact-ok
+= exp10 tonearest ldbl-96-m68k 0x1p-20L : 0x1.000024d7661e0f64p+0L : inexact-ok
+= exp10 towardzero ldbl-96-m68k 0x1p-20L : 0x1.000024d7661e0f62p+0L : inexact-ok
+= exp10 upward ldbl-96-m68k 0x1p-20L : 0x1.000024d7661e0f64p+0L : inexact-ok
+= exp10 downward ldbl-128 0x1p-20L : 0x1.000024d7661e0f63a0af573a6217p+0L : inexact-ok
+= exp10 tonearest ldbl-128 0x1p-20L : 0x1.000024d7661e0f63a0af573a6217p+0L : inexact-ok
+= exp10 towardzero ldbl-128 0x1p-20L : 0x1.000024d7661e0f63a0af573a6217p+0L : inexact-ok
+= exp10 upward ldbl-128 0x1p-20L : 0x1.000024d7661e0f63a0af573a6218p+0L : inexact-ok
+= exp10 downward ldbl-128ibm 0x1p-20L : 0x1.000024d7661e0f63a0af573a62p+0L : inexact-ok
+= exp10 tonearest ldbl-128ibm 0x1p-20L : 0x1.000024d7661e0f63a0af573a62p+0L : inexact-ok
+= exp10 towardzero ldbl-128ibm 0x1p-20L : 0x1.000024d7661e0f63a0af573a62p+0L : inexact-ok
+= exp10 upward ldbl-128ibm 0x1p-20L : 0x1.000024d7661e0f63a0af573a628p+0L : inexact-ok
+exp10 -0x1p-20
+= exp10 downward flt-32 -0x1p-20f : 0xf.fffdbp-4f : inexact-ok
+= exp10 tonearest flt-32 -0x1p-20f : 0xf.fffdbp-4f : inexact-ok
+= exp10 towardzero flt-32 -0x1p-20f : 0xf.fffdbp-4f : inexact-ok
+= exp10 upward flt-32 -0x1p-20f : 0xf.fffdcp-4f : inexact-ok
+= exp10 downward dbl-64 -0x1p-20 : 0xf.fffdb289f2f38p-4 : inexact-ok
+= exp10 tonearest dbl-64 -0x1p-20 : 0xf.fffdb289f2f38p-4 : inexact-ok
+= exp10 towardzero dbl-64 -0x1p-20 : 0xf.fffdb289f2f38p-4 : inexact-ok
+= exp10 upward dbl-64 -0x1p-20 : 0xf.fffdb289f2f4p-4 : inexact-ok
+= exp10 downward ldbl-96-intel -0x1p-20L : 0xf.fffdb289f2f39cep-4L : inexact-ok
+= exp10 tonearest ldbl-96-intel -0x1p-20L : 0xf.fffdb289f2f39cep-4L : inexact-ok
+= exp10 towardzero ldbl-96-intel -0x1p-20L : 0xf.fffdb289f2f39cep-4L : inexact-ok
+= exp10 upward ldbl-96-intel -0x1p-20L : 0xf.fffdb289f2f39cfp-4L : inexact-ok
+= exp10 downward ldbl-96-m68k -0x1p-20L : 0xf.fffdb289f2f39cep-4L : inexact-ok
+= exp10 tonearest ldbl-96-m68k -0x1p-20L : 0xf.fffdb289f2f39cep-4L : inexact-ok
+= exp10 towardzero ldbl-96-m68k -0x1p-20L : 0xf.fffdb289f2f39cep-4L : inexact-ok
+= exp10 upward ldbl-96-m68k -0x1p-20L : 0xf.fffdb289f2f39cfp-4L : inexact-ok
+= exp10 downward ldbl-128 -0x1p-20L : 0xf.fffdb289f2f39ce2e8d9a96332d8p-4L : inexact-ok
+= exp10 tonearest ldbl-128 -0x1p-20L : 0xf.fffdb289f2f39ce2e8d9a96332d8p-4L : inexact-ok
+= exp10 towardzero ldbl-128 -0x1p-20L : 0xf.fffdb289f2f39ce2e8d9a96332d8p-4L : inexact-ok
+= exp10 upward ldbl-128 -0x1p-20L : 0xf.fffdb289f2f39ce2e8d9a96332ep-4L : inexact-ok
+= exp10 downward ldbl-128ibm -0x1p-20L : 0xf.fffdb289f2f39ce2e8d9a9633p-4L : inexact-ok
+= exp10 tonearest ldbl-128ibm -0x1p-20L : 0xf.fffdb289f2f39ce2e8d9a96334p-4L : inexact-ok
+= exp10 towardzero ldbl-128ibm -0x1p-20L : 0xf.fffdb289f2f39ce2e8d9a9633p-4L : inexact-ok
+= exp10 upward ldbl-128ibm -0x1p-20L : 0xf.fffdb289f2f39ce2e8d9a96334p-4L : inexact-ok
+exp10 0x1p-30
+= exp10 downward flt-32 0x4p-32f : 0x1p+0f : inexact-ok
+= exp10 tonearest flt-32 0x4p-32f : 0x1p+0f : inexact-ok
+= exp10 towardzero flt-32 0x4p-32f : 0x1p+0f : inexact-ok
+= exp10 upward flt-32 0x4p-32f : 0x1.000002p+0f : inexact-ok
+= exp10 downward dbl-64 0x4p-32 : 0x1.0000000935d8dp+0 : inexact-ok
+= exp10 tonearest dbl-64 0x4p-32 : 0x1.0000000935d8ep+0 : inexact-ok
+= exp10 towardzero dbl-64 0x4p-32 : 0x1.0000000935d8dp+0 : inexact-ok
+= exp10 upward dbl-64 0x4p-32 : 0x1.0000000935d8ep+0 : inexact-ok
+= exp10 downward ldbl-96-intel 0x4p-32L : 0x1.0000000935d8de04p+0L : inexact-ok
+= exp10 tonearest ldbl-96-intel 0x4p-32L : 0x1.0000000935d8de06p+0L : inexact-ok
+= exp10 towardzero ldbl-96-intel 0x4p-32L : 0x1.0000000935d8de04p+0L : inexact-ok
+= exp10 upward ldbl-96-intel 0x4p-32L : 0x1.0000000935d8de06p+0L : inexact-ok
+= exp10 downward ldbl-96-m68k 0x4p-32L : 0x1.0000000935d8de04p+0L : inexact-ok
+= exp10 tonearest ldbl-96-m68k 0x4p-32L : 0x1.0000000935d8de06p+0L : inexact-ok
+= exp10 towardzero ldbl-96-m68k 0x4p-32L : 0x1.0000000935d8de04p+0L : inexact-ok
+= exp10 upward ldbl-96-m68k 0x4p-32L : 0x1.0000000935d8de06p+0L : inexact-ok
+= exp10 downward ldbl-128 0x4p-32L : 0x1.0000000935d8de0514d4506ab26bp+0L : inexact-ok
+= exp10 tonearest ldbl-128 0x4p-32L : 0x1.0000000935d8de0514d4506ab26bp+0L : inexact-ok
+= exp10 towardzero ldbl-128 0x4p-32L : 0x1.0000000935d8de0514d4506ab26bp+0L : inexact-ok
+= exp10 upward ldbl-128 0x4p-32L : 0x1.0000000935d8de0514d4506ab26cp+0L : inexact-ok
+= exp10 downward ldbl-128ibm 0x4p-32L : 0x1.0000000935d8de0514d4506ab2p+0L : inexact-ok
+= exp10 tonearest ldbl-128ibm 0x4p-32L : 0x1.0000000935d8de0514d4506ab28p+0L : inexact-ok
+= exp10 towardzero ldbl-128ibm 0x4p-32L : 0x1.0000000935d8de0514d4506ab2p+0L : inexact-ok
+= exp10 upward ldbl-128ibm 0x4p-32L : 0x1.0000000935d8de0514d4506ab28p+0L : inexact-ok
+exp10 -0x1p-30
+= exp10 downward flt-32 -0x4p-32f : 0xf.fffffp-4f : inexact-ok
+= exp10 tonearest flt-32 -0x4p-32f : 0x1p+0f : inexact-ok
+= exp10 towardzero flt-32 -0x4p-32f : 0xf.fffffp-4f : inexact-ok
+= exp10 upward flt-32 -0x4p-32f : 0x1p+0f : inexact-ok
+= exp10 downward dbl-64 -0x4p-32 : 0xf.ffffff6ca272p-4 : inexact-ok
+= exp10 tonearest dbl-64 -0x4p-32 : 0xf.ffffff6ca272p-4 : inexact-ok
+= exp10 towardzero dbl-64 -0x4p-32 : 0xf.ffffff6ca272p-4 : inexact-ok
+= exp10 upward dbl-64 -0x4p-32 : 0xf.ffffff6ca2728p-4 : inexact-ok
+= exp10 downward ldbl-96-intel -0x4p-32L : 0xf.ffffff6ca27224fp-4L : inexact-ok
+= exp10 tonearest ldbl-96-intel -0x4p-32L : 0xf.ffffff6ca27225p-4L : inexact-ok
+= exp10 towardzero ldbl-96-intel -0x4p-32L : 0xf.ffffff6ca27224fp-4L : inexact-ok
+= exp10 upward ldbl-96-intel -0x4p-32L : 0xf.ffffff6ca27225p-4L : inexact-ok
+= exp10 downward ldbl-96-m68k -0x4p-32L : 0xf.ffffff6ca27224fp-4L : inexact-ok
+= exp10 tonearest ldbl-96-m68k -0x4p-32L : 0xf.ffffff6ca27225p-4L : inexact-ok
+= exp10 towardzero ldbl-96-m68k -0x4p-32L : 0xf.ffffff6ca27224fp-4L : inexact-ok
+= exp10 upward ldbl-96-m68k -0x4p-32L : 0xf.ffffff6ca27225p-4L : inexact-ok
+= exp10 downward ldbl-128 -0x4p-32L : 0xf.ffffff6ca27224fbfbecc88f737p-4L : inexact-ok
+= exp10 tonearest ldbl-128 -0x4p-32L : 0xf.ffffff6ca27224fbfbecc88f737p-4L : inexact-ok
+= exp10 towardzero ldbl-128 -0x4p-32L : 0xf.ffffff6ca27224fbfbecc88f737p-4L : inexact-ok
+= exp10 upward ldbl-128 -0x4p-32L : 0xf.ffffff6ca27224fbfbecc88f7378p-4L : inexact-ok
+= exp10 downward ldbl-128ibm -0x4p-32L : 0xf.ffffff6ca27224fbfbecc88f7p-4L : inexact-ok
+= exp10 tonearest ldbl-128ibm -0x4p-32L : 0xf.ffffff6ca27224fbfbecc88f74p-4L : inexact-ok
+= exp10 towardzero ldbl-128ibm -0x4p-32L : 0xf.ffffff6ca27224fbfbecc88f7p-4L : inexact-ok
+= exp10 upward ldbl-128ibm -0x4p-32L : 0xf.ffffff6ca27224fbfbecc88f74p-4L : inexact-ok
+exp10 0x1p-40
+= exp10 downward flt-32 0x1p-40f : 0x1p+0f : inexact-ok
+= exp10 tonearest flt-32 0x1p-40f : 0x1p+0f : inexact-ok
+= exp10 towardzero flt-32 0x1p-40f : 0x1p+0f : inexact-ok
+= exp10 upward flt-32 0x1p-40f : 0x1.000002p+0f : inexact-ok
+= exp10 downward dbl-64 0x1p-40 : 0x1.00000000024d7p+0 : inexact-ok
+= exp10 tonearest dbl-64 0x1p-40 : 0x1.00000000024d7p+0 : inexact-ok
+= exp10 towardzero dbl-64 0x1p-40 : 0x1.00000000024d7p+0 : inexact-ok
+= exp10 upward dbl-64 0x1p-40 : 0x1.00000000024d8p+0 : inexact-ok
+= exp10 downward ldbl-96-intel 0x1p-40L : 0x1.00000000024d7636p+0L : inexact-ok
+= exp10 tonearest ldbl-96-intel 0x1p-40L : 0x1.00000000024d7638p+0L : inexact-ok
+= exp10 towardzero ldbl-96-intel 0x1p-40L : 0x1.00000000024d7636p+0L : inexact-ok
+= exp10 upward ldbl-96-intel 0x1p-40L : 0x1.00000000024d7638p+0L : inexact-ok
+= exp10 downward ldbl-96-m68k 0x1p-40L : 0x1.00000000024d7636p+0L : inexact-ok
+= exp10 tonearest ldbl-96-m68k 0x1p-40L : 0x1.00000000024d7638p+0L : inexact-ok
+= exp10 towardzero ldbl-96-m68k 0x1p-40L : 0x1.00000000024d7636p+0L : inexact-ok
+= exp10 upward ldbl-96-m68k 0x1p-40L : 0x1.00000000024d7638p+0L : inexact-ok
+= exp10 downward ldbl-128 0x1p-40L : 0x1.00000000024d763776ad4954f49p+0L : inexact-ok
+= exp10 tonearest ldbl-128 0x1p-40L : 0x1.00000000024d763776ad4954f491p+0L : inexact-ok
+= exp10 towardzero ldbl-128 0x1p-40L : 0x1.00000000024d763776ad4954f49p+0L : inexact-ok
+= exp10 upward ldbl-128 0x1p-40L : 0x1.00000000024d763776ad4954f491p+0L : inexact-ok
+= exp10 downward ldbl-128ibm 0x1p-40L : 0x1.00000000024d763776ad4954f48p+0L : inexact-ok
+= exp10 tonearest ldbl-128ibm 0x1p-40L : 0x1.00000000024d763776ad4954f48p+0L : inexact-ok
+= exp10 towardzero ldbl-128ibm 0x1p-40L : 0x1.00000000024d763776ad4954f48p+0L : inexact-ok
+= exp10 upward ldbl-128ibm 0x1p-40L : 0x1.00000000024d763776ad4954f5p+0L : inexact-ok
+exp10 -0x1p-40
+= exp10 downward flt-32 -0x1p-40f : 0xf.fffffp-4f : inexact-ok
+= exp10 tonearest flt-32 -0x1p-40f : 0x1p+0f : inexact-ok
+= exp10 towardzero flt-32 -0x1p-40f : 0xf.fffffp-4f : inexact-ok
+= exp10 upward flt-32 -0x1p-40f : 0x1p+0f : inexact-ok
+= exp10 downward dbl-64 -0x1p-40 : 0xf.ffffffffdb288p-4 : inexact-ok
+= exp10 tonearest dbl-64 -0x1p-40 : 0xf.ffffffffdb288p-4 : inexact-ok
+= exp10 towardzero dbl-64 -0x1p-40 : 0xf.ffffffffdb288p-4 : inexact-ok
+= exp10 upward dbl-64 -0x1p-40 : 0xf.ffffffffdb29p-4 : inexact-ok
+= exp10 downward ldbl-96-intel -0x1p-40L : 0xf.ffffffffdb289c8p-4L : inexact-ok
+= exp10 tonearest ldbl-96-intel -0x1p-40L : 0xf.ffffffffdb289c9p-4L : inexact-ok
+= exp10 towardzero ldbl-96-intel -0x1p-40L : 0xf.ffffffffdb289c8p-4L : inexact-ok
+= exp10 upward ldbl-96-intel -0x1p-40L : 0xf.ffffffffdb289c9p-4L : inexact-ok
+= exp10 downward ldbl-96-m68k -0x1p-40L : 0xf.ffffffffdb289c8p-4L : inexact-ok
+= exp10 tonearest ldbl-96-m68k -0x1p-40L : 0xf.ffffffffdb289c9p-4L : inexact-ok
+= exp10 towardzero ldbl-96-m68k -0x1p-40L : 0xf.ffffffffdb289c8p-4L : inexact-ok
+= exp10 upward ldbl-96-m68k -0x1p-40L : 0xf.ffffffffdb289c9p-4L : inexact-ok
+= exp10 downward ldbl-128 -0x1p-40L : 0xf.ffffffffdb289c8895803f43d3ep-4L : inexact-ok
+= exp10 tonearest ldbl-128 -0x1p-40L : 0xf.ffffffffdb289c8895803f43d3ep-4L : inexact-ok
+= exp10 towardzero ldbl-128 -0x1p-40L : 0xf.ffffffffdb289c8895803f43d3ep-4L : inexact-ok
+= exp10 upward ldbl-128 -0x1p-40L : 0xf.ffffffffdb289c8895803f43d3e8p-4L : inexact-ok
+= exp10 downward ldbl-128ibm -0x1p-40L : 0xf.ffffffffdb289c8895803f43dp-4L : inexact-ok
+= exp10 tonearest ldbl-128ibm -0x1p-40L : 0xf.ffffffffdb289c8895803f43d4p-4L : inexact-ok
+= exp10 towardzero ldbl-128ibm -0x1p-40L : 0xf.ffffffffdb289c8895803f43dp-4L : inexact-ok
+= exp10 upward ldbl-128ibm -0x1p-40L : 0xf.ffffffffdb289c8895803f43d4p-4L : inexact-ok
+exp10 0x1p-50
+= exp10 downward flt-32 0x4p-52f : 0x1p+0f : inexact-ok
+= exp10 tonearest flt-32 0x4p-52f : 0x1p+0f : inexact-ok
+= exp10 towardzero flt-32 0x4p-52f : 0x1p+0f : inexact-ok
+= exp10 upward flt-32 0x4p-52f : 0x1.000002p+0f : inexact-ok
+= exp10 downward dbl-64 0x4p-52 : 0x1.0000000000009p+0 : inexact-ok
+= exp10 tonearest dbl-64 0x4p-52 : 0x1.0000000000009p+0 : inexact-ok
+= exp10 towardzero dbl-64 0x4p-52 : 0x1.0000000000009p+0 : inexact-ok
+= exp10 upward dbl-64 0x4p-52 : 0x1.000000000000ap+0 : inexact-ok
+= exp10 downward ldbl-96-intel 0x4p-52L : 0x1.000000000000935cp+0L : inexact-ok
+= exp10 tonearest ldbl-96-intel 0x4p-52L : 0x1.000000000000935ep+0L : inexact-ok
+= exp10 towardzero ldbl-96-intel 0x4p-52L : 0x1.000000000000935cp+0L : inexact-ok
+= exp10 upward ldbl-96-intel 0x4p-52L : 0x1.000000000000935ep+0L : inexact-ok
+= exp10 downward ldbl-96-m68k 0x4p-52L : 0x1.000000000000935cp+0L : inexact-ok
+= exp10 tonearest ldbl-96-m68k 0x4p-52L : 0x1.000000000000935ep+0L : inexact-ok
+= exp10 towardzero ldbl-96-m68k 0x4p-52L : 0x1.000000000000935cp+0L : inexact-ok
+= exp10 upward ldbl-96-m68k 0x4p-52L : 0x1.000000000000935ep+0L : inexact-ok
+= exp10 downward ldbl-128 0x4p-52L : 0x1.000000000000935d8dddaaa8d681p+0L : inexact-ok
+= exp10 tonearest ldbl-128 0x4p-52L : 0x1.000000000000935d8dddaaa8d681p+0L : inexact-ok
+= exp10 towardzero ldbl-128 0x4p-52L : 0x1.000000000000935d8dddaaa8d681p+0L : inexact-ok
+= exp10 upward ldbl-128 0x4p-52L : 0x1.000000000000935d8dddaaa8d682p+0L : inexact-ok
+= exp10 downward ldbl-128ibm 0x4p-52L : 0x1.000000000000935d8dddaaa8d68p+0L : inexact-ok
+= exp10 tonearest ldbl-128ibm 0x4p-52L : 0x1.000000000000935d8dddaaa8d68p+0L : inexact-ok
+= exp10 towardzero ldbl-128ibm 0x4p-52L : 0x1.000000000000935d8dddaaa8d68p+0L : inexact-ok
+= exp10 upward ldbl-128ibm 0x4p-52L : 0x1.000000000000935d8dddaaa8d7p+0L : inexact-ok
+exp10 -0x1p-50
+= exp10 downward flt-32 -0x4p-52f : 0xf.fffffp-4f : inexact-ok
+= exp10 tonearest flt-32 -0x4p-52f : 0x1p+0f : inexact-ok
+= exp10 towardzero flt-32 -0x4p-52f : 0xf.fffffp-4f : inexact-ok
+= exp10 upward flt-32 -0x4p-52f : 0x1p+0f : inexact-ok
+= exp10 downward dbl-64 -0x4p-52 : 0xf.fffffffffff68p-4 : inexact-ok
+= exp10 tonearest dbl-64 -0x4p-52 : 0xf.fffffffffff7p-4 : inexact-ok
+= exp10 towardzero dbl-64 -0x4p-52 : 0xf.fffffffffff68p-4 : inexact-ok
+= exp10 upward dbl-64 -0x4p-52 : 0xf.fffffffffff7p-4 : inexact-ok
+= exp10 downward ldbl-96-intel -0x4p-52L : 0xf.fffffffffff6ca2p-4L : inexact-ok
+= exp10 tonearest ldbl-96-intel -0x4p-52L : 0xf.fffffffffff6ca2p-4L : inexact-ok
+= exp10 towardzero ldbl-96-intel -0x4p-52L : 0xf.fffffffffff6ca2p-4L : inexact-ok
+= exp10 upward ldbl-96-intel -0x4p-52L : 0xf.fffffffffff6ca3p-4L : inexact-ok
+= exp10 downward ldbl-96-m68k -0x4p-52L : 0xf.fffffffffff6ca2p-4L : inexact-ok
+= exp10 tonearest ldbl-96-m68k -0x4p-52L : 0xf.fffffffffff6ca2p-4L : inexact-ok
+= exp10 towardzero ldbl-96-m68k -0x4p-52L : 0xf.fffffffffff6ca2p-4L : inexact-ok
+= exp10 upward ldbl-96-m68k -0x4p-52L : 0xf.fffffffffff6ca3p-4L : inexact-ok
+= exp10 downward ldbl-128 -0x4p-52L : 0xf.fffffffffff6ca2722255577e53p-4L : inexact-ok
+= exp10 tonearest ldbl-128 -0x4p-52L : 0xf.fffffffffff6ca2722255577e538p-4L : inexact-ok
+= exp10 towardzero ldbl-128 -0x4p-52L : 0xf.fffffffffff6ca2722255577e53p-4L : inexact-ok
+= exp10 upward ldbl-128 -0x4p-52L : 0xf.fffffffffff6ca2722255577e538p-4L : inexact-ok
+= exp10 downward ldbl-128ibm -0x4p-52L : 0xf.fffffffffff6ca2722255577e4p-4L : inexact-ok
+= exp10 tonearest ldbl-128ibm -0x4p-52L : 0xf.fffffffffff6ca2722255577e4p-4L : inexact-ok
+= exp10 towardzero ldbl-128ibm -0x4p-52L : 0xf.fffffffffff6ca2722255577e4p-4L : inexact-ok
+= exp10 upward ldbl-128ibm -0x4p-52L : 0xf.fffffffffff6ca2722255577e8p-4L : inexact-ok
+exp10 0x1p-60
+= exp10 downward flt-32 0x1p-60f : 0x1p+0f : inexact-ok
+= exp10 tonearest flt-32 0x1p-60f : 0x1p+0f : inexact-ok
+= exp10 towardzero flt-32 0x1p-60f : 0x1p+0f : inexact-ok
+= exp10 upward flt-32 0x1p-60f : 0x1.000002p+0f : inexact-ok
+= exp10 downward dbl-64 0x1p-60 : 0x1p+0 : inexact-ok
+= exp10 tonearest dbl-64 0x1p-60 : 0x1p+0 : inexact-ok
+= exp10 towardzero dbl-64 0x1p-60 : 0x1p+0 : inexact-ok
+= exp10 upward dbl-64 0x1p-60 : 0x1.0000000000001p+0 : inexact-ok
+= exp10 downward ldbl-96-intel 0x1p-60L : 0x1.0000000000000024p+0L : inexact-ok
+= exp10 tonearest ldbl-96-intel 0x1p-60L : 0x1.0000000000000024p+0L : inexact-ok
+= exp10 towardzero ldbl-96-intel 0x1p-60L : 0x1.0000000000000024p+0L : inexact-ok
+= exp10 upward ldbl-96-intel 0x1p-60L : 0x1.0000000000000026p+0L : inexact-ok
+= exp10 downward ldbl-96-m68k 0x1p-60L : 0x1.0000000000000024p+0L : inexact-ok
+= exp10 tonearest ldbl-96-m68k 0x1p-60L : 0x1.0000000000000024p+0L : inexact-ok
+= exp10 towardzero ldbl-96-m68k 0x1p-60L : 0x1.0000000000000024p+0L : inexact-ok
+= exp10 upward ldbl-96-m68k 0x1p-60L : 0x1.0000000000000026p+0L : inexact-ok
+= exp10 downward ldbl-128 0x1p-60L : 0x1.0000000000000024d763776aaa2bp+0L : inexact-ok
+= exp10 tonearest ldbl-128 0x1p-60L : 0x1.0000000000000024d763776aaa2bp+0L : inexact-ok
+= exp10 towardzero ldbl-128 0x1p-60L : 0x1.0000000000000024d763776aaa2bp+0L : inexact-ok
+= exp10 upward ldbl-128 0x1p-60L : 0x1.0000000000000024d763776aaa2cp+0L : inexact-ok
+= exp10 downward ldbl-128ibm 0x1p-60L : 0x1.0000000000000024d763776aaap+0L : inexact-ok
+= exp10 tonearest ldbl-128ibm 0x1p-60L : 0x1.0000000000000024d763776aaap+0L : inexact-ok
+= exp10 towardzero ldbl-128ibm 0x1p-60L : 0x1.0000000000000024d763776aaap+0L : inexact-ok
+= exp10 upward ldbl-128ibm 0x1p-60L : 0x1.0000000000000024d763776aaa8p+0L : inexact-ok
+exp10 -0x1p-60
+= exp10 downward flt-32 -0x1p-60f : 0xf.fffffp-4f : inexact-ok
+= exp10 tonearest flt-32 -0x1p-60f : 0x1p+0f : inexact-ok
+= exp10 towardzero flt-32 -0x1p-60f : 0xf.fffffp-4f : inexact-ok
+= exp10 upward flt-32 -0x1p-60f : 0x1p+0f : inexact-ok
+= exp10 downward dbl-64 -0x1p-60 : 0xf.ffffffffffff8p-4 : inexact-ok
+= exp10 tonearest dbl-64 -0x1p-60 : 0x1p+0 : inexact-ok
+= exp10 towardzero dbl-64 -0x1p-60 : 0xf.ffffffffffff8p-4 : inexact-ok
+= exp10 upward dbl-64 -0x1p-60 : 0x1p+0 : inexact-ok
+= exp10 downward ldbl-96-intel -0x1p-60L : 0xf.fffffffffffffdbp-4L : inexact-ok
+= exp10 tonearest ldbl-96-intel -0x1p-60L : 0xf.fffffffffffffdbp-4L : inexact-ok
+= exp10 towardzero ldbl-96-intel -0x1p-60L : 0xf.fffffffffffffdbp-4L : inexact-ok
+= exp10 upward ldbl-96-intel -0x1p-60L : 0xf.fffffffffffffdcp-4L : inexact-ok
+= exp10 downward ldbl-96-m68k -0x1p-60L : 0xf.fffffffffffffdbp-4L : inexact-ok
+= exp10 tonearest ldbl-96-m68k -0x1p-60L : 0xf.fffffffffffffdbp-4L : inexact-ok
+= exp10 towardzero ldbl-96-m68k -0x1p-60L : 0xf.fffffffffffffdbp-4L : inexact-ok
+= exp10 upward ldbl-96-m68k -0x1p-60L : 0xf.fffffffffffffdcp-4L : inexact-ok
+= exp10 downward ldbl-128 -0x1p-60L : 0xf.fffffffffffffdb289c889555d48p-4L : inexact-ok
+= exp10 tonearest ldbl-128 -0x1p-60L : 0xf.fffffffffffffdb289c889555d5p-4L : inexact-ok
+= exp10 towardzero ldbl-128 -0x1p-60L : 0xf.fffffffffffffdb289c889555d48p-4L : inexact-ok
+= exp10 upward ldbl-128 -0x1p-60L : 0xf.fffffffffffffdb289c889555d5p-4L : inexact-ok
+= exp10 downward ldbl-128ibm -0x1p-60L : 0xf.fffffffffffffdb289c889555cp-4L : inexact-ok
+= exp10 tonearest ldbl-128ibm -0x1p-60L : 0xf.fffffffffffffdb289c889555cp-4L : inexact-ok
+= exp10 towardzero ldbl-128ibm -0x1p-60L : 0xf.fffffffffffffdb289c889555cp-4L : inexact-ok
+= exp10 upward ldbl-128ibm -0x1p-60L : 0xf.fffffffffffffdb289c889556p-4L : inexact-ok
+exp10 0x1p-100
+= exp10 downward flt-32 0x1p-100f : 0x1p+0f : inexact-ok
+= exp10 tonearest flt-32 0x1p-100f : 0x1p+0f : inexact-ok
+= exp10 towardzero flt-32 0x1p-100f : 0x1p+0f : inexact-ok
+= exp10 upward flt-32 0x1p-100f : 0x1.000002p+0f : inexact-ok
+= exp10 downward dbl-64 0x1p-100 : 0x1p+0 : inexact-ok
+= exp10 tonearest dbl-64 0x1p-100 : 0x1p+0 : inexact-ok
+= exp10 towardzero dbl-64 0x1p-100 : 0x1p+0 : inexact-ok
+= exp10 upward dbl-64 0x1p-100 : 0x1.0000000000001p+0 : inexact-ok
+= exp10 downward ldbl-96-intel 0x1p-100L : 0x1p+0L : inexact-ok
+= exp10 tonearest ldbl-96-intel 0x1p-100L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-96-intel 0x1p-100L : 0x1p+0L : inexact-ok
+= exp10 upward ldbl-96-intel 0x1p-100L : 0x1.0000000000000002p+0L : inexact-ok
+= exp10 downward ldbl-96-m68k 0x1p-100L : 0x1p+0L : inexact-ok
+= exp10 tonearest ldbl-96-m68k 0x1p-100L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-96-m68k 0x1p-100L : 0x1p+0L : inexact-ok
+= exp10 upward ldbl-96-m68k 0x1p-100L : 0x1.0000000000000002p+0L : inexact-ok
+= exp10 downward ldbl-128 0x1p-100L : 0x1.00000000000000000000000024d7p+0L : inexact-ok
+= exp10 tonearest ldbl-128 0x1p-100L : 0x1.00000000000000000000000024d7p+0L : inexact-ok
+= exp10 towardzero ldbl-128 0x1p-100L : 0x1.00000000000000000000000024d7p+0L : inexact-ok
+= exp10 upward ldbl-128 0x1p-100L : 0x1.00000000000000000000000024d8p+0L : inexact-ok
+= exp10 downward ldbl-128ibm 0x1p-100L : 0x1.000000000000000000000000248p+0L : inexact-ok
+= exp10 tonearest ldbl-128ibm 0x1p-100L : 0x1.00000000000000000000000025p+0L : inexact-ok
+= exp10 towardzero ldbl-128ibm 0x1p-100L : 0x1.000000000000000000000000248p+0L : inexact-ok
+= exp10 upward ldbl-128ibm 0x1p-100L : 0x1.00000000000000000000000025p+0L : inexact-ok
+exp10 -0x1p-100
+= exp10 downward flt-32 -0x1p-100f : 0xf.fffffp-4f : inexact-ok
+= exp10 tonearest flt-32 -0x1p-100f : 0x1p+0f : inexact-ok
+= exp10 towardzero flt-32 -0x1p-100f : 0xf.fffffp-4f : inexact-ok
+= exp10 upward flt-32 -0x1p-100f : 0x1p+0f : inexact-ok
+= exp10 downward dbl-64 -0x1p-100 : 0xf.ffffffffffff8p-4 : inexact-ok
+= exp10 tonearest dbl-64 -0x1p-100 : 0x1p+0 : inexact-ok
+= exp10 towardzero dbl-64 -0x1p-100 : 0xf.ffffffffffff8p-4 : inexact-ok
+= exp10 upward dbl-64 -0x1p-100 : 0x1p+0 : inexact-ok
+= exp10 downward ldbl-96-intel -0x1p-100L : 0xf.fffffffffffffffp-4L : inexact-ok
+= exp10 tonearest ldbl-96-intel -0x1p-100L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-96-intel -0x1p-100L : 0xf.fffffffffffffffp-4L : inexact-ok
+= exp10 upward ldbl-96-intel -0x1p-100L : 0x1p+0L : inexact-ok
+= exp10 downward ldbl-96-m68k -0x1p-100L : 0xf.fffffffffffffffp-4L : inexact-ok
+= exp10 tonearest ldbl-96-m68k -0x1p-100L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-96-m68k -0x1p-100L : 0xf.fffffffffffffffp-4L : inexact-ok
+= exp10 upward ldbl-96-m68k -0x1p-100L : 0x1p+0L : inexact-ok
+= exp10 downward ldbl-128 -0x1p-100L : 0xf.fffffffffffffffffffffffdb288p-4L : inexact-ok
+= exp10 tonearest ldbl-128 -0x1p-100L : 0xf.fffffffffffffffffffffffdb288p-4L : inexact-ok
+= exp10 towardzero ldbl-128 -0x1p-100L : 0xf.fffffffffffffffffffffffdb288p-4L : inexact-ok
+= exp10 upward ldbl-128 -0x1p-100L : 0xf.fffffffffffffffffffffffdb29p-4L : inexact-ok
+= exp10 downward ldbl-128ibm -0x1p-100L : 0xf.fffffffffffffffffffffffdbp-4L : inexact-ok
+= exp10 tonearest ldbl-128ibm -0x1p-100L : 0xf.fffffffffffffffffffffffdb4p-4L : inexact-ok
+= exp10 towardzero ldbl-128ibm -0x1p-100L : 0xf.fffffffffffffffffffffffdbp-4L : inexact-ok
+= exp10 upward ldbl-128ibm -0x1p-100L : 0xf.fffffffffffffffffffffffdb4p-4L : inexact-ok
+exp10 min
+= exp10 downward flt-32 0x4p-128f : 0x1p+0f : inexact-ok
+= exp10 tonearest flt-32 0x4p-128f : 0x1p+0f : inexact-ok
+= exp10 towardzero flt-32 0x4p-128f : 0x1p+0f : inexact-ok
+= exp10 upward flt-32 0x4p-128f : 0x1.000002p+0f : inexact-ok
+= exp10 downward dbl-64 0x4p-128 : 0x1p+0 : inexact-ok
+= exp10 tonearest dbl-64 0x4p-128 : 0x1p+0 : inexact-ok
+= exp10 towardzero dbl-64 0x4p-128 : 0x1p+0 : inexact-ok
+= exp10 upward dbl-64 0x4p-128 : 0x1.0000000000001p+0 : inexact-ok
+= exp10 downward ldbl-96-intel 0x4p-128L : 0x1p+0L : inexact-ok
+= exp10 tonearest ldbl-96-intel 0x4p-128L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-96-intel 0x4p-128L : 0x1p+0L : inexact-ok
+= exp10 upward ldbl-96-intel 0x4p-128L : 0x1.0000000000000002p+0L : inexact-ok
+= exp10 downward ldbl-96-m68k 0x4p-128L : 0x1p+0L : inexact-ok
+= exp10 tonearest ldbl-96-m68k 0x4p-128L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-96-m68k 0x4p-128L : 0x1p+0L : inexact-ok
+= exp10 upward ldbl-96-m68k 0x4p-128L : 0x1.0000000000000002p+0L : inexact-ok
+= exp10 downward ldbl-128 0x4p-128L : 0x1p+0L : inexact-ok
+= exp10 tonearest ldbl-128 0x4p-128L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-128 0x4p-128L : 0x1p+0L : inexact-ok
+= exp10 upward ldbl-128 0x4p-128L : 0x1.0000000000000000000000000001p+0L : inexact-ok
+= exp10 downward ldbl-128ibm 0x4p-128L : 0x1p+0L : inexact-ok
+= exp10 tonearest ldbl-128ibm 0x4p-128L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-128ibm 0x4p-128L : 0x1p+0L : inexact-ok
+= exp10 upward ldbl-128ibm 0x4p-128L : 0x1.000000000000000000000000008p+0L : inexact-ok
+= exp10 downward dbl-64 0x4p-1024 : 0x1p+0 : inexact-ok
+= exp10 tonearest dbl-64 0x4p-1024 : 0x1p+0 : inexact-ok
+= exp10 towardzero dbl-64 0x4p-1024 : 0x1p+0 : inexact-ok
+= exp10 upward dbl-64 0x4p-1024 : 0x1.0000000000001p+0 : inexact-ok
+= exp10 downward ldbl-96-intel 0x4p-1024L : 0x1p+0L : inexact-ok
+= exp10 tonearest ldbl-96-intel 0x4p-1024L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-96-intel 0x4p-1024L : 0x1p+0L : inexact-ok
+= exp10 upward ldbl-96-intel 0x4p-1024L : 0x1.0000000000000002p+0L : inexact-ok
+= exp10 downward ldbl-96-m68k 0x4p-1024L : 0x1p+0L : inexact-ok
+= exp10 tonearest ldbl-96-m68k 0x4p-1024L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-96-m68k 0x4p-1024L : 0x1p+0L : inexact-ok
+= exp10 upward ldbl-96-m68k 0x4p-1024L : 0x1.0000000000000002p+0L : inexact-ok
+= exp10 downward ldbl-128 0x4p-1024L : 0x1p+0L : inexact-ok
+= exp10 tonearest ldbl-128 0x4p-1024L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-128 0x4p-1024L : 0x1p+0L : inexact-ok
+= exp10 upward ldbl-128 0x4p-1024L : 0x1.0000000000000000000000000001p+0L : inexact-ok
+= exp10 downward ldbl-128ibm 0x4p-1024L : 0x1p+0L : inexact-ok
+= exp10 tonearest ldbl-128ibm 0x4p-1024L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-128ibm 0x4p-1024L : 0x1p+0L : inexact-ok
+= exp10 upward ldbl-128ibm 0x4p-1024L : 0x1.000000000000000000000000008p+0L : inexact-ok
+= exp10 downward ldbl-96-intel 0x4p-16384L : 0x1p+0L : inexact-ok
+= exp10 tonearest ldbl-96-intel 0x4p-16384L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-96-intel 0x4p-16384L : 0x1p+0L : inexact-ok
+= exp10 upward ldbl-96-intel 0x4p-16384L : 0x1.0000000000000002p+0L : inexact-ok
+= exp10 downward ldbl-96-m68k 0x4p-16384L : 0x1p+0L : inexact-ok
+= exp10 tonearest ldbl-96-m68k 0x4p-16384L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-96-m68k 0x4p-16384L : 0x1p+0L : inexact-ok
+= exp10 upward ldbl-96-m68k 0x4p-16384L : 0x1.0000000000000002p+0L : inexact-ok
+= exp10 downward ldbl-128 0x4p-16384L : 0x1p+0L : inexact-ok
+= exp10 tonearest ldbl-128 0x4p-16384L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-128 0x4p-16384L : 0x1p+0L : inexact-ok
+= exp10 upward ldbl-128 0x4p-16384L : 0x1.0000000000000000000000000001p+0L : inexact-ok
+= exp10 downward ldbl-96-intel 0x2p-16384L : 0x1p+0L : inexact-ok
+= exp10 tonearest ldbl-96-intel 0x2p-16384L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-96-intel 0x2p-16384L : 0x1p+0L : inexact-ok
+= exp10 upward ldbl-96-intel 0x2p-16384L : 0x1.0000000000000002p+0L : inexact-ok
+= exp10 downward ldbl-96-m68k 0x2p-16384L : 0x1p+0L : inexact-ok
+= exp10 tonearest ldbl-96-m68k 0x2p-16384L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-96-m68k 0x2p-16384L : 0x1p+0L : inexact-ok
+= exp10 upward ldbl-96-m68k 0x2p-16384L : 0x1.0000000000000002p+0L : inexact-ok
+= exp10 downward ldbl-128 0x2p-16384L : 0x1p+0L : inexact-ok
+= exp10 tonearest ldbl-128 0x2p-16384L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-128 0x2p-16384L : 0x1p+0L : inexact-ok
+= exp10 upward ldbl-128 0x2p-16384L : 0x1.0000000000000000000000000001p+0L : inexact-ok
+= exp10 downward dbl-64 0x8p-972 : 0x1p+0 : inexact-ok
+= exp10 tonearest dbl-64 0x8p-972 : 0x1p+0 : inexact-ok
+= exp10 towardzero dbl-64 0x8p-972 : 0x1p+0 : inexact-ok
+= exp10 upward dbl-64 0x8p-972 : 0x1.0000000000001p+0 : inexact-ok
+= exp10 downward ldbl-96-intel 0x8p-972L : 0x1p+0L : inexact-ok
+= exp10 tonearest ldbl-96-intel 0x8p-972L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-96-intel 0x8p-972L : 0x1p+0L : inexact-ok
+= exp10 upward ldbl-96-intel 0x8p-972L : 0x1.0000000000000002p+0L : inexact-ok
+= exp10 downward ldbl-96-m68k 0x8p-972L : 0x1p+0L : inexact-ok
+= exp10 tonearest ldbl-96-m68k 0x8p-972L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-96-m68k 0x8p-972L : 0x1p+0L : inexact-ok
+= exp10 upward ldbl-96-m68k 0x8p-972L : 0x1.0000000000000002p+0L : inexact-ok
+= exp10 downward ldbl-128 0x8p-972L : 0x1p+0L : inexact-ok
+= exp10 tonearest ldbl-128 0x8p-972L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-128 0x8p-972L : 0x1p+0L : inexact-ok
+= exp10 upward ldbl-128 0x8p-972L : 0x1.0000000000000000000000000001p+0L : inexact-ok
+= exp10 downward ldbl-128ibm 0x8p-972L : 0x1p+0L : inexact-ok
+= exp10 tonearest ldbl-128ibm 0x8p-972L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-128ibm 0x8p-972L : 0x1p+0L : inexact-ok
+= exp10 upward ldbl-128ibm 0x8p-972L : 0x1.000000000000000000000000008p+0L : inexact-ok
+exp10 -min
+= exp10 downward flt-32 -0x4p-128f : 0xf.fffffp-4f : inexact-ok
+= exp10 tonearest flt-32 -0x4p-128f : 0x1p+0f : inexact-ok
+= exp10 towardzero flt-32 -0x4p-128f : 0xf.fffffp-4f : inexact-ok
+= exp10 upward flt-32 -0x4p-128f : 0x1p+0f : inexact-ok
+= exp10 downward dbl-64 -0x4p-128 : 0xf.ffffffffffff8p-4 : inexact-ok
+= exp10 tonearest dbl-64 -0x4p-128 : 0x1p+0 : inexact-ok
+= exp10 towardzero dbl-64 -0x4p-128 : 0xf.ffffffffffff8p-4 : inexact-ok
+= exp10 upward dbl-64 -0x4p-128 : 0x1p+0 : inexact-ok
+= exp10 downward ldbl-96-intel -0x4p-128L : 0xf.fffffffffffffffp-4L : inexact-ok
+= exp10 tonearest ldbl-96-intel -0x4p-128L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-96-intel -0x4p-128L : 0xf.fffffffffffffffp-4L : inexact-ok
+= exp10 upward ldbl-96-intel -0x4p-128L : 0x1p+0L : inexact-ok
+= exp10 downward ldbl-96-m68k -0x4p-128L : 0xf.fffffffffffffffp-4L : inexact-ok
+= exp10 tonearest ldbl-96-m68k -0x4p-128L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-96-m68k -0x4p-128L : 0xf.fffffffffffffffp-4L : inexact-ok
+= exp10 upward ldbl-96-m68k -0x4p-128L : 0x1p+0L : inexact-ok
+= exp10 downward ldbl-128 -0x4p-128L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= exp10 tonearest ldbl-128 -0x4p-128L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-128 -0x4p-128L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= exp10 upward ldbl-128 -0x4p-128L : 0x1p+0L : inexact-ok
+= exp10 downward ldbl-128ibm -0x4p-128L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= exp10 tonearest ldbl-128ibm -0x4p-128L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-128ibm -0x4p-128L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= exp10 upward ldbl-128ibm -0x4p-128L : 0x1p+0L : inexact-ok
+= exp10 downward dbl-64 -0x4p-1024 : 0xf.ffffffffffff8p-4 : inexact-ok
+= exp10 tonearest dbl-64 -0x4p-1024 : 0x1p+0 : inexact-ok
+= exp10 towardzero dbl-64 -0x4p-1024 : 0xf.ffffffffffff8p-4 : inexact-ok
+= exp10 upward dbl-64 -0x4p-1024 : 0x1p+0 : inexact-ok
+= exp10 downward ldbl-96-intel -0x4p-1024L : 0xf.fffffffffffffffp-4L : inexact-ok
+= exp10 tonearest ldbl-96-intel -0x4p-1024L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-96-intel -0x4p-1024L : 0xf.fffffffffffffffp-4L : inexact-ok
+= exp10 upward ldbl-96-intel -0x4p-1024L : 0x1p+0L : inexact-ok
+= exp10 downward ldbl-96-m68k -0x4p-1024L : 0xf.fffffffffffffffp-4L : inexact-ok
+= exp10 tonearest ldbl-96-m68k -0x4p-1024L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-96-m68k -0x4p-1024L : 0xf.fffffffffffffffp-4L : inexact-ok
+= exp10 upward ldbl-96-m68k -0x4p-1024L : 0x1p+0L : inexact-ok
+= exp10 downward ldbl-128 -0x4p-1024L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= exp10 tonearest ldbl-128 -0x4p-1024L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-128 -0x4p-1024L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= exp10 upward ldbl-128 -0x4p-1024L : 0x1p+0L : inexact-ok
+= exp10 downward ldbl-128ibm -0x4p-1024L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= exp10 tonearest ldbl-128ibm -0x4p-1024L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-128ibm -0x4p-1024L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= exp10 upward ldbl-128ibm -0x4p-1024L : 0x1p+0L : inexact-ok
+= exp10 downward ldbl-96-intel -0x4p-16384L : 0xf.fffffffffffffffp-4L : inexact-ok
+= exp10 tonearest ldbl-96-intel -0x4p-16384L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-96-intel -0x4p-16384L : 0xf.fffffffffffffffp-4L : inexact-ok
+= exp10 upward ldbl-96-intel -0x4p-16384L : 0x1p+0L : inexact-ok
+= exp10 downward ldbl-96-m68k -0x4p-16384L : 0xf.fffffffffffffffp-4L : inexact-ok
+= exp10 tonearest ldbl-96-m68k -0x4p-16384L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-96-m68k -0x4p-16384L : 0xf.fffffffffffffffp-4L : inexact-ok
+= exp10 upward ldbl-96-m68k -0x4p-16384L : 0x1p+0L : inexact-ok
+= exp10 downward ldbl-128 -0x4p-16384L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= exp10 tonearest ldbl-128 -0x4p-16384L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-128 -0x4p-16384L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= exp10 upward ldbl-128 -0x4p-16384L : 0x1p+0L : inexact-ok
+= exp10 downward ldbl-96-intel -0x2p-16384L : 0xf.fffffffffffffffp-4L : inexact-ok
+= exp10 tonearest ldbl-96-intel -0x2p-16384L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-96-intel -0x2p-16384L : 0xf.fffffffffffffffp-4L : inexact-ok
+= exp10 upward ldbl-96-intel -0x2p-16384L : 0x1p+0L : inexact-ok
+= exp10 downward ldbl-96-m68k -0x2p-16384L : 0xf.fffffffffffffffp-4L : inexact-ok
+= exp10 tonearest ldbl-96-m68k -0x2p-16384L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-96-m68k -0x2p-16384L : 0xf.fffffffffffffffp-4L : inexact-ok
+= exp10 upward ldbl-96-m68k -0x2p-16384L : 0x1p+0L : inexact-ok
+= exp10 downward ldbl-128 -0x2p-16384L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= exp10 tonearest ldbl-128 -0x2p-16384L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-128 -0x2p-16384L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= exp10 upward ldbl-128 -0x2p-16384L : 0x1p+0L : inexact-ok
+= exp10 downward dbl-64 -0x8p-972 : 0xf.ffffffffffff8p-4 : inexact-ok
+= exp10 tonearest dbl-64 -0x8p-972 : 0x1p+0 : inexact-ok
+= exp10 towardzero dbl-64 -0x8p-972 : 0xf.ffffffffffff8p-4 : inexact-ok
+= exp10 upward dbl-64 -0x8p-972 : 0x1p+0 : inexact-ok
+= exp10 downward ldbl-96-intel -0x8p-972L : 0xf.fffffffffffffffp-4L : inexact-ok
+= exp10 tonearest ldbl-96-intel -0x8p-972L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-96-intel -0x8p-972L : 0xf.fffffffffffffffp-4L : inexact-ok
+= exp10 upward ldbl-96-intel -0x8p-972L : 0x1p+0L : inexact-ok
+= exp10 downward ldbl-96-m68k -0x8p-972L : 0xf.fffffffffffffffp-4L : inexact-ok
+= exp10 tonearest ldbl-96-m68k -0x8p-972L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-96-m68k -0x8p-972L : 0xf.fffffffffffffffp-4L : inexact-ok
+= exp10 upward ldbl-96-m68k -0x8p-972L : 0x1p+0L : inexact-ok
+= exp10 downward ldbl-128 -0x8p-972L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= exp10 tonearest ldbl-128 -0x8p-972L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-128 -0x8p-972L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= exp10 upward ldbl-128 -0x8p-972L : 0x1p+0L : inexact-ok
+= exp10 downward ldbl-128ibm -0x8p-972L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= exp10 tonearest ldbl-128ibm -0x8p-972L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-128ibm -0x8p-972L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= exp10 upward ldbl-128ibm -0x8p-972L : 0x1p+0L : inexact-ok
+exp10 min_subnorm
+= exp10 downward flt-32 0x8p-152f : 0x1p+0f : inexact-ok
+= exp10 tonearest flt-32 0x8p-152f : 0x1p+0f : inexact-ok
+= exp10 towardzero flt-32 0x8p-152f : 0x1p+0f : inexact-ok
+= exp10 upward flt-32 0x8p-152f : 0x1.000002p+0f : inexact-ok
+= exp10 downward dbl-64 0x8p-152 : 0x1p+0 : inexact-ok
+= exp10 tonearest dbl-64 0x8p-152 : 0x1p+0 : inexact-ok
+= exp10 towardzero dbl-64 0x8p-152 : 0x1p+0 : inexact-ok
+= exp10 upward dbl-64 0x8p-152 : 0x1.0000000000001p+0 : inexact-ok
+= exp10 downward ldbl-96-intel 0x8p-152L : 0x1p+0L : inexact-ok
+= exp10 tonearest ldbl-96-intel 0x8p-152L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-96-intel 0x8p-152L : 0x1p+0L : inexact-ok
+= exp10 upward ldbl-96-intel 0x8p-152L : 0x1.0000000000000002p+0L : inexact-ok
+= exp10 downward ldbl-96-m68k 0x8p-152L : 0x1p+0L : inexact-ok
+= exp10 tonearest ldbl-96-m68k 0x8p-152L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-96-m68k 0x8p-152L : 0x1p+0L : inexact-ok
+= exp10 upward ldbl-96-m68k 0x8p-152L : 0x1.0000000000000002p+0L : inexact-ok
+= exp10 downward ldbl-128 0x8p-152L : 0x1p+0L : inexact-ok
+= exp10 tonearest ldbl-128 0x8p-152L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-128 0x8p-152L : 0x1p+0L : inexact-ok
+= exp10 upward ldbl-128 0x8p-152L : 0x1.0000000000000000000000000001p+0L : inexact-ok
+= exp10 downward ldbl-128ibm 0x8p-152L : 0x1p+0L : inexact-ok
+= exp10 tonearest ldbl-128ibm 0x8p-152L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-128ibm 0x8p-152L : 0x1p+0L : inexact-ok
+= exp10 upward ldbl-128ibm 0x8p-152L : 0x1.000000000000000000000000008p+0L : inexact-ok
+= exp10 downward dbl-64 0x4p-1076 : 0x1p+0 : inexact-ok
+= exp10 tonearest dbl-64 0x4p-1076 : 0x1p+0 : inexact-ok
+= exp10 towardzero dbl-64 0x4p-1076 : 0x1p+0 : inexact-ok
+= exp10 upward dbl-64 0x4p-1076 : 0x1.0000000000001p+0 : inexact-ok
+= exp10 downward ldbl-96-intel 0x4p-1076L : 0x1p+0L : inexact-ok
+= exp10 tonearest ldbl-96-intel 0x4p-1076L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-96-intel 0x4p-1076L : 0x1p+0L : inexact-ok
+= exp10 upward ldbl-96-intel 0x4p-1076L : 0x1.0000000000000002p+0L : inexact-ok
+= exp10 downward ldbl-96-m68k 0x4p-1076L : 0x1p+0L : inexact-ok
+= exp10 tonearest ldbl-96-m68k 0x4p-1076L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-96-m68k 0x4p-1076L : 0x1p+0L : inexact-ok
+= exp10 upward ldbl-96-m68k 0x4p-1076L : 0x1.0000000000000002p+0L : inexact-ok
+= exp10 downward ldbl-128 0x4p-1076L : 0x1p+0L : inexact-ok
+= exp10 tonearest ldbl-128 0x4p-1076L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-128 0x4p-1076L : 0x1p+0L : inexact-ok
+= exp10 upward ldbl-128 0x4p-1076L : 0x1.0000000000000000000000000001p+0L : inexact-ok
+= exp10 downward ldbl-128ibm 0x4p-1076L : 0x1p+0L : inexact-ok
+= exp10 tonearest ldbl-128ibm 0x4p-1076L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-128ibm 0x4p-1076L : 0x1p+0L : inexact-ok
+= exp10 upward ldbl-128ibm 0x4p-1076L : 0x1.000000000000000000000000008p+0L : inexact-ok
+= exp10 downward ldbl-96-intel 0x8p-16448L : 0x1p+0L : inexact-ok
+= exp10 tonearest ldbl-96-intel 0x8p-16448L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-96-intel 0x8p-16448L : 0x1p+0L : inexact-ok
+= exp10 upward ldbl-96-intel 0x8p-16448L : 0x1.0000000000000002p+0L : inexact-ok
+= exp10 downward ldbl-96-m68k 0x8p-16448L : 0x1p+0L : inexact-ok
+= exp10 tonearest ldbl-96-m68k 0x8p-16448L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-96-m68k 0x8p-16448L : 0x1p+0L : inexact-ok
+= exp10 upward ldbl-96-m68k 0x8p-16448L : 0x1.0000000000000002p+0L : inexact-ok
+= exp10 downward ldbl-128 0x8p-16448L : 0x1p+0L : inexact-ok
+= exp10 tonearest ldbl-128 0x8p-16448L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-128 0x8p-16448L : 0x1p+0L : inexact-ok
+= exp10 upward ldbl-128 0x8p-16448L : 0x1.0000000000000000000000000001p+0L : inexact-ok
+= exp10 downward ldbl-96-m68k 0x4p-16448L : 0x1p+0L : inexact-ok
+= exp10 tonearest ldbl-96-m68k 0x4p-16448L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-96-m68k 0x4p-16448L : 0x1p+0L : inexact-ok
+= exp10 upward ldbl-96-m68k 0x4p-16448L : 0x1.0000000000000002p+0L : inexact-ok
+= exp10 downward ldbl-128 0x4p-16448L : 0x1p+0L : inexact-ok
+= exp10 tonearest ldbl-128 0x4p-16448L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-128 0x4p-16448L : 0x1p+0L : inexact-ok
+= exp10 upward ldbl-128 0x4p-16448L : 0x1.0000000000000000000000000001p+0L : inexact-ok
+= exp10 downward ldbl-128 0x4p-16496L : 0x1p+0L : inexact-ok
+= exp10 tonearest ldbl-128 0x4p-16496L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-128 0x4p-16496L : 0x1p+0L : inexact-ok
+= exp10 upward ldbl-128 0x4p-16496L : 0x1.0000000000000000000000000001p+0L : inexact-ok
+exp10 -min_subnorm
+= exp10 downward flt-32 -0x8p-152f : 0xf.fffffp-4f : inexact-ok
+= exp10 tonearest flt-32 -0x8p-152f : 0x1p+0f : inexact-ok
+= exp10 towardzero flt-32 -0x8p-152f : 0xf.fffffp-4f : inexact-ok
+= exp10 upward flt-32 -0x8p-152f : 0x1p+0f : inexact-ok
+= exp10 downward dbl-64 -0x8p-152 : 0xf.ffffffffffff8p-4 : inexact-ok
+= exp10 tonearest dbl-64 -0x8p-152 : 0x1p+0 : inexact-ok
+= exp10 towardzero dbl-64 -0x8p-152 : 0xf.ffffffffffff8p-4 : inexact-ok
+= exp10 upward dbl-64 -0x8p-152 : 0x1p+0 : inexact-ok
+= exp10 downward ldbl-96-intel -0x8p-152L : 0xf.fffffffffffffffp-4L : inexact-ok
+= exp10 tonearest ldbl-96-intel -0x8p-152L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-96-intel -0x8p-152L : 0xf.fffffffffffffffp-4L : inexact-ok
+= exp10 upward ldbl-96-intel -0x8p-152L : 0x1p+0L : inexact-ok
+= exp10 downward ldbl-96-m68k -0x8p-152L : 0xf.fffffffffffffffp-4L : inexact-ok
+= exp10 tonearest ldbl-96-m68k -0x8p-152L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-96-m68k -0x8p-152L : 0xf.fffffffffffffffp-4L : inexact-ok
+= exp10 upward ldbl-96-m68k -0x8p-152L : 0x1p+0L : inexact-ok
+= exp10 downward ldbl-128 -0x8p-152L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= exp10 tonearest ldbl-128 -0x8p-152L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-128 -0x8p-152L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= exp10 upward ldbl-128 -0x8p-152L : 0x1p+0L : inexact-ok
+= exp10 downward ldbl-128ibm -0x8p-152L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= exp10 tonearest ldbl-128ibm -0x8p-152L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-128ibm -0x8p-152L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= exp10 upward ldbl-128ibm -0x8p-152L : 0x1p+0L : inexact-ok
+= exp10 downward dbl-64 -0x4p-1076 : 0xf.ffffffffffff8p-4 : inexact-ok
+= exp10 tonearest dbl-64 -0x4p-1076 : 0x1p+0 : inexact-ok
+= exp10 towardzero dbl-64 -0x4p-1076 : 0xf.ffffffffffff8p-4 : inexact-ok
+= exp10 upward dbl-64 -0x4p-1076 : 0x1p+0 : inexact-ok
+= exp10 downward ldbl-96-intel -0x4p-1076L : 0xf.fffffffffffffffp-4L : inexact-ok
+= exp10 tonearest ldbl-96-intel -0x4p-1076L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-96-intel -0x4p-1076L : 0xf.fffffffffffffffp-4L : inexact-ok
+= exp10 upward ldbl-96-intel -0x4p-1076L : 0x1p+0L : inexact-ok
+= exp10 downward ldbl-96-m68k -0x4p-1076L : 0xf.fffffffffffffffp-4L : inexact-ok
+= exp10 tonearest ldbl-96-m68k -0x4p-1076L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-96-m68k -0x4p-1076L : 0xf.fffffffffffffffp-4L : inexact-ok
+= exp10 upward ldbl-96-m68k -0x4p-1076L : 0x1p+0L : inexact-ok
+= exp10 downward ldbl-128 -0x4p-1076L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= exp10 tonearest ldbl-128 -0x4p-1076L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-128 -0x4p-1076L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= exp10 upward ldbl-128 -0x4p-1076L : 0x1p+0L : inexact-ok
+= exp10 downward ldbl-128ibm -0x4p-1076L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= exp10 tonearest ldbl-128ibm -0x4p-1076L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-128ibm -0x4p-1076L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= exp10 upward ldbl-128ibm -0x4p-1076L : 0x1p+0L : inexact-ok
+= exp10 downward ldbl-96-intel -0x8p-16448L : 0xf.fffffffffffffffp-4L : inexact-ok
+= exp10 tonearest ldbl-96-intel -0x8p-16448L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-96-intel -0x8p-16448L : 0xf.fffffffffffffffp-4L : inexact-ok
+= exp10 upward ldbl-96-intel -0x8p-16448L : 0x1p+0L : inexact-ok
+= exp10 downward ldbl-96-m68k -0x8p-16448L : 0xf.fffffffffffffffp-4L : inexact-ok
+= exp10 tonearest ldbl-96-m68k -0x8p-16448L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-96-m68k -0x8p-16448L : 0xf.fffffffffffffffp-4L : inexact-ok
+= exp10 upward ldbl-96-m68k -0x8p-16448L : 0x1p+0L : inexact-ok
+= exp10 downward ldbl-128 -0x8p-16448L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= exp10 tonearest ldbl-128 -0x8p-16448L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-128 -0x8p-16448L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= exp10 upward ldbl-128 -0x8p-16448L : 0x1p+0L : inexact-ok
+= exp10 downward ldbl-96-m68k -0x4p-16448L : 0xf.fffffffffffffffp-4L : inexact-ok
+= exp10 tonearest ldbl-96-m68k -0x4p-16448L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-96-m68k -0x4p-16448L : 0xf.fffffffffffffffp-4L : inexact-ok
+= exp10 upward ldbl-96-m68k -0x4p-16448L : 0x1p+0L : inexact-ok
+= exp10 downward ldbl-128 -0x4p-16448L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= exp10 tonearest ldbl-128 -0x4p-16448L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-128 -0x4p-16448L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= exp10 upward ldbl-128 -0x4p-16448L : 0x1p+0L : inexact-ok
+= exp10 downward ldbl-128 -0x4p-16496L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= exp10 tonearest ldbl-128 -0x4p-16496L : 0x1p+0L : inexact-ok
+= exp10 towardzero ldbl-128 -0x4p-16496L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= exp10 upward ldbl-128 -0x4p-16496L : 0x1p+0L : inexact-ok
exp2 0
= exp2 downward flt-32 0x0p+0f : 0x1p+0f : inexact-ok
= exp2 tonearest flt-32 0x0p+0f : 0x1p+0f : inexact-ok
diff --git a/sysdeps/ieee754/dbl-64/e_exp10.c b/sysdeps/ieee754/dbl-64/e_exp10.c
index eac609b..59cb2ff 100644
--- a/sysdeps/ieee754/dbl-64/e_exp10.c
+++ b/sysdeps/ieee754/dbl-64/e_exp10.c
@@ -35,6 +35,8 @@ __ieee754_exp10 (double arg)
return DBL_MIN * DBL_MIN;
else if (arg > DBL_MAX_10_EXP + 1)
return DBL_MAX * DBL_MAX;
+ else if (fabs (arg) < 0x1p-56)
+ return 1.0;
GET_LOW_WORD (lx, arg);
lx &= 0xf8000000;
diff --git a/sysdeps/ieee754/ldbl-128/e_exp10l.c b/sysdeps/ieee754/ldbl-128/e_exp10l.c
index 3c50963..da70995 100644
--- a/sysdeps/ieee754/ldbl-128/e_exp10l.c
+++ b/sysdeps/ieee754/ldbl-128/e_exp10l.c
@@ -35,6 +35,8 @@ __ieee754_exp10l (long double arg)
return LDBL_MIN * LDBL_MIN;
else if (arg > LDBL_MAX_10_EXP + 1)
return LDBL_MAX * LDBL_MAX;
+ else if (fabsl (arg) < 0x1p-116L)
+ return 1.0L;
u.value = arg;
u.parts64.lsw &= 0xfe00000000000000LL;
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_exp10l.c b/sysdeps/ieee754/ldbl-128ibm/e_exp10l.c
index 5c68eb5..a0e8a3e 100644
--- a/sysdeps/ieee754/ldbl-128ibm/e_exp10l.c
+++ b/sysdeps/ieee754/ldbl-128ibm/e_exp10l.c
@@ -35,6 +35,8 @@ __ieee754_exp10l (long double arg)
return LDBL_MIN * LDBL_MIN;
else if (arg > LDBL_MAX_10_EXP + 1)
return LDBL_MAX * LDBL_MAX;
+ else if (fabsl (arg) < 0x1p-109L)
+ return 1.0L;
u.ld = arg;
arg_high = u.d[0].d;
diff --git a/sysdeps/x86_64/fpu/libm-test-ulps b/sysdeps/x86_64/fpu/libm-test-ulps
index 5469887..f68650d 100644
--- a/sysdeps/x86_64/fpu/libm-test-ulps
+++ b/sysdeps/x86_64/fpu/libm-test-ulps
@@ -1407,7 +1407,9 @@ ldouble: 1
Function: "exp10_downward":
double: 1
+float: 1
idouble: 1
+ifloat: 1
ildouble: 2
ldouble: 2
@@ -1419,7 +1421,9 @@ ldouble: 1
Function: "exp10_towardzero":
double: 1
+float: 1
idouble: 1
+ifloat: 1
ildouble: 1
ldouble: 1
@@ -1765,13 +1769,17 @@ ldouble: 1
Function: "pow10_downward":
double: 1
+float: 1
idouble: 1
+ifloat: 1
ildouble: 2
ldouble: 2
Function: "pow10_towardzero":
double: 1
+float: 1
idouble: 1
+ifloat: 1
ildouble: 1
ldouble: 1