From 872931e5d8572aadd3827c6e746ff2043f083d2e Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Thu, 8 Apr 2021 15:02:57 -0700 Subject: [PATCH] [RISCV] Use multiclass inheritance where possible for the VPat* multiclasses in RISVInstrInfoVPseudos. NFCI Instead of instantiating multiclasses inside multiclasses, just inherit from them. We can do the same for the VPseudo* multiclasses, but that may interfere with the scheduler class work. --- llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td | 131 +++++++++--------------- 1 file changed, 48 insertions(+), 83 deletions(-) diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td b/llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td index 05b3bf71..d3178fb 100644 --- a/llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td +++ b/llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td @@ -2751,86 +2751,62 @@ multiclass VPatBinaryM_VI vtilist, Operand ImmType = simm5> -{ - defm "" : VPatBinaryV_VV; - defm "" : VPatBinaryV_VX; - defm "" : VPatBinaryV_VI; -} + : VPatBinaryV_VV, + VPatBinaryV_VX, + VPatBinaryV_VI; multiclass VPatBinaryV_VV_VX vtilist> -{ - defm "" : VPatBinaryV_VV; - defm "" : VPatBinaryV_VX; -} + : VPatBinaryV_VV, + VPatBinaryV_VX; multiclass VPatBinaryV_VX_VI vtilist> -{ - defm "" : VPatBinaryV_VX; - defm "" : VPatBinaryV_VI; -} + : VPatBinaryV_VX, + VPatBinaryV_VI; multiclass VPatBinaryW_VV_VX vtilist> -{ - defm "" : VPatBinaryW_VV; - defm "" : VPatBinaryW_VX; -} + : VPatBinaryW_VV, + VPatBinaryW_VX; multiclass VPatBinaryW_WV_WX vtilist> -{ - defm "" : VPatBinaryW_WV; - defm "" : VPatBinaryW_WX; -} + : VPatBinaryW_WV, + VPatBinaryW_WX; multiclass VPatBinaryV_WV_WX_WI vtilist> -{ - defm "" : VPatBinaryV_WV; - defm "" : VPatBinaryV_WX; - defm "" : VPatBinaryV_WI; -} + : VPatBinaryV_WV, + VPatBinaryV_WX, + VPatBinaryV_WI; multiclass VPatBinaryV_VM_XM_IM -{ - defm "" : VPatBinaryV_VM; - defm "" : VPatBinaryV_XM; - defm "" : VPatBinaryV_IM; -} + : VPatBinaryV_VM, + VPatBinaryV_XM, + VPatBinaryV_IM; multiclass VPatBinaryM_VM_XM_IM -{ - defm "" : VPatBinaryV_VM; - defm "" : VPatBinaryV_XM; - defm "" : VPatBinaryV_IM; -} + : VPatBinaryV_VM, + VPatBinaryV_XM, + VPatBinaryV_IM; multiclass VPatBinaryM_V_X_I -{ - defm "" : VPatBinaryV_V; - defm "" : VPatBinaryV_X; - defm "" : VPatBinaryV_I; -} + : VPatBinaryV_V, + VPatBinaryV_X, + VPatBinaryV_I; multiclass VPatBinaryV_VM_XM -{ - defm "" : VPatBinaryV_VM; - defm "" : VPatBinaryV_XM; -} + : VPatBinaryV_VM, + VPatBinaryV_XM; multiclass VPatBinaryM_VM_XM -{ - defm "" : VPatBinaryV_VM; - defm "" : VPatBinaryV_XM; -} + : VPatBinaryV_VM, + VPatBinaryV_XM; multiclass VPatBinaryM_V_X -{ - defm "" : VPatBinaryV_V; - defm "" : VPatBinaryV_X; -} + : VPatBinaryV_V, + VPatBinaryV_X; multiclass VPatTernary vtilist> { - defm "" : VPatTernaryV_VV; - defm "" : VPatTernaryV_VX_AAXA; -} + list vtilist> + : VPatTernaryV_VV, + VPatTernaryV_VX_AAXA; multiclass VPatTernaryV_VX_VI vtilist, Operand Imm_type = simm5> { - defm "" : VPatTernaryV_VX; - defm "" : VPatTernaryV_VI; -} + list vtilist, Operand Imm_type = simm5> + : VPatTernaryV_VX, + VPatTernaryV_VI; multiclass VPatBinaryM_VV_VX_VI vtilist> -{ - defm "" : VPatBinaryM_VV; - defm "" : VPatBinaryM_VX; - defm "" : VPatBinaryM_VI; -} + : VPatBinaryM_VV, + VPatBinaryM_VX, + VPatBinaryM_VI; multiclass VPatTernaryW_VV_VX vtilist> { - defm "" : VPatTernaryW_VV; - defm "" : VPatTernaryW_VX; -} + list vtilist> + : VPatTernaryW_VV, + VPatTernaryW_VX; multiclass VPatBinaryM_VV_VX vtilist> -{ - defm "" : VPatBinaryM_VV; - defm "" : VPatBinaryM_VX; -} + : VPatBinaryM_VV, + VPatBinaryM_VX; multiclass VPatBinaryM_VX_VI vtilist> -{ - defm "" : VPatBinaryM_VX; - defm "" : VPatBinaryM_VI; -} + : VPatBinaryM_VX, + VPatBinaryM_VI; multiclass VPatBinaryV_VV_VX_VI_INT vtilist, Operand ImmType = simm5> -{ - defm "" : VPatBinaryV_VV_INT; - defm "" : VPatBinaryV_VX_INT; - defm "" : VPatBinaryV_VI; -} + : VPatBinaryV_VV_INT, + VPatBinaryV_VX_INT, + VPatBinaryV_VI; multiclass VPatReductionV_VS { foreach vti = !if(IsFloat, NoGroupFloatVectors, NoGroupIntegerVectors) in -- 2.7.4