diff options
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | NEWS | 10 | ||||
-rw-r--r-- | math/auto-libm-test-in | 18 | ||||
-rw-r--r-- | math/auto-libm-test-out | 666 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_expl.S | 10 | ||||
-rw-r--r-- | sysdeps/x86_64/fpu/e_expl.S | 10 |
6 files changed, 715 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog index 796978df45..95733b5620 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2014-03-27 Joseph Myers <joseph@codesourcery.com> + + [BZ #16348] + * sysdeps/i386/fpu/e_expl.S (IEEE754_EXPL) [!USE_AS_EXPM1L]: Use + 1+x for argument with exponent below -67. + * sysdeps/x86_64/fpu/e_expl.S (IEEE754_EXPL) [!USE_AS_EXPM1L]: + Likewise. + * math/auto-libm-test-in: Add more tests of exp. + * math/auto-libm-test-out: Regenerated. + 2014-03-27 Siddhesh Poyarekar <siddhesh@redhat.com> [BZ #16759] diff --git a/NEWS b/NEWS index afe4021337..a9cc5cb6ab 100644 --- a/NEWS +++ b/NEWS @@ -9,11 +9,11 @@ Version 2.20 * The following bugs are resolved with this release: - 15347, 15804, 15894, 16002, 16198, 16284, 16357, 16447, 16532, 16545, - 16574, 16599, 16600, 16609, 16610, 16611, 16613, 16623, 16632, 16634, - 16639, 16642, 16649, 16670, 16674, 16677, 16680, 16683, 16689, 16695, - 16701, 16706, 16707, 16712, 16713, 16714, 16731, 16743, 16758, 16759, - 16760. + 15347, 15804, 15894, 16002, 16198, 16284, 16348, 16357, 16447, 16532, + 16545, 16574, 16599, 16600, 16609, 16610, 16611, 16613, 16623, 16632, + 16634, 16639, 16642, 16649, 16670, 16674, 16677, 16680, 16683, 16689, + 16695, 16701, 16706, 16707, 16712, 16713, 16714, 16731, 16743, 16758, + 16759, 16760. * Running the testsuite no longer terminates as soon as a test fails. Instead, a file tests.sum (xtests.sum from "make xcheck") is generated, diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in index 7c80192ccd..7ad407c238 100644 --- a/math/auto-libm-test-in +++ b/math/auto-libm-test-in @@ -843,6 +843,24 @@ exp -7.4444006192138124e+02 exp -0x1.75f113c30b1c8p+9 exp -max exp -11342.8125 +exp 0x1p-10 +exp -0x1p-10 +exp 0x1p-20 +exp -0x1p-20 +exp 0x1p-30 +exp -0x1p-30 +exp 0x1p-40 +exp -0x1p-40 +exp 0x1p-50 +exp -0x1p-50 +exp 0x1p-60 +exp -0x1p-60 +exp 0x1p-100 +exp -0x1p-100 +exp min +exp -min +exp min_subnorm +exp -min_subnorm exp10 0 exp10 -0 diff --git a/math/auto-libm-test-out b/math/auto-libm-test-out index 1dadc38c6c..64dc911e97 100644 --- a/math/auto-libm-test-out +++ b/math/auto-libm-test-out @@ -89391,6 +89391,672 @@ exp -11342.8125 = exp tonearest ldbl-128ibm -0x2.c4edp+12L : 0x0p+0L : inexact-ok underflow errno-erange = exp towardzero ldbl-128ibm -0x2.c4edp+12L : 0x0p+0L : inexact-ok underflow errno-erange = exp upward ldbl-128ibm -0x2.c4edp+12L : 0x4p-1076L : inexact-ok underflow errno-erange-ok +exp 0x1p-10 += exp downward flt-32 0x4p-12f : 0x1.004008p+0f : inexact-ok += exp tonearest flt-32 0x4p-12f : 0x1.004008p+0f : inexact-ok += exp towardzero flt-32 0x4p-12f : 0x1.004008p+0f : inexact-ok += exp upward flt-32 0x4p-12f : 0x1.00400ap+0f : inexact-ok += exp downward dbl-64 0x4p-12 : 0x1.00400800aab55p+0 : inexact-ok += exp tonearest dbl-64 0x4p-12 : 0x1.00400800aab55p+0 : inexact-ok += exp towardzero dbl-64 0x4p-12 : 0x1.00400800aab55p+0 : inexact-ok += exp upward dbl-64 0x4p-12 : 0x1.00400800aab56p+0 : inexact-ok += exp downward ldbl-96-intel 0x4p-12L : 0x1.00400800aab555dcp+0L : inexact-ok += exp tonearest ldbl-96-intel 0x4p-12L : 0x1.00400800aab555dep+0L : inexact-ok += exp towardzero ldbl-96-intel 0x4p-12L : 0x1.00400800aab555dcp+0L : inexact-ok += exp upward ldbl-96-intel 0x4p-12L : 0x1.00400800aab555dep+0L : inexact-ok += exp downward ldbl-96-m68k 0x4p-12L : 0x1.00400800aab555dcp+0L : inexact-ok += exp tonearest ldbl-96-m68k 0x4p-12L : 0x1.00400800aab555dep+0L : inexact-ok += exp towardzero ldbl-96-m68k 0x4p-12L : 0x1.00400800aab555dcp+0L : inexact-ok += exp upward ldbl-96-m68k 0x4p-12L : 0x1.00400800aab555dep+0L : inexact-ok += exp downward ldbl-128 0x4p-12L : 0x1.00400800aab555dde38e6ce86e92p+0L : inexact-ok += exp tonearest ldbl-128 0x4p-12L : 0x1.00400800aab555dde38e6ce86e92p+0L : inexact-ok += exp towardzero ldbl-128 0x4p-12L : 0x1.00400800aab555dde38e6ce86e92p+0L : inexact-ok += exp upward ldbl-128 0x4p-12L : 0x1.00400800aab555dde38e6ce86e93p+0L : inexact-ok += exp downward ldbl-128ibm 0x4p-12L : 0x1.00400800aab555dde38e6ce86e8p+0L : inexact-ok += exp tonearest ldbl-128ibm 0x4p-12L : 0x1.00400800aab555dde38e6ce86e8p+0L : inexact-ok += exp towardzero ldbl-128ibm 0x4p-12L : 0x1.00400800aab555dde38e6ce86e8p+0L : inexact-ok += exp upward ldbl-128ibm 0x4p-12L : 0x1.00400800aab555dde38e6ce86fp+0L : inexact-ok +exp -0x1p-10 += exp downward flt-32 -0x4p-12f : 0xf.fc007p-4f : inexact-ok += exp tonearest flt-32 -0x4p-12f : 0xf.fc008p-4f : inexact-ok += exp towardzero flt-32 -0x4p-12f : 0xf.fc007p-4f : inexact-ok += exp upward flt-32 -0x4p-12f : 0xf.fc008p-4f : inexact-ok += exp downward dbl-64 -0x4p-12 : 0xf.fc007ff555ff8p-4 : inexact-ok += exp tonearest dbl-64 -0x4p-12 : 0xf.fc007ff556p-4 : inexact-ok += exp towardzero dbl-64 -0x4p-12 : 0xf.fc007ff555ff8p-4 : inexact-ok += exp upward dbl-64 -0x4p-12 : 0xf.fc007ff556p-4 : inexact-ok += exp downward ldbl-96-intel -0x4p-12L : 0xf.fc007ff555fff77p-4L : inexact-ok += exp tonearest ldbl-96-intel -0x4p-12L : 0xf.fc007ff555fff77p-4L : inexact-ok += exp towardzero ldbl-96-intel -0x4p-12L : 0xf.fc007ff555fff77p-4L : inexact-ok += exp upward ldbl-96-intel -0x4p-12L : 0xf.fc007ff555fff78p-4L : inexact-ok += exp downward ldbl-96-m68k -0x4p-12L : 0xf.fc007ff555fff77p-4L : inexact-ok += exp tonearest ldbl-96-m68k -0x4p-12L : 0xf.fc007ff555fff77p-4L : inexact-ok += exp towardzero ldbl-96-m68k -0x4p-12L : 0xf.fc007ff555fff77p-4L : inexact-ok += exp upward ldbl-96-m68k -0x4p-12L : 0xf.fc007ff555fff78p-4L : inexact-ok += exp downward ldbl-128 -0x4p-12L : 0xf.fc007ff555fff777d279e7b87ac8p-4L : inexact-ok += exp tonearest ldbl-128 -0x4p-12L : 0xf.fc007ff555fff777d279e7b87adp-4L : inexact-ok += exp towardzero ldbl-128 -0x4p-12L : 0xf.fc007ff555fff777d279e7b87ac8p-4L : inexact-ok += exp upward ldbl-128 -0x4p-12L : 0xf.fc007ff555fff777d279e7b87adp-4L : inexact-ok += exp downward ldbl-128ibm -0x4p-12L : 0xf.fc007ff555fff777d279e7b878p-4L : inexact-ok += exp tonearest ldbl-128ibm -0x4p-12L : 0xf.fc007ff555fff777d279e7b87cp-4L : inexact-ok += exp towardzero ldbl-128ibm -0x4p-12L : 0xf.fc007ff555fff777d279e7b878p-4L : inexact-ok += exp upward ldbl-128ibm -0x4p-12L : 0xf.fc007ff555fff777d279e7b87cp-4L : inexact-ok +exp 0x1p-20 += exp downward flt-32 0x1p-20f : 0x1.00001p+0f : inexact-ok += exp tonearest flt-32 0x1p-20f : 0x1.00001p+0f : inexact-ok += exp towardzero flt-32 0x1p-20f : 0x1.00001p+0f : inexact-ok += exp upward flt-32 0x1p-20f : 0x1.000012p+0f : inexact-ok += exp downward dbl-64 0x1p-20 : 0x1.00001000008p+0 : inexact-ok += exp tonearest dbl-64 0x1p-20 : 0x1.00001000008p+0 : inexact-ok += exp towardzero dbl-64 0x1p-20 : 0x1.00001000008p+0 : inexact-ok += exp upward dbl-64 0x1p-20 : 0x1.0000100000801p+0 : inexact-ok += exp downward ldbl-96-intel 0x1p-20L : 0x1.0000100000800002p+0L : inexact-ok += exp tonearest ldbl-96-intel 0x1p-20L : 0x1.0000100000800002p+0L : inexact-ok += exp towardzero ldbl-96-intel 0x1p-20L : 0x1.0000100000800002p+0L : inexact-ok += exp upward ldbl-96-intel 0x1p-20L : 0x1.0000100000800004p+0L : inexact-ok += exp downward ldbl-96-m68k 0x1p-20L : 0x1.0000100000800002p+0L : inexact-ok += exp tonearest ldbl-96-m68k 0x1p-20L : 0x1.0000100000800002p+0L : inexact-ok += exp towardzero ldbl-96-m68k 0x1p-20L : 0x1.0000100000800002p+0L : inexact-ok += exp upward ldbl-96-m68k 0x1p-20L : 0x1.0000100000800004p+0L : inexact-ok += exp downward ldbl-128 0x1p-20L : 0x1.0000100000800002aaaab5555577p+0L : inexact-ok += exp tonearest ldbl-128 0x1p-20L : 0x1.0000100000800002aaaab5555577p+0L : inexact-ok += exp towardzero ldbl-128 0x1p-20L : 0x1.0000100000800002aaaab5555577p+0L : inexact-ok += exp upward ldbl-128 0x1p-20L : 0x1.0000100000800002aaaab5555578p+0L : inexact-ok += exp downward ldbl-128ibm 0x1p-20L : 0x1.0000100000800002aaaab55555p+0L : inexact-ok += exp tonearest ldbl-128ibm 0x1p-20L : 0x1.0000100000800002aaaab555558p+0L : inexact-ok += exp towardzero ldbl-128ibm 0x1p-20L : 0x1.0000100000800002aaaab55555p+0L : inexact-ok += exp upward ldbl-128ibm 0x1p-20L : 0x1.0000100000800002aaaab555558p+0L : inexact-ok +exp -0x1p-20 += exp downward flt-32 -0x1p-20f : 0xf.ffffp-4f : inexact-ok += exp tonearest flt-32 -0x1p-20f : 0xf.ffffp-4f : inexact-ok += exp towardzero flt-32 -0x1p-20f : 0xf.ffffp-4f : inexact-ok += exp upward flt-32 -0x1p-20f : 0xf.ffff1p-4f : inexact-ok += exp downward dbl-64 -0x1p-20 : 0xf.ffff000007ff8p-4 : inexact-ok += exp tonearest dbl-64 -0x1p-20 : 0xf.ffff000008p-4 : inexact-ok += exp towardzero dbl-64 -0x1p-20 : 0xf.ffff000007ff8p-4 : inexact-ok += exp upward dbl-64 -0x1p-20 : 0xf.ffff000008p-4 : inexact-ok += exp downward ldbl-96-intel -0x1p-20L : 0xf.ffff000007ffffdp-4L : inexact-ok += exp tonearest ldbl-96-intel -0x1p-20L : 0xf.ffff000007ffffdp-4L : inexact-ok += exp towardzero ldbl-96-intel -0x1p-20L : 0xf.ffff000007ffffdp-4L : inexact-ok += exp upward ldbl-96-intel -0x1p-20L : 0xf.ffff000007ffffep-4L : inexact-ok += exp downward ldbl-96-m68k -0x1p-20L : 0xf.ffff000007ffffdp-4L : inexact-ok += exp tonearest ldbl-96-m68k -0x1p-20L : 0xf.ffff000007ffffdp-4L : inexact-ok += exp towardzero ldbl-96-m68k -0x1p-20L : 0xf.ffff000007ffffdp-4L : inexact-ok += exp upward ldbl-96-m68k -0x1p-20L : 0xf.ffff000007ffffep-4L : inexact-ok += exp downward ldbl-128 -0x1p-20L : 0xf.ffff000007ffffd55555fffffdd8p-4L : inexact-ok += exp tonearest ldbl-128 -0x1p-20L : 0xf.ffff000007ffffd55555fffffdep-4L : inexact-ok += exp towardzero ldbl-128 -0x1p-20L : 0xf.ffff000007ffffd55555fffffdd8p-4L : inexact-ok += exp upward ldbl-128 -0x1p-20L : 0xf.ffff000007ffffd55555fffffdep-4L : inexact-ok += exp downward ldbl-128ibm -0x1p-20L : 0xf.ffff000007ffffd55555fffffcp-4L : inexact-ok += exp tonearest ldbl-128ibm -0x1p-20L : 0xf.ffff000007ffffd55555fffffcp-4L : inexact-ok += exp towardzero ldbl-128ibm -0x1p-20L : 0xf.ffff000007ffffd55555fffffcp-4L : inexact-ok += exp upward ldbl-128ibm -0x1p-20L : 0xf.ffff000007ffffd55556p-4L : inexact-ok +exp 0x1p-30 += exp downward flt-32 0x4p-32f : 0x1p+0f : inexact-ok += exp tonearest flt-32 0x4p-32f : 0x1p+0f : inexact-ok += exp towardzero flt-32 0x4p-32f : 0x1p+0f : inexact-ok += exp upward flt-32 0x4p-32f : 0x1.000002p+0f : inexact-ok += exp downward dbl-64 0x4p-32 : 0x1.00000004p+0 : inexact-ok += exp tonearest dbl-64 0x4p-32 : 0x1.00000004p+0 : inexact-ok += exp towardzero dbl-64 0x4p-32 : 0x1.00000004p+0 : inexact-ok += exp upward dbl-64 0x4p-32 : 0x1.0000000400001p+0 : inexact-ok += exp downward ldbl-96-intel 0x4p-32L : 0x1.0000000400000008p+0L : inexact-ok += exp tonearest ldbl-96-intel 0x4p-32L : 0x1.0000000400000008p+0L : inexact-ok += exp towardzero ldbl-96-intel 0x4p-32L : 0x1.0000000400000008p+0L : inexact-ok += exp upward ldbl-96-intel 0x4p-32L : 0x1.000000040000000ap+0L : inexact-ok += exp downward ldbl-96-m68k 0x4p-32L : 0x1.0000000400000008p+0L : inexact-ok += exp tonearest ldbl-96-m68k 0x4p-32L : 0x1.0000000400000008p+0L : inexact-ok += exp towardzero ldbl-96-m68k 0x4p-32L : 0x1.0000000400000008p+0L : inexact-ok += exp upward ldbl-96-m68k 0x4p-32L : 0x1.000000040000000ap+0L : inexact-ok += exp downward ldbl-128 0x4p-32L : 0x1.00000004000000080000000aaaaap+0L : inexact-ok += exp tonearest ldbl-128 0x4p-32L : 0x1.00000004000000080000000aaaabp+0L : inexact-ok += exp towardzero ldbl-128 0x4p-32L : 0x1.00000004000000080000000aaaaap+0L : inexact-ok += exp upward ldbl-128 0x4p-32L : 0x1.00000004000000080000000aaaabp+0L : inexact-ok += exp downward ldbl-128ibm 0x4p-32L : 0x1.00000004000000080000000aaa8p+0L : inexact-ok += exp tonearest ldbl-128ibm 0x4p-32L : 0x1.00000004000000080000000aaa8p+0L : inexact-ok += exp towardzero ldbl-128ibm 0x4p-32L : 0x1.00000004000000080000000aaa8p+0L : inexact-ok += exp upward ldbl-128ibm 0x4p-32L : 0x1.00000004000000080000000aabp+0L : inexact-ok +exp -0x1p-30 += exp downward flt-32 -0x4p-32f : 0xf.fffffp-4f : inexact-ok += exp tonearest flt-32 -0x4p-32f : 0x1p+0f : inexact-ok += exp towardzero flt-32 -0x4p-32f : 0xf.fffffp-4f : inexact-ok += exp upward flt-32 -0x4p-32f : 0x1p+0f : inexact-ok += exp downward dbl-64 -0x4p-32 : 0xf.ffffffcp-4 : inexact-ok += exp tonearest dbl-64 -0x4p-32 : 0xf.ffffffcp-4 : inexact-ok += exp towardzero dbl-64 -0x4p-32 : 0xf.ffffffcp-4 : inexact-ok += exp upward dbl-64 -0x4p-32 : 0xf.ffffffc000008p-4 : inexact-ok += exp downward ldbl-96-intel -0x4p-32L : 0xf.ffffffc00000007p-4L : inexact-ok += exp tonearest ldbl-96-intel -0x4p-32L : 0xf.ffffffc00000008p-4L : inexact-ok += exp towardzero ldbl-96-intel -0x4p-32L : 0xf.ffffffc00000007p-4L : inexact-ok += exp upward ldbl-96-intel -0x4p-32L : 0xf.ffffffc00000008p-4L : inexact-ok += exp downward ldbl-96-m68k -0x4p-32L : 0xf.ffffffc00000007p-4L : inexact-ok += exp tonearest ldbl-96-m68k -0x4p-32L : 0xf.ffffffc00000008p-4L : inexact-ok += exp towardzero ldbl-96-m68k -0x4p-32L : 0xf.ffffffc00000007p-4L : inexact-ok += exp upward ldbl-96-m68k -0x4p-32L : 0xf.ffffffc00000008p-4L : inexact-ok += exp downward ldbl-128 -0x4p-32L : 0xf.ffffffc00000007fffffff55555p-4L : inexact-ok += exp tonearest ldbl-128 -0x4p-32L : 0xf.ffffffc00000007fffffff555558p-4L : inexact-ok += exp towardzero ldbl-128 -0x4p-32L : 0xf.ffffffc00000007fffffff55555p-4L : inexact-ok += exp upward ldbl-128 -0x4p-32L : 0xf.ffffffc00000007fffffff555558p-4L : inexact-ok += exp downward ldbl-128ibm -0x4p-32L : 0xf.ffffffc00000007fffffff5554p-4L : inexact-ok += exp tonearest ldbl-128ibm -0x4p-32L : 0xf.ffffffc00000007fffffff5554p-4L : inexact-ok += exp towardzero ldbl-128ibm -0x4p-32L : 0xf.ffffffc00000007fffffff5554p-4L : inexact-ok += exp upward ldbl-128ibm -0x4p-32L : 0xf.ffffffc00000007fffffff5558p-4L : inexact-ok +exp 0x1p-40 += exp downward flt-32 0x1p-40f : 0x1p+0f : inexact-ok += exp tonearest flt-32 0x1p-40f : 0x1p+0f : inexact-ok += exp towardzero flt-32 0x1p-40f : 0x1p+0f : inexact-ok += exp upward flt-32 0x1p-40f : 0x1.000002p+0f : inexact-ok += exp downward dbl-64 0x1p-40 : 0x1.0000000001p+0 : inexact-ok += exp tonearest dbl-64 0x1p-40 : 0x1.0000000001p+0 : inexact-ok += exp towardzero dbl-64 0x1p-40 : 0x1.0000000001p+0 : inexact-ok += exp upward dbl-64 0x1p-40 : 0x1.0000000001001p+0 : inexact-ok += exp downward ldbl-96-intel 0x1p-40L : 0x1.0000000001p+0L : inexact-ok += exp tonearest ldbl-96-intel 0x1p-40L : 0x1.0000000001p+0L : inexact-ok += exp towardzero ldbl-96-intel 0x1p-40L : 0x1.0000000001p+0L : inexact-ok += exp upward ldbl-96-intel 0x1p-40L : 0x1.0000000001000002p+0L : inexact-ok += exp downward ldbl-96-m68k 0x1p-40L : 0x1.0000000001p+0L : inexact-ok += exp tonearest ldbl-96-m68k 0x1p-40L : 0x1.0000000001p+0L : inexact-ok += exp towardzero ldbl-96-m68k 0x1p-40L : 0x1.0000000001p+0L : inexact-ok += exp upward ldbl-96-m68k 0x1p-40L : 0x1.0000000001000002p+0L : inexact-ok += exp downward ldbl-128 0x1p-40L : 0x1.000000000100000000008p+0L : inexact-ok += exp tonearest ldbl-128 0x1p-40L : 0x1.000000000100000000008p+0L : inexact-ok += exp towardzero ldbl-128 0x1p-40L : 0x1.000000000100000000008p+0L : inexact-ok += exp upward ldbl-128 0x1p-40L : 0x1.0000000001000000000080000001p+0L : inexact-ok += exp downward ldbl-128ibm 0x1p-40L : 0x1.000000000100000000008p+0L : inexact-ok += exp tonearest ldbl-128ibm 0x1p-40L : 0x1.000000000100000000008p+0L : inexact-ok += exp towardzero ldbl-128ibm 0x1p-40L : 0x1.000000000100000000008p+0L : inexact-ok += exp upward ldbl-128ibm 0x1p-40L : 0x1.000000000100000000008000008p+0L : inexact-ok +exp -0x1p-40 += exp downward flt-32 -0x1p-40f : 0xf.fffffp-4f : inexact-ok += exp tonearest flt-32 -0x1p-40f : 0x1p+0f : inexact-ok += exp towardzero flt-32 -0x1p-40f : 0xf.fffffp-4f : inexact-ok += exp upward flt-32 -0x1p-40f : 0x1p+0f : inexact-ok += exp downward dbl-64 -0x1p-40 : 0xf.fffffffffp-4 : inexact-ok += exp tonearest dbl-64 -0x1p-40 : 0xf.fffffffffp-4 : inexact-ok += exp towardzero dbl-64 -0x1p-40 : 0xf.fffffffffp-4 : inexact-ok += exp upward dbl-64 -0x1p-40 : 0xf.fffffffff0008p-4 : inexact-ok += exp downward ldbl-96-intel -0x1p-40L : 0xf.fffffffffp-4L : inexact-ok += exp tonearest ldbl-96-intel -0x1p-40L : 0xf.fffffffffp-4L : inexact-ok += exp towardzero ldbl-96-intel -0x1p-40L : 0xf.fffffffffp-4L : inexact-ok += exp upward ldbl-96-intel -0x1p-40L : 0xf.fffffffff000001p-4L : inexact-ok += exp downward ldbl-96-m68k -0x1p-40L : 0xf.fffffffffp-4L : inexact-ok += exp tonearest ldbl-96-m68k -0x1p-40L : 0xf.fffffffffp-4L : inexact-ok += exp towardzero ldbl-96-m68k -0x1p-40L : 0xf.fffffffffp-4L : inexact-ok += exp upward ldbl-96-m68k -0x1p-40L : 0xf.fffffffff000001p-4L : inexact-ok += exp downward ldbl-128 -0x1p-40L : 0xf.fffffffff00000000007fffffff8p-4L : inexact-ok += exp tonearest ldbl-128 -0x1p-40L : 0xf.fffffffff00000000008p-4L : inexact-ok += exp towardzero ldbl-128 -0x1p-40L : 0xf.fffffffff00000000007fffffff8p-4L : inexact-ok += exp upward ldbl-128 -0x1p-40L : 0xf.fffffffff00000000008p-4L : inexact-ok += exp downward ldbl-128ibm -0x1p-40L : 0xf.fffffffff00000000007fffffcp-4L : inexact-ok += exp tonearest ldbl-128ibm -0x1p-40L : 0xf.fffffffff00000000008p-4L : inexact-ok += exp towardzero ldbl-128ibm -0x1p-40L : 0xf.fffffffff00000000007fffffcp-4L : inexact-ok += exp upward ldbl-128ibm -0x1p-40L : 0xf.fffffffff00000000008p-4L : inexact-ok +exp 0x1p-50 += exp downward flt-32 0x4p-52f : 0x1p+0f : inexact-ok += exp tonearest flt-32 0x4p-52f : 0x1p+0f : inexact-ok += exp towardzero flt-32 0x4p-52f : 0x1p+0f : inexact-ok += exp upward flt-32 0x4p-52f : 0x1.000002p+0f : inexact-ok += exp downward dbl-64 0x4p-52 : 0x1.0000000000004p+0 : inexact-ok += exp tonearest dbl-64 0x4p-52 : 0x1.0000000000004p+0 : inexact-ok += exp towardzero dbl-64 0x4p-52 : 0x1.0000000000004p+0 : inexact-ok += exp upward dbl-64 0x4p-52 : 0x1.0000000000005p+0 : inexact-ok += exp downward ldbl-96-intel 0x4p-52L : 0x1.0000000000004p+0L : inexact-ok += exp tonearest ldbl-96-intel 0x4p-52L : 0x1.0000000000004p+0L : inexact-ok += exp towardzero ldbl-96-intel 0x4p-52L : 0x1.0000000000004p+0L : inexact-ok += exp upward ldbl-96-intel 0x4p-52L : 0x1.0000000000004002p+0L : inexact-ok += exp downward ldbl-96-m68k 0x4p-52L : 0x1.0000000000004p+0L : inexact-ok += exp tonearest ldbl-96-m68k 0x4p-52L : 0x1.0000000000004p+0L : inexact-ok += exp towardzero ldbl-96-m68k 0x4p-52L : 0x1.0000000000004p+0L : inexact-ok += exp upward ldbl-96-m68k 0x4p-52L : 0x1.0000000000004002p+0L : inexact-ok += exp downward ldbl-128 0x4p-52L : 0x1.00000000000040000000000008p+0L : inexact-ok += exp tonearest ldbl-128 0x4p-52L : 0x1.00000000000040000000000008p+0L : inexact-ok += exp towardzero ldbl-128 0x4p-52L : 0x1.00000000000040000000000008p+0L : inexact-ok += exp upward ldbl-128 0x4p-52L : 0x1.0000000000004000000000000801p+0L : inexact-ok += exp downward ldbl-128ibm 0x4p-52L : 0x1.00000000000040000000000008p+0L : inexact-ok += exp tonearest ldbl-128ibm 0x4p-52L : 0x1.00000000000040000000000008p+0L : inexact-ok += exp towardzero ldbl-128ibm 0x4p-52L : 0x1.00000000000040000000000008p+0L : inexact-ok += exp upward ldbl-128ibm 0x4p-52L : 0x1.000000000000400000000000088p+0L : inexact-ok +exp -0x1p-50 += exp downward flt-32 -0x4p-52f : 0xf.fffffp-4f : inexact-ok += exp tonearest flt-32 -0x4p-52f : 0x1p+0f : inexact-ok += exp towardzero flt-32 -0x4p-52f : 0xf.fffffp-4f : inexact-ok += exp upward flt-32 -0x4p-52f : 0x1p+0f : inexact-ok += exp downward dbl-64 -0x4p-52 : 0xf.fffffffffffcp-4 : inexact-ok += exp tonearest dbl-64 -0x4p-52 : 0xf.fffffffffffcp-4 : inexact-ok += exp towardzero dbl-64 -0x4p-52 : 0xf.fffffffffffcp-4 : inexact-ok += exp upward dbl-64 -0x4p-52 : 0xf.fffffffffffc8p-4 : inexact-ok += exp downward ldbl-96-intel -0x4p-52L : 0xf.fffffffffffcp-4L : inexact-ok += exp tonearest ldbl-96-intel -0x4p-52L : 0xf.fffffffffffcp-4L : inexact-ok += exp towardzero ldbl-96-intel -0x4p-52L : 0xf.fffffffffffcp-4L : inexact-ok += exp upward ldbl-96-intel -0x4p-52L : 0xf.fffffffffffc001p-4L : inexact-ok += exp downward ldbl-96-m68k -0x4p-52L : 0xf.fffffffffffcp-4L : inexact-ok += exp tonearest ldbl-96-m68k -0x4p-52L : 0xf.fffffffffffcp-4L : inexact-ok += exp towardzero ldbl-96-m68k -0x4p-52L : 0xf.fffffffffffcp-4L : inexact-ok += exp upward ldbl-96-m68k -0x4p-52L : 0xf.fffffffffffc001p-4L : inexact-ok += exp downward ldbl-128 -0x4p-52L : 0xf.fffffffffffc0000000000007ff8p-4L : inexact-ok += exp tonearest ldbl-128 -0x4p-52L : 0xf.fffffffffffc0000000000008p-4L : inexact-ok += exp towardzero ldbl-128 -0x4p-52L : 0xf.fffffffffffc0000000000007ff8p-4L : inexact-ok += exp upward ldbl-128 -0x4p-52L : 0xf.fffffffffffc0000000000008p-4L : inexact-ok += exp downward ldbl-128ibm -0x4p-52L : 0xf.fffffffffffc0000000000007cp-4L : inexact-ok += exp tonearest ldbl-128ibm -0x4p-52L : 0xf.fffffffffffc0000000000008p-4L : inexact-ok += exp towardzero ldbl-128ibm -0x4p-52L : 0xf.fffffffffffc0000000000007cp-4L : inexact-ok += exp upward ldbl-128ibm -0x4p-52L : 0xf.fffffffffffc0000000000008p-4L : inexact-ok +exp 0x1p-60 += exp downward flt-32 0x1p-60f : 0x1p+0f : inexact-ok += exp tonearest flt-32 0x1p-60f : 0x1p+0f : inexact-ok += exp towardzero flt-32 0x1p-60f : 0x1p+0f : inexact-ok += exp upward flt-32 0x1p-60f : 0x1.000002p+0f : inexact-ok += exp downward dbl-64 0x1p-60 : 0x1p+0 : inexact-ok += exp tonearest dbl-64 0x1p-60 : 0x1p+0 : inexact-ok += exp towardzero dbl-64 0x1p-60 : 0x1p+0 : inexact-ok += exp upward dbl-64 0x1p-60 : 0x1.0000000000001p+0 : inexact-ok += exp downward ldbl-96-intel 0x1p-60L : 0x1.000000000000001p+0L : inexact-ok += exp tonearest ldbl-96-intel 0x1p-60L : 0x1.000000000000001p+0L : inexact-ok += exp towardzero ldbl-96-intel 0x1p-60L : 0x1.000000000000001p+0L : inexact-ok += exp upward ldbl-96-intel 0x1p-60L : 0x1.0000000000000012p+0L : inexact-ok += exp downward ldbl-96-m68k 0x1p-60L : 0x1.000000000000001p+0L : inexact-ok += exp tonearest ldbl-96-m68k 0x1p-60L : 0x1.000000000000001p+0L : inexact-ok += exp towardzero ldbl-96-m68k 0x1p-60L : 0x1.000000000000001p+0L : inexact-ok += exp upward ldbl-96-m68k 0x1p-60L : 0x1.0000000000000012p+0L : inexact-ok += exp downward ldbl-128 0x1p-60L : 0x1.000000000000001p+0L : inexact-ok += exp tonearest ldbl-128 0x1p-60L : 0x1.000000000000001p+0L : inexact-ok += exp towardzero ldbl-128 0x1p-60L : 0x1.000000000000001p+0L : inexact-ok += exp upward ldbl-128 0x1p-60L : 0x1.0000000000000010000000000001p+0L : inexact-ok += exp downward ldbl-128ibm 0x1p-60L : 0x1.000000000000001p+0L : inexact-ok += exp tonearest ldbl-128ibm 0x1p-60L : 0x1.000000000000001p+0L : inexact-ok += exp towardzero ldbl-128ibm 0x1p-60L : 0x1.000000000000001p+0L : inexact-ok += exp upward ldbl-128ibm 0x1p-60L : 0x1.000000000000001000000000008p+0L : inexact-ok +exp -0x1p-60 += exp downward flt-32 -0x1p-60f : 0xf.fffffp-4f : inexact-ok += exp tonearest flt-32 -0x1p-60f : 0x1p+0f : inexact-ok += exp towardzero flt-32 -0x1p-60f : 0xf.fffffp-4f : inexact-ok += exp upward flt-32 -0x1p-60f : 0x1p+0f : inexact-ok += exp downward dbl-64 -0x1p-60 : 0xf.ffffffffffff8p-4 : inexact-ok += exp tonearest dbl-64 -0x1p-60 : 0x1p+0 : inexact-ok += exp towardzero dbl-64 -0x1p-60 : 0xf.ffffffffffff8p-4 : inexact-ok += exp upward dbl-64 -0x1p-60 : 0x1p+0 : inexact-ok += exp downward ldbl-96-intel -0x1p-60L : 0xf.ffffffffffffffp-4L : inexact-ok += exp tonearest ldbl-96-intel -0x1p-60L : 0xf.ffffffffffffffp-4L : inexact-ok += exp towardzero ldbl-96-intel -0x1p-60L : 0xf.ffffffffffffffp-4L : inexact-ok += exp upward ldbl-96-intel -0x1p-60L : 0xf.ffffffffffffff1p-4L : inexact-ok += exp downward ldbl-96-m68k -0x1p-60L : 0xf.ffffffffffffffp-4L : inexact-ok += exp tonearest ldbl-96-m68k -0x1p-60L : 0xf.ffffffffffffffp-4L : inexact-ok += exp towardzero ldbl-96-m68k -0x1p-60L : 0xf.ffffffffffffffp-4L : inexact-ok += exp upward ldbl-96-m68k -0x1p-60L : 0xf.ffffffffffffff1p-4L : inexact-ok += exp downward ldbl-128 -0x1p-60L : 0xf.ffffffffffffffp-4L : inexact-ok += exp tonearest ldbl-128 -0x1p-60L : 0xf.ffffffffffffffp-4L : inexact-ok += exp towardzero ldbl-128 -0x1p-60L : 0xf.ffffffffffffffp-4L : inexact-ok += exp upward ldbl-128 -0x1p-60L : 0xf.ffffffffffffff00000000000008p-4L : inexact-ok += exp downward ldbl-128ibm -0x1p-60L : 0xf.ffffffffffffffp-4L : inexact-ok += exp tonearest ldbl-128ibm -0x1p-60L : 0xf.ffffffffffffffp-4L : inexact-ok += exp towardzero ldbl-128ibm -0x1p-60L : 0xf.ffffffffffffffp-4L : inexact-ok += exp upward ldbl-128ibm -0x1p-60L : 0xf.ffffffffffffff000000000004p-4L : inexact-ok +exp 0x1p-100 += exp downward flt-32 0x1p-100f : 0x1p+0f : inexact-ok += exp tonearest flt-32 0x1p-100f : 0x1p+0f : inexact-ok += exp towardzero flt-32 0x1p-100f : 0x1p+0f : inexact-ok += exp upward flt-32 0x1p-100f : 0x1.000002p+0f : inexact-ok += exp downward dbl-64 0x1p-100 : 0x1p+0 : inexact-ok += exp tonearest dbl-64 0x1p-100 : 0x1p+0 : inexact-ok += exp towardzero dbl-64 0x1p-100 : 0x1p+0 : inexact-ok += exp upward dbl-64 0x1p-100 : 0x1.0000000000001p+0 : inexact-ok += exp downward ldbl-96-intel 0x1p-100L : 0x1p+0L : inexact-ok += exp tonearest ldbl-96-intel 0x1p-100L : 0x1p+0L : inexact-ok += exp towardzero ldbl-96-intel 0x1p-100L : 0x1p+0L : inexact-ok += exp upward ldbl-96-intel 0x1p-100L : 0x1.0000000000000002p+0L : inexact-ok += exp downward ldbl-96-m68k 0x1p-100L : 0x1p+0L : inexact-ok += exp tonearest ldbl-96-m68k 0x1p-100L : 0x1p+0L : inexact-ok += exp towardzero ldbl-96-m68k 0x1p-100L : 0x1p+0L : inexact-ok += exp upward ldbl-96-m68k 0x1p-100L : 0x1.0000000000000002p+0L : inexact-ok += exp downward ldbl-128 0x1p-100L : 0x1.0000000000000000000000001p+0L : inexact-ok += exp tonearest ldbl-128 0x1p-100L : 0x1.0000000000000000000000001p+0L : inexact-ok += exp towardzero ldbl-128 0x1p-100L : 0x1.0000000000000000000000001p+0L : inexact-ok += exp upward ldbl-128 0x1p-100L : 0x1.0000000000000000000000001001p+0L : inexact-ok += exp downward ldbl-128ibm 0x1p-100L : 0x1.0000000000000000000000001p+0L : inexact-ok += exp tonearest ldbl-128ibm 0x1p-100L : 0x1.0000000000000000000000001p+0L : inexact-ok += exp towardzero ldbl-128ibm 0x1p-100L : 0x1.0000000000000000000000001p+0L : inexact-ok += exp upward ldbl-128ibm 0x1p-100L : 0x1.000000000000000000000000108p+0L : inexact-ok +exp -0x1p-100 += exp downward flt-32 -0x1p-100f : 0xf.fffffp-4f : inexact-ok += exp tonearest flt-32 -0x1p-100f : 0x1p+0f : inexact-ok += exp towardzero flt-32 -0x1p-100f : 0xf.fffffp-4f : inexact-ok += exp upward flt-32 -0x1p-100f : 0x1p+0f : inexact-ok += exp downward dbl-64 -0x1p-100 : 0xf.ffffffffffff8p-4 : inexact-ok += exp tonearest dbl-64 -0x1p-100 : 0x1p+0 : inexact-ok += exp towardzero dbl-64 -0x1p-100 : 0xf.ffffffffffff8p-4 : inexact-ok += exp upward dbl-64 -0x1p-100 : 0x1p+0 : inexact-ok += exp downward ldbl-96-intel -0x1p-100L : 0xf.fffffffffffffffp-4L : inexact-ok += exp tonearest ldbl-96-intel -0x1p-100L : 0x1p+0L : inexact-ok += exp towardzero ldbl-96-intel -0x1p-100L : 0xf.fffffffffffffffp-4L : inexact-ok += exp upward ldbl-96-intel -0x1p-100L : 0x1p+0L : inexact-ok += exp downward ldbl-96-m68k -0x1p-100L : 0xf.fffffffffffffffp-4L : inexact-ok += exp tonearest ldbl-96-m68k -0x1p-100L : 0x1p+0L : inexact-ok += exp towardzero ldbl-96-m68k -0x1p-100L : 0xf.fffffffffffffffp-4L : inexact-ok += exp upward ldbl-96-m68k -0x1p-100L : 0x1p+0L : inexact-ok += exp downward ldbl-128 -0x1p-100L : 0xf.ffffffffffffffffffffffffp-4L : inexact-ok += exp tonearest ldbl-128 -0x1p-100L : 0xf.ffffffffffffffffffffffffp-4L : inexact-ok += exp towardzero ldbl-128 -0x1p-100L : 0xf.ffffffffffffffffffffffffp-4L : inexact-ok += exp upward ldbl-128 -0x1p-100L : 0xf.ffffffffffffffffffffffff0008p-4L : inexact-ok += exp downward ldbl-128ibm -0x1p-100L : 0xf.ffffffffffffffffffffffffp-4L : inexact-ok += exp tonearest ldbl-128ibm -0x1p-100L : 0xf.ffffffffffffffffffffffffp-4L : inexact-ok += exp towardzero ldbl-128ibm -0x1p-100L : 0xf.ffffffffffffffffffffffffp-4L : inexact-ok += exp upward ldbl-128ibm -0x1p-100L : 0xf.ffffffffffffffffffffffff04p-4L : inexact-ok +exp min += exp downward flt-32 0x4p-128f : 0x1p+0f : inexact-ok += exp tonearest flt-32 0x4p-128f : 0x1p+0f : inexact-ok += exp towardzero flt-32 0x4p-128f : 0x1p+0f : inexact-ok += exp upward flt-32 0x4p-128f : 0x1.000002p+0f : inexact-ok += exp downward dbl-64 0x4p-128 : 0x1p+0 : inexact-ok += exp tonearest dbl-64 0x4p-128 : 0x1p+0 : inexact-ok += exp towardzero dbl-64 0x4p-128 : 0x1p+0 : inexact-ok += exp upward dbl-64 0x4p-128 : 0x1.0000000000001p+0 : inexact-ok += exp downward ldbl-96-intel 0x4p-128L : 0x1p+0L : inexact-ok += exp tonearest ldbl-96-intel 0x4p-128L : 0x1p+0L : inexact-ok += exp towardzero ldbl-96-intel 0x4p-128L : 0x1p+0L : inexact-ok += exp upward ldbl-96-intel 0x4p-128L : 0x1.0000000000000002p+0L : inexact-ok += exp downward ldbl-96-m68k 0x4p-128L : 0x1p+0L : inexact-ok += exp tonearest ldbl-96-m68k 0x4p-128L : 0x1p+0L : inexact-ok += exp towardzero ldbl-96-m68k 0x4p-128L : 0x1p+0L : inexact-ok += exp upward ldbl-96-m68k 0x4p-128L : 0x1.0000000000000002p+0L : inexact-ok += exp downward ldbl-128 0x4p-128L : 0x1p+0L : inexact-ok += exp tonearest ldbl-128 0x4p-128L : 0x1p+0L : inexact-ok += exp towardzero ldbl-128 0x4p-128L : 0x1p+0L : inexact-ok += exp upward ldbl-128 0x4p-128L : 0x1.0000000000000000000000000001p+0L : inexact-ok += exp downward ldbl-128ibm 0x4p-128L : 0x1p+0L : inexact-ok += exp tonearest ldbl-128ibm 0x4p-128L : 0x1p+0L : inexact-ok += exp towardzero ldbl-128ibm 0x4p-128L : 0x1p+0L : inexact-ok += exp upward ldbl-128ibm 0x4p-128L : 0x1.000000000000000000000000008p+0L : inexact-ok += exp downward dbl-64 0x4p-1024 : 0x1p+0 : inexact-ok += exp tonearest dbl-64 0x4p-1024 : 0x1p+0 : inexact-ok += exp towardzero dbl-64 0x4p-1024 : 0x1p+0 : inexact-ok += exp upward dbl-64 0x4p-1024 : 0x1.0000000000001p+0 : inexact-ok += exp downward ldbl-96-intel 0x4p-1024L : 0x1p+0L : inexact-ok += exp tonearest ldbl-96-intel 0x4p-1024L : 0x1p+0L : inexact-ok += exp towardzero ldbl-96-intel 0x4p-1024L : 0x1p+0L : inexact-ok += exp upward ldbl-96-intel 0x4p-1024L : 0x1.0000000000000002p+0L : inexact-ok += exp downward ldbl-96-m68k 0x4p-1024L : 0x1p+0L : inexact-ok += exp tonearest ldbl-96-m68k 0x4p-1024L : 0x1p+0L : inexact-ok += exp towardzero ldbl-96-m68k 0x4p-1024L : 0x1p+0L : inexact-ok += exp upward ldbl-96-m68k 0x4p-1024L : 0x1.0000000000000002p+0L : inexact-ok += exp downward ldbl-128 0x4p-1024L : 0x1p+0L : inexact-ok += exp tonearest ldbl-128 0x4p-1024L : 0x1p+0L : inexact-ok += exp towardzero ldbl-128 0x4p-1024L : 0x1p+0L : inexact-ok += exp upward ldbl-128 0x4p-1024L : 0x1.0000000000000000000000000001p+0L : inexact-ok += exp downward ldbl-128ibm 0x4p-1024L : 0x1p+0L : inexact-ok += exp tonearest ldbl-128ibm 0x4p-1024L : 0x1p+0L : inexact-ok += exp towardzero ldbl-128ibm 0x4p-1024L : 0x1p+0L : inexact-ok += exp upward ldbl-128ibm 0x4p-1024L : 0x1.000000000000000000000000008p+0L : inexact-ok += exp downward ldbl-96-intel 0x4p-16384L : 0x1p+0L : inexact-ok += exp tonearest ldbl-96-intel 0x4p-16384L : 0x1p+0L : inexact-ok += exp towardzero ldbl-96-intel 0x4p-16384L : 0x1p+0L : inexact-ok += exp upward ldbl-96-intel 0x4p-16384L : 0x1.0000000000000002p+0L : inexact-ok += exp downward ldbl-96-m68k 0x4p-16384L : 0x1p+0L : inexact-ok += exp tonearest ldbl-96-m68k 0x4p-16384L : 0x1p+0L : inexact-ok += exp towardzero ldbl-96-m68k 0x4p-16384L : 0x1p+0L : inexact-ok += exp upward ldbl-96-m68k 0x4p-16384L : 0x1.0000000000000002p+0L : inexact-ok += exp downward ldbl-128 0x4p-16384L : 0x1p+0L : inexact-ok += exp tonearest ldbl-128 0x4p-16384L : 0x1p+0L : inexact-ok += exp towardzero ldbl-128 0x4p-16384L : 0x1p+0L : inexact-ok += exp upward ldbl-128 0x4p-16384L : 0x1.0000000000000000000000000001p+0L : inexact-ok += exp downward ldbl-96-intel 0x2p-16384L : 0x1p+0L : inexact-ok += exp tonearest ldbl-96-intel 0x2p-16384L : 0x1p+0L : inexact-ok += exp towardzero ldbl-96-intel 0x2p-16384L : 0x1p+0L : inexact-ok += exp upward ldbl-96-intel 0x2p-16384L : 0x1.0000000000000002p+0L : inexact-ok += exp downward ldbl-96-m68k 0x2p-16384L : 0x1p+0L : inexact-ok += exp tonearest ldbl-96-m68k 0x2p-16384L : 0x1p+0L : inexact-ok += exp towardzero ldbl-96-m68k 0x2p-16384L : 0x1p+0L : inexact-ok += exp upward ldbl-96-m68k 0x2p-16384L : 0x1.0000000000000002p+0L : inexact-ok += exp downward ldbl-128 0x2p-16384L : 0x1p+0L : inexact-ok += exp tonearest ldbl-128 0x2p-16384L : 0x1p+0L : inexact-ok += exp towardzero ldbl-128 0x2p-16384L : 0x1p+0L : inexact-ok += exp upward ldbl-128 0x2p-16384L : 0x1.0000000000000000000000000001p+0L : inexact-ok += exp downward dbl-64 0x8p-972 : 0x1p+0 : inexact-ok += exp tonearest dbl-64 0x8p-972 : 0x1p+0 : inexact-ok += exp towardzero dbl-64 0x8p-972 : 0x1p+0 : inexact-ok += exp upward dbl-64 0x8p-972 : 0x1.0000000000001p+0 : inexact-ok += exp downward ldbl-96-intel 0x8p-972L : 0x1p+0L : inexact-ok += exp tonearest ldbl-96-intel 0x8p-972L : 0x1p+0L : inexact-ok += exp towardzero ldbl-96-intel 0x8p-972L : 0x1p+0L : inexact-ok += exp upward ldbl-96-intel 0x8p-972L : 0x1.0000000000000002p+0L : inexact-ok += exp downward ldbl-96-m68k 0x8p-972L : 0x1p+0L : inexact-ok += exp tonearest ldbl-96-m68k 0x8p-972L : 0x1p+0L : inexact-ok += exp towardzero ldbl-96-m68k 0x8p-972L : 0x1p+0L : inexact-ok += exp upward ldbl-96-m68k 0x8p-972L : 0x1.0000000000000002p+0L : inexact-ok += exp downward ldbl-128 0x8p-972L : 0x1p+0L : inexact-ok += exp tonearest ldbl-128 0x8p-972L : 0x1p+0L : inexact-ok += exp towardzero ldbl-128 0x8p-972L : 0x1p+0L : inexact-ok += exp upward ldbl-128 0x8p-972L : 0x1.0000000000000000000000000001p+0L : inexact-ok += exp downward ldbl-128ibm 0x8p-972L : 0x1p+0L : inexact-ok += exp tonearest ldbl-128ibm 0x8p-972L : 0x1p+0L : inexact-ok += exp towardzero ldbl-128ibm 0x8p-972L : 0x1p+0L : inexact-ok += exp upward ldbl-128ibm 0x8p-972L : 0x1.000000000000000000000000008p+0L : inexact-ok +exp -min += exp downward flt-32 -0x4p-128f : 0xf.fffffp-4f : inexact-ok += exp tonearest flt-32 -0x4p-128f : 0x1p+0f : inexact-ok += exp towardzero flt-32 -0x4p-128f : 0xf.fffffp-4f : inexact-ok += exp upward flt-32 -0x4p-128f : 0x1p+0f : inexact-ok += exp downward dbl-64 -0x4p-128 : 0xf.ffffffffffff8p-4 : inexact-ok += exp tonearest dbl-64 -0x4p-128 : 0x1p+0 : inexact-ok += exp towardzero dbl-64 -0x4p-128 : 0xf.ffffffffffff8p-4 : inexact-ok += exp upward dbl-64 -0x4p-128 : 0x1p+0 : inexact-ok += exp downward ldbl-96-intel -0x4p-128L : 0xf.fffffffffffffffp-4L : inexact-ok += exp tonearest ldbl-96-intel -0x4p-128L : 0x1p+0L : inexact-ok += exp towardzero ldbl-96-intel -0x4p-128L : 0xf.fffffffffffffffp-4L : inexact-ok += exp upward ldbl-96-intel -0x4p-128L : 0x1p+0L : inexact-ok += exp downward ldbl-96-m68k -0x4p-128L : 0xf.fffffffffffffffp-4L : inexact-ok += exp tonearest ldbl-96-m68k -0x4p-128L : 0x1p+0L : inexact-ok += exp towardzero ldbl-96-m68k -0x4p-128L : 0xf.fffffffffffffffp-4L : inexact-ok += exp upward ldbl-96-m68k -0x4p-128L : 0x1p+0L : inexact-ok += exp downward ldbl-128 -0x4p-128L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok += exp tonearest ldbl-128 -0x4p-128L : 0x1p+0L : inexact-ok += exp towardzero ldbl-128 -0x4p-128L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok += exp upward ldbl-128 -0x4p-128L : 0x1p+0L : inexact-ok += exp downward ldbl-128ibm -0x4p-128L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok += exp tonearest ldbl-128ibm -0x4p-128L : 0x1p+0L : inexact-ok += exp towardzero ldbl-128ibm -0x4p-128L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok += exp upward ldbl-128ibm -0x4p-128L : 0x1p+0L : inexact-ok += exp downward dbl-64 -0x4p-1024 : 0xf.ffffffffffff8p-4 : inexact-ok += exp tonearest dbl-64 -0x4p-1024 : 0x1p+0 : inexact-ok += exp towardzero dbl-64 -0x4p-1024 : 0xf.ffffffffffff8p-4 : inexact-ok += exp upward dbl-64 -0x4p-1024 : 0x1p+0 : inexact-ok += exp downward ldbl-96-intel -0x4p-1024L : 0xf.fffffffffffffffp-4L : inexact-ok += exp tonearest ldbl-96-intel -0x4p-1024L : 0x1p+0L : inexact-ok += exp towardzero ldbl-96-intel -0x4p-1024L : 0xf.fffffffffffffffp-4L : inexact-ok += exp upward ldbl-96-intel -0x4p-1024L : 0x1p+0L : inexact-ok += exp downward ldbl-96-m68k -0x4p-1024L : 0xf.fffffffffffffffp-4L : inexact-ok += exp tonearest ldbl-96-m68k -0x4p-1024L : 0x1p+0L : inexact-ok += exp towardzero ldbl-96-m68k -0x4p-1024L : 0xf.fffffffffffffffp-4L : inexact-ok += exp upward ldbl-96-m68k -0x4p-1024L : 0x1p+0L : inexact-ok += exp downward ldbl-128 -0x4p-1024L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok += exp tonearest ldbl-128 -0x4p-1024L : 0x1p+0L : inexact-ok += exp towardzero ldbl-128 -0x4p-1024L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok += exp upward ldbl-128 -0x4p-1024L : 0x1p+0L : inexact-ok += exp downward ldbl-128ibm -0x4p-1024L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok += exp tonearest ldbl-128ibm -0x4p-1024L : 0x1p+0L : inexact-ok += exp towardzero ldbl-128ibm -0x4p-1024L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok += exp upward ldbl-128ibm -0x4p-1024L : 0x1p+0L : inexact-ok += exp downward ldbl-96-intel -0x4p-16384L : 0xf.fffffffffffffffp-4L : inexact-ok += exp tonearest ldbl-96-intel -0x4p-16384L : 0x1p+0L : inexact-ok += exp towardzero ldbl-96-intel -0x4p-16384L : 0xf.fffffffffffffffp-4L : inexact-ok += exp upward ldbl-96-intel -0x4p-16384L : 0x1p+0L : inexact-ok += exp downward ldbl-96-m68k -0x4p-16384L : 0xf.fffffffffffffffp-4L : inexact-ok += exp tonearest ldbl-96-m68k -0x4p-16384L : 0x1p+0L : inexact-ok += exp towardzero ldbl-96-m68k -0x4p-16384L : 0xf.fffffffffffffffp-4L : inexact-ok += exp upward ldbl-96-m68k -0x4p-16384L : 0x1p+0L : inexact-ok += exp downward ldbl-128 -0x4p-16384L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok += exp tonearest ldbl-128 -0x4p-16384L : 0x1p+0L : inexact-ok += exp towardzero ldbl-128 -0x4p-16384L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok += exp upward ldbl-128 -0x4p-16384L : 0x1p+0L : inexact-ok += exp downward ldbl-96-intel -0x2p-16384L : 0xf.fffffffffffffffp-4L : inexact-ok += exp tonearest ldbl-96-intel -0x2p-16384L : 0x1p+0L : inexact-ok += exp towardzero ldbl-96-intel -0x2p-16384L : 0xf.fffffffffffffffp-4L : inexact-ok += exp upward ldbl-96-intel -0x2p-16384L : 0x1p+0L : inexact-ok += exp downward ldbl-96-m68k -0x2p-16384L : 0xf.fffffffffffffffp-4L : inexact-ok += exp tonearest ldbl-96-m68k -0x2p-16384L : 0x1p+0L : inexact-ok += exp towardzero ldbl-96-m68k -0x2p-16384L : 0xf.fffffffffffffffp-4L : inexact-ok += exp upward ldbl-96-m68k -0x2p-16384L : 0x1p+0L : inexact-ok += exp downward ldbl-128 -0x2p-16384L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok += exp tonearest ldbl-128 -0x2p-16384L : 0x1p+0L : inexact-ok += exp towardzero ldbl-128 -0x2p-16384L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok += exp upward ldbl-128 -0x2p-16384L : 0x1p+0L : inexact-ok += exp downward dbl-64 -0x8p-972 : 0xf.ffffffffffff8p-4 : inexact-ok += exp tonearest dbl-64 -0x8p-972 : 0x1p+0 : inexact-ok += exp towardzero dbl-64 -0x8p-972 : 0xf.ffffffffffff8p-4 : inexact-ok += exp upward dbl-64 -0x8p-972 : 0x1p+0 : inexact-ok += exp downward ldbl-96-intel -0x8p-972L : 0xf.fffffffffffffffp-4L : inexact-ok += exp tonearest ldbl-96-intel -0x8p-972L : 0x1p+0L : inexact-ok += exp towardzero ldbl-96-intel -0x8p-972L : 0xf.fffffffffffffffp-4L : inexact-ok += exp upward ldbl-96-intel -0x8p-972L : 0x1p+0L : inexact-ok += exp downward ldbl-96-m68k -0x8p-972L : 0xf.fffffffffffffffp-4L : inexact-ok += exp tonearest ldbl-96-m68k -0x8p-972L : 0x1p+0L : inexact-ok += exp towardzero ldbl-96-m68k -0x8p-972L : 0xf.fffffffffffffffp-4L : inexact-ok += exp upward ldbl-96-m68k -0x8p-972L : 0x1p+0L : inexact-ok += exp downward ldbl-128 -0x8p-972L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok += exp tonearest ldbl-128 -0x8p-972L : 0x1p+0L : inexact-ok += exp towardzero ldbl-128 -0x8p-972L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok += exp upward ldbl-128 -0x8p-972L : 0x1p+0L : inexact-ok += exp downward ldbl-128ibm -0x8p-972L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok += exp tonearest ldbl-128ibm -0x8p-972L : 0x1p+0L : inexact-ok += exp towardzero ldbl-128ibm -0x8p-972L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok += exp upward ldbl-128ibm -0x8p-972L : 0x1p+0L : inexact-ok +exp min_subnorm += exp downward flt-32 0x8p-152f : 0x1p+0f : inexact-ok += exp tonearest flt-32 0x8p-152f : 0x1p+0f : inexact-ok += exp towardzero flt-32 0x8p-152f : 0x1p+0f : inexact-ok += exp upward flt-32 0x8p-152f : 0x1.000002p+0f : inexact-ok += exp downward dbl-64 0x8p-152 : 0x1p+0 : inexact-ok += exp tonearest dbl-64 0x8p-152 : 0x1p+0 : inexact-ok += exp towardzero dbl-64 0x8p-152 : 0x1p+0 : inexact-ok += exp upward dbl-64 0x8p-152 : 0x1.0000000000001p+0 : inexact-ok += exp downward ldbl-96-intel 0x8p-152L : 0x1p+0L : inexact-ok += exp tonearest ldbl-96-intel 0x8p-152L : 0x1p+0L : inexact-ok += exp towardzero ldbl-96-intel 0x8p-152L : 0x1p+0L : inexact-ok += exp upward ldbl-96-intel 0x8p-152L : 0x1.0000000000000002p+0L : inexact-ok += exp downward ldbl-96-m68k 0x8p-152L : 0x1p+0L : inexact-ok += exp tonearest ldbl-96-m68k 0x8p-152L : 0x1p+0L : inexact-ok += exp towardzero ldbl-96-m68k 0x8p-152L : 0x1p+0L : inexact-ok += exp upward ldbl-96-m68k 0x8p-152L : 0x1.0000000000000002p+0L : inexact-ok += exp downward ldbl-128 0x8p-152L : 0x1p+0L : inexact-ok += exp tonearest ldbl-128 0x8p-152L : 0x1p+0L : inexact-ok += exp towardzero ldbl-128 0x8p-152L : 0x1p+0L : inexact-ok += exp upward ldbl-128 0x8p-152L : 0x1.0000000000000000000000000001p+0L : inexact-ok += exp downward ldbl-128ibm 0x8p-152L : 0x1p+0L : inexact-ok += exp tonearest ldbl-128ibm 0x8p-152L : 0x1p+0L : inexact-ok += exp towardzero ldbl-128ibm 0x8p-152L : 0x1p+0L : inexact-ok += exp upward ldbl-128ibm 0x8p-152L : 0x1.000000000000000000000000008p+0L : inexact-ok += exp downward dbl-64 0x4p-1076 : 0x1p+0 : inexact-ok += exp tonearest dbl-64 0x4p-1076 : 0x1p+0 : inexact-ok += exp towardzero dbl-64 0x4p-1076 : 0x1p+0 : inexact-ok += exp upward dbl-64 0x4p-1076 : 0x1.0000000000001p+0 : inexact-ok += exp downward ldbl-96-intel 0x4p-1076L : 0x1p+0L : inexact-ok += exp tonearest ldbl-96-intel 0x4p-1076L : 0x1p+0L : inexact-ok += exp towardzero ldbl-96-intel 0x4p-1076L : 0x1p+0L : inexact-ok += exp upward ldbl-96-intel 0x4p-1076L : 0x1.0000000000000002p+0L : inexact-ok += exp downward ldbl-96-m68k 0x4p-1076L : 0x1p+0L : inexact-ok += exp tonearest ldbl-96-m68k 0x4p-1076L : 0x1p+0L : inexact-ok += exp towardzero ldbl-96-m68k 0x4p-1076L : 0x1p+0L : inexact-ok += exp upward ldbl-96-m68k 0x4p-1076L : 0x1.0000000000000002p+0L : inexact-ok += exp downward ldbl-128 0x4p-1076L : 0x1p+0L : inexact-ok += exp tonearest ldbl-128 0x4p-1076L : 0x1p+0L : inexact-ok += exp towardzero ldbl-128 0x4p-1076L : 0x1p+0L : inexact-ok += exp upward ldbl-128 0x4p-1076L : 0x1.0000000000000000000000000001p+0L : inexact-ok += exp downward ldbl-128ibm 0x4p-1076L : 0x1p+0L : inexact-ok += exp tonearest ldbl-128ibm 0x4p-1076L : 0x1p+0L : inexact-ok += exp towardzero ldbl-128ibm 0x4p-1076L : 0x1p+0L : inexact-ok += exp upward ldbl-128ibm 0x4p-1076L : 0x1.000000000000000000000000008p+0L : inexact-ok += exp downward ldbl-96-intel 0x8p-16448L : 0x1p+0L : inexact-ok += exp tonearest ldbl-96-intel 0x8p-16448L : 0x1p+0L : inexact-ok += exp towardzero ldbl-96-intel 0x8p-16448L : 0x1p+0L : inexact-ok += exp upward ldbl-96-intel 0x8p-16448L : 0x1.0000000000000002p+0L : inexact-ok += exp downward ldbl-96-m68k 0x8p-16448L : 0x1p+0L : inexact-ok += exp tonearest ldbl-96-m68k 0x8p-16448L : 0x1p+0L : inexact-ok += exp towardzero ldbl-96-m68k 0x8p-16448L : 0x1p+0L : inexact-ok += exp upward ldbl-96-m68k 0x8p-16448L : 0x1.0000000000000002p+0L : inexact-ok += exp downward ldbl-128 0x8p-16448L : 0x1p+0L : inexact-ok += exp tonearest ldbl-128 0x8p-16448L : 0x1p+0L : inexact-ok += exp towardzero ldbl-128 0x8p-16448L : 0x1p+0L : inexact-ok += exp upward ldbl-128 0x8p-16448L : 0x1.0000000000000000000000000001p+0L : inexact-ok += exp downward ldbl-96-m68k 0x4p-16448L : 0x1p+0L : inexact-ok += exp tonearest ldbl-96-m68k 0x4p-16448L : 0x1p+0L : inexact-ok += exp towardzero ldbl-96-m68k 0x4p-16448L : 0x1p+0L : inexact-ok += exp upward ldbl-96-m68k 0x4p-16448L : 0x1.0000000000000002p+0L : inexact-ok += exp downward ldbl-128 0x4p-16448L : 0x1p+0L : inexact-ok += exp tonearest ldbl-128 0x4p-16448L : 0x1p+0L : inexact-ok += exp towardzero ldbl-128 0x4p-16448L : 0x1p+0L : inexact-ok += exp upward ldbl-128 0x4p-16448L : 0x1.0000000000000000000000000001p+0L : inexact-ok += exp downward ldbl-128 0x4p-16496L : 0x1p+0L : inexact-ok += exp tonearest ldbl-128 0x4p-16496L : 0x1p+0L : inexact-ok += exp towardzero ldbl-128 0x4p-16496L : 0x1p+0L : inexact-ok += exp upward ldbl-128 0x4p-16496L : 0x1.0000000000000000000000000001p+0L : inexact-ok +exp -min_subnorm += exp downward flt-32 -0x8p-152f : 0xf.fffffp-4f : inexact-ok += exp tonearest flt-32 -0x8p-152f : 0x1p+0f : inexact-ok += exp towardzero flt-32 -0x8p-152f : 0xf.fffffp-4f : inexact-ok += exp upward flt-32 -0x8p-152f : 0x1p+0f : inexact-ok += exp downward dbl-64 -0x8p-152 : 0xf.ffffffffffff8p-4 : inexact-ok += exp tonearest dbl-64 -0x8p-152 : 0x1p+0 : inexact-ok += exp towardzero dbl-64 -0x8p-152 : 0xf.ffffffffffff8p-4 : inexact-ok += exp upward dbl-64 -0x8p-152 : 0x1p+0 : inexact-ok += exp downward ldbl-96-intel -0x8p-152L : 0xf.fffffffffffffffp-4L : inexact-ok += exp tonearest ldbl-96-intel -0x8p-152L : 0x1p+0L : inexact-ok += exp towardzero ldbl-96-intel -0x8p-152L : 0xf.fffffffffffffffp-4L : inexact-ok += exp upward ldbl-96-intel -0x8p-152L : 0x1p+0L : inexact-ok += exp downward ldbl-96-m68k -0x8p-152L : 0xf.fffffffffffffffp-4L : inexact-ok += exp tonearest ldbl-96-m68k -0x8p-152L : 0x1p+0L : inexact-ok += exp towardzero ldbl-96-m68k -0x8p-152L : 0xf.fffffffffffffffp-4L : inexact-ok += exp upward ldbl-96-m68k -0x8p-152L : 0x1p+0L : inexact-ok += exp downward ldbl-128 -0x8p-152L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok += exp tonearest ldbl-128 -0x8p-152L : 0x1p+0L : inexact-ok += exp towardzero ldbl-128 -0x8p-152L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok += exp upward ldbl-128 -0x8p-152L : 0x1p+0L : inexact-ok += exp downward ldbl-128ibm -0x8p-152L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok += exp tonearest ldbl-128ibm -0x8p-152L : 0x1p+0L : inexact-ok += exp towardzero ldbl-128ibm -0x8p-152L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok += exp upward ldbl-128ibm -0x8p-152L : 0x1p+0L : inexact-ok += exp downward dbl-64 -0x4p-1076 : 0xf.ffffffffffff8p-4 : inexact-ok += exp tonearest dbl-64 -0x4p-1076 : 0x1p+0 : inexact-ok += exp towardzero dbl-64 -0x4p-1076 : 0xf.ffffffffffff8p-4 : inexact-ok += exp upward dbl-64 -0x4p-1076 : 0x1p+0 : inexact-ok += exp downward ldbl-96-intel -0x4p-1076L : 0xf.fffffffffffffffp-4L : inexact-ok += exp tonearest ldbl-96-intel -0x4p-1076L : 0x1p+0L : inexact-ok += exp towardzero ldbl-96-intel -0x4p-1076L : 0xf.fffffffffffffffp-4L : inexact-ok += exp upward ldbl-96-intel -0x4p-1076L : 0x1p+0L : inexact-ok += exp downward ldbl-96-m68k -0x4p-1076L : 0xf.fffffffffffffffp-4L : inexact-ok += exp tonearest ldbl-96-m68k -0x4p-1076L : 0x1p+0L : inexact-ok += exp towardzero ldbl-96-m68k -0x4p-1076L : 0xf.fffffffffffffffp-4L : inexact-ok += exp upward ldbl-96-m68k -0x4p-1076L : 0x1p+0L : inexact-ok += exp downward ldbl-128 -0x4p-1076L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok += exp tonearest ldbl-128 -0x4p-1076L : 0x1p+0L : inexact-ok += exp towardzero ldbl-128 -0x4p-1076L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok += exp upward ldbl-128 -0x4p-1076L : 0x1p+0L : inexact-ok += exp downward ldbl-128ibm -0x4p-1076L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok += exp tonearest ldbl-128ibm -0x4p-1076L : 0x1p+0L : inexact-ok += exp towardzero ldbl-128ibm -0x4p-1076L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok += exp upward ldbl-128ibm -0x4p-1076L : 0x1p+0L : inexact-ok += exp downward ldbl-96-intel -0x8p-16448L : 0xf.fffffffffffffffp-4L : inexact-ok += exp tonearest ldbl-96-intel -0x8p-16448L : 0x1p+0L : inexact-ok += exp towardzero ldbl-96-intel -0x8p-16448L : 0xf.fffffffffffffffp-4L : inexact-ok += exp upward ldbl-96-intel -0x8p-16448L : 0x1p+0L : inexact-ok += exp downward ldbl-96-m68k -0x8p-16448L : 0xf.fffffffffffffffp-4L : inexact-ok += exp tonearest ldbl-96-m68k -0x8p-16448L : 0x1p+0L : inexact-ok += exp towardzero ldbl-96-m68k -0x8p-16448L : 0xf.fffffffffffffffp-4L : inexact-ok += exp upward ldbl-96-m68k -0x8p-16448L : 0x1p+0L : inexact-ok += exp downward ldbl-128 -0x8p-16448L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok += exp tonearest ldbl-128 -0x8p-16448L : 0x1p+0L : inexact-ok += exp towardzero ldbl-128 -0x8p-16448L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok += exp upward ldbl-128 -0x8p-16448L : 0x1p+0L : inexact-ok += exp downward ldbl-96-m68k -0x4p-16448L : 0xf.fffffffffffffffp-4L : inexact-ok += exp tonearest ldbl-96-m68k -0x4p-16448L : 0x1p+0L : inexact-ok += exp towardzero ldbl-96-m68k -0x4p-16448L : 0xf.fffffffffffffffp-4L : inexact-ok += exp upward ldbl-96-m68k -0x4p-16448L : 0x1p+0L : inexact-ok += exp downward ldbl-128 -0x4p-16448L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok += exp tonearest ldbl-128 -0x4p-16448L : 0x1p+0L : inexact-ok += exp towardzero ldbl-128 -0x4p-16448L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok += exp upward ldbl-128 -0x4p-16448L : 0x1p+0L : inexact-ok += exp downward ldbl-128 -0x4p-16496L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok += exp tonearest ldbl-128 -0x4p-16496L : 0x1p+0L : inexact-ok += exp towardzero ldbl-128 -0x4p-16496L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok += exp upward ldbl-128 -0x4p-16496L : 0x1p+0L : inexact-ok exp10 0 = exp10 downward flt-32 0x0p+0f : 0x1p+0f : inexact-ok = exp10 tonearest flt-32 0x0p+0f : 0x1p+0f : inexact-ok diff --git a/sysdeps/i386/fpu/e_expl.S b/sysdeps/i386/fpu/e_expl.S index 5917f574b1..eb4086b3f5 100644 --- a/sysdeps/i386/fpu/e_expl.S +++ b/sysdeps/i386/fpu/e_expl.S @@ -112,8 +112,14 @@ ENTRY(IEEE754_EXPL) movzwl 4+8(%esp), %eax andl $0x7fff, %eax cmpl $0x400d, %eax - jle 3f - /* Overflow, underflow or infinity or NaN as argument. */ + jg 5f + cmpl $0x3fbc, %eax + jge 3f + /* Argument's exponent below -67, result rounds to 1. */ + fld1 + faddp + jmp 2f +5: /* Overflow, underflow or infinity or NaN as argument. */ fstsw %ax movb $0x45, %dh andb %ah, %dh diff --git a/sysdeps/x86_64/fpu/e_expl.S b/sysdeps/x86_64/fpu/e_expl.S index 36d30c26d3..338527b3de 100644 --- a/sysdeps/x86_64/fpu/e_expl.S +++ b/sysdeps/x86_64/fpu/e_expl.S @@ -109,8 +109,14 @@ ENTRY(IEEE754_EXPL) movzwl 8+8(%rsp), %eax andl $0x7fff, %eax cmpl $0x400d, %eax - jle 3f - /* Overflow, underflow or infinity or NaN as argument. */ + jg 5f + cmpl $0x3fbc, %eax + jge 3f + /* Argument's exponent below -67, result rounds to 1. */ + fld1 + faddp + jmp 2f +5: /* Overflow, underflow or infinity or NaN as argument. */ fstsw %ax movb $0x45, %dh andb %ah, %dh |