diff options
author | dengjianbo <dengjianbo@loongson.cn> | 2023-08-24 16:50:19 +0800 |
---|---|---|
committer | caiyinyu <caiyinyu@loongson.cn> | 2023-08-24 17:19:47 +0800 |
commit | ddbb74f5c2ceffcb8f6efcbbb5ffbe4a3641ef93 (patch) | |
tree | 3468054c8c373a86f8ac969131321ee9c4c73576 /sysdeps/loongarch/lp64/multiarch/ifunc-impl-list.c | |
parent | 82d9426e4a1a500b90b05457574dee1afe1408f8 (diff) | |
download | glibc-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.c | 7 |
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) |