This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch master updated. glibc-2.19-234-g03a7091


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  03a7091fa2afc84e215fc99fceca52baa4b0f8f1 (commit)
      from  dd3022d75e6fb8957843d6d84257a5d8457822d5 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=03a7091fa2afc84e215fc99fceca52baa4b0f8f1

commit 03a7091fa2afc84e215fc99fceca52baa4b0f8f1
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Thu Mar 27 18:41:14 2014 +0000

    Fix x86/x86_64 expl/exp10l spurious underflows (bug 16348).
    
    This patch fixes bug 16348, spurious underflows from x86/x86_64 expl
    on arguments close to 0.  These implementations effectively use expm1
    (on the fractional part of the argument) internally, so resulting in
    spurious underflows when the result is very close to 1.  For arguments
    small enough that the round-to-nearest correct result is 1, this patch
    uses 1+x instead.
    
    These implementations are also used for exp10l and so the patch fixes
    similar issues there (the 0x1p-67 threshold being small enough to be
    correct for exp10l as well as expl).  But because of spurious
    underflows in other exp10 implementations (bug 16560), the tests
    aren't added for exp10 at this point - they can be added when the
    other exp10 parts of that bug are fixed.
    
    Tested x86_64 and x86; no ulps updates needed.
    
    	[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.

diff --git a/ChangeLog b/ChangeLog
index 796978d..95733b5 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 afe4021..a9cc5cb 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 7c80192..7ad407c 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 1dadc38..64dc911 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 5917f57..eb4086b 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 36d30c2..338527b 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

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                   |   10 +
 NEWS                        |   10 +-
 math/auto-libm-test-in      |   18 ++
 math/auto-libm-test-out     |  666 +++++++++++++++++++++++++++++++++++++++++++
 sysdeps/i386/fpu/e_expl.S   |   10 +-
 sysdeps/x86_64/fpu/e_expl.S |   10 +-
 6 files changed, 715 insertions(+), 9 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]