[PATCH 0/1] Add IFUNC POWER optimization for e_pow and e_exp
Juvenal A. Silva Jr
juvenal.silva.jr@gmail.com
Sun Jul 9 18:24:00 GMT 2017
This patch applies an optimization scheme used on other architectures to POWER
as a base speedup process. It uses GCC to generate multiple optimized code
versions, and the IFUNC technique to select the best one at runtime.
I did some crude measures on a POWER8 VM, using GCC 6.3.1 and I was able to
achieve an average 15%-20% speedup for those two double functions (exp and pow).
I'd like to run better measures, but I only have access to a virtual POWER
machine, so if any of you have access to POWER bare metal or even VMs on a more
controlled environment, I'd love to hear how good your measurements unfold.
I'd be glad to hear your comments and opinions...
Juvenal A. Silva Jr (1):
Add IFUNC POWER optimization for e_pow and e_exp
sysdeps/ieee754/dbl-64/e_pow.c | 2 +-
sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile | 18 ++++++++++-
.../powerpc/powerpc64/fpu/multiarch/e_exp-power7.c | 28 ++++++++++++++++
.../powerpc/powerpc64/fpu/multiarch/e_exp-power8.c | 28 ++++++++++++++++
.../powerpc/powerpc64/fpu/multiarch/e_exp-power9.c | 28 ++++++++++++++++
.../powerpc/powerpc64/fpu/multiarch/e_exp-ppc64.c | 26 +++++++++++++++
sysdeps/powerpc/powerpc64/fpu/multiarch/e_exp.c | 37 ++++++++++++++++++++++
.../powerpc/powerpc64/fpu/multiarch/e_pow-power7.c | 28 ++++++++++++++++
.../powerpc/powerpc64/fpu/multiarch/e_pow-power8.c | 28 ++++++++++++++++
.../powerpc/powerpc64/fpu/multiarch/e_pow-power9.c | 28 ++++++++++++++++
.../powerpc/powerpc64/fpu/multiarch/e_pow-ppc64.c | 26 +++++++++++++++
sysdeps/powerpc/powerpc64/fpu/multiarch/e_pow.c | 37 ++++++++++++++++++++++
.../powerpc64/fpu/multiarch/slowexp-power7.c | 26 +++++++++++++++
.../powerpc64/fpu/multiarch/slowexp-power8.c | 26 +++++++++++++++
.../powerpc64/fpu/multiarch/slowexp-power9.c | 26 +++++++++++++++
.../powerpc64/fpu/multiarch/slowexp-ppc64.c | 24 ++++++++++++++
.../powerpc64/fpu/multiarch/slowpow-power7.c | 26 +++++++++++++++
.../powerpc64/fpu/multiarch/slowpow-power8.c | 26 +++++++++++++++
.../powerpc64/fpu/multiarch/slowpow-power9.c | 26 +++++++++++++++
.../powerpc64/fpu/multiarch/slowpow-ppc64.c | 24 ++++++++++++++
20 files changed, 516 insertions(+), 2 deletions(-)
create mode 100644 sysdeps/powerpc/powerpc64/fpu/multiarch/e_exp-power7.c
create mode 100644 sysdeps/powerpc/powerpc64/fpu/multiarch/e_exp-power8.c
create mode 100644 sysdeps/powerpc/powerpc64/fpu/multiarch/e_exp-power9.c
create mode 100644 sysdeps/powerpc/powerpc64/fpu/multiarch/e_exp-ppc64.c
create mode 100644 sysdeps/powerpc/powerpc64/fpu/multiarch/e_exp.c
create mode 100644 sysdeps/powerpc/powerpc64/fpu/multiarch/e_pow-power7.c
create mode 100644 sysdeps/powerpc/powerpc64/fpu/multiarch/e_pow-power8.c
create mode 100644 sysdeps/powerpc/powerpc64/fpu/multiarch/e_pow-power9.c
create mode 100644 sysdeps/powerpc/powerpc64/fpu/multiarch/e_pow-ppc64.c
create mode 100644 sysdeps/powerpc/powerpc64/fpu/multiarch/e_pow.c
create mode 100644 sysdeps/powerpc/powerpc64/fpu/multiarch/slowexp-power7.c
create mode 100644 sysdeps/powerpc/powerpc64/fpu/multiarch/slowexp-power8.c
create mode 100644 sysdeps/powerpc/powerpc64/fpu/multiarch/slowexp-power9.c
create mode 100644 sysdeps/powerpc/powerpc64/fpu/multiarch/slowexp-ppc64.c
create mode 100644 sysdeps/powerpc/powerpc64/fpu/multiarch/slowpow-power7.c
create mode 100644 sysdeps/powerpc/powerpc64/fpu/multiarch/slowpow-power8.c
create mode 100644 sysdeps/powerpc/powerpc64/fpu/multiarch/slowpow-power9.c
create mode 100644 sysdeps/powerpc/powerpc64/fpu/multiarch/slowpow-ppc64.c
--
2.13.2
More information about the Libc-alpha
mailing list