diff options
author | Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com> | 2017-05-18 11:21:20 +0530 |
---|---|---|
committer | Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com> | 2017-05-18 11:21:20 +0530 |
commit | dec4a7105edcdbabdcac5f358f5bc5dca4f4ed1b (patch) | |
tree | c78b15dd4749c73465a65cd087ff26ebbff93d3c /sysdeps/powerpc/powerpc64/multiarch/memcmp.c | |
parent | 477bf19a590b6e6de65f326cb00dcb8999fa8b26 (diff) | |
download | glibc-dec4a7105edcdbabdcac5f358f5bc5dca4f4ed1b.tar.gz glibc-dec4a7105edcdbabdcac5f358f5bc5dca4f4ed1b.tar.xz glibc-dec4a7105edcdbabdcac5f358f5bc5dca4f4ed1b.zip |
powerpc: Improve memcmp performance for POWER8
Vectorization improves performance over the current implementation. Tested on powerpc64 and powerpc64le.
Diffstat (limited to 'sysdeps/powerpc/powerpc64/multiarch/memcmp.c')
-rw-r--r-- | sysdeps/powerpc/powerpc64/multiarch/memcmp.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcmp.c b/sysdeps/powerpc/powerpc64/multiarch/memcmp.c index ee69e2225b..0d315d5e70 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/memcmp.c +++ b/sysdeps/powerpc/powerpc64/multiarch/memcmp.c @@ -26,11 +26,14 @@ extern __typeof (memcmp) __memcmp_ppc attribute_hidden; extern __typeof (memcmp) __memcmp_power4 attribute_hidden; extern __typeof (memcmp) __memcmp_power7 attribute_hidden; +extern __typeof (memcmp) __memcmp_power8 attribute_hidden; # undef memcmp /* Avoid DWARF definition DIE on ifunc symbol so that GDB can handle ifunc symbol properly. */ libc_ifunc_redirected (__redirect_memcmp, memcmp, + (hwcap2 & PPC_FEATURE2_ARCH_2_07) + ? __memcmp_power8 : (hwcap & PPC_FEATURE_HAS_VSX) ? __memcmp_power7 : (hwcap & PPC_FEATURE_POWER4) |