@@ -683,44 +683,45 @@ multiclass VPatReductionVL<SDNode vop, string instruction_name, bit is_float> {
683
683
}
684
684
685
685
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;
687
689
def : Pat<
688
- (vti.Vti. Vector
690
+ (vti.Vector
689
691
(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)))),
692
694
(riscv_vmset_vl VLOpFrag),
693
695
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)>;
697
698
def : Pat<
698
- (vti.Vti. Vector
699
+ (vti.Vector
699
700
(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))))),
702
703
(riscv_vmset_vl VLOpFrag),
703
704
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)>;
707
707
}
708
708
}
709
709
710
710
multiclass VPatBinarySDNode_V_WV_WX_WI<SDNode op, string instruction_name> {
711
711
defm : VPatBinarySDNodeExt_V_WV_WX<op, sext_oneuse, instruction_name>;
712
712
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;
714
716
def : Pat<
715
- (vti.Vti. Vector
717
+ (vti.Vector
716
718
(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))),
719
721
(riscv_vmset_vl VLOpFrag),
720
722
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)>;
724
725
}
725
726
}
726
727
@@ -814,18 +815,19 @@ multiclass VPatWidenBinaryFPVL_VV_VF_WV_WF<SDNode op, string instruction_name> {
814
815
}
815
816
816
817
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;
818
821
def : Pat<
819
- (vti.Vti. Vector
822
+ (vti.Vector
820
823
(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)>;
829
831
}
830
832
}
831
833
0 commit comments