about summary refs log tree commit diff
path: root/sysdeps/aarch64/multiarch/Makefile
diff options
context:
space:
mode:
authorXuelei Zhang <zhangxuelei4@huawei.com>2019-12-19 15:26:33 +0000
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2019-12-19 16:31:04 -0300
commit525de033a9d19bc79ce353745d14927a793dd4e8 (patch)
tree8c12f0bd8573525387a8ecbdd447f0347c7894c3 /sysdeps/aarch64/multiarch/Makefile
parentc2150769d015dca1805334af7743829f1e4c0b6a (diff)
downloadglibc-525de033a9d19bc79ce353745d14927a793dd4e8.tar.gz
glibc-525de033a9d19bc79ce353745d14927a793dd4e8.tar.xz
glibc-525de033a9d19bc79ce353745d14927a793dd4e8.zip
aarch64: Optimized memset for Kunpeng processor.
Due to the branch prediction issue of Kunpeng processor, we found
memset_generic has poor performance on middle sizes setting, and so
we reconstructed the logic, expanded the loop by 4 times in set_long
to solve the problem, even when setting below 1K sizes have benefit.

Another change is that DZ_ZVA seems no work when setting zero, so we
discarded it and used set_long to set zero instead. Fewer branches and
predictions also make the zero case have slightly improvement.

Checked on aarch64-linux-gnu.

Reviewed-by: Wilco Dijkstra <Wilco.Dijkstra@arm.com>
Diffstat (limited to 'sysdeps/aarch64/multiarch/Makefile')
-rw-r--r--sysdeps/aarch64/multiarch/Makefile2
1 files changed, 1 insertions, 1 deletions
diff --git a/sysdeps/aarch64/multiarch/Makefile b/sysdeps/aarch64/multiarch/Makefile
index 4150b89a90..8378107c78 100644
--- a/sysdeps/aarch64/multiarch/Makefile
+++ b/sysdeps/aarch64/multiarch/Makefile
@@ -1,7 +1,7 @@
 ifeq ($(subdir),string)
 sysdep_routines += memcpy_generic memcpy_thunderx memcpy_thunderx2 \
 		   memcpy_falkor memmove_falkor \
-		   memset_generic memset_falkor memset_emag \
+		   memset_generic memset_falkor memset_emag memset_kunpeng \
 		   memchr_generic memchr_nosimd \
 		   strlen_generic strlen_asimd
 endif