Skip to content

Commit 7493d9f

Browse files
Pretty-boxbenshi001
authored andcommitted
[RISCV][NFC] Use defvar to simplify pattern definations.
Reviewed By: jacquesguan, frasercrmck Differential Revision: https://reviews.llvm.org/D123839
1 parent a7815d3 commit 7493d9f

File tree

1 file changed

+32
-30
lines changed

1 file changed

+32
-30
lines changed

llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td

Lines changed: 32 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -683,44 +683,45 @@ multiclass VPatReductionVL<SDNode vop, string instruction_name, bit is_float> {
683683
}
684684

685685
multiclass VPatBinarySDNodeExt_V_WV_WX<SDNode op, PatFrags extop, string instruction_name> {
686-
foreach vti = AllWidenableIntVectors in {
686+
foreach vtiToWti = AllWidenableIntVectors in {
687+
defvar vti = vtiToWti.Vti;
688+
defvar wti = vtiToWti.Wti;
687689
def : Pat<
688-
(vti.Vti.Vector
690+
(vti.Vector
689691
(riscv_trunc_vector_vl
690-
(op (vti.Wti.Vector vti.Wti.RegClass:$rs2),
691-
(vti.Wti.Vector (extop (vti.Vti.Vector vti.Vti.RegClass:$rs1)))),
692+
(op (wti.Vector wti.RegClass:$rs2),
693+
(wti.Vector (extop (vti.Vector vti.RegClass:$rs1)))),
692694
(riscv_vmset_vl VLOpFrag),
693695
VLOpFrag)),
694-
(!cast<Instruction>(instruction_name#"_WV_"#vti.Vti.LMul.MX)
695-
vti.Wti.RegClass:$rs2, vti.Vti.RegClass:$rs1,
696-
vti.Vti.AVL, vti.Vti.Log2SEW)>;
696+
(!cast<Instruction>(instruction_name#"_WV_"#vti.LMul.MX)
697+
wti.RegClass:$rs2, vti.RegClass:$rs1, vti.AVL, vti.Log2SEW)>;
697698
def : Pat<
698-
(vti.Vti.Vector
699+
(vti.Vector
699700
(riscv_trunc_vector_vl
700-
(op (vti.Wti.Vector vti.Wti.RegClass:$rs2),
701-
(vti.Wti.Vector (extop (vti.Vti.Vector (SplatPat GPR:$rs1))))),
701+
(op (wti.Vector wti.RegClass:$rs2),
702+
(wti.Vector (extop (vti.Vector (SplatPat GPR:$rs1))))),
702703
(riscv_vmset_vl VLOpFrag),
703704
VLOpFrag)),
704-
(!cast<Instruction>(instruction_name#"_WX_"#vti.Vti.LMul.MX)
705-
vti.Wti.RegClass:$rs2, GPR:$rs1,
706-
vti.Vti.AVL, vti.Vti.Log2SEW)>;
705+
(!cast<Instruction>(instruction_name#"_WX_"#vti.LMul.MX)
706+
wti.RegClass:$rs2, GPR:$rs1, vti.AVL, vti.Log2SEW)>;
707707
}
708708
}
709709

710710
multiclass VPatBinarySDNode_V_WV_WX_WI<SDNode op, string instruction_name> {
711711
defm : VPatBinarySDNodeExt_V_WV_WX<op, sext_oneuse, instruction_name>;
712712
defm : VPatBinarySDNodeExt_V_WV_WX<op, zext_oneuse, instruction_name>;
713-
foreach vti = AllWidenableIntVectors in {
713+
foreach vtiToWti = AllWidenableIntVectors in {
714+
defvar vti = vtiToWti.Vti;
715+
defvar wti = vtiToWti.Wti;
714716
def : Pat<
715-
(vti.Vti.Vector
717+
(vti.Vector
716718
(riscv_trunc_vector_vl
717-
(op (vti.Wti.Vector vti.Wti.RegClass:$rs2),
718-
(vti.Wti.Vector (SplatPat_uimm5 uimm5:$rs1))),
719+
(op (wti.Vector wti.RegClass:$rs2),
720+
(wti.Vector (SplatPat_uimm5 uimm5:$rs1))),
719721
(riscv_vmset_vl VLOpFrag),
720722
VLOpFrag)),
721-
(!cast<Instruction>(instruction_name#"_WI_"#vti.Vti.LMul.MX)
722-
vti.Wti.RegClass:$rs2, uimm5:$rs1,
723-
vti.Vti.AVL, vti.Vti.Log2SEW)>;
723+
(!cast<Instruction>(instruction_name#"_WI_"#vti.LMul.MX)
724+
wti.RegClass:$rs2, uimm5:$rs1, vti.AVL, vti.Log2SEW)>;
724725
}
725726
}
726727

@@ -814,18 +815,19 @@ multiclass VPatWidenBinaryFPVL_VV_VF_WV_WF<SDNode op, string instruction_name> {
814815
}
815816

816817
multiclass VPatNarrowShiftSplatExt_WX<SDNode op, PatFrags extop, string instruction_name> {
817-
foreach vti = AllWidenableIntVectors in {
818+
foreach vtiToWti = AllWidenableIntVectors in {
819+
defvar vti = vtiToWti.Vti;
820+
defvar wti = vtiToWti.Wti;
818821
def : Pat<
819-
(vti.Vti.Vector
822+
(vti.Vector
820823
(riscv_trunc_vector_vl
821-
(op (vti.Wti.Vector vti.Wti.RegClass:$rs2),
822-
(vti.Wti.Vector (extop (vti.Vti.Vector (SplatPat GPR:$rs1)),
823-
(vti.Vti.Mask true_mask), VLOpFrag)),
824-
(vti.Wti.Mask true_mask), VLOpFrag),
825-
(vti.Vti.Mask true_mask), VLOpFrag)),
826-
(!cast<Instruction>(instruction_name#"_WX_"#vti.Vti.LMul.MX)
827-
vti.Wti.RegClass:$rs2, GPR:$rs1,
828-
vti.Vti.AVL, vti.Vti.Log2SEW)>;
824+
(op (wti.Vector wti.RegClass:$rs2),
825+
(wti.Vector (extop (vti.Vector (SplatPat GPR:$rs1)),
826+
(vti.Mask true_mask), VLOpFrag)),
827+
(wti.Mask true_mask), VLOpFrag),
828+
(vti.Mask true_mask), VLOpFrag)),
829+
(!cast<Instruction>(instruction_name#"_WX_"#vti.LMul.MX)
830+
wti.RegClass:$rs2, GPR:$rs1, vti.AVL, vti.Log2SEW)>;
829831
}
830832
}
831833

0 commit comments

Comments
 (0)