i386: Replace assembly versions of e_exp2f with generic e_exp2f.c
authorH.J. Lu <hjl.tools@gmail.com>
Sun, 22 Oct 2017 14:58:54 +0000 (07:58 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Sun, 22 Oct 2017 15:00:18 +0000 (08:00 -0700)
commit7eda65f69e0e4533b76ca4614fe516de03fe2b3a
tree0b81497d81ea5be20c8a130f92c62f245a4e2089
parent5d15c9697577d2c342b5ade820bfd7b84a736b23
i386: Replace assembly versions of e_exp2f with generic e_exp2f.c

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

                           Before            After     Improvement
reciprocal-throughput      112.996          40.0454       182%
latency                    126.581          54.4479       132%

On Skylake, it improves performance by:

                           Before            After     Improvement
reciprocal-throughput      113.14           39.447        186%
latency                    136.068          55.684        144%

On IvyBridge with --disable-multi-arch, it improves performance by:

                           Before            After     Improvement
reciprocal-throughput      132.521          40.3759       228%
latency                    145.791          58.4587       149%

* sysdeps/i386/fpu/e_exp2f.S: Removed.
* sysdeps/i386/fpu/w_exp2f.c: Likewise.
* sysdeps/i386/fpu/libm-test-ulps: Updated for generic e_exp2f.c.
* sysdeps/i386/i686/fpu/multiarch/libm-test-ulps: Likewise.
* sysdeps/i386/i686/fpu/multiarch/Makefile (libm-sysdep_routines):
Add e_exp2f-sse2.
(CFLAGS-e_exp2f-sse2.c): New.
* sysdeps/i386/i686/fpu/multiarch/e_exp2f-sse2.c: New file.
* sysdeps/i386/i686/fpu/multiarch/e_exp2f.c: Likewise.
ChangeLog
sysdeps/i386/fpu/e_exp2f.S [deleted file]
sysdeps/i386/fpu/libm-test-ulps
sysdeps/i386/fpu/w_exp2f.c [deleted file]
sysdeps/i386/i686/fpu/multiarch/Makefile
sysdeps/i386/i686/fpu/multiarch/e_exp2f-sse2.c [new file with mode: 0644]
sysdeps/i386/i686/fpu/multiarch/e_exp2f.c [new file with mode: 0644]
sysdeps/i386/i686/fpu/multiarch/libm-test-ulps