diff options
author | Wilco Dijkstra <wdijkstr@arm.com> | 2019-02-12 17:19:51 +0000 |
---|---|---|
committer | Wilco Dijkstra <wdijkstr@arm.com> | 2019-02-12 17:19:51 +0000 |
commit | 16f87cfd630522afe745a0cf665287b8fe206cf4 (patch) | |
tree | 9f33bc5ad9ad0bbf3f1975ce25019e6acdd1f183 /benchtests/bench-rawmemchr.c | |
parent | 0c6d82e979d562147c9cfe0e6f65b42a904288bc (diff) | |
download | glibc-16f87cfd630522afe745a0cf665287b8fe206cf4.tar.gz glibc-16f87cfd630522afe745a0cf665287b8fe206cf4.tar.xz glibc-16f87cfd630522afe745a0cf665287b8fe206cf4.zip |
String benchtest cleanup
Continue cleanup of the string benchtests. Remove simplistic byte-oriented versions with faster generic implementations. Remove bcopy/bzero benchmarks (bcopy/bzero are obsolete and never emitted by compilers). Remove builtin versions of memcpy, memset and strlen. Remove all remaining "stupid" implementations given they are always slower than the "simple" variants and thus don't add anything useful. * benchtests/bench-strcasecmp.c (stupid_strcasecmp): Remove. * benchtests/bench-strcasestr.c (stupid_strcasestr): Remove. * benchtests/bench-strchr.c (stupid_strchr): Remove. * benchtests/bench-strcmp.c (stupid_strcmp): Remove. * benchtests/bench-strcspn.c (stupid_strcspn): Remove. * benchtests/bench-strlen.c (builtin_strlen): Remove. * benchtests/bench-strncasecmp.c (stupid_strncasecmp): Remove. * benchtests/bench-strncmp.c (stupid_strncmp): Remove. * benchtests/bench-strpbrk.c (stupid_strpbrk): Remove. * benchtests/bench-strspn.c (stupid_strspn): Remove. * benchtests/Makefile: Remove bench-bcopy.c and bench-bzero.c. * benchtests/bench-bcopy.c: Delete file. * benchtests/bench-bzero.c: Likewise. * benchtests/bench-memccpy.c (stupid_memccpy): Remove. (simple_memccpy): Remove. (generic_memccpy): Add function. * benchtests/bench-memcpy.c: (builtin_memcpy): Remove. * benchtests/bench-memmove.c (simple_bcopy): Remove. * benchtests/bench-mempcpy.c (simple_mempcpy): Remove. (generic_mempcpy): Add new function. * benchtests/bench-memset.c (simple_bzero): Remove. (builtin_bzero): Remove. (builtin_memset): Remove. * benchtests/bench-rawmemchr.c (simple_rawmemchr): Remove. (generic_rawmemchr): Add new function.
Diffstat (limited to 'benchtests/bench-rawmemchr.c')
-rw-r--r-- | benchtests/bench-rawmemchr.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/benchtests/bench-rawmemchr.c b/benchtests/bench-rawmemchr.c index 2b11cfe483..44f3114fd2 100644 --- a/benchtests/bench-rawmemchr.c +++ b/benchtests/bench-rawmemchr.c @@ -17,26 +17,25 @@ <http://www.gnu.org/licenses/>. */ #include <assert.h> +#include <stdint.h> #define TEST_MAIN #define TEST_NAME "rawmemchr" #include "bench-string.h" typedef char *(*proto_t) (const char *, int); -char *simple_rawmemchr (const char *, int); - -IMPL (simple_rawmemchr, 0) -IMPL (rawmemchr, 1) char * -simple_rawmemchr (const char *s, int c) +generic_rawmemchr (const char *s, int c) { - while (1) - if (*s++ == (char) c) - return (char *) s - 1; - return NULL; + if (c != 0) + return memchr (s, c, PTRDIFF_MAX); + return (char *)s + strlen (s); } +IMPL (rawmemchr, 1) +IMPL (generic_rawmemchr, 0) + static void do_one_test (impl_t *impl, const char *s, int c, char *exp_res) { |