about summary refs log tree commit diff
path: root/sysdeps/loongarch/lp64/multiarch/ifunc-impl-list.c
diff options
context:
space:
mode:
authordengjianbo <dengjianbo@loongson.cn>2023-08-24 16:50:19 +0800
committercaiyinyu <caiyinyu@loongson.cn>2023-08-24 17:19:47 +0800
commitddbb74f5c2ceffcb8f6efcbbb5ffbe4a3641ef93 (patch)
tree3468054c8c373a86f8ac969131321ee9c4c73576 /sysdeps/loongarch/lp64/multiarch/ifunc-impl-list.c
parent82d9426e4a1a500b90b05457574dee1afe1408f8 (diff)
downloadglibc-ddbb74f5c2ceffcb8f6efcbbb5ffbe4a3641ef93.tar.gz
glibc-ddbb74f5c2ceffcb8f6efcbbb5ffbe4a3641ef93.tar.xz
glibc-ddbb74f5c2ceffcb8f6efcbbb5ffbe4a3641ef93.zip
LoongArch: Add ifunc support for strncmp{aligned, lsx}
Based on the glibc microbenchmark, only a few short inputs with this
strncmp-aligned and strncmp-lsx implementation experience performance
degradation, overall, strncmp-aligned could reduce the runtime 0%-10%
for aligned comparision, 10%-25% for unaligend comparision, strncmp-lsx
could reduce the runtime about 0%-60%.
Diffstat (limited to 'sysdeps/loongarch/lp64/multiarch/ifunc-impl-list.c')
-rw-r--r--sysdeps/loongarch/lp64/multiarch/ifunc-impl-list.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/sysdeps/loongarch/lp64/multiarch/ifunc-impl-list.c b/sysdeps/loongarch/lp64/multiarch/ifunc-impl-list.c
index 9183b7da24..c8ba87bd81 100644
--- a/sysdeps/loongarch/lp64/multiarch/ifunc-impl-list.c
+++ b/sysdeps/loongarch/lp64/multiarch/ifunc-impl-list.c
@@ -69,6 +69,13 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
 	      IFUNC_IMPL_ADD (array, i, strcmp, 1, __strcmp_aligned)
 	      )
 
+  IFUNC_IMPL (i, name, strncmp,
+#if !defined __loongarch_soft_float
+	      IFUNC_IMPL_ADD (array, i, strncmp, SUPPORT_LSX, __strncmp_lsx)
+#endif
+	      IFUNC_IMPL_ADD (array, i, strncmp, 1, __strncmp_aligned)
+	      )
+
   IFUNC_IMPL (i, name, memcpy,
 #if !defined __loongarch_soft_float
               IFUNC_IMPL_ADD (array, i, memcpy, SUPPORT_LASX, __memcpy_lasx)