diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td b/llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td index 442a19be0fd1a..de9e55beb6a5e 100644 --- a/llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td +++ b/llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td @@ -4567,7 +4567,8 @@ multiclass VPatUnaryS_M vtilist> { foreach vti = vtilist in { - let Predicates = GetVTypeMinimalPredicates.Predicates in + defvar ivti = GetIntVTypeInfo.Vti; + let Predicates = GetVTypePredicates.Predicates in def : VPatUnaryAnyMask; @@ -4886,7 +4887,7 @@ multiclass VPatBinaryV_VV_INT vtilist> { foreach vti = vtilist in { defvar ivti = GetIntVTypeInfo.Vti; - let Predicates = GetVTypeMinimalPredicates.Predicates in + let Predicates = GetVTypePredicates.Predicates in defm : VPatBinary.Vti; defvar emul_str = octuple_to_str.ret; - defvar ivti = !cast("VI" # eew # emul_str); defvar inst = instruction # "_VV_" # vti.LMul.MX # "_E" # vti.SEW # "_" # emul_str; - let Predicates = !listconcat(GetVTypeMinimalPredicates.Predicates, - GetVTypeMinimalPredicates.Predicates) in + defvar eivti = !cast("VI" # eew # emul_str); + let Predicates = !listconcat(GetVTypePredicates.Predicates, + GetVTypePredicates.Predicates) in defm : VPatBinary; + vti.RegClass, eivti.RegClass>; } } } @@ -4948,12 +4950,14 @@ multiclass VPatBinaryV_VX_RM vtilist> { - foreach vti = vtilist in - let Predicates = GetVTypeMinimalPredicates.Predicates in + foreach vti = vtilist in { + defvar ivti = GetIntVTypeInfo.Vti; + let Predicates = GetVTypePredicates.Predicates in defm : VPatBinary; + } } multiclass VPatBinaryV_VI vtilist, Operand imm_type> { - foreach vti = vtilist in - let Predicates = GetVTypeMinimalPredicates.Predicates in + foreach vti = vtilist in { + defvar ivti = GetIntVTypeInfo.Vti; + let Predicates = GetVTypePredicates.Predicates in defm : VPatBinary; + } } multiclass VPatBinaryM_MM { @@ -5573,12 +5579,14 @@ multiclass VPatTernaryV_VV_AAXA_RM vtilist> { - foreach vti = vtilist in - let Predicates = GetVTypeMinimalPredicates.Predicates in + foreach vti = vtilist in { + defvar ivti = GetIntVTypeInfo.Vti; + let Predicates = GetVTypePredicates.Predicates in defm : VPatTernaryWithPolicy; + } } multiclass VPatTernaryV_VX_AAXA vtilist, Operand Imm_type> { - foreach vti = vtilist in - let Predicates = GetVTypeMinimalPredicates.Predicates in + foreach vti = vtilist in { + defvar ivti = GetIntVTypeInfo.Vti; + let Predicates = GetVTypePredicates.Predicates in defm : VPatTernaryWithPolicy; + } } multiclass VPatTernaryW_VV