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.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


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