public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
* [PATCH 0/5] LoongArch: Multiarch string and memory copy routines for unaligned access
@ 2023-04-15 11:23 Xi Ruoyao
  2023-04-15 11:23 ` [PATCH 1/5] LoongArch: Add bits/hwcap.h for Linux Xi Ruoyao
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Xi Ruoyao @ 2023-04-15 11:23 UTC (permalink / raw)
  To: libc-alpha; +Cc: caiyinyu, Wang Xuerui, Adhemerval Zanella Netto, Xi Ruoyao

LoongArch CPUs may have hardware unaligned access support.  For the
launched LoongArch CPUs, those branded as Loongson-3 (for desktops or
servers) have hardware unaligned access support, but those branded as
Loongson-2 (for embedded or industrial applications) do not.

On Linux, the unaligned access support is indicated by a HWCAP bit
provided by the kernel.  So we can multiarch stpcpy and memcpy with
ifunc to take the advantage on the CPUs with unaligned access support.

On a Loongson-3A5000HV CPU running at 2.5GHz, "make bench" has shown
these changes can really improve the performance:

- https://www.linuxfromscratch.org/~xry111/loongarch-ual-bench/bench-stpcpy-summary.txt
- https://www.linuxfromscratch.org/~xry111/loongarch-ual-bench/bench-memcpy-summary.txt

Xi Ruoyao (5):
  LoongArch: Add bits/hwcap.h for Linux
  LoongArch: Add LOONGARCH_HAVE_UAL macro
  string: stpcpy.c: Only alias __stpcpy to stpcpy if STPCPY undefined
  LoongArch: Multiarch stpcpy for unaligned access
  LoongArch: Multiarch memcpy for unaligned access

 string/stpcpy.c                               |  3 ++
 sysdeps/loongarch/loongarch-features.h        | 26 ++++++++++
 sysdeps/loongarch/multiarch/Makefile          |  6 +++
 sysdeps/loongarch/multiarch/memcpy-generic.c  | 27 ++++++++++
 sysdeps/loongarch/multiarch/memcpy-ual.c      | 50 +++++++++++++++++++
 sysdeps/loongarch/multiarch/memcpy.c          | 39 +++++++++++++++
 sysdeps/loongarch/multiarch/stpcpy-generic.c  | 25 ++++++++++
 sysdeps/loongarch/multiarch/stpcpy-ual.c      | 43 ++++++++++++++++
 sysdeps/loongarch/multiarch/stpcpy.c          | 37 ++++++++++++++
 .../loongarch/multiarch/wordcopy-ual-inline.c | 31 ++++++++++++
 .../unix/sysv/linux/loongarch/bits/hwcap.h    | 37 ++++++++++++++
 .../sysv/linux/loongarch/loongarch-features.h | 30 +++++++++++
 sysdeps/unix/sysv/linux/loongarch/sysdep.h    |  1 +
 13 files changed, 355 insertions(+)
 create mode 100644 sysdeps/loongarch/loongarch-features.h
 create mode 100644 sysdeps/loongarch/multiarch/Makefile
 create mode 100644 sysdeps/loongarch/multiarch/memcpy-generic.c
 create mode 100644 sysdeps/loongarch/multiarch/memcpy-ual.c
 create mode 100644 sysdeps/loongarch/multiarch/memcpy.c
 create mode 100644 sysdeps/loongarch/multiarch/stpcpy-generic.c
 create mode 100644 sysdeps/loongarch/multiarch/stpcpy-ual.c
 create mode 100644 sysdeps/loongarch/multiarch/stpcpy.c
 create mode 100644 sysdeps/loongarch/multiarch/wordcopy-ual-inline.c
 create mode 100644 sysdeps/unix/sysv/linux/loongarch/bits/hwcap.h
 create mode 100644 sysdeps/unix/sysv/linux/loongarch/loongarch-features.h

-- 
2.39.2


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2023-04-18  3:01 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-04-15 11:23 [PATCH 0/5] LoongArch: Multiarch string and memory copy routines for unaligned access Xi Ruoyao
2023-04-15 11:23 ` [PATCH 1/5] LoongArch: Add bits/hwcap.h for Linux Xi Ruoyao
2023-04-15 11:23 ` [PATCH 2/5] LoongArch: Add LOONGARCH_HAVE_UAL macro Xi Ruoyao
2023-04-15 11:23 ` [PATCH 3/5] string: stpcpy.c: Only alias __stpcpy to stpcpy if STPCPY undefined Xi Ruoyao
2023-04-15 11:23 ` [PATCH 4/5] LoongArch: Multiarch stpcpy for unaligned access Xi Ruoyao
2023-04-15 11:23 ` [PATCH 5/5] LoongArch: Multiarch memcpy " Xi Ruoyao
2023-04-18  3:01 ` [PATCH 0/5] LoongArch: Multiarch string and memory copy routines " caiyinyu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).