LLVM with RVV 0.7.1 support

31 views
Skip to first unread message

zazad

unread,
Nov 28, 2021, 1:47:38 AM11/28/21
to RISC-V SW Dev
Hi all,

LLVM supports auto-vectorization for RVV 0.10, but some RISC-V chips such as Nezha board implement older RVV versions e.g., RVV 0.7.1.
LLVM release11.x supports RVV 0.8, but I couldn’t find support for older versions. Is there any LLVM support for RVV 0.7.1?

GCC has support for different RVV versions, but as I understood, GCC only supports RVV intrinsics and not auto-vectorization.

Thank you!

Jim Wilson

unread,
Nov 28, 2021, 11:35:56 AM11/28/21
to zazad, RISC-V SW Dev
On Sat, Nov 27, 2021 at 10:47 PM zazad <za...@bu.edu> wrote:
LLVM supports auto-vectorization for RVV 0.10, but some RISC-V chips such as Nezha board implement older RVV versions e.g., RVV 0.7.1.
LLVM release11.x supports RVV 0.8, but I couldn’t find support for older versions. Is there any LLVM support for RVV 0.7.1?

rvv 0.7.1 is an unofficial draft and will never be supported upstream.  However, it might be possible to support  something like xalibaba-v upstream, but the differences between what Albaba implemented and the standard V support are so significant that it will be a great deal of work and will need a new intrinsics model, and maybe a new ABI also.

GCC has support for different RVV versions, but as I understood, GCC only supports RVV intrinsics and not auto-vectorization.

 GCC has support for different rvv draft versions only because the draft was changing while we were implementing it.  The rvv 0.7.1 support will never go upstream.  Only the rvv 1.0 support will be accepted upstream.  However, it would be Ok to add something like xalibaba-v upstream, but that will be a great deal of work.  The gcc work is incomplete and unfinished and now badly out-of-date which is why there is no auto-vectorization and why it isn't upstream yet.  I would not recommend using the gcc v support.

Jim

Reply all
Reply to author
Forward
0 new messages