diff options
author | raji <raji@oc4354787705.ibm.com> | 2016-06-14 14:51:16 +0530 |
---|---|---|
committer | raji <raji@oc4354787705.ibm.com> | 2016-06-14 14:51:16 +0530 |
commit | c8376f3e07602aaef9cb843bb73cb5f2b860634a (patch) | |
tree | 9ba0710f8398c1299412ddefbf9a01c23c6a43ea /sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c | |
parent | a2ae1696f7c6cf269b3a734bce4d9d3620745854 (diff) | |
download | glibc-c8376f3e07602aaef9cb843bb73cb5f2b860634a.tar.gz glibc-c8376f3e07602aaef9cb843bb73cb5f2b860634a.tar.xz glibc-c8376f3e07602aaef9cb843bb73cb5f2b860634a.zip |
powerpc: strcasecmp/strncasecmp optmization for power8
This implementation utilizes vectors to improve performance compared to current byte by byte implementation for POWER7. The performance improvement is upto 4x. This patch is tested on powerpc64 and powerpc64le.
Diffstat (limited to 'sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c')
-rw-r--r-- | sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c b/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c index a0dc8ad4c4..9f6bd7cd98 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c +++ b/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c @@ -204,6 +204,9 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, /* Support sysdeps/powerpc/powerpc64/multiarch/strcasecmp.c. */ IFUNC_IMPL (i, name, strcasecmp, IFUNC_IMPL_ADD (array, i, strcasecmp, + hwcap2 & PPC_FEATURE2_ARCH_2_07, + __strcasecmp_power8) + IFUNC_IMPL_ADD (array, i, strcasecmp, hwcap & PPC_FEATURE_HAS_VSX, __strcasecmp_power7) IFUNC_IMPL_ADD (array, i, strcasecmp, 1, __strcasecmp_ppc)) @@ -219,6 +222,9 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, /* Support sysdeps/powerpc/powerpc64/multiarch/strncase.c. */ IFUNC_IMPL (i, name, strncasecmp, IFUNC_IMPL_ADD (array, i, strncasecmp, + hwcap2 & PPC_FEATURE2_ARCH_2_07, + __strncasecmp_power8) + IFUNC_IMPL_ADD (array, i, strncasecmp, hwcap & PPC_FEATURE_HAS_VSX, __strncasecmp_power7) IFUNC_IMPL_ADD (array, i, strncasecmp, 1, __strncasecmp_ppc)) |