LLVM Scalable Vectors

Rust seems to be working on traditional SIMD support where each vector has a length known at compile time from the ISA. That said, Arm's SVE and Risc-V's V extensions have variable length vectors that aren't known at compile time. LLVM is working on support for these with vscale vectors of the form <vscale x N x T> for a minimum number of elements N and type T. Are there any plans to support these in Rust, or are we just waiting for Rust's SIMD support and LLVM's vscale support to mature a bit more before tackling it? Their appears to have been some discussion in September 2020, but prior to that I couldn't find anything after 2018.

stdarch issue #913 is asking for a Risc-V module in core::arch. While the specific example wouldn't require this, the vector intrinsics specified in rvv-intrinsic-doc would.

3 Likes