diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td b/llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td index e42ac68a8b67f..567f4d7946086 100644 --- a/llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td +++ b/llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td @@ -2212,7 +2212,8 @@ multiclass VPseudoTiedBinary; def "_" # MInfo.MX # "_MASK_TIED" : VPseudoTiedBinaryMask; + Constraint, TargetConstraintType>, + RISCVMaskedPseudo; } } @@ -2225,7 +2226,8 @@ multiclass VPseudoTiedBinaryRoundingMode; def "_" # MInfo.MX # "_MASK_TIED" : - VPseudoTiedBinaryMaskRoundingMode; + VPseudoTiedBinaryMaskRoundingMode, + RISCVMaskedPseudo; } } diff --git a/llvm/test/CodeGen/RISCV/rvv/rvv-peephole-vmerge-vops.ll b/llvm/test/CodeGen/RISCV/rvv/rvv-peephole-vmerge-vops.ll index 2cbc0f682ca01..7cc4a9da3d429 100644 --- a/llvm/test/CodeGen/RISCV/rvv/rvv-peephole-vmerge-vops.ll +++ b/llvm/test/CodeGen/RISCV/rvv/rvv-peephole-vmerge-vops.ll @@ -1192,11 +1192,8 @@ define @vmerge_larger_vl_false_becomes_tail( @vpmerge_vwsub.w_tied( %passthru, %x, %y, %mask, i32 zeroext %vl) { ; CHECK-LABEL: vpmerge_vwsub.w_tied: ; CHECK: # %bb.0: -; CHECK-NEXT: vsetvli zero, a0, e32, m1, tu, ma -; CHECK-NEXT: vmv2r.v v10, v8 -; CHECK-NEXT: vwsub.wv v10, v10, v12 -; CHECK-NEXT: vsetvli zero, zero, e64, m2, tu, ma -; CHECK-NEXT: vmerge.vvm v8, v8, v10, v0 +; CHECK-NEXT: vsetvli zero, a0, e32, m1, tu, mu +; CHECK-NEXT: vwsub.wv v8, v8, v12, v0.t ; CHECK-NEXT: ret %vl.zext = zext i32 %vl to i64 %a = call @llvm.riscv.vwsub.w.nxv2i64.nxv2i32( %passthru, %passthru, %y, i64 %vl.zext) @@ -1207,12 +1204,9 @@ define @vpmerge_vwsub.w_tied( %passthru, @vpmerge_vfwsub.w_tied( %passthru, %x, %y, %mask, i32 zeroext %vl) { ; CHECK-LABEL: vpmerge_vfwsub.w_tied: ; CHECK: # %bb.0: -; CHECK-NEXT: vsetvli zero, a0, e32, m1, tu, ma +; CHECK-NEXT: vsetvli zero, a0, e32, m1, tu, mu ; CHECK-NEXT: fsrmi a0, 1 -; CHECK-NEXT: vmv2r.v v10, v8 -; CHECK-NEXT: vfwsub.wv v10, v10, v12 -; CHECK-NEXT: vsetvli zero, zero, e64, m2, tu, ma -; CHECK-NEXT: vmerge.vvm v8, v8, v10, v0 +; CHECK-NEXT: vfwsub.wv v8, v8, v12, v0.t ; CHECK-NEXT: fsrm a0 ; CHECK-NEXT: ret %vl.zext = zext i32 %vl to i64