[llvm] [RISCV] Combine unaligned scalar ld -> aligned vector ld (PR #183336)

Ramkumar Ramachandra via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 3 09:02:09 PST 2026


================
@@ -198,12 +198,12 @@ define <2 x i64> @mgather_v2i64_align4(<2 x ptr> %ptrs, <2 x i1> %m, <2 x i64> %
 ; RV64-SLOW-NEXT:    andi a1, a0, 1
 ; RV64-SLOW-NEXT:    beqz a1, .LBB5_2
 ; RV64-SLOW-NEXT:  # %bb.1: # %cond.load
-; RV64-SLOW-NEXT:    vsetvli zero, zero, e64, m8, tu, ma
+; RV64-SLOW-NEXT:    vsetvli zero, zero, e64, m8, ta, ma
 ; RV64-SLOW-NEXT:    vmv.x.s a1, v8
-; RV64-SLOW-NEXT:    lw a2, 4(a1)
-; RV64-SLOW-NEXT:    lwu a1, 0(a1)
-; RV64-SLOW-NEXT:    slli a2, a2, 32
-; RV64-SLOW-NEXT:    or a1, a2, a1
+; RV64-SLOW-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma
+; RV64-SLOW-NEXT:    vle32.v v10, (a1)
+; RV64-SLOW-NEXT:    vsetvli zero, zero, e64, m1, tu, ma
+; RV64-SLOW-NEXT:    vmv.x.s a1, v10
 ; RV64-SLOW-NEXT:    vmv.s.x v9, a1
----------------
artagnon wrote:

Yep, I noticed it too, and wonder why we aren't folding it? A task for a follow-up?

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


More information about the llvm-commits mailing list