This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch master updated. glibc-2.21-507-g7540cfc
- From: jsm28 at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 21 Jun 2015 17:48:29 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.21-507-g7540cfc
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 7540cfc5a8c39eca9ba7b631dd30b35f6530f54d (commit)
from d6cc0b4feaacf7514167cde0b3935f0c9b2c2d88 (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=7540cfc5a8c39eca9ba7b631dd30b35f6530f54d
commit 7540cfc5a8c39eca9ba7b631dd30b35f6530f54d
Author: Joseph Myers <joseph@codesourcery.com>
Date: Sun Jun 21 17:48:04 2015 +0000
Fix x86 / x86_64 expl, exp10l missing underflows (bug 16361).
Similar to various other bugs in this area, the x86 and x86_64
implementations of expl / exp10l can fail to produce underflow
exceptions when the unscaled result has trailing 0 bits so the scaling
down to subnormal precision is exact. This patch fixes this by
forcing the exception in the case of tiny results.
Tested for x86_64 and x86.
[BZ #16361]
* sysdeps/i386/fpu/e_expl.S [!USE_AS_EXPM1L] (cmin): New object.
[!USE_AS_EXPM1L] (IEEE754_EXPL): Force underflow exception for
tiny results.
* sysdeps/x86_64/fpu/e_expl.S [!USE_AS_EXPM1L] (cmin): New object.
[!USE_AS_EXPM1L] (IEEE754_EXPL): Force underflow exception for
tiny results.
* math/auto-libm-test-in: Add more tests of exp and exp10. Do not
mark underflow exceptions as possibly missing for bug 16361.
* math/auto-libm-test-out: Regenerated.
diff --git a/ChangeLog b/ChangeLog
index 50a336f..3503f3c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2015-06-21 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #16361]
+ * sysdeps/i386/fpu/e_expl.S [!USE_AS_EXPM1L] (cmin): New object.
+ [!USE_AS_EXPM1L] (IEEE754_EXPL): Force underflow exception for
+ tiny results.
+ * sysdeps/x86_64/fpu/e_expl.S [!USE_AS_EXPM1L] (cmin): New object.
+ [!USE_AS_EXPM1L] (IEEE754_EXPL): Force underflow exception for
+ tiny results.
+ * math/auto-libm-test-in: Add more tests of exp and exp10. Do not
+ mark underflow exceptions as possibly missing for bug 16361.
+ * math/auto-libm-test-out: Regenerated.
+
2015-06-19 Joseph Myers <joseph@codesourcery.com>
* conform/data/sys/select.h-data [XOPEN2K8] (pselect): Expect.
diff --git a/NEWS b/NEWS
index 4194e5a..e4a17c3 100644
--- a/NEWS
+++ b/NEWS
@@ -10,20 +10,20 @@ Version 2.22
* The following bugs are resolved with this release:
438, 4719, 6792, 13028, 13064, 14094, 14841, 14906, 14958, 15319, 15467,
- 15790, 15969, 16159, 16339, 16350, 16351, 16352, 16512, 16560, 16704,
- 16783, 16850, 17053, 17090, 17195, 17269, 17293, 17322, 17523, 17542,
- 17569, 17581, 17588, 17596, 17620, 17621, 17628, 17631, 17692, 17711,
- 17715, 17776, 17779, 17792, 17836, 17912, 17916, 17930, 17932, 17944,
- 17949, 17964, 17965, 17967, 17969, 17978, 17987, 17991, 17996, 17998,
- 17999, 18007, 18019, 18020, 18029, 18030, 18032, 18034, 18036, 18038,
- 18039, 18042, 18043, 18046, 18047, 18049, 18068, 18080, 18093, 18100,
- 18104, 18110, 18111, 18116, 18125, 18128, 18138, 18185, 18196, 18197,
- 18206, 18210, 18211, 18217, 18220, 18221, 18234, 18244, 18247, 18287,
- 18319, 18324, 18333, 18346, 18397, 18409, 18410, 18412, 18418, 18422,
- 18434, 18444, 18468, 18469, 18470, 18479, 18483, 18495, 18496, 18497,
- 18498, 18507, 18512, 18519, 18520, 18522, 18527, 18528, 18529, 18530,
- 18532, 18533, 18534, 18536, 18539, 18540, 18542, 18544, 18545, 18546,
- 18547, 18553, 18558.
+ 15790, 15969, 16159, 16339, 16350, 16351, 16352, 16361, 16512, 16560,
+ 16704, 16783, 16850, 17053, 17090, 17195, 17269, 17293, 17322, 17523,
+ 17542, 17569, 17581, 17588, 17596, 17620, 17621, 17628, 17631, 17692,
+ 17711, 17715, 17776, 17779, 17792, 17836, 17912, 17916, 17930, 17932,
+ 17944, 17949, 17964, 17965, 17967, 17969, 17978, 17987, 17991, 17996,
+ 17998, 17999, 18007, 18019, 18020, 18029, 18030, 18032, 18034, 18036,
+ 18038, 18039, 18042, 18043, 18046, 18047, 18049, 18068, 18080, 18093,
+ 18100, 18104, 18110, 18111, 18116, 18125, 18128, 18138, 18185, 18196,
+ 18197, 18206, 18210, 18211, 18217, 18220, 18221, 18234, 18244, 18247,
+ 18287, 18319, 18324, 18333, 18346, 18397, 18409, 18410, 18412, 18418,
+ 18422, 18434, 18444, 18468, 18469, 18470, 18479, 18483, 18495, 18496,
+ 18497, 18498, 18507, 18512, 18519, 18520, 18522, 18527, 18528, 18529,
+ 18530, 18532, 18533, 18534, 18536, 18539, 18540, 18542, 18544, 18545,
+ 18546, 18547, 18553, 18558.
* Cache information can be queried via sysconf() function on s390 e.g. with
_SC_LEVEL1_ICACHE_SIZE as argument.
diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in
index 6ec4bc6..e8e4da6 100644
--- a/math/auto-libm-test-in
+++ b/math/auto-libm-test-in
@@ -1191,6 +1191,7 @@ exp -7.4444006192138124e+02
exp -0x1.75f113c30b1c8p+9
exp -max
exp -11342.8125
+exp -0x2.c5b2319c4843acc0p12
exp 0x1p-10
exp -0x1p-10
exp 0x1p-20
@@ -1223,8 +1224,8 @@ exp10 305
exp10 -305
# GCC bug 59666: results on directed rounding may be incorrect.
exp10 4932 xfail-rounding:ldbl-128ibm
-# Bug 16361: underflow exception may be misssing
-exp10 -4932 missing-underflow:ldbl-96-intel:x86 missing-underflow:ldbl-96-intel:x86_64
+exp10 -4932
+exp10 -0x1.343793004f503232p12
# GCC bug 59666: results on directed rounding may be incorrect.
exp10 1e5 xfail-rounding:ldbl-128ibm
exp10 -1e5
diff --git a/math/auto-libm-test-out b/math/auto-libm-test-out
index aa1eb1f..bf067c4 100644
--- a/math/auto-libm-test-out
+++ b/math/auto-libm-test-out
@@ -103944,6 +103944,111 @@ 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 -0x2.c5b2319c4843acc0p12
+= exp downward flt-32 -0x2.c5b23p+12f : 0x0p+0f : inexact-ok underflow errno-erange
+= exp tonearest flt-32 -0x2.c5b23p+12f : 0x0p+0f : inexact-ok underflow errno-erange
+= exp towardzero flt-32 -0x2.c5b23p+12f : 0x0p+0f : inexact-ok underflow errno-erange
+= exp upward flt-32 -0x2.c5b23p+12f : 0x8p-152f : inexact-ok underflow errno-erange-ok
+= exp downward dbl-64 -0x2.c5b23p+12 : 0x0p+0 : inexact-ok underflow errno-erange
+= exp tonearest dbl-64 -0x2.c5b23p+12 : 0x0p+0 : inexact-ok underflow errno-erange
+= exp towardzero dbl-64 -0x2.c5b23p+12 : 0x0p+0 : inexact-ok underflow errno-erange
+= exp upward dbl-64 -0x2.c5b23p+12 : 0x4p-1076 : inexact-ok underflow errno-erange-ok
+= exp downward ldbl-96-intel -0x2.c5b23p+12L : 0x4.00671741091b8c2p-16384L : inexact-ok
+= exp tonearest ldbl-96-intel -0x2.c5b23p+12L : 0x4.00671741091b8c28p-16384L : inexact-ok
+= exp towardzero ldbl-96-intel -0x2.c5b23p+12L : 0x4.00671741091b8c2p-16384L : inexact-ok
+= exp upward ldbl-96-intel -0x2.c5b23p+12L : 0x4.00671741091b8c28p-16384L : inexact-ok
+= exp downward ldbl-96-m68k -0x2.c5b23p+12L : 0x4.00671741091b8c2p-16384L : inexact-ok
+= exp tonearest ldbl-96-m68k -0x2.c5b23p+12L : 0x4.00671741091b8c28p-16384L : inexact-ok
+= exp towardzero ldbl-96-m68k -0x2.c5b23p+12L : 0x4.00671741091b8c2p-16384L : inexact-ok
+= exp upward ldbl-96-m68k -0x2.c5b23p+12L : 0x4.00671741091b8c28p-16384L : inexact-ok
+= exp downward ldbl-128 -0x2.c5b23p+12L : 0x4.00671741091b8c27d0a36c181058p-16384L : inexact-ok
+= exp tonearest ldbl-128 -0x2.c5b23p+12L : 0x4.00671741091b8c27d0a36c18105cp-16384L : inexact-ok
+= exp towardzero ldbl-128 -0x2.c5b23p+12L : 0x4.00671741091b8c27d0a36c181058p-16384L : inexact-ok
+= exp upward ldbl-128 -0x2.c5b23p+12L : 0x4.00671741091b8c27d0a36c18105cp-16384L : inexact-ok
+= exp downward ldbl-128ibm -0x2.c5b23p+12L : 0x0p+0L : inexact-ok underflow errno-erange
+= exp tonearest ldbl-128ibm -0x2.c5b23p+12L : 0x0p+0L : inexact-ok underflow errno-erange
+= exp towardzero ldbl-128ibm -0x2.c5b23p+12L : 0x0p+0L : inexact-ok underflow errno-erange
+= exp upward ldbl-128ibm -0x2.c5b23p+12L : 0x4p-1076L : inexact-ok underflow errno-erange-ok
+= exp downward flt-32 -0x2.c5b234p+12f : 0x0p+0f : inexact-ok underflow errno-erange
+= exp tonearest flt-32 -0x2.c5b234p+12f : 0x0p+0f : inexact-ok underflow errno-erange
+= exp towardzero flt-32 -0x2.c5b234p+12f : 0x0p+0f : inexact-ok underflow errno-erange
+= exp upward flt-32 -0x2.c5b234p+12f : 0x8p-152f : inexact-ok underflow errno-erange-ok
+= exp downward dbl-64 -0x2.c5b234p+12 : 0x0p+0 : inexact-ok underflow errno-erange
+= exp tonearest dbl-64 -0x2.c5b234p+12 : 0x0p+0 : inexact-ok underflow errno-erange
+= exp towardzero dbl-64 -0x2.c5b234p+12 : 0x0p+0 : inexact-ok underflow errno-erange
+= exp upward dbl-64 -0x2.c5b234p+12 : 0x4p-1076 : inexact-ok underflow errno-erange-ok
+= exp downward ldbl-96-intel -0x2.c5b234p+12L : 0x3.ff671d7bc6ce9588p-16384L : inexact-ok underflow errno-erange-ok
+= exp tonearest ldbl-96-intel -0x2.c5b234p+12L : 0x3.ff671d7bc6ce9588p-16384L : inexact-ok underflow errno-erange-ok
+= exp towardzero ldbl-96-intel -0x2.c5b234p+12L : 0x3.ff671d7bc6ce9588p-16384L : inexact-ok underflow errno-erange-ok
+= exp upward ldbl-96-intel -0x2.c5b234p+12L : 0x3.ff671d7bc6ce959p-16384L : inexact-ok underflow errno-erange-ok
+= exp downward ldbl-96-m68k -0x2.c5b234p+12L : 0x3.ff671d7bc6ce9588p-16384L : inexact-ok
+= exp tonearest ldbl-96-m68k -0x2.c5b234p+12L : 0x3.ff671d7bc6ce958cp-16384L : inexact-ok
+= exp towardzero ldbl-96-m68k -0x2.c5b234p+12L : 0x3.ff671d7bc6ce9588p-16384L : inexact-ok
+= exp upward ldbl-96-m68k -0x2.c5b234p+12L : 0x3.ff671d7bc6ce958cp-16384L : inexact-ok
+= exp downward ldbl-128 -0x2.c5b234p+12L : 0x3.ff671d7bc6ce958ba803f3e779bp-16384L : inexact-ok underflow errno-erange-ok
+= exp tonearest ldbl-128 -0x2.c5b234p+12L : 0x3.ff671d7bc6ce958ba803f3e779bp-16384L : inexact-ok underflow errno-erange-ok
+= exp towardzero ldbl-128 -0x2.c5b234p+12L : 0x3.ff671d7bc6ce958ba803f3e779bp-16384L : inexact-ok underflow errno-erange-ok
+= exp upward ldbl-128 -0x2.c5b234p+12L : 0x3.ff671d7bc6ce958ba803f3e779b4p-16384L : inexact-ok underflow errno-erange-ok
+= exp downward ldbl-128ibm -0x2.c5b234p+12L : 0x0p+0L : inexact-ok underflow errno-erange
+= exp tonearest ldbl-128ibm -0x2.c5b234p+12L : 0x0p+0L : inexact-ok underflow errno-erange
+= exp towardzero ldbl-128ibm -0x2.c5b234p+12L : 0x0p+0L : inexact-ok underflow errno-erange
+= exp upward ldbl-128ibm -0x2.c5b234p+12L : 0x4p-1076L : inexact-ok underflow errno-erange-ok
+= exp downward dbl-64 -0x2.c5b2319c4843ap+12 : 0x0p+0 : inexact-ok underflow errno-erange
+= exp tonearest dbl-64 -0x2.c5b2319c4843ap+12 : 0x0p+0 : inexact-ok underflow errno-erange
+= exp towardzero dbl-64 -0x2.c5b2319c4843ap+12 : 0x0p+0 : inexact-ok underflow errno-erange
+= exp upward dbl-64 -0x2.c5b2319c4843ap+12 : 0x4p-1076 : inexact-ok underflow errno-erange-ok
+= exp downward ldbl-96-intel -0x2.c5b2319c4843ap+12L : 0x4.00000000032ffc8p-16384L : inexact-ok
+= exp tonearest ldbl-96-intel -0x2.c5b2319c4843ap+12L : 0x4.00000000032ffc88p-16384L : inexact-ok
+= exp towardzero ldbl-96-intel -0x2.c5b2319c4843ap+12L : 0x4.00000000032ffc8p-16384L : inexact-ok
+= exp upward ldbl-96-intel -0x2.c5b2319c4843ap+12L : 0x4.00000000032ffc88p-16384L : inexact-ok
+= exp downward ldbl-96-m68k -0x2.c5b2319c4843ap+12L : 0x4.00000000032ffc8p-16384L : inexact-ok
+= exp tonearest ldbl-96-m68k -0x2.c5b2319c4843ap+12L : 0x4.00000000032ffc88p-16384L : inexact-ok
+= exp towardzero ldbl-96-m68k -0x2.c5b2319c4843ap+12L : 0x4.00000000032ffc8p-16384L : inexact-ok
+= exp upward ldbl-96-m68k -0x2.c5b2319c4843ap+12L : 0x4.00000000032ffc88p-16384L : inexact-ok
+= exp downward ldbl-128 -0x2.c5b2319c4843ap+12L : 0x4.00000000032ffc85647bac501164p-16384L : inexact-ok
+= exp tonearest ldbl-128 -0x2.c5b2319c4843ap+12L : 0x4.00000000032ffc85647bac501164p-16384L : inexact-ok
+= exp towardzero ldbl-128 -0x2.c5b2319c4843ap+12L : 0x4.00000000032ffc85647bac501164p-16384L : inexact-ok
+= exp upward ldbl-128 -0x2.c5b2319c4843ap+12L : 0x4.00000000032ffc85647bac501168p-16384L : inexact-ok
+= exp downward ldbl-128ibm -0x2.c5b2319c4843ap+12L : 0x0p+0L : inexact-ok underflow errno-erange
+= exp tonearest ldbl-128ibm -0x2.c5b2319c4843ap+12L : 0x0p+0L : inexact-ok underflow errno-erange
+= exp towardzero ldbl-128ibm -0x2.c5b2319c4843ap+12L : 0x0p+0L : inexact-ok underflow errno-erange
+= exp upward ldbl-128ibm -0x2.c5b2319c4843ap+12L : 0x4p-1076L : inexact-ok underflow errno-erange-ok
+= exp downward dbl-64 -0x2.c5b2319c4843cp+12 : 0x0p+0 : inexact-ok underflow errno-erange
+= exp tonearest dbl-64 -0x2.c5b2319c4843cp+12 : 0x0p+0 : inexact-ok underflow errno-erange
+= exp towardzero dbl-64 -0x2.c5b2319c4843cp+12 : 0x0p+0 : inexact-ok underflow errno-erange
+= exp upward dbl-64 -0x2.c5b2319c4843cp+12 : 0x4p-1076 : inexact-ok underflow errno-erange-ok
+= exp downward ldbl-96-intel -0x2.c5b2319c4843cp+12L : 0x3.fffffffffb2ffc8p-16384L : inexact-ok underflow errno-erange-ok
+= exp tonearest ldbl-96-intel -0x2.c5b2319c4843cp+12L : 0x3.fffffffffb2ffc88p-16384L : inexact-ok underflow errno-erange-ok
+= exp towardzero ldbl-96-intel -0x2.c5b2319c4843cp+12L : 0x3.fffffffffb2ffc8p-16384L : inexact-ok underflow errno-erange-ok
+= exp upward ldbl-96-intel -0x2.c5b2319c4843cp+12L : 0x3.fffffffffb2ffc88p-16384L : inexact-ok underflow errno-erange-ok
+= exp downward ldbl-96-m68k -0x2.c5b2319c4843cp+12L : 0x3.fffffffffb2ffc84p-16384L : inexact-ok
+= exp tonearest ldbl-96-m68k -0x2.c5b2319c4843cp+12L : 0x3.fffffffffb2ffc84p-16384L : inexact-ok
+= exp towardzero ldbl-96-m68k -0x2.c5b2319c4843cp+12L : 0x3.fffffffffb2ffc84p-16384L : inexact-ok
+= exp upward ldbl-96-m68k -0x2.c5b2319c4843cp+12L : 0x3.fffffffffb2ffc88p-16384L : inexact-ok
+= exp downward ldbl-128 -0x2.c5b2319c4843cp+12L : 0x3.fffffffffb2ffc85647d4c57069cp-16384L : inexact-ok underflow errno-erange-ok
+= exp tonearest ldbl-128 -0x2.c5b2319c4843cp+12L : 0x3.fffffffffb2ffc85647d4c57069cp-16384L : inexact-ok underflow errno-erange-ok
+= exp towardzero ldbl-128 -0x2.c5b2319c4843cp+12L : 0x3.fffffffffb2ffc85647d4c57069cp-16384L : inexact-ok underflow errno-erange-ok
+= exp upward ldbl-128 -0x2.c5b2319c4843cp+12L : 0x3.fffffffffb2ffc85647d4c5706ap-16384L : inexact-ok underflow errno-erange-ok
+= exp downward ldbl-128ibm -0x2.c5b2319c4843cp+12L : 0x0p+0L : inexact-ok underflow errno-erange
+= exp tonearest ldbl-128ibm -0x2.c5b2319c4843cp+12L : 0x0p+0L : inexact-ok underflow errno-erange
+= exp towardzero ldbl-128ibm -0x2.c5b2319c4843cp+12L : 0x0p+0L : inexact-ok underflow errno-erange
+= exp upward ldbl-128ibm -0x2.c5b2319c4843cp+12L : 0x4p-1076L : inexact-ok underflow errno-erange-ok
+= exp downward ldbl-96-intel -0x2.c5b2319c4843accp+12L : 0x3.fffffffffffffc8p-16384L : inexact-ok underflow errno-erange-ok
+= exp tonearest ldbl-96-intel -0x2.c5b2319c4843accp+12L : 0x3.fffffffffffffc88p-16384L : inexact-ok underflow errno-erange-ok
+= exp towardzero ldbl-96-intel -0x2.c5b2319c4843accp+12L : 0x3.fffffffffffffc8p-16384L : inexact-ok underflow errno-erange-ok
+= exp upward ldbl-96-intel -0x2.c5b2319c4843accp+12L : 0x3.fffffffffffffc88p-16384L : inexact-ok underflow errno-erange-ok
+= exp downward ldbl-96-m68k -0x2.c5b2319c4843accp+12L : 0x3.fffffffffffffc84p-16384L : inexact-ok
+= exp tonearest ldbl-96-m68k -0x2.c5b2319c4843accp+12L : 0x3.fffffffffffffc84p-16384L : inexact-ok
+= exp towardzero ldbl-96-m68k -0x2.c5b2319c4843accp+12L : 0x3.fffffffffffffc84p-16384L : inexact-ok
+= exp upward ldbl-96-m68k -0x2.c5b2319c4843accp+12L : 0x3.fffffffffffffc88p-16384L : inexact-ok
+= exp downward ldbl-128 -0x2.c5b2319c4843accp+12L : 0x3.fffffffffffffc85647a6732d718p-16384L : inexact-ok underflow errno-erange-ok
+= exp tonearest ldbl-128 -0x2.c5b2319c4843accp+12L : 0x3.fffffffffffffc85647a6732d718p-16384L : inexact-ok underflow errno-erange-ok
+= exp towardzero ldbl-128 -0x2.c5b2319c4843accp+12L : 0x3.fffffffffffffc85647a6732d718p-16384L : inexact-ok underflow errno-erange-ok
+= exp upward ldbl-128 -0x2.c5b2319c4843accp+12L : 0x3.fffffffffffffc85647a6732d71cp-16384L : inexact-ok underflow errno-erange-ok
+= exp downward ldbl-128ibm -0x2.c5b2319c4843accp+12L : 0x0p+0L : inexact-ok underflow errno-erange
+= exp tonearest ldbl-128ibm -0x2.c5b2319c4843accp+12L : 0x0p+0L : inexact-ok underflow errno-erange
+= exp towardzero ldbl-128ibm -0x2.c5b2319c4843accp+12L : 0x0p+0L : inexact-ok underflow errno-erange
+= exp upward ldbl-128ibm -0x2.c5b2319c4843accp+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
@@ -104929,31 +105034,136 @@ exp10 4932 xfail-rounding:ldbl-128ibm
= exp10 tonearest ldbl-128ibm 0x1.344p+12L : plus_infty : inexact-ok overflow errno-erange
= exp10 towardzero ldbl-128ibm 0x1.344p+12L : 0xf.ffffffffffffbffffffffffffcp+1020L : xfail:ldbl-128ibm inexact-ok overflow errno-erange-ok
= exp10 upward ldbl-128ibm 0x1.344p+12L : plus_infty : xfail:ldbl-128ibm inexact-ok overflow errno-erange
-exp10 -4932 missing-underflow:ldbl-96-intel:x86 missing-underflow:ldbl-96-intel:x86_64
-= exp10 downward flt-32 -0x1.344p+12f : 0x0p+0f : inexact-ok underflow underflow-ok:ldbl-96-intel:x86 underflow-ok:ldbl-96-intel:x86_64 errno-erange
-= exp10 tonearest flt-32 -0x1.344p+12f : 0x0p+0f : inexact-ok underflow underflow-ok:ldbl-96-intel:x86 underflow-ok:ldbl-96-intel:x86_64 errno-erange
-= exp10 towardzero flt-32 -0x1.344p+12f : 0x0p+0f : inexact-ok underflow underflow-ok:ldbl-96-intel:x86 underflow-ok:ldbl-96-intel:x86_64 errno-erange
-= exp10 upward flt-32 -0x1.344p+12f : 0x8p-152f : inexact-ok underflow underflow-ok:ldbl-96-intel:x86 underflow-ok:ldbl-96-intel:x86_64 errno-erange-ok
-= exp10 downward dbl-64 -0x1.344p+12 : 0x0p+0 : inexact-ok underflow underflow-ok:ldbl-96-intel:x86 underflow-ok:ldbl-96-intel:x86_64 errno-erange
-= exp10 tonearest dbl-64 -0x1.344p+12 : 0x0p+0 : inexact-ok underflow underflow-ok:ldbl-96-intel:x86 underflow-ok:ldbl-96-intel:x86_64 errno-erange
-= exp10 towardzero dbl-64 -0x1.344p+12 : 0x0p+0 : inexact-ok underflow underflow-ok:ldbl-96-intel:x86 underflow-ok:ldbl-96-intel:x86_64 errno-erange
-= exp10 upward dbl-64 -0x1.344p+12 : 0x4p-1076 : inexact-ok underflow underflow-ok:ldbl-96-intel:x86 underflow-ok:ldbl-96-intel:x86_64 errno-erange-ok
-= exp10 downward ldbl-96-intel -0x1.344p+12L : 0x1.30923e47949abf8p-16384L : inexact-ok underflow underflow-ok:ldbl-96-intel:x86 underflow-ok:ldbl-96-intel:x86_64 errno-erange-ok
-= exp10 tonearest ldbl-96-intel -0x1.344p+12L : 0x1.30923e47949abf8p-16384L : inexact-ok underflow underflow-ok:ldbl-96-intel:x86 underflow-ok:ldbl-96-intel:x86_64 errno-erange-ok
-= exp10 towardzero ldbl-96-intel -0x1.344p+12L : 0x1.30923e47949abf8p-16384L : inexact-ok underflow underflow-ok:ldbl-96-intel:x86 underflow-ok:ldbl-96-intel:x86_64 errno-erange-ok
-= exp10 upward ldbl-96-intel -0x1.344p+12L : 0x1.30923e47949abf88p-16384L : inexact-ok underflow underflow-ok:ldbl-96-intel:x86 underflow-ok:ldbl-96-intel:x86_64 errno-erange-ok
-= exp10 downward ldbl-96-m68k -0x1.344p+12L : 0x1.30923e47949abf8p-16384L : inexact-ok underflow underflow-ok:ldbl-96-intel:x86 underflow-ok:ldbl-96-intel:x86_64 errno-erange-ok
-= exp10 tonearest ldbl-96-m68k -0x1.344p+12L : 0x1.30923e47949abf8p-16384L : inexact-ok underflow underflow-ok:ldbl-96-intel:x86 underflow-ok:ldbl-96-intel:x86_64 errno-erange-ok
-= exp10 towardzero ldbl-96-m68k -0x1.344p+12L : 0x1.30923e47949abf8p-16384L : inexact-ok underflow underflow-ok:ldbl-96-intel:x86 underflow-ok:ldbl-96-intel:x86_64 errno-erange-ok
-= exp10 upward ldbl-96-m68k -0x1.344p+12L : 0x1.30923e47949abf84p-16384L : inexact-ok underflow underflow-ok:ldbl-96-intel:x86 underflow-ok:ldbl-96-intel:x86_64 errno-erange-ok
-= exp10 downward ldbl-128 -0x1.344p+12L : 0x1.30923e47949abf816b7d38ebc00cp-16384L : inexact-ok underflow underflow-ok:ldbl-96-intel:x86 underflow-ok:ldbl-96-intel:x86_64 errno-erange-ok
-= exp10 tonearest ldbl-128 -0x1.344p+12L : 0x1.30923e47949abf816b7d38ebc01p-16384L : inexact-ok underflow underflow-ok:ldbl-96-intel:x86 underflow-ok:ldbl-96-intel:x86_64 errno-erange-ok
-= exp10 towardzero ldbl-128 -0x1.344p+12L : 0x1.30923e47949abf816b7d38ebc00cp-16384L : inexact-ok underflow underflow-ok:ldbl-96-intel:x86 underflow-ok:ldbl-96-intel:x86_64 errno-erange-ok
-= exp10 upward ldbl-128 -0x1.344p+12L : 0x1.30923e47949abf816b7d38ebc01p-16384L : inexact-ok underflow underflow-ok:ldbl-96-intel:x86 underflow-ok:ldbl-96-intel:x86_64 errno-erange-ok
-= exp10 downward ldbl-128ibm -0x1.344p+12L : 0x0p+0L : inexact-ok underflow underflow-ok:ldbl-96-intel:x86 underflow-ok:ldbl-96-intel:x86_64 errno-erange
-= exp10 tonearest ldbl-128ibm -0x1.344p+12L : 0x0p+0L : inexact-ok underflow underflow-ok:ldbl-96-intel:x86 underflow-ok:ldbl-96-intel:x86_64 errno-erange
-= exp10 towardzero ldbl-128ibm -0x1.344p+12L : 0x0p+0L : inexact-ok underflow underflow-ok:ldbl-96-intel:x86 underflow-ok:ldbl-96-intel:x86_64 errno-erange
-= exp10 upward ldbl-128ibm -0x1.344p+12L : 0x4p-1076L : inexact-ok underflow underflow-ok:ldbl-96-intel:x86 underflow-ok:ldbl-96-intel:x86_64 errno-erange-ok
+exp10 -4932
+= exp10 downward flt-32 -0x1.344p+12f : 0x0p+0f : inexact-ok underflow errno-erange
+= exp10 tonearest flt-32 -0x1.344p+12f : 0x0p+0f : inexact-ok underflow errno-erange
+= exp10 towardzero flt-32 -0x1.344p+12f : 0x0p+0f : inexact-ok underflow errno-erange
+= exp10 upward flt-32 -0x1.344p+12f : 0x8p-152f : inexact-ok underflow errno-erange-ok
+= exp10 downward dbl-64 -0x1.344p+12 : 0x0p+0 : inexact-ok underflow errno-erange
+= exp10 tonearest dbl-64 -0x1.344p+12 : 0x0p+0 : inexact-ok underflow errno-erange
+= exp10 towardzero dbl-64 -0x1.344p+12 : 0x0p+0 : inexact-ok underflow errno-erange
+= exp10 upward dbl-64 -0x1.344p+12 : 0x4p-1076 : inexact-ok underflow errno-erange-ok
+= exp10 downward ldbl-96-intel -0x1.344p+12L : 0x1.30923e47949abf8p-16384L : inexact-ok underflow errno-erange-ok
+= exp10 tonearest ldbl-96-intel -0x1.344p+12L : 0x1.30923e47949abf8p-16384L : inexact-ok underflow errno-erange-ok
+= exp10 towardzero ldbl-96-intel -0x1.344p+12L : 0x1.30923e47949abf8p-16384L : inexact-ok underflow errno-erange-ok
+= exp10 upward ldbl-96-intel -0x1.344p+12L : 0x1.30923e47949abf88p-16384L : inexact-ok underflow errno-erange-ok
+= exp10 downward ldbl-96-m68k -0x1.344p+12L : 0x1.30923e47949abf8p-16384L : inexact-ok underflow errno-erange-ok
+= exp10 tonearest ldbl-96-m68k -0x1.344p+12L : 0x1.30923e47949abf8p-16384L : inexact-ok underflow errno-erange-ok
+= exp10 towardzero ldbl-96-m68k -0x1.344p+12L : 0x1.30923e47949abf8p-16384L : inexact-ok underflow errno-erange-ok
+= exp10 upward ldbl-96-m68k -0x1.344p+12L : 0x1.30923e47949abf84p-16384L : inexact-ok underflow errno-erange-ok
+= exp10 downward ldbl-128 -0x1.344p+12L : 0x1.30923e47949abf816b7d38ebc00cp-16384L : inexact-ok underflow errno-erange-ok
+= exp10 tonearest ldbl-128 -0x1.344p+12L : 0x1.30923e47949abf816b7d38ebc01p-16384L : inexact-ok underflow errno-erange-ok
+= exp10 towardzero ldbl-128 -0x1.344p+12L : 0x1.30923e47949abf816b7d38ebc00cp-16384L : inexact-ok underflow errno-erange-ok
+= exp10 upward ldbl-128 -0x1.344p+12L : 0x1.30923e47949abf816b7d38ebc01p-16384L : inexact-ok underflow errno-erange-ok
+= exp10 downward ldbl-128ibm -0x1.344p+12L : 0x0p+0L : inexact-ok underflow errno-erange
+= exp10 tonearest ldbl-128ibm -0x1.344p+12L : 0x0p+0L : inexact-ok underflow errno-erange
+= exp10 towardzero ldbl-128ibm -0x1.344p+12L : 0x0p+0L : inexact-ok underflow errno-erange
+= exp10 upward ldbl-128ibm -0x1.344p+12L : 0x4p-1076L : inexact-ok underflow errno-erange-ok
+exp10 -0x1.343793004f503232p12
+= exp10 downward flt-32 -0x1.343792p+12f : 0x0p+0f : inexact-ok underflow errno-erange
+= exp10 tonearest flt-32 -0x1.343792p+12f : 0x0p+0f : inexact-ok underflow errno-erange
+= exp10 towardzero flt-32 -0x1.343792p+12f : 0x0p+0f : inexact-ok underflow errno-erange
+= exp10 upward flt-32 -0x1.343792p+12f : 0x8p-152f : inexact-ok underflow errno-erange-ok
+= exp10 downward dbl-64 -0x1.343792p+12 : 0x0p+0 : inexact-ok underflow errno-erange
+= exp10 tonearest dbl-64 -0x1.343792p+12 : 0x0p+0 : inexact-ok underflow errno-erange
+= exp10 towardzero dbl-64 -0x1.343792p+12 : 0x0p+0 : inexact-ok underflow errno-erange
+= exp10 upward dbl-64 -0x1.343792p+12 : 0x4p-1076 : inexact-ok underflow errno-erange-ok
+= exp10 downward ldbl-96-intel -0x1.343792p+12L : 0x4.009395d78ebc9b6p-16384L : inexact-ok
+= exp10 tonearest ldbl-96-intel -0x1.343792p+12L : 0x4.009395d78ebc9b68p-16384L : inexact-ok
+= exp10 towardzero ldbl-96-intel -0x1.343792p+12L : 0x4.009395d78ebc9b6p-16384L : inexact-ok
+= exp10 upward ldbl-96-intel -0x1.343792p+12L : 0x4.009395d78ebc9b68p-16384L : inexact-ok
+= exp10 downward ldbl-96-m68k -0x1.343792p+12L : 0x4.009395d78ebc9b6p-16384L : inexact-ok
+= exp10 tonearest ldbl-96-m68k -0x1.343792p+12L : 0x4.009395d78ebc9b68p-16384L : inexact-ok
+= exp10 towardzero ldbl-96-m68k -0x1.343792p+12L : 0x4.009395d78ebc9b6p-16384L : inexact-ok
+= exp10 upward ldbl-96-m68k -0x1.343792p+12L : 0x4.009395d78ebc9b68p-16384L : inexact-ok
+= exp10 downward ldbl-128 -0x1.343792p+12L : 0x4.009395d78ebc9b64a0aa93fc93dp-16384L : inexact-ok
+= exp10 tonearest ldbl-128 -0x1.343792p+12L : 0x4.009395d78ebc9b64a0aa93fc93dp-16384L : inexact-ok
+= exp10 towardzero ldbl-128 -0x1.343792p+12L : 0x4.009395d78ebc9b64a0aa93fc93dp-16384L : inexact-ok
+= exp10 upward ldbl-128 -0x1.343792p+12L : 0x4.009395d78ebc9b64a0aa93fc93d4p-16384L : inexact-ok
+= exp10 downward ldbl-128ibm -0x1.343792p+12L : 0x0p+0L : inexact-ok underflow errno-erange
+= exp10 tonearest ldbl-128ibm -0x1.343792p+12L : 0x0p+0L : inexact-ok underflow errno-erange
+= exp10 towardzero ldbl-128ibm -0x1.343792p+12L : 0x0p+0L : inexact-ok underflow errno-erange
+= exp10 upward ldbl-128ibm -0x1.343792p+12L : 0x4p-1076L : inexact-ok underflow errno-erange-ok
+= exp10 downward flt-32 -0x1.343794p+12f : 0x0p+0f : inexact-ok underflow errno-erange
+= exp10 tonearest flt-32 -0x1.343794p+12f : 0x0p+0f : inexact-ok underflow errno-erange
+= exp10 towardzero flt-32 -0x1.343794p+12f : 0x0p+0f : inexact-ok underflow errno-erange
+= exp10 upward flt-32 -0x1.343794p+12f : 0x8p-152f : inexact-ok underflow errno-erange-ok
+= exp10 downward dbl-64 -0x1.343794p+12 : 0x0p+0 : inexact-ok underflow errno-erange
+= exp10 tonearest dbl-64 -0x1.343794p+12 : 0x0p+0 : inexact-ok underflow errno-erange
+= exp10 towardzero dbl-64 -0x1.343794p+12 : 0x0p+0 : inexact-ok underflow errno-erange
+= exp10 upward dbl-64 -0x1.343794p+12 : 0x4p-1076 : inexact-ok underflow errno-erange-ok
+= exp10 downward ldbl-96-intel -0x1.343794p+12L : 0x3.ff6cdaadaae05f18p-16384L : inexact-ok underflow errno-erange-ok
+= exp10 tonearest ldbl-96-intel -0x1.343794p+12L : 0x3.ff6cdaadaae05f2p-16384L : inexact-ok underflow errno-erange-ok
+= exp10 towardzero ldbl-96-intel -0x1.343794p+12L : 0x3.ff6cdaadaae05f18p-16384L : inexact-ok underflow errno-erange-ok
+= exp10 upward ldbl-96-intel -0x1.343794p+12L : 0x3.ff6cdaadaae05f2p-16384L : inexact-ok underflow errno-erange-ok
+= exp10 downward ldbl-96-m68k -0x1.343794p+12L : 0x3.ff6cdaadaae05f1cp-16384L : inexact-ok
+= exp10 tonearest ldbl-96-m68k -0x1.343794p+12L : 0x3.ff6cdaadaae05f1cp-16384L : inexact-ok
+= exp10 towardzero ldbl-96-m68k -0x1.343794p+12L : 0x3.ff6cdaadaae05f1cp-16384L : inexact-ok
+= exp10 upward ldbl-96-m68k -0x1.343794p+12L : 0x3.ff6cdaadaae05f2p-16384L : inexact-ok
+= exp10 downward ldbl-128 -0x1.343794p+12L : 0x3.ff6cdaadaae05f1d9410e8bb22f8p-16384L : inexact-ok underflow errno-erange-ok
+= exp10 tonearest ldbl-128 -0x1.343794p+12L : 0x3.ff6cdaadaae05f1d9410e8bb22f8p-16384L : inexact-ok underflow errno-erange-ok
+= exp10 towardzero ldbl-128 -0x1.343794p+12L : 0x3.ff6cdaadaae05f1d9410e8bb22f8p-16384L : inexact-ok underflow errno-erange-ok
+= exp10 upward ldbl-128 -0x1.343794p+12L : 0x3.ff6cdaadaae05f1d9410e8bb22fcp-16384L : inexact-ok underflow errno-erange-ok
+= exp10 downward ldbl-128ibm -0x1.343794p+12L : 0x0p+0L : inexact-ok underflow errno-erange
+= exp10 tonearest ldbl-128ibm -0x1.343794p+12L : 0x0p+0L : inexact-ok underflow errno-erange
+= exp10 towardzero ldbl-128ibm -0x1.343794p+12L : 0x0p+0L : inexact-ok underflow errno-erange
+= exp10 upward ldbl-128ibm -0x1.343794p+12L : 0x4p-1076L : inexact-ok underflow errno-erange-ok
+= exp10 downward dbl-64 -0x1.343793004f503p+12 : 0x0p+0 : inexact-ok underflow errno-erange
+= exp10 tonearest dbl-64 -0x1.343793004f503p+12 : 0x0p+0 : inexact-ok underflow errno-erange
+= exp10 towardzero dbl-64 -0x1.343793004f503p+12 : 0x0p+0 : inexact-ok underflow errno-erange
+= exp10 upward dbl-64 -0x1.343793004f503p+12 : 0x4p-1076 : inexact-ok underflow errno-erange-ok
+= exp10 downward ldbl-96-intel -0x1.343793004f503p+12L : 0x4.0000000001434f48p-16384L : inexact-ok
+= exp10 tonearest ldbl-96-intel -0x1.343793004f503p+12L : 0x4.0000000001434f5p-16384L : inexact-ok
+= exp10 towardzero ldbl-96-intel -0x1.343793004f503p+12L : 0x4.0000000001434f48p-16384L : inexact-ok
+= exp10 upward ldbl-96-intel -0x1.343793004f503p+12L : 0x4.0000000001434f5p-16384L : inexact-ok
+= exp10 downward ldbl-96-m68k -0x1.343793004f503p+12L : 0x4.0000000001434f48p-16384L : inexact-ok
+= exp10 tonearest ldbl-96-m68k -0x1.343793004f503p+12L : 0x4.0000000001434f5p-16384L : inexact-ok
+= exp10 towardzero ldbl-96-m68k -0x1.343793004f503p+12L : 0x4.0000000001434f48p-16384L : inexact-ok
+= exp10 upward ldbl-96-m68k -0x1.343793004f503p+12L : 0x4.0000000001434f5p-16384L : inexact-ok
+= exp10 downward ldbl-128 -0x1.343793004f503p+12L : 0x4.0000000001434f4e77c5e6c4ab4cp-16384L : inexact-ok
+= exp10 tonearest ldbl-128 -0x1.343793004f503p+12L : 0x4.0000000001434f4e77c5e6c4ab5p-16384L : inexact-ok
+= exp10 towardzero ldbl-128 -0x1.343793004f503p+12L : 0x4.0000000001434f4e77c5e6c4ab4cp-16384L : inexact-ok
+= exp10 upward ldbl-128 -0x1.343793004f503p+12L : 0x4.0000000001434f4e77c5e6c4ab5p-16384L : inexact-ok
+= exp10 downward ldbl-128ibm -0x1.343793004f503p+12L : 0x0p+0L : inexact-ok underflow errno-erange
+= exp10 tonearest ldbl-128ibm -0x1.343793004f503p+12L : 0x0p+0L : inexact-ok underflow errno-erange
+= exp10 towardzero ldbl-128ibm -0x1.343793004f503p+12L : 0x0p+0L : inexact-ok underflow errno-erange
+= exp10 upward ldbl-128ibm -0x1.343793004f503p+12L : 0x4p-1076L : inexact-ok underflow errno-erange-ok
+= exp10 downward dbl-64 -0x1.343793004f504p+12 : 0x0p+0 : inexact-ok underflow errno-erange
+= exp10 tonearest dbl-64 -0x1.343793004f504p+12 : 0x0p+0 : inexact-ok underflow errno-erange
+= exp10 towardzero dbl-64 -0x1.343793004f504p+12 : 0x0p+0 : inexact-ok underflow errno-erange
+= exp10 upward dbl-64 -0x1.343793004f504p+12 : 0x4p-1076 : inexact-ok underflow errno-erange-ok
+= exp10 downward ldbl-96-intel -0x1.343793004f504p+12L : 0x3.fffffffff80d767p-16384L : inexact-ok underflow errno-erange-ok
+= exp10 tonearest ldbl-96-intel -0x1.343793004f504p+12L : 0x3.fffffffff80d767p-16384L : inexact-ok underflow errno-erange-ok
+= exp10 towardzero ldbl-96-intel -0x1.343793004f504p+12L : 0x3.fffffffff80d767p-16384L : inexact-ok underflow errno-erange-ok
+= exp10 upward ldbl-96-intel -0x1.343793004f504p+12L : 0x3.fffffffff80d7678p-16384L : inexact-ok underflow errno-erange-ok
+= exp10 downward ldbl-96-m68k -0x1.343793004f504p+12L : 0x3.fffffffff80d767p-16384L : inexact-ok
+= exp10 tonearest ldbl-96-m68k -0x1.343793004f504p+12L : 0x3.fffffffff80d767p-16384L : inexact-ok
+= exp10 towardzero ldbl-96-m68k -0x1.343793004f504p+12L : 0x3.fffffffff80d767p-16384L : inexact-ok
+= exp10 upward ldbl-96-m68k -0x1.343793004f504p+12L : 0x3.fffffffff80d7674p-16384L : inexact-ok
+= exp10 downward ldbl-128 -0x1.343793004f504p+12L : 0x3.fffffffff80d76709d230e22dc24p-16384L : inexact-ok underflow errno-erange-ok
+= exp10 tonearest ldbl-128 -0x1.343793004f504p+12L : 0x3.fffffffff80d76709d230e22dc24p-16384L : inexact-ok underflow errno-erange-ok
+= exp10 towardzero ldbl-128 -0x1.343793004f504p+12L : 0x3.fffffffff80d76709d230e22dc24p-16384L : inexact-ok underflow errno-erange-ok
+= exp10 upward ldbl-128 -0x1.343793004f504p+12L : 0x3.fffffffff80d76709d230e22dc28p-16384L : inexact-ok underflow errno-erange-ok
+= exp10 downward ldbl-128ibm -0x1.343793004f504p+12L : 0x0p+0L : inexact-ok underflow errno-erange
+= exp10 tonearest ldbl-128ibm -0x1.343793004f504p+12L : 0x0p+0L : inexact-ok underflow errno-erange
+= exp10 towardzero ldbl-128ibm -0x1.343793004f504p+12L : 0x0p+0L : inexact-ok underflow errno-erange
+= exp10 upward ldbl-128ibm -0x1.343793004f504p+12L : 0x4p-1076L : inexact-ok underflow errno-erange-ok
+= exp10 downward ldbl-96-intel -0x1.343793004f503232p+12L : 0x3.ffffffffffffcbe8p-16384L : inexact-ok underflow errno-erange-ok
+= exp10 tonearest ldbl-96-intel -0x1.343793004f503232p+12L : 0x3.ffffffffffffcbfp-16384L : inexact-ok underflow errno-erange-ok
+= exp10 towardzero ldbl-96-intel -0x1.343793004f503232p+12L : 0x3.ffffffffffffcbe8p-16384L : inexact-ok underflow errno-erange-ok
+= exp10 upward ldbl-96-intel -0x1.343793004f503232p+12L : 0x3.ffffffffffffcbfp-16384L : inexact-ok underflow errno-erange-ok
+= exp10 downward ldbl-96-m68k -0x1.343793004f503232p+12L : 0x3.ffffffffffffcbecp-16384L : inexact-ok
+= exp10 tonearest ldbl-96-m68k -0x1.343793004f503232p+12L : 0x3.ffffffffffffcbecp-16384L : inexact-ok
+= exp10 towardzero ldbl-96-m68k -0x1.343793004f503232p+12L : 0x3.ffffffffffffcbecp-16384L : inexact-ok
+= exp10 upward ldbl-96-m68k -0x1.343793004f503232p+12L : 0x3.ffffffffffffcbfp-16384L : inexact-ok
+= exp10 downward ldbl-128 -0x1.343793004f503232p+12L : 0x3.ffffffffffffcbed07250d70bb4p-16384L : inexact-ok underflow errno-erange-ok
+= exp10 tonearest ldbl-128 -0x1.343793004f503232p+12L : 0x3.ffffffffffffcbed07250d70bb4p-16384L : inexact-ok underflow errno-erange-ok
+= exp10 towardzero ldbl-128 -0x1.343793004f503232p+12L : 0x3.ffffffffffffcbed07250d70bb4p-16384L : inexact-ok underflow errno-erange-ok
+= exp10 upward ldbl-128 -0x1.343793004f503232p+12L : 0x3.ffffffffffffcbed07250d70bb44p-16384L : inexact-ok underflow errno-erange-ok
+= exp10 downward ldbl-128ibm -0x1.343793004f503232p+12L : 0x0p+0L : inexact-ok underflow errno-erange
+= exp10 tonearest ldbl-128ibm -0x1.343793004f503232p+12L : 0x0p+0L : inexact-ok underflow errno-erange
+= exp10 towardzero ldbl-128ibm -0x1.343793004f503232p+12L : 0x0p+0L : inexact-ok underflow errno-erange
+= exp10 upward ldbl-128ibm -0x1.343793004f503232p+12L : 0x4p-1076L : inexact-ok underflow errno-erange-ok
exp10 1e5 xfail-rounding:ldbl-128ibm
= exp10 downward flt-32 0x1.86ap+16f : 0xf.fffffp+124f : xfail:ldbl-128ibm inexact-ok overflow errno-erange-ok
= exp10 tonearest flt-32 0x1.86ap+16f : plus_infty : inexact-ok overflow errno-erange
diff --git a/sysdeps/i386/fpu/e_expl.S b/sysdeps/i386/fpu/e_expl.S
index c7e4373..74968bb 100644
--- a/sysdeps/i386/fpu/e_expl.S
+++ b/sysdeps/i386/fpu/e_expl.S
@@ -65,6 +65,10 @@ c1: .byte 0x20, 0xfa, 0xee, 0xc2, 0x5f, 0x70, 0xa5, 0xec, 0xed, 0x3f
csat: .byte 0, 0, 0, 0, 0, 0, 0, 0x80, 0x0e, 0x40
.byte 0, 0, 0, 0, 0, 0
ASM_SIZE_DIRECTIVE(csat)
+ .type cmin,@object
+cmin: .byte 0, 0, 0, 0, 0, 0, 0, 0x80, 0x1, 0
+ .byte 0, 0, 0, 0, 0, 0
+ ASM_SIZE_DIRECTIVE(cmin)
#endif
#ifdef PIC
@@ -189,8 +193,18 @@ ENTRY(IEEE754_EXPL)
fstp %st(1) /* 2 */
fscale /* 2 scale factor is st(1); base^x */
fstp %st(1) /* 1 */
+ /* Ensure underflow for tiny result. */
+ fldt MO(cmin) /* 2 cmin */
+ fld %st(1) /* 3 */
+ fcompp /* 1 */
+ fnstsw
+ sahf
+ jnc 6f
+ fld %st
+ fmul %st
+ fstp %st
#endif
- fstp %st(1) /* 0 */
+6: fstp %st(1) /* 0 */
jmp 2f
1:
#ifdef USE_AS_EXPM1L
diff --git a/sysdeps/x86_64/fpu/e_expl.S b/sysdeps/x86_64/fpu/e_expl.S
index 0ebe388..866bad2 100644
--- a/sysdeps/x86_64/fpu/e_expl.S
+++ b/sysdeps/x86_64/fpu/e_expl.S
@@ -65,6 +65,10 @@ c1: .byte 0x20, 0xfa, 0xee, 0xc2, 0x5f, 0x70, 0xa5, 0xec, 0xed, 0x3f
csat: .byte 0, 0, 0, 0, 0, 0, 0, 0x80, 0x0e, 0x40
.byte 0, 0, 0, 0, 0, 0
ASM_SIZE_DIRECTIVE(csat)
+ .type cmin,@object
+cmin: .byte 0, 0, 0, 0, 0, 0, 0, 0x80, 0x1, 0
+ .byte 0, 0, 0, 0, 0, 0
+ ASM_SIZE_DIRECTIVE(cmin)
#endif
#ifdef PIC
@@ -182,8 +186,17 @@ ENTRY(IEEE754_EXPL)
fstp %st(1) /* 2 */
fscale /* 2 scale factor is st(1); base^x */
fstp %st(1) /* 1 */
+ /* Ensure underflow for tiny result. */
+ fldt MO(cmin) /* 2 cmin */
+ fld %st(1) /* 3 */
+ fcomip %st(1), %st /* 2 */
+ fstp %st /* 1 */
+ jnc 6f
+ fld %st
+ fmul %st
+ fstp %st
#endif
- fstp %st(1) /* 0 */
+6: fstp %st(1) /* 0 */
jmp 2f
1:
#ifdef USE_AS_EXPM1L
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 13 ++
NEWS | 28 +++---
math/auto-libm-test-in | 5 +-
math/auto-libm-test-out | 260 ++++++++++++++++++++++++++++++++++++++----
sysdeps/i386/fpu/e_expl.S | 16 +++-
sysdeps/x86_64/fpu/e_expl.S | 15 +++-
6 files changed, 294 insertions(+), 43 deletions(-)
hooks/post-receive
--
GNU C Library master sources