summary refs log tree commit diff
path: root/sysdeps/powerpc/powerpc64/multiarch/strcmp.c
diff options
context:
space:
mode:
authorRajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>2016-12-01 11:35:43 +0530
committerRajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>2016-12-01 11:35:43 +0530
commit80ab6401a9bb566de940cc6a5fb7a6af650f17b9 (patch)
treec0fa2ad29f79c73d307241efca599a43834b71c1 /sysdeps/powerpc/powerpc64/multiarch/strcmp.c
parentb2491db6c814d614acdef9d7a4e44a8c3b3ae9dc (diff)
downloadglibc-80ab6401a9bb566de940cc6a5fb7a6af650f17b9.tar.gz
glibc-80ab6401a9bb566de940cc6a5fb7a6af650f17b9.tar.xz
glibc-80ab6401a9bb566de940cc6a5fb7a6af650f17b9.zip
powerpc: strcmp optimization for power9
Vectorized loops are used for strings > 32B when compared
to power8 optimization.

Tested on power9 ppc64le simulator.
Diffstat (limited to 'sysdeps/powerpc/powerpc64/multiarch/strcmp.c')
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcmp.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcmp.c b/sysdeps/powerpc/powerpc64/multiarch/strcmp.c
index 06f89cb375..6e8d699860 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcmp.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcmp.c
@@ -27,9 +27,13 @@
 extern __typeof (strcmp) __strcmp_ppc attribute_hidden;
 extern __typeof (strcmp) __strcmp_power7 attribute_hidden;
 extern __typeof (strcmp) __strcmp_power8 attribute_hidden;
+extern __typeof (strcmp) __strcmp_power9 attribute_hidden;
+
 # undef strcmp
 
 libc_ifunc_redirected (__redirect_strcmp, strcmp,
+			(hwcap2 & PPC_FEATURE2_ARCH_3_00)
+			? __strcmp_power9 :
 		       (hwcap2 & PPC_FEATURE2_ARCH_2_07)
 		       ? __strcmp_power8
 		       : (hwcap & PPC_FEATURE_HAS_VSX)