This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 00/10] x86: Use the generic math implementations


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]