aboutsummaryrefslogtreecommitdiff
path: root/string/include
diff options
context:
space:
mode:
authorKrzysztof Koch <krzysztof.koch@arm.com>2019-11-25 10:08:08 +0000
committerSzabolcs Nagy <szabolcs.nagy@arm.com>2019-11-26 15:05:42 +0000
commit6d3ae5fc1a64ec195f22a48bc51658cff7cf1cb3 (patch)
treee059586d3cfeb64d0424c856a0b0568c82cd6cc3 /string/include
parent015c9519c1b230f0619dc34251c574871b989a52 (diff)
downloadarm-optimized-routines-6d3ae5fc1a64ec195f22a48bc51658cff7cf1cb3.tar.gz
arch64: Add SIMD version of memcpy
Create a new memcpy implementation for targets with the NEON extension. __memcpy_aarch64_simd has been tested on a range of modern microarchitectures. It turned out to be faster than __memcpy_aarch64 on all of them, with a performance improvement of 3-11% depending on the platform.
Diffstat (limited to 'string/include')
-rw-r--r--string/include/stringlib.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/string/include/stringlib.h b/string/include/stringlib.h
index 96647cf..baa9383 100644
--- a/string/include/stringlib.h
+++ b/string/include/stringlib.h
@@ -26,6 +26,9 @@ char *__strchrnul_aarch64 (const char *, int );
size_t __strlen_aarch64 (const char *);
size_t __strnlen_aarch64 (const char *, size_t);
int __strncmp_aarch64 (const char *, const char *, size_t);
+#if __ARM_NEON
+void *__memcpy_aarch64_simd (void *__restrict, const void *__restrict, size_t);
+#endif
# if __ARM_FEATURE_SVE
void *__memchr_aarch64_sve (const void *, int, size_t);
int __memcmp_aarch64_sve (const void *, const void *, size_t);