@@ -2317,11 +2317,11 @@ multiclass VPseudoVSLD1_VF<string Constraint = ""> {
2317
2317
}
2318
2318
}
2319
2319
2320
- multiclass VPseudoBinaryV_VI<Operand ImmType = simm5 , LMULInfo m, string Constraint = ""> {
2320
+ multiclass VPseudoBinaryV_VI<Operand ImmType, LMULInfo m, string Constraint = ""> {
2321
2321
defm _VI : VPseudoBinary<m.vrclass, m.vrclass, ImmType, m, Constraint>;
2322
2322
}
2323
2323
2324
- multiclass VPseudoBinaryV_VI_RM<Operand ImmType = simm5 , LMULInfo m, string Constraint = ""> {
2324
+ multiclass VPseudoBinaryV_VI_RM<Operand ImmType, LMULInfo m, string Constraint = ""> {
2325
2325
defm _VI : VPseudoBinaryRoundingMode<m.vrclass, m.vrclass, ImmType, m, Constraint>;
2326
2326
}
2327
2327
@@ -2696,13 +2696,13 @@ multiclass VPseudoBinaryM_VI<LMULInfo m, int TargetConstraintType = 1> {
2696
2696
!if(!ge(m.octuple, 16), "@earlyclobber $rd", ""), TargetConstraintType>;
2697
2697
}
2698
2698
2699
- multiclass VPseudoVGTR_VV_VX_VI<Operand ImmType = simm5, string Constraint = ""> {
2699
+ multiclass VPseudoVGTR_VV_VX_VI<string Constraint = ""> {
2700
2700
foreach m = MxList in {
2701
2701
defvar mx = m.MX;
2702
2702
defm "" : VPseudoBinaryV_VX<m, Constraint>,
2703
2703
SchedBinary<"WriteVRGatherVX", "ReadVRGatherVX_data",
2704
2704
"ReadVRGatherVX_index", mx, forceMergeOpRead=true>;
2705
- defm "" : VPseudoBinaryV_VI<ImmType , m, Constraint>,
2705
+ defm "" : VPseudoBinaryV_VI<uimm5 , m, Constraint>,
2706
2706
SchedUnary<"WriteVRGatherVI", "ReadVRGatherVI_data", mx,
2707
2707
forceMergeOpRead=true>;
2708
2708
@@ -2715,8 +2715,7 @@ multiclass VPseudoVGTR_VV_VX_VI<Operand ImmType = simm5, string Constraint = "">
2715
2715
}
2716
2716
}
2717
2717
2718
- multiclass VPseudoVSALU_VV_VX_VI<Operand ImmType = simm5, string Constraint = "",
2719
- bit Commutable = 0> {
2718
+ multiclass VPseudoVSALU_VV_VX_VI<string Constraint = "", bit Commutable = 0> {
2720
2719
foreach m = MxList in {
2721
2720
defvar mx = m.MX;
2722
2721
defm "" : VPseudoBinaryV_VV<m, Constraint, Commutable=Commutable>,
@@ -2725,13 +2724,13 @@ multiclass VPseudoVSALU_VV_VX_VI<Operand ImmType = simm5, string Constraint = ""
2725
2724
defm "" : VPseudoBinaryV_VX<m, Constraint>,
2726
2725
SchedBinary<"WriteVSALUX", "ReadVSALUV", "ReadVSALUX", mx,
2727
2726
forceMergeOpRead=true>;
2728
- defm "" : VPseudoBinaryV_VI<ImmType , m, Constraint>,
2727
+ defm "" : VPseudoBinaryV_VI<simm5 , m, Constraint>,
2729
2728
SchedUnary<"WriteVSALUI", "ReadVSALUV", mx, forceMergeOpRead=true>;
2730
2729
}
2731
2730
}
2732
2731
2733
2732
2734
- multiclass VPseudoVSHT_VV_VX_VI<Operand ImmType = simm5, string Constraint = ""> {
2733
+ multiclass VPseudoVSHT_VV_VX_VI<string Constraint = ""> {
2735
2734
foreach m = MxList in {
2736
2735
defvar mx = m.MX;
2737
2736
defm "" : VPseudoBinaryV_VV<m, Constraint>,
@@ -2740,12 +2739,12 @@ multiclass VPseudoVSHT_VV_VX_VI<Operand ImmType = simm5, string Constraint = "">
2740
2739
defm "" : VPseudoBinaryV_VX<m, Constraint>,
2741
2740
SchedBinary<"WriteVShiftX", "ReadVShiftV", "ReadVShiftX", mx,
2742
2741
forceMergeOpRead=true>;
2743
- defm "" : VPseudoBinaryV_VI<ImmType , m, Constraint>,
2742
+ defm "" : VPseudoBinaryV_VI<uimm5 , m, Constraint>,
2744
2743
SchedUnary<"WriteVShiftI", "ReadVShiftV", mx, forceMergeOpRead=true>;
2745
2744
}
2746
2745
}
2747
2746
2748
- multiclass VPseudoVSSHT_VV_VX_VI_RM<Operand ImmType = simm5, string Constraint = ""> {
2747
+ multiclass VPseudoVSSHT_VV_VX_VI_RM<string Constraint = ""> {
2749
2748
foreach m = MxList in {
2750
2749
defvar mx = m.MX;
2751
2750
defm "" : VPseudoBinaryV_VV_RM<m, Constraint>,
@@ -2754,13 +2753,12 @@ multiclass VPseudoVSSHT_VV_VX_VI_RM<Operand ImmType = simm5, string Constraint =
2754
2753
defm "" : VPseudoBinaryV_VX_RM<m, Constraint>,
2755
2754
SchedBinary<"WriteVSShiftX", "ReadVSShiftV", "ReadVSShiftX", mx,
2756
2755
forceMergeOpRead=true>;
2757
- defm "" : VPseudoBinaryV_VI_RM<ImmType , m, Constraint>,
2756
+ defm "" : VPseudoBinaryV_VI_RM<uimm5 , m, Constraint>,
2758
2757
SchedUnary<"WriteVSShiftI", "ReadVSShiftV", mx, forceMergeOpRead=true>;
2759
2758
}
2760
2759
}
2761
2760
2762
- multiclass VPseudoVALU_VV_VX_VI<Operand ImmType = simm5, string Constraint = "",
2763
- bit Commutable = 0> {
2761
+ multiclass VPseudoVALU_VV_VX_VI<string Constraint = "", bit Commutable = 0> {
2764
2762
foreach m = MxList in {
2765
2763
defvar mx = m.MX;
2766
2764
defm "" : VPseudoBinaryV_VV<m, Constraint, Commutable=Commutable>,
@@ -2769,7 +2767,7 @@ multiclass VPseudoVALU_VV_VX_VI<Operand ImmType = simm5, string Constraint = "",
2769
2767
defm "" : VPseudoBinaryV_VX<m, Constraint>,
2770
2768
SchedBinary<"WriteVIALUX", "ReadVIALUV", "ReadVIALUX", mx,
2771
2769
forceMergeOpRead=true>;
2772
- defm "" : VPseudoBinaryV_VI<ImmType , m, Constraint>,
2770
+ defm "" : VPseudoBinaryV_VI<simm5 , m, Constraint>,
2773
2771
SchedUnary<"WriteVIALUI", "ReadVIALUV", mx, forceMergeOpRead=true>;
2774
2772
}
2775
2773
}
@@ -2962,13 +2960,13 @@ multiclass VPseudoVALU_VF_RM {
2962
2960
}
2963
2961
}
2964
2962
2965
- multiclass VPseudoVALU_VX_VI<Operand ImmType = simm5> {
2963
+ multiclass VPseudoVALU_VX_VI {
2966
2964
foreach m = MxList in {
2967
2965
defvar mx = m.MX;
2968
2966
defm "" : VPseudoBinaryV_VX<m>,
2969
2967
SchedBinary<"WriteVIALUX", "ReadVIALUV", "ReadVIALUX", mx,
2970
2968
forceMergeOpRead=true>;
2971
- defm "" : VPseudoBinaryV_VI<ImmType , m>,
2969
+ defm "" : VPseudoBinaryV_VI<simm5 , m>,
2972
2970
SchedUnary<"WriteVIALUI", "ReadVIALUV", mx, forceMergeOpRead=true>;
2973
2971
}
2974
2972
}
@@ -3333,8 +3331,8 @@ multiclass VPseudoVSLDV_VX<LMULInfo m, string Constraint = ""> {
3333
3331
defm _VX : VPseudoVSLDVWithPolicy<m.vrclass, m.vrclass, GPR, m, Constraint>;
3334
3332
}
3335
3333
3336
- multiclass VPseudoVSLDV_VI<Operand ImmType = simm5, LMULInfo m, string Constraint = ""> {
3337
- defm _VI : VPseudoVSLDVWithPolicy<m.vrclass, m.vrclass, ImmType , m, Constraint>;
3334
+ multiclass VPseudoVSLDV_VI<LMULInfo m, string Constraint = ""> {
3335
+ defm _VI : VPseudoVSLDVWithPolicy<m.vrclass, m.vrclass, uimm5 , m, Constraint>;
3338
3336
}
3339
3337
3340
3338
multiclass VPseudoVMAC_VV_VX_AAXA<string Constraint = ""> {
@@ -3366,15 +3364,14 @@ multiclass VPseudoVMAC_VV_VF_AAXA_RM<string Constraint = ""> {
3366
3364
}
3367
3365
}
3368
3366
3369
- multiclass VPseudoVSLD_VX_VI<Operand ImmType = simm5, bit slidesUp = false,
3370
- string Constraint = ""> {
3367
+ multiclass VPseudoVSLD_VX_VI<bit slidesUp = false, string Constraint = ""> {
3371
3368
defvar WriteSlideX = !if(slidesUp, "WriteVSlideUpX", "WriteVSlideDownX");
3372
3369
foreach m = MxList in {
3373
3370
defvar mx = m.MX;
3374
3371
defm "" : VPseudoVSLDV_VX<m, Constraint>,
3375
3372
SchedTernary<WriteSlideX, "ReadVISlideV", "ReadVISlideV",
3376
3373
"ReadVISlideX", mx>;
3377
- defm "" : VPseudoVSLDV_VI<ImmType, m, Constraint>,
3374
+ defm "" : VPseudoVSLDV_VI<m, Constraint>,
3378
3375
SchedBinary<"WriteVSlideI", "ReadVISlideV", "ReadVISlideV", mx>;
3379
3376
}
3380
3377
}
@@ -5441,7 +5438,7 @@ multiclass VPatBinaryV_VV_VX_VI<string intrinsic, string instruction,
5441
5438
VPatBinaryV_VI<intrinsic, instruction, vtilist, ImmType>;
5442
5439
5443
5440
multiclass VPatBinaryV_VV_VX_VI_RM<string intrinsic, string instruction,
5444
- list<VTypeInfo> vtilist, Operand ImmType = simm5 >
5441
+ list<VTypeInfo> vtilist, Operand ImmType>
5445
5442
: VPatBinaryV_VV_RM<intrinsic, instruction, vtilist>,
5446
5443
VPatBinaryV_VX_RM<intrinsic, instruction, vtilist>,
5447
5444
VPatBinaryV_VI_RM<intrinsic, instruction, vtilist, ImmType>;
@@ -5777,7 +5774,7 @@ multiclass VPatTernaryV_VV_VX_AAXA_RM<string intrinsic, string instruction,
5777
5774
VPatTernaryV_VX_AAXA_RM<intrinsic, instruction, vtilist, isSEWAware>;
5778
5775
5779
5776
multiclass VPatTernaryV_VX_VI<string intrinsic, string instruction,
5780
- list<VTypeInfo> vtilist, Operand Imm_type = simm5 >
5777
+ list<VTypeInfo> vtilist, Operand Imm_type>
5781
5778
: VPatTernaryV_VX<intrinsic, instruction, vtilist>,
5782
5779
VPatTernaryV_VI<intrinsic, instruction, vtilist, Imm_type>;
5783
5780
@@ -5809,7 +5806,7 @@ multiclass VPatBinaryM_VX_VI<string intrinsic, string instruction,
5809
5806
VPatBinaryM_VI<intrinsic, instruction, vtilist>;
5810
5807
5811
5808
multiclass VPatBinaryV_VV_VX_VI_INT<string intrinsic, string instruction,
5812
- list<VTypeInfo> vtilist, Operand ImmType = simm5 >
5809
+ list<VTypeInfo> vtilist, Operand ImmType>
5813
5810
: VPatBinaryV_VV_INT<intrinsic#"_vv", instruction, vtilist>,
5814
5811
VPatBinaryV_VX_INT<intrinsic#"_vx", instruction, vtilist>,
5815
5812
VPatBinaryV_VI<intrinsic#"_vx", instruction, vtilist, ImmType>;
@@ -6329,9 +6326,9 @@ defm PseudoVXOR : VPseudoVALU_VV_VX_VI<Commutable=1>;
6329
6326
//===----------------------------------------------------------------------===//
6330
6327
// 11.6. Vector Single-Width Bit Shift Instructions
6331
6328
//===----------------------------------------------------------------------===//
6332
- defm PseudoVSLL : VPseudoVSHT_VV_VX_VI<uimm5> ;
6333
- defm PseudoVSRL : VPseudoVSHT_VV_VX_VI<uimm5> ;
6334
- defm PseudoVSRA : VPseudoVSHT_VV_VX_VI<uimm5> ;
6329
+ defm PseudoVSLL : VPseudoVSHT_VV_VX_VI;
6330
+ defm PseudoVSRL : VPseudoVSHT_VV_VX_VI;
6331
+ defm PseudoVSRA : VPseudoVSHT_VV_VX_VI;
6335
6332
6336
6333
//===----------------------------------------------------------------------===//
6337
6334
// 11.7. Vector Narrowing Integer Right Shift Instructions
@@ -6440,8 +6437,8 @@ let Defs = [VXSAT] in {
6440
6437
//===----------------------------------------------------------------------===//
6441
6438
// 12.4. Vector Single-Width Scaling Shift Instructions
6442
6439
//===----------------------------------------------------------------------===//
6443
- defm PseudoVSSRL : VPseudoVSSHT_VV_VX_VI_RM<uimm5> ;
6444
- defm PseudoVSSRA : VPseudoVSSHT_VV_VX_VI_RM<uimm5> ;
6440
+ defm PseudoVSSRL : VPseudoVSSHT_VV_VX_VI_RM;
6441
+ defm PseudoVSSRA : VPseudoVSSHT_VV_VX_VI_RM;
6445
6442
6446
6443
//===----------------------------------------------------------------------===//
6447
6444
// 12.5. Vector Narrowing Fixed-Point Clip Instructions
@@ -6826,8 +6823,8 @@ let mayLoad = 0, mayStore = 0, hasSideEffects = 0 in {
6826
6823
// 16.3. Vector Slide Instructions
6827
6824
//===----------------------------------------------------------------------===//
6828
6825
let Predicates = [HasVInstructions] in {
6829
- defm PseudoVSLIDEUP : VPseudoVSLD_VX_VI<uimm5, /*slidesUp=*/true, "@earlyclobber $rd">;
6830
- defm PseudoVSLIDEDOWN : VPseudoVSLD_VX_VI<uimm5, /*slidesUp=*/false>;
6826
+ defm PseudoVSLIDEUP : VPseudoVSLD_VX_VI</*slidesUp=*/true, "@earlyclobber $rd">;
6827
+ defm PseudoVSLIDEDOWN : VPseudoVSLD_VX_VI</*slidesUp=*/false>;
6831
6828
defm PseudoVSLIDE1UP : VPseudoVSLD1_VX<"@earlyclobber $rd">;
6832
6829
defm PseudoVSLIDE1DOWN : VPseudoVSLD1_VX;
6833
6830
} // Predicates = [HasVInstructions]
@@ -6841,7 +6838,7 @@ let Predicates = [HasVInstructionsAnyF] in {
6841
6838
// 16.4. Vector Register Gather Instructions
6842
6839
//===----------------------------------------------------------------------===//
6843
6840
let Predicates = [HasVInstructions] in {
6844
- defm PseudoVRGATHER : VPseudoVGTR_VV_VX_VI<uimm5, "@earlyclobber $rd">;
6841
+ defm PseudoVRGATHER : VPseudoVGTR_VV_VX_VI<"@earlyclobber $rd">;
6845
6842
defm PseudoVRGATHEREI16 : VPseudoVGTR_EI16_VV<Constraint = "@earlyclobber $rd">;
6846
6843
6847
6844
//===----------------------------------------------------------------------===//
0 commit comments