This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH 00/10] x86: Use the generic math implementations
- From: "H.J. Lu" <hjl dot tools at gmail dot com>
- To: GNU C Library <libc-alpha at sourceware dot org>
- Date: Sun, 22 Oct 2017 07:36:08 -0700
- Subject: Re: [PATCH 00/10] x86: Use the generic math implementations
- Authentication-results: sourceware.org; auth=none
- References: <20171019173159.21402-1-hjl.tools@gmail.com>
On Thu, Oct 19, 2017 at 10:31 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
> The new generic math implementations are faster than the current assembly
> versions on i686 and x86-64. This series of patches replaces the x86
> assembly versions with the generic math implementations and enables FMA
> for x86-64.
>
> H.J. Lu (10):
> x86-64: Replace assembly versions of e_expf with generic e_expf.c
> i386: Replace assembly versions of e_expf with generic e_expf.c
> x86-64: Add exp2f with FMA
> i386: Replace assembly versions of e_exp2f with generic e_exp2f.c
> i386: Replace assembly versions of e_logf with generic e_logf.c
> x86-64: Add logf with FMA
> x86-64: Add log2f with FMA
> x86-64: Add powf with FMA
> i386: Replace assembly versions of e_log2f with generic e_log2f.c
> i386: Replace assembly versions of e_powf with generic e_powf.c
>
> sysdeps/i386/fpu/e_exp2f.S | 52 ---
> sysdeps/i386/fpu/e_exp2f_data.c | 1 -
> sysdeps/i386/fpu/e_expf.S | 74 ----
> sysdeps/i386/fpu/e_log2f.S | 69 ----
> sysdeps/i386/fpu/e_log2f_data.c | 1 -
> sysdeps/i386/fpu/e_logf.S | 93 -----
> sysdeps/i386/fpu/e_logf_data.c | 1 -
> sysdeps/i386/fpu/e_powf.S | 392 ---------------------
> sysdeps/i386/fpu/e_powf_log2_data.c | 1 -
> sysdeps/i386/fpu/libm-test-ulps | 36 +-
> sysdeps/i386/fpu/math_errf.c | 1 -
> sysdeps/i386/fpu/w_exp2f.c | 1 -
> sysdeps/i386/fpu/w_expf.c | 1 -
> sysdeps/i386/fpu/w_log2f.c | 1 -
> sysdeps/i386/fpu/w_logf.c | 1 -
> sysdeps/i386/fpu/w_powf.c | 1 -
> sysdeps/i386/i686/fpu/e_logf.S | 30 --
> sysdeps/i386/i686/fpu/multiarch/Makefile | 10 +-
> sysdeps/i386/i686/fpu/multiarch/e_exp2f-sse2.c | 3 +
> sysdeps/i386/i686/fpu/multiarch/e_exp2f.c | 37 ++
> sysdeps/i386/i686/fpu/multiarch/e_expf-sse2.S | 325 -----------------
> sysdeps/i386/i686/fpu/multiarch/e_expf-sse2.c | 3 +
> sysdeps/i386/i686/fpu/multiarch/e_expf.c | 35 +-
> sysdeps/i386/i686/fpu/multiarch/e_log2f-sse2.c | 3 +
> sysdeps/i386/i686/fpu/multiarch/e_log2f.c | 40 +++
> sysdeps/i386/i686/fpu/multiarch/e_logf-sse2.c | 3 +
> sysdeps/i386/i686/fpu/multiarch/e_logf.c | 40 +++
> sysdeps/i386/i686/fpu/multiarch/e_powf-sse2.c | 3 +
> sysdeps/i386/i686/fpu/multiarch/e_powf.c | 43 +++
> sysdeps/i386/i686/fpu/multiarch/libm-test-ulps | 38 +-
> sysdeps/i386/i686/fpu/multiarch/w_expf.c | 1 -
> sysdeps/x86_64/fpu/e_expf.S | 339 ------------------
> sysdeps/x86_64/fpu/libm-test-ulps | 4 +
> sysdeps/x86_64/fpu/multiarch/Makefile | 10 +-
> sysdeps/x86_64/fpu/multiarch/e_exp2f-fma.c | 3 +
> .../fpu/multiarch/e_exp2f.c} | 25 +-
> sysdeps/x86_64/fpu/multiarch/e_expf-fma.S | 182 ----------
> sysdeps/x86_64/fpu/multiarch/e_expf-fma.c | 3 +
> sysdeps/x86_64/fpu/multiarch/e_expf.c | 26 +-
> sysdeps/x86_64/fpu/multiarch/e_log2f-fma.c | 3 +
> sysdeps/x86_64/fpu/multiarch/e_log2f.c | 40 +++
> sysdeps/x86_64/fpu/multiarch/e_logf-fma.c | 3 +
> sysdeps/x86_64/fpu/multiarch/e_logf.c | 40 +++
> sysdeps/x86_64/fpu/multiarch/e_powf-fma.c | 3 +
> sysdeps/x86_64/fpu/multiarch/e_powf.c | 43 +++
> sysdeps/x86_64/fpu/w_expf.c | 1 -
> 46 files changed, 444 insertions(+), 1621 deletions(-)
> delete mode 100644 sysdeps/i386/fpu/e_exp2f.S
> delete mode 100644 sysdeps/i386/fpu/e_exp2f_data.c
> delete mode 100644 sysdeps/i386/fpu/e_expf.S
> delete mode 100644 sysdeps/i386/fpu/e_log2f.S
> delete mode 100644 sysdeps/i386/fpu/e_log2f_data.c
> delete mode 100644 sysdeps/i386/fpu/e_logf.S
> delete mode 100644 sysdeps/i386/fpu/e_logf_data.c
> delete mode 100644 sysdeps/i386/fpu/e_powf.S
> delete mode 100644 sysdeps/i386/fpu/e_powf_log2_data.c
> delete mode 100644 sysdeps/i386/fpu/math_errf.c
> delete mode 100644 sysdeps/i386/fpu/w_exp2f.c
> delete mode 100644 sysdeps/i386/fpu/w_expf.c
> delete mode 100644 sysdeps/i386/fpu/w_log2f.c
> delete mode 100644 sysdeps/i386/fpu/w_logf.c
> delete mode 100644 sysdeps/i386/fpu/w_powf.c
> delete mode 100644 sysdeps/i386/i686/fpu/e_logf.S
> create mode 100644 sysdeps/i386/i686/fpu/multiarch/e_exp2f-sse2.c
> create mode 100644 sysdeps/i386/i686/fpu/multiarch/e_exp2f.c
> delete mode 100644 sysdeps/i386/i686/fpu/multiarch/e_expf-sse2.S
> create mode 100644 sysdeps/i386/i686/fpu/multiarch/e_expf-sse2.c
> create mode 100644 sysdeps/i386/i686/fpu/multiarch/e_log2f-sse2.c
> create mode 100644 sysdeps/i386/i686/fpu/multiarch/e_log2f.c
> create mode 100644 sysdeps/i386/i686/fpu/multiarch/e_logf-sse2.c
> create mode 100644 sysdeps/i386/i686/fpu/multiarch/e_logf.c
> create mode 100644 sysdeps/i386/i686/fpu/multiarch/e_powf-sse2.c
> create mode 100644 sysdeps/i386/i686/fpu/multiarch/e_powf.c
> delete mode 100644 sysdeps/i386/i686/fpu/multiarch/w_expf.c
> delete mode 100644 sysdeps/x86_64/fpu/e_expf.S
> create mode 100644 sysdeps/x86_64/fpu/multiarch/e_exp2f-fma.c
> rename sysdeps/{i386/i686/fpu/multiarch/e_expf-ia32.S => x86_64/fpu/multiarch/e_exp2f.c} (57%)
> delete mode 100644 sysdeps/x86_64/fpu/multiarch/e_expf-fma.S
> create mode 100644 sysdeps/x86_64/fpu/multiarch/e_expf-fma.c
> create mode 100644 sysdeps/x86_64/fpu/multiarch/e_log2f-fma.c
> create mode 100644 sysdeps/x86_64/fpu/multiarch/e_log2f.c
> create mode 100644 sysdeps/x86_64/fpu/multiarch/e_logf-fma.c
> create mode 100644 sysdeps/x86_64/fpu/multiarch/e_logf.c
> create mode 100644 sysdeps/x86_64/fpu/multiarch/e_powf-fma.c
> create mode 100644 sysdeps/x86_64/fpu/multiarch/e_powf.c
> delete mode 100644 sysdeps/x86_64/fpu/w_expf.c
>
> --
> 2.13.6
>
I am checking them in.
--
H.J.