diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td b/llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td --- a/llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td +++ b/llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td @@ -1515,32 +1515,28 @@ class VPatBinaryNoMask : Pat<(result_type (!cast(intrinsic_name) (op1_type op1_reg_class:$rs1), (op2_type op2_kind:$rs2), (XLenVT GPR:$vl))), - (!cast(inst#"_"#kind#"_"#vlmul.MX) + (!cast(inst) (op1_type op1_reg_class:$rs1), ToFPR32.ret, (NoX0 GPR:$vl), sew)>; class VPatBinaryMask : @@ -1550,7 +1546,7 @@ (op2_type op2_kind:$rs2), (mask_type V0), (XLenVT GPR:$vl))), - (!cast(inst#"_"#kind#"_"#vlmul.MX#"_MASK") + (!cast(inst#"_MASK") (result_type result_reg_class:$merge), (op1_type op1_reg_class:$rs1), ToFPR32.ret, @@ -1862,21 +1858,19 @@ multiclass VPatBinary { - def : VPatBinaryNoMask; - def : VPatBinaryMask; + def : VPatBinaryMask; } @@ -1944,9 +1938,9 @@ multiclass VPatBinaryV_VV vtilist> { foreach vti = vtilist in - defm : VPatBinary; } @@ -1954,46 +1948,47 @@ list vtilist> { foreach vti = vtilist in { defvar ivti = GetIntVTypeInfo.Vti; - defm : VPatBinary; } } multiclass VPatBinaryV_VX vtilist> { - foreach vti = vtilist in - defm : VPatBinary; + } } multiclass VPatBinaryV_VX_INT vtilist> { foreach vti = vtilist in - defm : VPatBinary; } multiclass VPatBinaryV_VI vtilist, Operand imm_type> { foreach vti = vtilist in - defm : VPatBinary; } multiclass VPatBinaryM_MM { foreach mti = AllMasks in - def : VPatBinaryNoMask; + mti.SEW, VR, VR>; } multiclass VPatBinaryW_VV; } } @@ -2013,10 +2008,10 @@ foreach VtiToWti = vtilist in { defvar Vti = VtiToWti.Vti; defvar Wti = VtiToWti.Wti; - defm : VPatBinary; } } @@ -2026,9 +2021,9 @@ foreach VtiToWti = vtilist in { defvar Vti = VtiToWti.Vti; defvar Wti = VtiToWti.Wti; - defm : VPatBinary; } } @@ -2038,10 +2033,10 @@ foreach VtiToWti = vtilist in { defvar Vti = VtiToWti.Vti; defvar Wti = VtiToWti.Wti; - defm : VPatBinary; } } @@ -2051,9 +2046,9 @@ foreach VtiToWti = vtilist in { defvar Vti = VtiToWti.Vti; defvar Wti = VtiToWti.Wti; - defm : VPatBinary; } } @@ -2063,10 +2058,10 @@ foreach VtiToWti = vtilist in { defvar Vti = VtiToWti.Vti; defvar Wti = VtiToWti.Wti; - defm : VPatBinary; } } @@ -2076,9 +2071,9 @@ foreach VtiToWti = vtilist in { defvar Vti = VtiToWti.Vti; defvar Wti = VtiToWti.Wti; - defm : VPatBinary; } } @@ -2143,28 +2138,29 @@ multiclass VPatBinaryM_VV vtilist> { foreach vti = vtilist in - defm : VPatBinary; } multiclass VPatBinaryM_VX vtilist> { - foreach vti = vtilist in - defm : VPatBinary; + } } multiclass VPatBinaryM_VI vtilist> { foreach vti = vtilist in - defm : VPatBinary; }