[llvm] [RISCV] Emit VP strided loads/stores in RISCVGatherScatterLowering (PR #98111)

Luke Lau via llvm-commits llvm-commits at lists.llvm.org
Tue Jul 9 02:50:40 PDT 2024


================
@@ -144,9 +144,9 @@ define void @gather_zero_stride(ptr noalias nocapture %A, ptr noalias nocapture
 ; CHECK-NEXT:    vsetvli zero, a3, e8, m1, ta, ma
 ; CHECK-NEXT:  .LBB3_1: # %vector.body
 ; CHECK-NEXT:    # =>This Inner Loop Header: Depth=1
-; CHECK-NEXT:    lbu a3, 0(a1)
-; CHECK-NEXT:    vle8.v v8, (a0)
-; CHECK-NEXT:    vadd.vx v8, v8, a3
+; CHECK-NEXT:    vlse8.v v8, (a1), zero
----------------
lukel97 wrote:

And we can't use `@llvm.riscv.vmv.v.x` because that's only on scalable vectors right?

I think it should still be correct if we splat with AVL=VLMAX because the disabled lanes are poison anyway. It's a bit annoying that there's no good way of controlling the AVL here though but we could leave that to later?

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


More information about the llvm-commits mailing list