i386: Replace assembly versions of e_log2f with generic e_log2f.c
commit6089a3ee24cede17e9443aef0aa72fa1a0ba1548
authorH.J. Lu <hjl.tools@gmail.com>
Sun, 22 Oct 2017 15:09:08 +0000 (22 08:09 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Sun, 22 Oct 2017 15:10:18 +0000 (22 08:10 -0700)
treec160e567478cc34bf93e845362968562317a41f2
parent80bb5935632faf8a8e94daf976340e549be9d4c5
i386: Replace assembly versions of e_log2f with generic e_log2f.c

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

                           Before            After     Improvement
reciprocal-throughput      92.3845          30.8752       199%
latency                    112.855          54.8645       105%

On Skylake, it improves performance by:

                           Before            After     Improvement
reciprocal-throughput      98.7488          22.7507       334%
latency                    118.01           51.6083       128%

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

                           Before            After     Improvement
reciprocal-throughput      106.635          28.8596       269%
latency                    129.888          56.9187       128%

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