glibc/sysdeps/loongarch/lp64/multiarch
dengjianbo 06251002d4 LoongArch: Add ifunc support for strcpy, stpcpy{aligned, unaligned, lsx, lasx}
According to glibc strcpy and stpcpy microbenchmark test results(changed
to use generic_strcpy and generic_stpcpy instead of strlen + memcpy),
comparing with the generic version, this implementation could reduce the
runtime as following:

Name              Percent of rutime reduced
strcpy-aligned    8%-45%
strcpy-unaligned  8%-48%, comparing with the aligned version, unaligned
                  version takes less instructions to copy the tail of data
		  which length is less than 8. it also has better performance
		  in case src and dest cannot be both aligned with 8bytes
strcpy-lsx        20%-80%
strcpy-lasx       15%-86%
stpcpy-aligned    6%-43%
stpcpy-unaligned  8%-48%
stpcpy-lsx        10%-80%
stpcpy-lasx       10%-87%
2023-09-15 09:07:47 +08:00
..
dl-symbol-redir-ifunc.h LoongArch: Add ifunc support for memset{aligned, unaligned, lsx, lasx} 2023-08-29 10:35:38 +08:00
ifunc-impl-list.c LoongArch: Add ifunc support for strcpy, stpcpy{aligned, unaligned, lsx, lasx} 2023-09-15 09:07:47 +08:00
ifunc-lasx.h Loongarch: Add ifunc support for memcpy{aligned, unaligned, lsx, lasx} and memmove{aligned, unaligned, lsx, lasx} 2023-08-17 10:12:18 +08:00
ifunc-memchr.h LoongArch: Add ifunc support for memchr{aligned, lsx, lasx} 2023-08-29 10:35:38 +08:00
ifunc-memcmp.h LoongArch: Add ifunc support for memcmp{aligned, lsx, lasx} 2023-08-29 10:35:38 +08:00
ifunc-memrchr.h LoongArch: Add ifunc support for memrchr{lsx, lasx} 2023-08-29 10:35:38 +08:00
ifunc-rawmemchr.h LoongArch: Add ifunc support for rawmemchr{aligned, lsx, lasx} 2023-08-29 10:35:38 +08:00
ifunc-strchr.h Loongarch: Add ifunc support for strchr{aligned, lsx, lasx} and strchrnul{aligned, lsx, lasx} 2023-08-17 10:12:18 +08:00
ifunc-strchrnul.h Loongarch: Add ifunc support for strchr{aligned, lsx, lasx} and strchrnul{aligned, lsx, lasx} 2023-08-17 10:12:18 +08:00
ifunc-strcmp.h LoongArch: Add ifunc support for strcmp{aligned, lsx} 2023-08-24 17:19:47 +08:00
ifunc-strlen.h
ifunc-strncmp.h LoongArch: Add ifunc support for strncmp{aligned, lsx} 2023-08-24 17:19:47 +08:00
ifunc-strnlen.h LoongArch: Add ifunc support for strnlen{aligned, lsx, lasx} 2023-08-24 17:19:47 +08:00
Makefile LoongArch: Add ifunc support for strcpy, stpcpy{aligned, unaligned, lsx, lasx} 2023-09-15 09:07:47 +08:00
memchr-aligned.S LoongArch: Add ifunc support for memchr{aligned, lsx, lasx} 2023-08-29 10:35:38 +08:00
memchr-lasx.S LoongArch: Add ifunc support for memchr{aligned, lsx, lasx} 2023-08-29 10:35:38 +08:00
memchr-lsx.S LoongArch: Add ifunc support for memchr{aligned, lsx, lasx} 2023-08-29 10:35:38 +08:00
memchr.c LoongArch: Add ifunc support for memchr{aligned, lsx, lasx} 2023-08-29 10:35:38 +08:00
memcmp-aligned.S LoongArch: Add ifunc support for memcmp{aligned, lsx, lasx} 2023-08-29 10:35:38 +08:00
memcmp-lasx.S LoongArch: Add ifunc support for memcmp{aligned, lsx, lasx} 2023-08-29 10:35:38 +08:00
memcmp-lsx.S LoongArch: Add ifunc support for memcmp{aligned, lsx, lasx} 2023-08-29 10:35:38 +08:00
memcmp.c LoongArch: Add ifunc support for memcmp{aligned, lsx, lasx} 2023-08-29 10:35:38 +08:00
memcpy-aligned.S LoongArch: Change loongarch to LoongArch in comments 2023-08-29 10:35:38 +08:00
memcpy-lasx.S LoongArch: Change loongarch to LoongArch in comments 2023-08-29 10:35:38 +08:00
memcpy-lsx.S LoongArch: Change loongarch to LoongArch in comments 2023-08-29 10:35:38 +08:00
memcpy-unaligned.S LoongArch: Change loongarch to LoongArch in comments 2023-08-29 10:35:38 +08:00
memcpy.c Loongarch: Add ifunc support for memcpy{aligned, unaligned, lsx, lasx} and memmove{aligned, unaligned, lsx, lasx} 2023-08-17 10:12:18 +08:00
memmove-aligned.S LoongArch: Change loongarch to LoongArch in comments 2023-08-29 10:35:38 +08:00
memmove-lasx.S LoongArch: Change loongarch to LoongArch in comments 2023-08-29 10:35:38 +08:00
memmove-lsx.S LoongArch: Change loongarch to LoongArch in comments 2023-08-29 10:35:38 +08:00
memmove-unaligned.S LoongArch: Change loongarch to LoongArch in comments 2023-08-29 10:35:38 +08:00
memmove.c Loongarch: Add ifunc support for memcpy{aligned, unaligned, lsx, lasx} and memmove{aligned, unaligned, lsx, lasx} 2023-08-17 10:12:18 +08:00
memrchr-generic.c LoongArch: Add ifunc support for memrchr{lsx, lasx} 2023-08-29 10:35:38 +08:00
memrchr-lasx.S LoongArch: Add ifunc support for memrchr{lsx, lasx} 2023-08-29 10:35:38 +08:00
memrchr-lsx.S LoongArch: Add ifunc support for memrchr{lsx, lasx} 2023-08-29 10:35:38 +08:00
memrchr.c LoongArch: Add ifunc support for memrchr{lsx, lasx} 2023-08-29 10:35:38 +08:00
memset-aligned.S LoongArch: Add ifunc support for memset{aligned, unaligned, lsx, lasx} 2023-08-29 10:35:38 +08:00
memset-lasx.S LoongArch: Add ifunc support for memset{aligned, unaligned, lsx, lasx} 2023-08-29 10:35:38 +08:00
memset-lsx.S LoongArch: Add ifunc support for memset{aligned, unaligned, lsx, lasx} 2023-08-29 10:35:38 +08:00
memset-unaligned.S LoongArch: Add ifunc support for memset{aligned, unaligned, lsx, lasx} 2023-08-29 10:35:38 +08:00
memset.c LoongArch: Add ifunc support for memset{aligned, unaligned, lsx, lasx} 2023-08-29 10:35:38 +08:00
rawmemchr-aligned.S LoongArch: Add ifunc support for rawmemchr{aligned, lsx, lasx} 2023-08-29 10:35:38 +08:00
rawmemchr-lasx.S LoongArch: Add ifunc support for rawmemchr{aligned, lsx, lasx} 2023-08-29 10:35:38 +08:00
rawmemchr-lsx.S LoongArch: Add ifunc support for rawmemchr{aligned, lsx, lasx} 2023-08-29 10:35:38 +08:00
rawmemchr.c LoongArch: Add ifunc support for rawmemchr{aligned, lsx, lasx} 2023-08-29 10:35:38 +08:00
stpcpy-aligned.S LoongArch: Add ifunc support for strcpy, stpcpy{aligned, unaligned, lsx, lasx} 2023-09-15 09:07:47 +08:00
stpcpy-lasx.S LoongArch: Add ifunc support for strcpy, stpcpy{aligned, unaligned, lsx, lasx} 2023-09-15 09:07:47 +08:00
stpcpy-lsx.S LoongArch: Add ifunc support for strcpy, stpcpy{aligned, unaligned, lsx, lasx} 2023-09-15 09:07:47 +08:00
stpcpy-unaligned.S LoongArch: Add ifunc support for strcpy, stpcpy{aligned, unaligned, lsx, lasx} 2023-09-15 09:07:47 +08:00
stpcpy.c LoongArch: Add ifunc support for strcpy, stpcpy{aligned, unaligned, lsx, lasx} 2023-09-15 09:07:47 +08:00
strchr-aligned.S LoongArch: Change loongarch to LoongArch in comments 2023-08-29 10:35:38 +08:00
strchr-lasx.S LoongArch: Change loongarch to LoongArch in comments 2023-08-29 10:35:38 +08:00
strchr-lsx.S LoongArch: Change loongarch to LoongArch in comments 2023-08-29 10:35:38 +08:00
strchr.c Loongarch: Add ifunc support for strchr{aligned, lsx, lasx} and strchrnul{aligned, lsx, lasx} 2023-08-17 10:12:18 +08:00
strchrnul-aligned.S LoongArch: Change loongarch to LoongArch in comments 2023-08-29 10:35:38 +08:00
strchrnul-lasx.S LoongArch: Change loongarch to LoongArch in comments 2023-08-29 10:35:38 +08:00
strchrnul-lsx.S LoongArch: Change loongarch to LoongArch in comments 2023-08-29 10:35:38 +08:00
strchrnul.c Loongarch: Add ifunc support for strchr{aligned, lsx, lasx} and strchrnul{aligned, lsx, lasx} 2023-08-17 10:12:18 +08:00
strcmp-aligned.S LoongArch: Change loongarch to LoongArch in comments 2023-08-29 10:35:38 +08:00
strcmp-lsx.S LoongArch: Change loongarch to LoongArch in comments 2023-08-29 10:35:38 +08:00
strcmp.c LoongArch: Add ifunc support for strcmp{aligned, lsx} 2023-08-24 17:19:47 +08:00
strcpy-aligned.S LoongArch: Add ifunc support for strcpy, stpcpy{aligned, unaligned, lsx, lasx} 2023-09-15 09:07:47 +08:00
strcpy-lasx.S LoongArch: Add ifunc support for strcpy, stpcpy{aligned, unaligned, lsx, lasx} 2023-09-15 09:07:47 +08:00
strcpy-lsx.S LoongArch: Add ifunc support for strcpy, stpcpy{aligned, unaligned, lsx, lasx} 2023-09-15 09:07:47 +08:00
strcpy-unaligned.S LoongArch: Add ifunc support for strcpy, stpcpy{aligned, unaligned, lsx, lasx} 2023-09-15 09:07:47 +08:00
strcpy.c LoongArch: Add ifunc support for strcpy, stpcpy{aligned, unaligned, lsx, lasx} 2023-09-15 09:07:47 +08:00
strlen-aligned.S LoongArch: Change loongarch to LoongArch in comments 2023-08-29 10:35:38 +08:00
strlen-lasx.S LoongArch: Change loongarch to LoongArch in comments 2023-08-29 10:35:38 +08:00
strlen-lsx.S LoongArch: Change loongarch to LoongArch in comments 2023-08-29 10:35:38 +08:00
strlen.c
strncmp-aligned.S LoongArch: Change loongarch to LoongArch in comments 2023-08-29 10:35:38 +08:00
strncmp-lsx.S LoongArch: Change loongarch to LoongArch in comments 2023-08-29 10:35:38 +08:00
strncmp.c LoongArch: Add ifunc support for strncmp{aligned, lsx} 2023-08-24 17:19:47 +08:00
strnlen-aligned.S LoongArch: Change loongarch to LoongArch in comments 2023-08-29 10:35:38 +08:00
strnlen-lasx.S LoongArch: Change loongarch to LoongArch in comments 2023-08-29 10:35:38 +08:00
strnlen-lsx.S LoongArch: Change loongarch to LoongArch in comments 2023-08-29 10:35:38 +08:00
strnlen.c LoongArch: Add ifunc support for strnlen{aligned, lsx, lasx} 2023-08-24 17:19:47 +08:00