[PATCH 0/1] riscv: add vectorized memset, memcpy and memmove
Pincheng Wang <[email protected]> Thu, 11 Dec 2025 21:27:24 +0800
| Newsgroups | gmane.comp.lib.newlib |
|---|---|
| Message-ID | <[email protected]> |
Hi all, This patch adds RISC-V Vector (RVV) optimized implementations for memset, memcpy and memmove. The implementations use the RVV extension with e8 element size and m8 LMUL, gated behind the __riscv_v macro for compatibility with non-vector RISC-V systems. Benchmark results on Spacemit X60 (Muse-pi) show significant improvements: memset(16B, aligned): 2.57x faster. memcpy(64B, aligned): 1.78x faster. memmove(64B, aligned): 1.95x faster. Improvements are consistent across aligned and misaligned accesses, with vector operations showing particularly strong gains for aligned addresses. Comments and suggestions are welcome. Thanks for reviewing this work! Thanks, Pincheng Wang Pincheng Wang (1): riscv: add vectorized memset, memcpy and memmove newlib/libc/machine/riscv/memcpy-asm.S | 23 +++++++++++- newlib/libc/machine/riscv/memcpy.c | 2 +- newlib/libc/machine/riscv/memmove-asm.S | 47 ++++++++++++++++++++++++- newlib/libc/machine/riscv/memmove.c | 2 +- newlib/libc/machine/riscv/memset.S | 22 ++++++++++++ 5 files changed, 92 insertions(+), 4 deletions(-) -- 2.39.5