i386: Replace assembly versions of e_logf with generic e_logf.c
commitfe596486d694e657413d0d4c5a04598674ff71b1
authorH.J. Lu <hjl.tools@gmail.com>
Sun, 22 Oct 2017 15:01:38 +0000 (22 08:01 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Sun, 22 Oct 2017 15:02:58 +0000 (22 08:02 -0700)
treebaa82d03de8d66e51415ff7e0489ef7401126195
parent7eda65f69e0e4533b76ca4614fe516de03fe2b3a
i386: Replace assembly versions of e_logf with generic e_logf.c

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

                           Before            After     Improvement
reciprocal-throughput      73.3865          40.0454       83%
latency                    90.0985          54.4479       65%

On Skylake, it improves performance by:

                           Before            After     Improvement
reciprocal-throughput      75.1384          22.1452       239%
latency                    91.9441          50.7925       81%

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

                           Before            After     Improvement
reciprocal-throughput      84.5575          28.7879       193%
latency                    103.971          57.5231       80%

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