glibc/sysdeps/x86_64/fpu/multiarch
Joseph Myers 5ff81530dd Do not raise "inexact" from x86_64 SSE4.1 ceil, floor (bug 15479).
Continuing fixes for ceil and floor functions not to raise the
"inexact" exception, this patch fixes the x86_64 SSE4.1 versions.  The
roundss / roundsd instructions take an immediate operand that
determines the rounding mode and whether to raise "inexact"; this just
needs bit 3 set to disable "inexact", which this patch does.

Remark: we don't have an SSE4.1 version of trunc / truncf (using this
instruction with operand 11); I'd expect one to make sense, but of
course it should be benchmarked against the existing C code.  I'll
file a bug in Bugzilla for the lack of such a version.

Tested for x86_64.

	[BZ #15479]
	* sysdeps/x86_64/fpu/multiarch/s_ceil.S (__ceil_sse41): Set bit 3
	of immediate operand to rounding instruction.
	* sysdeps/x86_64/fpu/multiarch/s_ceilf.S (__ceilf_sse41):
	Likewise.
	* sysdeps/x86_64/fpu/multiarch/s_floor.S (__floor_sse41):
	Likewise.
	* sysdeps/x86_64/fpu/multiarch/s_floorf.S (__floorf_sse41):
	Likewise.
2016-05-24 21:11:18 +00:00
..
doasin-fma4.c
dosincos-fma4.c
e_asin-fma4.c
e_asin.c
e_atan2-avx.c
e_atan2-fma4.c
e_atan2.c
e_exp-avx.c
e_exp-fma4.c
e_exp.c
e_log-avx.c
e_log-fma4.c
e_log.c
e_pow-fma4.c
e_pow.c
halfulp-fma4.c
Makefile
mpa-avx.c
mpa-fma4.c
mpatan2-fma4.c
mpatan-fma4.c
mpexp-avx.c
mpexp-fma4.c
mplog-avx.c
mplog-fma4.c
mpsqrt-fma4.c
mptan-fma4.c
s_atan-avx.c
s_atan-fma4.c
s_atan.c
s_ceil-c.c
s_ceil.S Do not raise "inexact" from x86_64 SSE4.1 ceil, floor (bug 15479). 2016-05-24 21:11:18 +00:00
s_ceilf-c.c
s_ceilf.S Do not raise "inexact" from x86_64 SSE4.1 ceil, floor (bug 15479). 2016-05-24 21:11:18 +00:00
s_floor-c.c
s_floor.S Do not raise "inexact" from x86_64 SSE4.1 ceil, floor (bug 15479). 2016-05-24 21:11:18 +00:00
s_floorf-c.c
s_floorf.S Do not raise "inexact" from x86_64 SSE4.1 ceil, floor (bug 15479). 2016-05-24 21:11:18 +00:00
s_fma.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
s_fmaf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
s_nearbyint-c.c
s_nearbyint.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
s_nearbyintf-c.c
s_nearbyintf.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
s_rint-c.c
s_rint.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
s_rintf-c.c
s_rintf.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
s_sin-avx.c
s_sin-fma4.c
s_sin.c
s_tan-avx.c
s_tan-fma4.c
s_tan.c
sincos32-fma4.c
slowexp-avx.c
slowexp-fma4.c
slowpow-fma4.c
svml_d_cos2_core_sse4.S Use JUMPTARGET in x86-64 mathvec 2016-03-16 14:24:19 -07:00
svml_d_cos2_core.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
svml_d_cos4_core_avx2.S Use JUMPTARGET in x86-64 mathvec 2016-03-16 14:24:19 -07:00
svml_d_cos4_core.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
svml_d_cos8_core_avx512.S Use JUMPTARGET in x86-64 mathvec 2016-03-16 14:24:19 -07:00
svml_d_cos8_core.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
svml_d_exp2_core_sse4.S Use JUMPTARGET in x86-64 mathvec 2016-03-16 14:24:19 -07:00
svml_d_exp2_core.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
svml_d_exp4_core_avx2.S Use JUMPTARGET in x86-64 mathvec 2016-03-16 14:24:19 -07:00
svml_d_exp4_core.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
svml_d_exp8_core_avx512.S Use JUMPTARGET in x86-64 mathvec 2016-03-16 14:24:19 -07:00
svml_d_exp8_core.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
svml_d_log2_core_sse4.S Use JUMPTARGET in x86-64 mathvec 2016-03-16 14:24:19 -07:00
svml_d_log2_core.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
svml_d_log4_core_avx2.S Use JUMPTARGET in x86-64 mathvec 2016-03-16 14:24:19 -07:00
svml_d_log4_core.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
svml_d_log8_core_avx512.S Use JUMPTARGET in x86-64 mathvec 2016-03-16 14:24:19 -07:00
svml_d_log8_core.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
svml_d_pow2_core_sse4.S Use JUMPTARGET in x86-64 mathvec 2016-03-16 14:24:19 -07:00
svml_d_pow2_core.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
svml_d_pow4_core_avx2.S Use JUMPTARGET in x86-64 mathvec 2016-03-16 14:24:19 -07:00
svml_d_pow4_core.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
svml_d_pow8_core_avx512.S Use JUMPTARGET in x86-64 mathvec 2016-03-16 14:24:19 -07:00
svml_d_pow8_core.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
svml_d_sin2_core_sse4.S Use JUMPTARGET in x86-64 mathvec 2016-03-16 14:24:19 -07:00
svml_d_sin2_core.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
svml_d_sin4_core_avx2.S Use JUMPTARGET in x86-64 mathvec 2016-03-16 14:24:19 -07:00
svml_d_sin4_core.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
svml_d_sin8_core_avx512.S Use JUMPTARGET in x86-64 mathvec 2016-03-16 14:24:19 -07:00
svml_d_sin8_core.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
svml_d_sincos2_core_sse4.S Use JUMPTARGET in x86-64 mathvec 2016-03-16 14:24:19 -07:00
svml_d_sincos2_core.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
svml_d_sincos4_core_avx2.S Use JUMPTARGET in x86-64 mathvec 2016-03-16 14:24:19 -07:00
svml_d_sincos4_core.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
svml_d_sincos8_core_avx512.S Use JUMPTARGET in x86-64 mathvec 2016-03-16 14:24:19 -07:00
svml_d_sincos8_core.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
svml_s_cosf4_core_sse4.S Use JUMPTARGET in x86-64 mathvec 2016-03-16 14:24:19 -07:00
svml_s_cosf4_core.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
svml_s_cosf8_core_avx2.S Use JUMPTARGET in x86-64 mathvec 2016-03-16 14:24:19 -07:00
svml_s_cosf8_core.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
svml_s_cosf16_core_avx512.S Use JUMPTARGET in x86-64 mathvec 2016-03-16 14:24:19 -07:00
svml_s_cosf16_core.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
svml_s_expf4_core_sse4.S Use JUMPTARGET in x86-64 mathvec 2016-03-16 14:24:19 -07:00
svml_s_expf4_core.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
svml_s_expf8_core_avx2.S Use JUMPTARGET in x86-64 mathvec 2016-03-16 14:24:19 -07:00
svml_s_expf8_core.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
svml_s_expf16_core_avx512.S Use JUMPTARGET in x86-64 mathvec 2016-03-16 14:24:19 -07:00
svml_s_expf16_core.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
svml_s_logf4_core_sse4.S Use JUMPTARGET in x86-64 mathvec 2016-03-16 14:24:19 -07:00
svml_s_logf4_core.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
svml_s_logf8_core_avx2.S Use JUMPTARGET in x86-64 mathvec 2016-03-16 14:24:19 -07:00
svml_s_logf8_core.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
svml_s_logf16_core_avx512.S Use JUMPTARGET in x86-64 mathvec 2016-03-16 14:24:19 -07:00
svml_s_logf16_core.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
svml_s_powf4_core_sse4.S Use JUMPTARGET in x86-64 mathvec 2016-03-16 14:24:19 -07:00
svml_s_powf4_core.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
svml_s_powf8_core_avx2.S Use JUMPTARGET in x86-64 mathvec 2016-03-16 14:24:19 -07:00
svml_s_powf8_core.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
svml_s_powf16_core_avx512.S Use JUMPTARGET in x86-64 mathvec 2016-03-16 14:24:19 -07:00
svml_s_powf16_core.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
svml_s_sincosf4_core_sse4.S Use JUMPTARGET in x86-64 mathvec 2016-03-16 14:24:19 -07:00
svml_s_sincosf4_core.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
svml_s_sincosf8_core_avx2.S Use JUMPTARGET in x86-64 mathvec 2016-03-16 14:24:19 -07:00
svml_s_sincosf8_core.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
svml_s_sincosf16_core_avx512.S Use JUMPTARGET in x86-64 mathvec 2016-03-16 14:24:19 -07:00
svml_s_sincosf16_core.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
svml_s_sinf4_core_sse4.S Use JUMPTARGET in x86-64 mathvec 2016-03-16 14:24:19 -07:00
svml_s_sinf4_core.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
svml_s_sinf8_core_avx2.S Use JUMPTARGET in x86-64 mathvec 2016-03-16 14:24:19 -07:00
svml_s_sinf8_core.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
svml_s_sinf16_core_avx512.S Use JUMPTARGET in x86-64 mathvec 2016-03-16 14:24:19 -07:00
svml_s_sinf16_core.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00