From cf150d45a97c6bb8410d6d3acf6e1560e8fe96cc Mon Sep 17 00:00:00 2001 From: Stefan Liebler Date: Wed, 26 Aug 2015 10:26:23 +0200 Subject: S390: Optimize strchr and wcschr. This patch provides optimized versions of strchr and wcschr with the z13 vector instructions. ChangeLog: * sysdeps/s390/multiarch/strchr-c.c: New File. * sysdeps/s390/multiarch/strchr-vx.S: Likewise. * sysdeps/s390/multiarch/strchr.c: Likewise. * sysdeps/s390/multiarch/wcschr-c.c: Likewise. * sysdeps/s390/multiarch/wcschr-vx.S: Likewise. * sysdeps/s390/multiarch/wcschr.c: Likewise. * sysdeps/s390/multiarch/Makefile (sysdep_routines): Add strchr and wcschr functions. * sysdeps/s390/multiarch/ifunc-impl-list.c (__libc_ifunc_impl_list): Add ifunc test for strchr, wcschr. * string/strchr.c (STRCHR): Define and use macro. * benchtests/bench-wcschr.c: New File. * benchtests/Makefile (wcsmbs-bench): Add wcschr. --- string/strchr.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'string/strchr.c') diff --git a/string/strchr.c b/string/strchr.c index f13b2b3d94..f73891d439 100644 --- a/string/strchr.c +++ b/string/strchr.c @@ -25,9 +25,13 @@ #undef strchr +#ifndef STRCHR +# define STRCHR strchr +#endif + /* Find the first occurrence of C in S. */ char * -strchr (const char *s, int c_in) +STRCHR (const char *s, int c_in) { const unsigned char *char_ptr; const unsigned long int *longword_ptr; @@ -175,7 +179,7 @@ strchr (const char *s, int c_in) } #ifdef weak_alias -#undef index +# undef index weak_alias (strchr, index) #endif libc_hidden_builtin_def (strchr) -- cgit v1.2.3