[llvm] [RISCV]Do not combine to 'vw' if the number of extended instructions cannot be reduced (PR #159715)

Liao Chunyu via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 19 07:24:45 PDT 2025


================
@@ -184,11 +181,10 @@ entry:
 define i32 @vdotqsu_vx_constant(<vscale x 16 x i8> %a) {
 ; CHECK-LABEL: vdotqsu_vx_constant:
 ; CHECK:       # %bb.0: # %entry
-; CHECK-NEXT:    vsetvli a0, zero, e16, m4, ta, ma
-; CHECK-NEXT:    vsext.vf2 v16, v8
+; CHECK-NEXT:    vsetvli a0, zero, e32, m8, ta, ma
+; CHECK-NEXT:    vsext.vf4 v16, v8
 ; CHECK-NEXT:    li a0, 123
-; CHECK-NEXT:    vwmul.vx v8, v16, a0
-; CHECK-NEXT:    vsetvli zero, zero, e32, m8, ta, ma
+; CHECK-NEXT:    vmul.vx v8, v16, a0
----------------
ChunyuLiao wrote:


Overall, there is a slight reduction in the number of instructions.

<head></head>
  | before total | after total | before vset* | after vset*
-- | -- | -- | -- | --
600.perlbench_s | 448134 | 448125 | 714 | 705
602.gcc_s | 1931325 | 1931324 | 3992 | 3991
605.mcf_s | 5279 | 5279 | 47 | 47
620.omnetpp_s | 347562 | 347562 | 1039 | 1039
625.x264_s | 122671 | 122638 | 1391 | 1365
631.deepsjeng_s | 19981 | 19981 | 268 | 268
641.leela_s | 32866 | 32866 | 140 | 140
657.xz_s | 33395 | 33387 | 190 | 182
998.specrand_is | 716 | 716 | 4 | 4

Build : -march=rva23u64 -mllvm -force-tail-folding-style=data-with-evl -mllvm -prefer-predicate-over-epilogue=predicate-else-scalar-epilogue -O3
Total : llvm-objdump --mattr=+d,+zfh,+zfbfmin,+v,+zvbb. Then wc -l
vset* : grep -nirI vset |wc -l

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


More information about the llvm-commits mailing list