[PATCH v5 0/3] RISC-V: add multiarch RVV support for memcpy using FMV IFUNC

Anton Blanchard antonb@tenstorrent.com
Sun Feb 2 06:33:32 GMT 2025


Hi,

> From: daichengrong <daichengrong@iscas.ac.cn>
>
> This patch introduces vector support for memcpy with IFUNC.
> The implementation select the RVV optimized memcpy version via dl_hwcap.

Testing this on our upcoming Ascalon CPU I measure a 3x speedup for
long lengths,
and no significant regressions on small lengths. Everything from 16
bytes onwards is a clear improvement.

Tested-by: Anton Blanchard <antonb@tenstorrent.com>

Thanks,
Anton

> daichengrong (3):
>   check rvv support in asm at sysdeps/riscv
>   add hwprobe support for dl_hwcap
>   add riscv vector support for memcpy
>
>  config.h.in                                   |  3 ++
>  sysdeps/riscv/configure                       | 30 ++++++++++++++++
>  sysdeps/riscv/configure.ac                    | 20 +++++++++++
>  sysdeps/riscv/multiarch/memcpy_vector.S       | 35 +++++++++++++++++++
>  .../unix/sysv/linux/riscv/multiarch/Makefile  |  8 +++++
>  .../linux/riscv/multiarch/ifunc-impl-list.c   | 13 +++++++
>  .../unix/sysv/linux/riscv/multiarch/memcpy.c  |  7 ++++
>  sysdeps/unix/sysv/linux/riscv/sys/hwprobe.h   | 20 +++++++++++
>  8 files changed, 136 insertions(+)
>  mode change 100644 => 100755 sysdeps/riscv/configure
>  create mode 100644 sysdeps/riscv/multiarch/memcpy_vector.S
>
> --
> 2.25.1


More information about the Libc-alpha mailing list