diff options
author | Krzysztof Koch <krzysztof.koch@arm.com> | 2019-11-25 10:08:08 +0000 |
---|---|---|
committer | Szabolcs Nagy <szabolcs.nagy@arm.com> | 2019-11-26 15:05:42 +0000 |
commit | 6d3ae5fc1a64ec195f22a48bc51658cff7cf1cb3 (patch) | |
tree | e059586d3cfeb64d0424c856a0b0568c82cd6cc3 /string/include | |
parent | 015c9519c1b230f0619dc34251c574871b989a52 (diff) | |
download | arm-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.h | 3 |
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); |