[llvm] [IA][RISCV] Add support for vp.load/vp.store with shufflevector (PR #135445)

Min-Yih Hsu via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 21 09:46:30 PDT 2025


================
@@ -1705,19 +1705,39 @@ let TargetPrefix = "riscv" in {
 
   // Segment loads/stores for fixed vectors.
   foreach nf = [2, 3, 4, 5, 6, 7, 8] in {
+    // Input: (pointer, vl)
     def int_riscv_seg # nf # _load
           : DefaultAttrsIntrinsic<!listconcat([llvm_anyvector_ty],
                                               !listsplat(LLVMMatchType<0>,
                                               !add(nf, -1))),
                                   [llvm_anyptr_ty, llvm_anyint_ty],
                                   [NoCapture<ArgIndex<0>>, IntrReadMem]>;
+    // Input: (pointer, mask, vl)
----------------
mshockwave wrote:

> After this patch does anywhere still create the non-masked fixed vector intrinsics?

The existing `TLI::lowerInterleavedLoad` and `TLI::lowerDeinterleavedIntrinsicToLoad` still use them. But I agree they can and should be replaced by the masked variant. I'll do it in a follow-up patch. 

https://github.com/llvm/llvm-project/pull/135445


More information about the llvm-commits mailing list