i386: Replace assembly versions of e_expf with generic e_expf.c
commitb2f6137ea570933fb4be286574cc58b794eb5b5f
authorH.J. Lu <hjl.tools@gmail.com>
Sun, 22 Oct 2017 14:54:38 +0000 (22 07:54 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Sun, 22 Oct 2017 14:54:50 +0000 (22 07:54 -0700)
treeb95f459a9090aba7854e32c454001a610f400728
parente1f59bebd885c442c14df3554da9fe08792ce7ce
i386: Replace assembly versions of e_expf with generic e_expf.c

This patch replaces i386 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      55.5724          40.2664       38%
latency                    80.0687          60.8517       31%

On Skylake, it improves performance by:

                           Before            After     Improvement
reciprocal-throughput      62.4056          39.4188       58%
latency                    85.5496          59.6377       43%

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

                           Before            After     Improvement
reciprocal-throughput      133.707          40.3778       231%
latency                    149.191          63.2515       135%

* sysdeps/i386/fpu/e_exp2f_data.c: Removed.
* sysdeps/i386/fpu/e_expf.S: Likewise.
* sysdeps/i386/fpu/math_errf.c: Likewise.
* sysdeps/i386/fpu/w_expf.c: Likewise.
* sysdeps/i386/i686/fpu/multiarch/e_expf-ia32.S: Likewise.
* sysdeps/i386/i686/fpu/multiarch/e_expf-sse2.S: Likewise.
* sysdeps/i386/i686/fpu/multiarch/w_expf.c: Likewise.
* sysdeps/i386/fpu/libm-test-ulps: Updated for generic e_expf.c.
* sysdeps/i386/i686/fpu/multiarch/libm-test-ulps: Likewise.
* sysdeps/i386/i686/fpu/multiarch/Makefile (libm-sysdep_routines):
Remove e_expf-ia32.
(CFLAGS-e_expf-sse2.c): New.
* sysdeps/i386/i686/fpu/multiarch/e_expf-sse2.c: New file.
* sysdeps/i386/i686/fpu/multiarch/e_expf.c: Rewritten.
12 files changed:
ChangeLog
sysdeps/i386/fpu/e_exp2f_data.c [deleted file]
sysdeps/i386/fpu/e_expf.S [deleted file]
sysdeps/i386/fpu/libm-test-ulps
sysdeps/i386/fpu/math_errf.c [deleted file]
sysdeps/i386/fpu/w_expf.c [deleted file]
sysdeps/i386/i686/fpu/multiarch/Makefile
sysdeps/i386/i686/fpu/multiarch/e_expf-sse2.S [deleted file]
sysdeps/i386/i686/fpu/multiarch/e_expf-sse2.c [new file with mode: 0644]
sysdeps/i386/i686/fpu/multiarch/e_expf.c [moved from sysdeps/i386/i686/fpu/multiarch/e_expf-ia32.S with 58% similarity]
sysdeps/i386/i686/fpu/multiarch/libm-test-ulps
sysdeps/i386/i686/fpu/multiarch/w_expf.c [deleted file]