glibc/sysdeps/x86_64/fpu
Joseph Myers 7540cfc5a8 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.
2015-06-21 17:48:04 +00:00
..
multiarch Vector sincosf for x86_64 and tests. 2015-06-18 20:11:27 +03:00
dla.h Remove x86_64 __GNUC_PREREQ (4, 6) conditional. 2014-11-14 18:53:07 +00:00
e_acosl.c Update. 2001-09-19 10:37:31 +00:00
e_atan2l.c Update. 2001-09-19 10:37:31 +00:00
e_exp2l.S Fix exp2 spurious underflows (bug 16560). 2015-02-12 19:02:45 +00:00
e_exp10l.S Fix exp10 inaccuracy and exceptions (bugs 13884, 13914). 2012-05-06 18:23:44 +00:00
e_expf.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
e_expl.S Fix x86 / x86_64 expl, exp10l missing underflows (bug 16361). 2015-06-21 17:48:04 +00:00
e_fmodl.S Optimize libm 2011-10-12 11:27:51 -04:00
e_ilogbl.S Remove useless __ilogb*_finite aliases 2012-04-18 00:40:13 +02:00
e_log2l.S Fix log2 (1) in round-downward mode (bug 17042). 2014-06-10 12:07:15 +00:00
e_log10l.S Fix log10 (1) in round-downward mode (bug 16977). 2014-05-23 12:07:50 +00:00
e_logl.S Fix __ieee754_logl (-LDBL_MAX) in FE_DOWNWARD mode (bug 17022). 2014-06-18 12:32:01 +00:00
e_powl.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
e_remainderl.S Optimize libm 2011-10-12 11:27:51 -04:00
e_scalbl.S Fix x86/x86_64 scalb (qNaN, -Inf) (bug 16783). 2015-02-24 17:30:02 +00:00
e_sqrt.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
e_sqrtf.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
e_sqrtl.c Update. 2001-09-19 10:37:31 +00:00
fclrexcpt.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
fedisblxcpt.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
feenablxcpt.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
fegetenv.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
fegetexcept.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
fegetround.c Fix libm fegetround namespace (bug 17748). 2015-01-02 20:44:42 +00:00
feholdexcpt.c Fix libm feholdexcept namespace (bug 17748). 2015-01-05 23:06:14 +00:00
fesetenv.c Fix libm fesetenv namespace (bug 17748). 2015-01-06 23:36:20 +00:00
fesetround.c Fix libm fesetround namespace (bug 17748). 2015-01-07 00:41:23 +00:00
feupdateenv.c Fix libm feupdateenv namespace (bug 17748). 2015-01-07 19:01:20 +00:00
fgetexcptflg.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
fraiseexcpt.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
fsetexcptflg.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
ftestexcept.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
Implies Use x86_64 fpu/bits/fenv.h for i386 and x86_64 2012-06-06 10:13:19 -07:00
k_rem_pio2l.c Dummy files to prevent stub versions from being used. 2007-05-17 18:39:55 +00:00
libm-test-ulps Vector sincosf for x86_64 and tests. 2015-06-18 20:11:27 +03:00
Makefile Vector sincosf for x86_64 and tests. 2015-06-18 20:11:27 +03:00
math_ldbl.h Update. 2001-09-19 10:37:31 +00:00
math_private.h Use movq for 64-bit operations 2013-05-15 20:33:45 +02:00
math-tests-arch.h Addition of testing infrastructure for vector math functions. 2015-06-09 14:51:52 +03:00
printf_fphex.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
s_atanl.c Update. 2001-09-19 10:37:31 +00:00
s_ceill.S Remove trailing whitespace. 2013-06-05 20:44:03 +00:00
s_copysign.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
s_copysignf.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
s_copysignl.S Update. 2002-07-06 15:07:30 +00:00
s_cosf.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
s_expm1l.S Fix x86/x86_64 expm1l inaccuracy and exceptions (bugs 13885, 13923). 2012-05-07 19:13:08 +00:00
s_fabs.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
s_fabsf.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
s_fabsl.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
s_fdiml.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
s_finitel.S Update. 2002-09-10 01:40:26 +00:00
s_floorl.S Update. 2003-11-18 07:25:02 +00:00
s_fmax.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
s_fmaxf.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
s_fmaxl.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
s_fmin.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
s_fminf.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
s_fminl.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
s_fpclassifyl.c Update. 2001-09-19 10:37:31 +00:00
s_isinfl.c Update. 2001-09-19 10:37:31 +00:00
s_isnanl.c Update. 2001-09-19 10:37:31 +00:00
s_llrint.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
s_llrintf.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
s_llrintl.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
s_log1pl.S Set errno for log1p on pole/domain error. 2015-04-13 21:19:27 +02:00
s_logbl.c Update. 2001-09-19 10:37:31 +00:00
s_lrint.S lrint and llrint implementation for x86-64. 2002-04-08 08:14:22 +00:00
s_lrintf.S lrint and llrint implementation for x86-64. 2002-04-08 08:14:22 +00:00
s_lrintl.S lrint and llrint implementation for x86-64. 2002-04-08 08:14:22 +00:00
s_nearbyintl.S Update. 2003-11-18 07:25:02 +00:00
s_nextafterl.c Update. 2001-09-19 10:37:31 +00:00
s_nexttoward.c Update. 2001-09-19 10:37:31 +00:00
s_nexttowardf.c Update. 2001-09-19 10:37:31 +00:00
s_rintl.c Update. 2001-09-19 10:37:31 +00:00
s_scalbnl.S Update. 2003-11-18 07:25:02 +00:00
s_signbit.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
s_signbitf.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
s_significandl.c Update. 2001-09-19 10:37:31 +00:00
s_sincosf.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
s_sinf.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
s_truncl.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
svml_d_cos2_core.S Start of series of patches with x86_64 vector math functions. 2015-06-09 14:25:49 +03:00
svml_d_cos4_core_avx.S Start of series of patches with x86_64 vector math functions. 2015-06-09 14:25:49 +03:00
svml_d_cos4_core.S Start of series of patches with x86_64 vector math functions. 2015-06-09 14:25:49 +03:00
svml_d_cos8_core.S Start of series of patches with x86_64 vector math functions. 2015-06-09 14:25:49 +03:00
svml_d_cos_data.h Start of series of patches with x86_64 vector math functions. 2015-06-09 14:25:49 +03:00
svml_d_cos_data.S Start of series of patches with x86_64 vector math functions. 2015-06-09 14:25:49 +03:00
svml_d_exp2_core.S Vector exp for x86_64 and tests. 2015-06-17 15:58:05 +03:00
svml_d_exp4_core_avx.S Vector exp for x86_64 and tests. 2015-06-17 15:58:05 +03:00
svml_d_exp4_core.S Vector exp for x86_64 and tests. 2015-06-17 15:58:05 +03:00
svml_d_exp8_core.S Vector exp for x86_64 and tests. 2015-06-17 15:58:05 +03:00
svml_d_exp_data.h Vector exp for x86_64 and tests. 2015-06-17 15:58:05 +03:00
svml_d_exp_data.S Vector exp for x86_64 and tests. 2015-06-17 15:58:05 +03:00
svml_d_log2_core.S Vector log for x86_64 and tests. 2015-06-17 15:38:29 +03:00
svml_d_log4_core_avx.S Vector log for x86_64 and tests. 2015-06-17 15:38:29 +03:00
svml_d_log4_core.S Vector log for x86_64 and tests. 2015-06-17 15:38:29 +03:00
svml_d_log8_core.S Vector log for x86_64 and tests. 2015-06-17 15:38:29 +03:00
svml_d_log_data.h Vector log for x86_64 and tests. 2015-06-17 15:38:29 +03:00
svml_d_log_data.S Vector log for x86_64 and tests. 2015-06-17 15:38:29 +03:00
svml_d_pow2_core.S Vector pow for x86_64 and tests. 2015-06-17 16:22:26 +03:00
svml_d_pow4_core_avx.S Vector pow for x86_64 and tests. 2015-06-17 16:22:26 +03:00
svml_d_pow4_core.S Vector pow for x86_64 and tests. 2015-06-17 16:22:26 +03:00
svml_d_pow8_core.S Vector pow for x86_64 and tests. 2015-06-17 16:22:26 +03:00
svml_d_pow_data.h Vector pow for x86_64 and tests. 2015-06-17 16:22:26 +03:00
svml_d_pow_data.S Vector pow for x86_64 and tests. 2015-06-17 16:22:26 +03:00
svml_d_sin2_core.S Vector sin for x86_64 and tests. 2015-06-11 17:12:38 +03:00
svml_d_sin4_core_avx.S Vector sin for x86_64 and tests. 2015-06-11 17:12:38 +03:00
svml_d_sin4_core.S Vector sin for x86_64 and tests. 2015-06-11 17:12:38 +03:00
svml_d_sin8_core.S Vector sin for x86_64 and tests. 2015-06-11 17:12:38 +03:00
svml_d_sin_data.h Vector sin for x86_64 and tests. 2015-06-11 17:12:38 +03:00
svml_d_sin_data.S Vector sin for x86_64 and tests. 2015-06-11 17:12:38 +03:00
svml_d_sincos2_core.S Vector sincos for x86_64 and tests. 2015-06-18 17:55:55 +03:00
svml_d_sincos4_core_avx.S Vector sincos for x86_64 and tests. 2015-06-18 17:55:55 +03:00
svml_d_sincos4_core.S Vector sincos for x86_64 and tests. 2015-06-18 17:55:55 +03:00
svml_d_sincos8_core.S Vector sincos for x86_64 and tests. 2015-06-18 17:55:55 +03:00
svml_d_sincos_data.h Vector sincos for x86_64 and tests. 2015-06-18 17:55:55 +03:00
svml_d_sincos_data.S Vector sincos for x86_64 and tests. 2015-06-18 17:55:55 +03:00
svml_d_wrapper_impl.h Vector sincos for x86_64 and tests. 2015-06-18 17:55:55 +03:00
svml_s_cosf4_core.S Vector cosf for x86_64. 2015-06-09 18:29:47 +03:00
svml_s_cosf8_core_avx.S Vector cosf for x86_64. 2015-06-09 18:29:47 +03:00
svml_s_cosf8_core.S Vector cosf for x86_64. 2015-06-09 18:29:47 +03:00
svml_s_cosf16_core.S Vector cosf for x86_64. 2015-06-09 18:29:47 +03:00
svml_s_cosf_data.h Vector cosf for x86_64. 2015-06-09 18:29:47 +03:00
svml_s_cosf_data.S Vector cosf for x86_64. 2015-06-09 18:29:47 +03:00
svml_s_expf4_core.S Vector expf for x86_64 and tests. 2015-06-17 16:10:51 +03:00
svml_s_expf8_core_avx.S Vector expf for x86_64 and tests. 2015-06-17 16:10:51 +03:00
svml_s_expf8_core.S Vector expf for x86_64 and tests. 2015-06-17 16:10:51 +03:00
svml_s_expf16_core.S Vector expf for x86_64 and tests. 2015-06-17 16:10:51 +03:00
svml_s_expf_data.h Vector expf for x86_64 and tests. 2015-06-17 16:10:51 +03:00
svml_s_expf_data.S Vector expf for x86_64 and tests. 2015-06-17 16:10:51 +03:00
svml_s_logf4_core.S Vector logf for x86_64 and tests. 2015-06-17 15:53:00 +03:00
svml_s_logf8_core_avx.S Vector logf for x86_64 and tests. 2015-06-17 15:53:00 +03:00
svml_s_logf8_core.S Vector logf for x86_64 and tests. 2015-06-17 15:53:00 +03:00
svml_s_logf16_core.S Vector logf for x86_64 and tests. 2015-06-17 15:53:00 +03:00
svml_s_logf_data.h Vector logf for x86_64 and tests. 2015-06-17 15:53:00 +03:00
svml_s_logf_data.S Vector logf for x86_64 and tests. 2015-06-17 15:53:00 +03:00
svml_s_powf4_core.S Vector powf for x86_64 and tests. 2015-06-18 17:04:07 +03:00
svml_s_powf8_core_avx.S Vector powf for x86_64 and tests. 2015-06-18 17:04:07 +03:00
svml_s_powf8_core.S Vector powf for x86_64 and tests. 2015-06-18 17:04:07 +03:00
svml_s_powf16_core.S Vector powf for x86_64 and tests. 2015-06-18 17:04:07 +03:00
svml_s_powf_data.h Vector powf for x86_64 and tests. 2015-06-18 17:04:07 +03:00
svml_s_powf_data.S Vector powf for x86_64 and tests. 2015-06-18 17:04:07 +03:00
svml_s_sincosf4_core.S Vector sincosf for x86_64 and tests. 2015-06-18 20:11:27 +03:00
svml_s_sincosf8_core_avx.S Vector sincosf for x86_64 and tests. 2015-06-18 20:11:27 +03:00
svml_s_sincosf8_core.S Vector sincosf for x86_64 and tests. 2015-06-18 20:11:27 +03:00
svml_s_sincosf16_core.S Vector sincosf for x86_64 and tests. 2015-06-18 20:11:27 +03:00
svml_s_sincosf_data.h Vector sincosf for x86_64 and tests. 2015-06-18 20:11:27 +03:00
svml_s_sincosf_data.S Vector sincosf for x86_64 and tests. 2015-06-18 20:11:27 +03:00
svml_s_sinf4_core.S Vector sinf for x86_64 and tests. 2015-06-15 15:06:53 +03:00
svml_s_sinf8_core_avx.S Vector sinf for x86_64 and tests. 2015-06-15 15:06:53 +03:00
svml_s_sinf8_core.S Vector sinf for x86_64 and tests. 2015-06-15 15:06:53 +03:00
svml_s_sinf16_core.S Vector sinf for x86_64 and tests. 2015-06-15 15:06:53 +03:00
svml_s_sinf_data.h Vector sinf for x86_64 and tests. 2015-06-15 15:06:53 +03:00
svml_s_sinf_data.S Vector sinf for x86_64 and tests. 2015-06-15 15:06:53 +03:00
svml_s_wrapper_impl.h Vector sincosf for x86_64 and tests. 2015-06-18 20:11:27 +03:00
test-double-vlen2-wrappers.c Vector sincos for x86_64 and tests. 2015-06-18 17:55:55 +03:00
test-double-vlen2.c Vector sincos for x86_64 and tests. 2015-06-18 17:55:55 +03:00
test-double-vlen4-avx2-wrappers.c Vector sincos for x86_64 and tests. 2015-06-18 17:55:55 +03:00
test-double-vlen4-avx2.c Vector sincos for x86_64 and tests. 2015-06-18 17:55:55 +03:00
test-double-vlen4-wrappers.c Vector sincos for x86_64 and tests. 2015-06-18 17:55:55 +03:00
test-double-vlen4.c Vector sincos for x86_64 and tests. 2015-06-18 17:55:55 +03:00
test-double-vlen8-wrappers.c Vector sincos for x86_64 and tests. 2015-06-18 17:55:55 +03:00
test-double-vlen8.c Vector sincos for x86_64 and tests. 2015-06-18 17:55:55 +03:00
test-float-vlen4-wrappers.c Vector sincosf for x86_64 and tests. 2015-06-18 20:11:27 +03:00
test-float-vlen4.c Vector sincosf for x86_64 and tests. 2015-06-18 20:11:27 +03:00
test-float-vlen8-avx2-wrappers.c Vector sincosf for x86_64 and tests. 2015-06-18 20:11:27 +03:00
test-float-vlen8-avx2.c Vector sincosf for x86_64 and tests. 2015-06-18 20:11:27 +03:00
test-float-vlen8-wrappers.c Vector sincosf for x86_64 and tests. 2015-06-18 20:11:27 +03:00
test-float-vlen8.c Vector sincosf for x86_64 and tests. 2015-06-18 20:11:27 +03:00
test-float-vlen16-wrappers.c Vector sincosf for x86_64 and tests. 2015-06-18 20:11:27 +03:00
test-float-vlen16.c Vector sincosf for x86_64 and tests. 2015-06-18 20:11:27 +03:00
Versions Vector sincosf for x86_64 and tests. 2015-06-18 20:11:27 +03:00