x86-64: Replace assembly versions of e_expf with generic e_expf.c
authorH.J. Lu <hjl.tools@gmail.com>
Sun, 22 Oct 2017 14:49:36 +0000 (07:49 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Sun, 22 Oct 2017 14:49:55 +0000 (07:49 -0700)
commite1f59bebd885c442c14df3554da9fe08792ce7ce
tree2a8d4b88a4373cc77e4085d050d806b7bd216549
parenta159b53fa059947cc2548e3b0d5bdcf7b9630ba8
x86-64: Replace assembly versions of e_expf with generic e_expf.c

This patch replaces x86-64 assembly versions of e_expf with generic
e_expf.c.  For workload-spec2017.wrf, on Nehalem, it improves
performance by:

                           Before            After     Improvement
reciprocal-throughput      36.039           20.7749       73%
latency                    58.8096          40.8715       43%

On Skylake, it improves

                           Before            After     Improvement
reciprocal-throughput      18.4436          11.1693       65%
latency                    47.5162          37.5411       26%

* sysdeps/x86_64/fpu/e_expf.S: Removed.
* sysdeps/x86_64/fpu/multiarch/e_expf-fma.S: Likewise.
* sysdeps/x86_64/fpu/w_expf.c: Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Updated for generic
e_expf.c.
* sysdeps/x86_64/fpu/multiarch/Makefile (CFLAGS-e_expf-fma.c):
New.
* sysdeps/x86_64/fpu/multiarch/e_expf-fma.c: New file.
* sysdeps/x86_64/fpu/multiarch/e_expf.c (__redirect_ieee754_expf):
Renamed to ...
(__redirect_expf): This.
(SYMBOL_NAME): Changed to expf.
(__ieee754_expf): Renamed to ...
(__expf): This.
(__GI___expf): This.
(__ieee754_expf): Add strong_alias.
(__expf_finite): Likewise.
(__expf): New.
Include <sysdeps/ieee754/flt-32/e_expf.c>.
ChangeLog
sysdeps/x86_64/fpu/e_expf.S [deleted file]
sysdeps/x86_64/fpu/libm-test-ulps
sysdeps/x86_64/fpu/multiarch/Makefile
sysdeps/x86_64/fpu/multiarch/e_expf-fma.S [deleted file]
sysdeps/x86_64/fpu/multiarch/e_expf-fma.c [new file with mode: 0644]
sysdeps/x86_64/fpu/multiarch/e_expf.c
sysdeps/x86_64/fpu/w_expf.c [deleted file]