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]

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


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


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