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 @@ -1522,32 +1522,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 : @@ -1557,7 +1553,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, @@ -1869,21 +1865,19 @@ multiclass VPatBinary { - def : VPatBinaryNoMask; - def : VPatBinaryMask; + def : VPatBinaryMask; } @@ -1951,9 +1945,9 @@ multiclass VPatBinaryV_VV vtilist> { foreach vti = vtilist in - defm : VPatBinary; } @@ -1961,46 +1955,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; } } @@ -2020,10 +2015,10 @@ foreach VtiToWti = vtilist in { defvar Vti = VtiToWti.Vti; defvar Wti = VtiToWti.Wti; - defm : VPatBinary; } } @@ -2033,9 +2028,9 @@ foreach VtiToWti = vtilist in { defvar Vti = VtiToWti.Vti; defvar Wti = VtiToWti.Wti; - defm : VPatBinary; } } @@ -2045,10 +2040,10 @@ foreach VtiToWti = vtilist in { defvar Vti = VtiToWti.Vti; defvar Wti = VtiToWti.Wti; - defm : VPatBinary; } } @@ -2058,9 +2053,9 @@ foreach VtiToWti = vtilist in { defvar Vti = VtiToWti.Vti; defvar Wti = VtiToWti.Wti; - defm : VPatBinary; } } @@ -2070,10 +2065,10 @@ foreach VtiToWti = vtilist in { defvar Vti = VtiToWti.Vti; defvar Wti = VtiToWti.Wti; - defm : VPatBinary; } } @@ -2083,9 +2078,9 @@ foreach VtiToWti = vtilist in { defvar Vti = VtiToWti.Vti; defvar Wti = VtiToWti.Wti; - defm : VPatBinary; } } @@ -2150,28 +2145,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; }