From 554edb23ffc7a953ca86309cc5f02dbd1a63abe0 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Mon, 22 Jun 2015 21:06:19 +0000 Subject: Fix expm1 missing underflows (bug 16353). Similar to various other bugs in this area, some expm1 implementations do not raise the underflow exception for subnormal arguments, when the result is tiny and inexact. This patch forces the exception in a similar way to previous fixes. (The issue does not apply to the ldbl-* implementations or to those for x86 / x86_64 long double. The change to sysdeps/ieee754/dbl-64/wordsize-64/e_cosh.c is one I missed when previously fixing bug 16354; the bug in that implementation was previously latent, but the expm1 fixes stopped it being latent and so required it to be fixed to avoid spurious underflows from cosh.) Tested for x86_64 and x86. [BZ #16353] * sysdeps/i386/fpu/s_expm1.S (dbl_min): New object. (__expm1): Force underflow exception for arguments with small absolute value. * sysdeps/i386/fpu/s_expm1f.S (flt_min): New object. (__expm1f): Force underflow exception for arguments with small absolute value. * sysdeps/ieee754/dbl-64/s_expm1.c: Include . (__expm1): Force underflow exception for arguments with small absolute value. * sysdeps/ieee754/flt-32/s_expm1f.c: Include . (__expm1f): Force underflow exception for arguments with small absolute value. * sysdeps/ieee754/dbl-64/wordsize-64/e_cosh.c (__ieee754_cosh): Check for small arguments before calling __expm1. * math/auto-libm-test-in: Do not mark underflow exceptions as possibly missing for bug 16353. * math/auto-libm-test-out: Regenerated. --- NEWS | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) (limited to 'NEWS') diff --git a/NEWS b/NEWS index 6f8cb0628d..4e21210575 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, 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, 18513, 18519, 18520, 18522, 18527, 18528, - 18529, 18530, 18532, 18533, 18534, 18536, 18539, 18540, 18542, 18544, - 18545, 18546, 18547, 18553, 18558, 18569. + 15790, 15969, 16159, 16339, 16350, 16351, 16352, 16353, 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, 18513, 18519, 18520, 18522, 18527, + 18528, 18529, 18530, 18532, 18533, 18534, 18536, 18539, 18540, 18542, + 18544, 18545, 18546, 18547, 18553, 18558, 18569. * Cache information can be queried via sysconf() function on s390 e.g. with _SC_LEVEL1_ICACHE_SIZE as argument. -- cgit 1.4.1