glibc/sysdeps/x86_64/fpu/multiarch
H.J. Lu 24a2e6588d x86-64: Optimize e_expf with FMA [BZ #21912]
FMA optimized e_expf improves performance by more than 50% on Skylake.

	[BZ #21912]
	* sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines):
	Add e_expf-fma.
	* sysdeps/x86_64/fpu/multiarch/e_expf-fma.S: New file.
	* sysdeps/x86_64/fpu/multiarch/e_expf.c: Likewise.
	* sysdeps/x86_64/fpu/multiarch/ifunc-fma.h: Likewise.
2017-08-16 08:43:48 -07:00
..
doasin-fma4.c
doasin-fma.c x86-64: Add FMA multiarch functions to libm 2017-08-07 08:20:56 -07:00
dosincos-fma4.c
dosincos-fma.c x86-64: Add FMA multiarch functions to libm 2017-08-07 08:20:56 -07:00
e_asin-fma4.c
e_asin-fma.c x86-64: Add FMA multiarch functions to libm 2017-08-07 08:20:56 -07:00
e_asin.c x86-64: Add FMA multiarch functions to libm 2017-08-07 08:20:56 -07:00
e_atan2-avx.c
e_atan2-fma4.c
e_atan2-fma.c x86-64: Add FMA multiarch functions to libm 2017-08-07 08:20:56 -07:00
e_atan2.c x86-64: Add FMA multiarch functions to libm 2017-08-07 08:20:56 -07:00
e_exp-avx.c
e_exp-fma4.c
e_exp-fma.c x86-64: Add FMA multiarch functions to libm 2017-08-07 08:20:56 -07:00
e_exp.c x86-64: Add FMA multiarch functions to libm 2017-08-07 08:20:56 -07:00
e_expf-fma.S x86-64: Optimize e_expf with FMA [BZ #21912] 2017-08-16 08:43:48 -07:00
e_expf.c x86-64: Optimize e_expf with FMA [BZ #21912] 2017-08-16 08:43:48 -07:00
e_log-avx.c
e_log-fma4.c
e_log-fma.c x86-64: Add FMA multiarch functions to libm 2017-08-07 08:20:56 -07:00
e_log.c x86-64: Add FMA multiarch functions to libm 2017-08-07 08:20:56 -07:00
e_pow-fma4.c
e_pow-fma.c x86-64: Add FMA multiarch functions to libm 2017-08-07 08:20:56 -07:00
e_pow.c x86-64: Add FMA multiarch functions to libm 2017-08-07 08:20:56 -07:00
halfulp-fma4.c
halfulp-fma.c x86-64: Add FMA multiarch functions to libm 2017-08-07 08:20:56 -07:00
ifunc-avx-fma4.h x86-64: Add FMA multiarch functions to libm 2017-08-07 08:20:56 -07:00
ifunc-fma4.h x86-64: Add FMA multiarch functions to libm 2017-08-07 08:20:56 -07:00
ifunc-fma.h x86-64: Optimize e_expf with FMA [BZ #21912] 2017-08-16 08:43:48 -07:00
ifunc-mathvec-avx2.h x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
ifunc-mathvec-avx512.h x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
ifunc-mathvec-sse4_1.h x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
ifunc-sse4_1.h x86-64: Implement libm IFUNC selectors in C 2017-08-04 13:02:13 -07:00
Makefile x86-64: Optimize e_expf with FMA [BZ #21912] 2017-08-16 08:43:48 -07:00
mpa-avx.c New __sqr function as a faster special case of __mul 2013-02-14 10:31:09 +05:30
mpa-fma4.c New __sqr function as a faster special case of __mul 2013-02-14 10:31:09 +05:30
mpa-fma.c x86-64: Add FMA multiarch functions to libm 2017-08-07 08:20:56 -07:00
mpatan2-fma4.c
mpatan2-fma.c x86-64: Add FMA multiarch functions to libm 2017-08-07 08:20:56 -07:00
mpatan-fma4.c
mpatan-fma.c x86-64: Add FMA multiarch functions to libm 2017-08-07 08:20:56 -07:00
mpexp-avx.c
mpexp-fma4.c
mpexp-fma.c x86-64: Add FMA multiarch functions to libm 2017-08-07 08:20:56 -07:00
mplog-avx.c
mplog-fma4.c
mplog-fma.c x86-64: Add FMA multiarch functions to libm 2017-08-07 08:20:56 -07:00
mpsqrt-fma4.c
mpsqrt-fma.c x86-64: Add FMA multiarch functions to libm 2017-08-07 08:20:56 -07:00
mptan-fma4.c
mptan-fma.c x86-64: Add FMA multiarch functions to libm 2017-08-07 08:20:56 -07:00
s_atan-avx.c
s_atan-fma4.c
s_atan-fma.c x86-64: Add FMA multiarch functions to libm 2017-08-07 08:20:56 -07:00
s_atan.c x86-64: Add FMA multiarch functions to libm 2017-08-07 08:20:56 -07:00
s_ceil-c.c
s_ceil-sse4_1.S x86-64: Implement libm IFUNC selectors in C 2017-08-04 13:02:13 -07:00
s_ceil.c x86-64: Implement libm IFUNC selectors in C 2017-08-04 13:02:13 -07:00
s_ceilf-c.c
s_ceilf-sse4_1.S x86-64: Implement libm IFUNC selectors in C 2017-08-04 13:02:13 -07:00
s_ceilf.c x86-64: Implement libm IFUNC selectors in C 2017-08-04 13:02:13 -07:00
s_floor-c.c
s_floor-sse4_1.S x86-64: Implement libm IFUNC selectors in C 2017-08-04 13:02:13 -07:00
s_floor.c x86-64: Implement libm IFUNC selectors in C 2017-08-04 13:02:13 -07:00
s_floorf-c.c
s_floorf-sse4_1.S x86-64: Implement libm IFUNC selectors in C 2017-08-04 13:02:13 -07:00
s_floorf.c x86-64: Implement libm IFUNC selectors in C 2017-08-04 13:02:13 -07:00
s_fma.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
s_fmaf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
s_nearbyint-c.c
s_nearbyint-sse4_1.S x86-64: Implement libm IFUNC selectors in C 2017-08-04 13:02:13 -07:00
s_nearbyint.c x86-64: Implement libm IFUNC selectors in C 2017-08-04 13:02:13 -07:00
s_nearbyintf-c.c
s_nearbyintf-sse4_1.S x86-64: Implement libm IFUNC selectors in C 2017-08-04 13:02:13 -07:00
s_nearbyintf.c x86-64: Implement libm IFUNC selectors in C 2017-08-04 13:02:13 -07:00
s_rint-c.c
s_rint-sse4_1.S x86-64: Implement libm IFUNC selectors in C 2017-08-04 13:02:13 -07:00
s_rint.c x86-64: Implement libm IFUNC selectors in C 2017-08-04 13:02:13 -07:00
s_rintf-c.c
s_rintf-sse4_1.S x86-64: Implement libm IFUNC selectors in C 2017-08-04 13:02:13 -07:00
s_rintf.c x86-64: Implement libm IFUNC selectors in C 2017-08-04 13:02:13 -07:00
s_sin-avx.c
s_sin-fma4.c
s_sin-fma.c x86-64: Add FMA multiarch functions to libm 2017-08-07 08:20:56 -07:00
s_sin.c x86-64: Add FMA multiarch functions to libm 2017-08-07 08:20:56 -07:00
s_tan-avx.c
s_tan-fma4.c
s_tan-fma.c x86-64: Add FMA multiarch functions to libm 2017-08-07 08:20:56 -07:00
s_tan.c x86-64: Add FMA multiarch functions to libm 2017-08-07 08:20:56 -07:00
sincos32-fma4.c
sincos32-fma.c x86-64: Add FMA multiarch functions to libm 2017-08-07 08:20:56 -07:00
slowexp-avx.c
slowexp-fma4.c
slowexp-fma.c x86-64: Add FMA multiarch functions to libm 2017-08-07 08:20:56 -07:00
slowpow-fma4.c
slowpow-fma.c x86-64: Add FMA multiarch functions to libm 2017-08-07 08:20:56 -07:00
svml_d_cos2_core_sse4.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
svml_d_cos2_core-sse2.S x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_d_cos2_core.c x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_d_cos4_core_avx2.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
svml_d_cos4_core-sse.S x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_d_cos4_core.c x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_d_cos8_core_avx512.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
svml_d_cos8_core-avx2.S x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_d_cos8_core.c x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_d_exp2_core_sse4.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
svml_d_exp2_core-sse2.S x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_d_exp2_core.c x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_d_exp4_core_avx2.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
svml_d_exp4_core-sse.S x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_d_exp4_core.c x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_d_exp8_core_avx512.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
svml_d_exp8_core-avx2.S x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_d_exp8_core.c x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_d_log2_core_sse4.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
svml_d_log2_core-sse2.S x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_d_log2_core.c x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_d_log4_core_avx2.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
svml_d_log4_core-sse.S x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_d_log4_core.c x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_d_log8_core_avx512.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
svml_d_log8_core-avx2.S x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_d_log8_core.c x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_d_pow2_core_sse4.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
svml_d_pow2_core-sse2.S x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_d_pow2_core.c x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_d_pow4_core_avx2.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
svml_d_pow4_core-sse.S x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_d_pow4_core.c x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_d_pow8_core_avx512.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
svml_d_pow8_core-avx2.S x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_d_pow8_core.c x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_d_sin2_core_sse4.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
svml_d_sin2_core-sse2.S x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_d_sin2_core.c x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_d_sin4_core_avx2.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
svml_d_sin4_core-sse.S x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_d_sin4_core.c x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_d_sin8_core_avx512.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
svml_d_sin8_core-avx2.S x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_d_sin8_core.c x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_d_sincos2_core_sse4.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
svml_d_sincos2_core-sse2.S x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_d_sincos2_core.c x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_d_sincos4_core_avx2.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
svml_d_sincos4_core-sse.S x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_d_sincos4_core.c x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_d_sincos8_core_avx512.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
svml_d_sincos8_core-avx2.S x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_d_sincos8_core.c x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_s_cosf4_core_sse4.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
svml_s_cosf4_core-sse2.S x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_s_cosf4_core.c x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_s_cosf8_core_avx2.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
svml_s_cosf8_core-sse.S x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_s_cosf8_core.c x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_s_cosf16_core_avx512.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
svml_s_cosf16_core-avx2.S x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_s_cosf16_core.c x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_s_expf4_core_sse4.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
svml_s_expf4_core-sse2.S x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_s_expf4_core.c x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_s_expf8_core_avx2.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
svml_s_expf8_core-sse.S x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_s_expf8_core.c x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_s_expf16_core_avx512.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
svml_s_expf16_core-avx2.S x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_s_expf16_core.c x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_s_logf4_core_sse4.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
svml_s_logf4_core-sse2.S x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_s_logf4_core.c x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_s_logf8_core_avx2.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
svml_s_logf8_core-sse.S x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_s_logf8_core.c x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_s_logf16_core_avx512.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
svml_s_logf16_core-avx2.S x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_s_logf16_core.c x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_s_powf4_core_sse4.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
svml_s_powf4_core-sse2.S x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_s_powf4_core.c x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_s_powf8_core_avx2.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
svml_s_powf8_core-sse.S x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_s_powf8_core.c x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_s_powf16_core_avx512.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
svml_s_powf16_core-avx2.S x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_s_powf16_core.c x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_s_sincosf4_core_sse4.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
svml_s_sincosf4_core-sse2.S x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_s_sincosf4_core.c x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_s_sincosf8_core_avx2.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
svml_s_sincosf8_core-sse.S x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_s_sincosf8_core.c x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_s_sincosf16_core_avx512.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
svml_s_sincosf16_core-avx2.S x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_s_sincosf16_core.c x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_s_sinf4_core_sse4.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
svml_s_sinf4_core-sse2.S x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_s_sinf4_core.c x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_s_sinf8_core_avx2.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
svml_s_sinf8_core-sse.S x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_s_sinf8_core.c x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_s_sinf16_core_avx512.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
svml_s_sinf16_core-avx2.S x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00
svml_s_sinf16_core.c x86-64: Implement libmathvec IFUNC selectors in C 2017-08-04 13:03:58 -07:00