[llvm] [RISCV][VLOPT] Add support for checkUsers when UserMI is a Single-Width Integer Reduction (PR #120345)

Michael Maitland via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 2 17:23:18 PST 2025


================
@@ -149,8 +152,11 @@ define i32 @mul_i32(<4 x i32> %a, <4 x i32> %b) {
 ; RV64-NEXT:    vslidedown.vi v10, v9, 2
 ; RV64-NEXT:    vmul.vv v9, v9, v10
 ; RV64-NEXT:    vrgather.vi v10, v8, 1
+; RV64-NEXT:    vsetivli zero, 1, e32, m1, ta, ma
 ; RV64-NEXT:    vmul.vv v8, v8, v10
+; RV64-NEXT:    vsetivli zero, 4, e32, m1, ta, ma
 ; RV64-NEXT:    vrgather.vi v10, v9, 1
+; RV64-NEXT:    vsetivli zero, 1, e32, m1, ta, ma
----------------
michaelmaitland wrote:

I don't currently have a plan to get this back after the PR. While addressing it may get us back the number of VL toggles, it may save some cycles, in the case that the vmul instructions took more cycles at vl=4 than vl=1. We will need to give some more care to the kind of optimization that reduces VL + causes more VL toggles, and does not reduce the total number of cycles.

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


More information about the llvm-commits mailing list