[llvm] [RISCV] Remove codegen for vp_fadd, vp_fmul (PR #191842)

Luke Lau via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 13 09:07:36 PDT 2026


================
@@ -21,28 +21,19 @@ define <vscale x 1 x double> @test1(<vscale x 1 x double> %a, <vscale x 1 x doub
 define <vscale x 1 x double> @test2(<vscale x 1 x double> %a, <vscale x 1 x i1> %m, i32 zeroext %evl) {
 ; RV32-LABEL: test2:
 ; RV32:       # %bb.0:
-; RV32-NEXT:    lui a1, %hi(.LCPI1_0)
-; RV32-NEXT:    fld fa5, %lo(.LCPI1_0)(a1)
-; RV32-NEXT:    lui a1, %hi(.LCPI1_1)
-; RV32-NEXT:    fld fa4, %lo(.LCPI1_1)(a1)
-; RV32-NEXT:    vsetvli zero, a0, e64, m1, ta, ma
-; RV32-NEXT:    vfmul.vf v9, v8, fa5, v0.t
+; RV32-NEXT:    lui a0, %hi(.LCPI1_0)
+; RV32-NEXT:    fld fa5, %lo(.LCPI1_0)(a0)
 ; RV32-NEXT:    vsetvli a0, zero, e64, m1, ta, ma
-; RV32-NEXT:    vfmadd.vf v8, fa4, v9
+; RV32-NEXT:    vfmul.vf v8, v8, fa5
 ; RV32-NEXT:    ret
 ;
 ; RV64-LABEL: test2:
 ; RV64:       # %bb.0:
-; RV64-NEXT:    li a1, 1
-; RV64-NEXT:    slli a1, a1, 62
-; RV64-NEXT:    fmv.d.x fa5, a1
-; RV64-NEXT:    li a1, 1025
-; RV64-NEXT:    slli a1, a1, 52
-; RV64-NEXT:    vsetvli zero, a0, e64, m1, ta, ma
-; RV64-NEXT:    vfmul.vf v9, v8, fa5, v0.t
-; RV64-NEXT:    fmv.d.x fa5, a1
+; RV64-NEXT:    lui a0, 2051
+; RV64-NEXT:    slli a0, a0, 39
+; RV64-NEXT:    fmv.d.x fa5, a0
 ; RV64-NEXT:    vsetvli a0, zero, e64, m1, ta, ma
-; RV64-NEXT:    vfmadd.vf v8, fa5, v9
+; RV64-NEXT:    vfmul.vf v8, v8, fa5
----------------
lukel97 wrote:

Here's a combine we were missing on the equivalent vp nodes, `a * 4 + (a * 2) -> a * 6`

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


More information about the llvm-commits mailing list