Re: [PATCH 0/6] riscv: add vectorized mem* routines

Kito Cheng <[email protected]> Thu, 14 May 2026 10:09:37 +0800
Newsgroups gmane.comp.lib.newlib
Message-ID <CA+yXCZAYBdRMYRy9rz7HZhNVK+FB9vUBJQW5Ey=3adLJ2q_F8A@mail.gmail.com>
quick ack:

Thanks for the patchset! it put on my task list and will review soon :)

Pincheng Wang <[email protected]> 於 2026年5月13日週三 下午11:40寫道:
>
> Hi all,
>
> This is a follow-up series to the previous patches that added RVV
> support for memset, memcpy, and memmove. This patch series implements
> RVV (RISC-V Vector Extension) support for several remaining mem*
> interfaces.
>
> Please note that some implementations, such as memrchr, do not use the
> e8 element size and m8 LMUL combination, since they did not show good
> acceleration results during testing on our Muse Pi (Spacemit X60 core).
>
> I have also noticed that other architectures rarely implement all mem*
> interfaces with architecture-specific optimizations, and I fully
> understand the maintenance burden introduced by too many hand-written
> assembly implementations. Therefore, although I submitted RVV
> implementations for all mem* interfaces, it may make sense to discuss
> whether only a subset of these patches should be merged.
>
> Comments and suggestions are greatly appreciated. Thank you for your
> time and review!
>
> Best regards,
> Pincheng Wang
>
> Pincheng Wang (6):
>   riscv: add vectorized memccpy
>   riscv: add vectorized memchr
>   riscv: add vectorized memcmp
>   riscv: add vectorized mempcpy
>   riscv: add vectorized memrchr
>   riscv: add vectorized rawmemchr
>
>  newlib/libc/machine/riscv/Makefile.inc    | 26 ++++++++++-
>  newlib/libc/machine/riscv/memccpy-asm.S   | 39 ++++++++++++++++
>  newlib/libc/machine/riscv/memccpy.c       |  5 ++
>  newlib/libc/machine/riscv/memchr-asm.S    | 37 +++++++++++++++
>  newlib/libc/machine/riscv/memchr.c        |  4 ++
>  newlib/libc/machine/riscv/memcmp-asm.S    | 43 +++++++++++++++++
>  newlib/libc/machine/riscv/memcmp.c        |  5 ++
>  newlib/libc/machine/riscv/mempcpy-asm.S   | 57 +++++++++++++++++++++++
>  newlib/libc/machine/riscv/mempcpy.c       |  5 ++
>  newlib/libc/machine/riscv/memrchr-asm.S   | 40 ++++++++++++++++
>  newlib/libc/machine/riscv/memrchr.c       |  4 ++
>  newlib/libc/machine/riscv/rawmemchr-asm.S | 30 ++++++++++++
>  newlib/libc/machine/riscv/rawmemchr.c     |  5 ++
>  13 files changed, 298 insertions(+), 2 deletions(-)
>  create mode 100644 newlib/libc/machine/riscv/memccpy-asm.S
>  create mode 100644 newlib/libc/machine/riscv/memccpy.c
>  create mode 100644 newlib/libc/machine/riscv/memchr-asm.S
>  create mode 100644 newlib/libc/machine/riscv/memcmp-asm.S
>  create mode 100644 newlib/libc/machine/riscv/memcmp.c
>  create mode 100644 newlib/libc/machine/riscv/mempcpy-asm.S
>  create mode 100644 newlib/libc/machine/riscv/mempcpy.c
>  create mode 100644 newlib/libc/machine/riscv/memrchr-asm.S
>  create mode 100644 newlib/libc/machine/riscv/rawmemchr-asm.S
>  create mode 100644 newlib/libc/machine/riscv/rawmemchr.c
>
> --
> 2.39.5
>