[ARM] Correct some tablegen operand types. NFC
This commit is contained in:
parent
ffca74b8b8
commit
3e780616c4
@ -318,7 +318,7 @@ def MVE_v2f64 : MVEVectorVTInfo<v2f64, ?, v4i1, ?, 0b11, "f", ?>;
|
||||
def MVE_v16p8 : MVEVectorVTInfo<v16i8, v8i16, v16i1, v8i1, 0b11, "p", 0b0>;
|
||||
def MVE_v8p16 : MVEVectorVTInfo<v8i16, v4i32, v8i1, v4i1, 0b11, "p", 0b1>;
|
||||
|
||||
multiclass MVE_TwoOpPattern<MVEVectorVTInfo VTI, PatFrag Op, Intrinsic PredInt,
|
||||
multiclass MVE_TwoOpPattern<MVEVectorVTInfo VTI, SDPatternOperator Op, Intrinsic PredInt,
|
||||
dag PredOperands, Instruction Inst,
|
||||
SDPatternOperator IdentityVec = null_frag> {
|
||||
// Unpredicated
|
||||
@ -354,7 +354,7 @@ multiclass MVE_TwoOpPattern<MVEVectorVTInfo VTI, PatFrag Op, Intrinsic PredInt,
|
||||
(VTI.Vec MQPR:$inactive)))>;
|
||||
}
|
||||
|
||||
multiclass MVE_TwoOpPatternDup<MVEVectorVTInfo VTI, PatFrag Op, Intrinsic PredInt,
|
||||
multiclass MVE_TwoOpPatternDup<MVEVectorVTInfo VTI, SDPatternOperator Op, Intrinsic PredInt,
|
||||
dag PredOperands, Instruction Inst,
|
||||
SDPatternOperator IdentityVec = null_frag> {
|
||||
// Unpredicated
|
||||
@ -2476,7 +2476,7 @@ class MVE_VCLSCLZ<string iname, string suffix, bits<2> size,
|
||||
}
|
||||
|
||||
multiclass MVE_VCLSCLZ_p<string opname, bit opcode, MVEVectorVTInfo VTI,
|
||||
SDNode unpred_op> {
|
||||
SDPatternOperator unpred_op> {
|
||||
def "": MVE_VCLSCLZ<"v"#opname, VTI.Suffix, VTI.Size, opcode>;
|
||||
|
||||
defvar Inst = !cast<Instruction>(NAME);
|
||||
@ -2520,7 +2520,7 @@ class MVE_VABSNEG_int<string iname, string suffix, bits<2> size, bit negate,
|
||||
}
|
||||
|
||||
multiclass MVE_VABSNEG_int_m<string iname, bit negate, bit saturate,
|
||||
SDNode unpred_op, Intrinsic pred_int,
|
||||
SDPatternOperator unpred_op, Intrinsic pred_int,
|
||||
MVEVectorVTInfo VTI> {
|
||||
def "" : MVE_VABSNEG_int<iname, VTI.Suffix, VTI.Size, negate, saturate>;
|
||||
defvar Inst = !cast<Instruction>(NAME);
|
||||
@ -3585,7 +3585,7 @@ class MVE_VRINT<string rmode, bits<3> op, string suffix, bits<2> size,
|
||||
}
|
||||
|
||||
multiclass MVE_VRINT_m<MVEVectorVTInfo VTI, string suffix, bits<3> opcode,
|
||||
SDNode unpred_op> {
|
||||
SDPatternOperator unpred_op> {
|
||||
def "": MVE_VRINT<suffix, opcode, VTI.Suffix, VTI.Size>;
|
||||
defvar Inst = !cast<Instruction>(NAME);
|
||||
defvar pred_int = !cast<Intrinsic>("int_arm_mve_vrint"#suffix#"_predicated");
|
||||
@ -4374,7 +4374,7 @@ multiclass unpred_vcmpf_z<PatLeaf fc> {
|
||||
(v4i1 (MVE_VCMPf32r (v4f32 MQPR:$v1), ZR, fc, ARMVCCThen, VCCR:$p1))>;
|
||||
}
|
||||
|
||||
multiclass unpred_vcmpf_r<int fc> {
|
||||
multiclass unpred_vcmpf_r<PatLeaf fc> {
|
||||
def : Pat<(v8i1 (ARMvcmp (v8f16 MQPR:$v1), (v8f16 MQPR:$v2), fc)),
|
||||
(v8i1 (MVE_VCMPf16 (v8f16 MQPR:$v1), (v8f16 MQPR:$v2), fc))>;
|
||||
def : Pat<(v4i1 (ARMvcmp (v4f32 MQPR:$v1), (v4f32 MQPR:$v2), fc)),
|
||||
@ -4641,7 +4641,7 @@ class MVE_VMULL<string iname, string suffix, bit bit_28, bits<2> bits_21_20,
|
||||
}
|
||||
|
||||
multiclass MVE_VMULL_m<MVEVectorVTInfo VTI,
|
||||
SDNode unpred_op, Intrinsic pred_int,
|
||||
SDPatternOperator unpred_op, Intrinsic pred_int,
|
||||
bit Top, string cstr=""> {
|
||||
def "" : MVE_VMULL<"vmull" # !if(Top, "t", "b"), VTI.Suffix, VTI.Unsigned,
|
||||
VTI.Size, Top, cstr>;
|
||||
@ -5188,7 +5188,8 @@ class MVE_qDest_single_rSrc<string iname, string suffix, list<dag> pattern=[]>
|
||||
|
||||
// Patterns for vector-scalar instructions with integer operands
|
||||
multiclass MVE_vec_scalar_int_pat_m<Instruction inst, MVEVectorVTInfo VTI,
|
||||
SDNode unpred_op, SDNode pred_op,
|
||||
SDPatternOperator unpred_op,
|
||||
SDPatternOperator pred_op,
|
||||
bit unpred_has_sign = 0,
|
||||
bit pred_has_sign = 0> {
|
||||
defvar UnpredSign = !if(unpred_has_sign, (? (i32 VTI.Unsigned)), (?));
|
||||
|
||||
@ -3018,7 +3018,7 @@ class N3VLSL16<bit op24, bits<2> op21_20, bits<4> op11_8,
|
||||
// Long 3-register operations with explicitly extended operands.
|
||||
class N3VLExt<bit op24, bit op23, bits<2> op21_20, bits<4> op11_8, bit op4,
|
||||
InstrItinClass itin, string OpcodeStr, string Dt,
|
||||
ValueType TyQ, ValueType TyD, SDNode OpNode, SDNode ExtOp,
|
||||
ValueType TyQ, ValueType TyD, SDNode OpNode, SDPatternOperator ExtOp,
|
||||
bit Commutable>
|
||||
: N3V<op24, op23, op21_20, op11_8, 0, op4,
|
||||
(outs QPR:$Vd), (ins DPR:$Vn, DPR:$Vm), N3RegFrm, itin,
|
||||
@ -3085,7 +3085,7 @@ class N3VLIntSL16<bit op24, bits<2> op21_20, bits<4> op11_8,
|
||||
// Wide 3-register operations.
|
||||
class N3VW<bit op24, bit op23, bits<2> op21_20, bits<4> op11_8, bit op4,
|
||||
string OpcodeStr, string Dt, ValueType TyQ, ValueType TyD,
|
||||
SDNode OpNode, SDNode ExtOp, bit Commutable>
|
||||
SDNode OpNode, SDPatternOperator ExtOp, bit Commutable>
|
||||
: N3V<op24, op23, op21_20, op11_8, 0, op4,
|
||||
(outs QPR:$Vd), (ins QPR:$Vn, DPR:$Vm), N3RegFrm, IIC_VSUBiD,
|
||||
OpcodeStr, Dt, "$Vd, $Vn, $Vm", "",
|
||||
@ -3649,7 +3649,7 @@ multiclass N3VLSL_HS<bit op24, bits<4> op11_8,
|
||||
multiclass N3VLExt_QHS<bit op24, bit op23, bits<4> op11_8, bit op4,
|
||||
InstrItinClass itin16, InstrItinClass itin32,
|
||||
string OpcodeStr, string Dt,
|
||||
SDNode OpNode, SDNode ExtOp, bit Commutable = 0> {
|
||||
SDNode OpNode, SDPatternOperator ExtOp, bit Commutable = 0> {
|
||||
def v8i16 : N3VLExt<op24, op23, 0b00, op11_8, op4, itin16,
|
||||
OpcodeStr, !strconcat(Dt, "8"),
|
||||
v8i16, v8i8, OpNode, ExtOp, Commutable>;
|
||||
@ -3717,7 +3717,7 @@ multiclass N3VLIntExt_QHS<bit op24, bit op23, bits<4> op11_8, bit op4,
|
||||
// source operand element sizes of 8, 16 and 32 bits:
|
||||
multiclass N3VW_QHS<bit op24, bit op23, bits<4> op11_8, bit op4,
|
||||
string OpcodeStr, string Dt,
|
||||
SDNode OpNode, SDNode ExtOp, bit Commutable = 0> {
|
||||
SDNode OpNode, SDPatternOperator ExtOp, bit Commutable = 0> {
|
||||
def v8i16 : N3VW<op24, op23, 0b00, op11_8, op4,
|
||||
OpcodeStr, !strconcat(Dt, "8"),
|
||||
v8i16, v8i8, OpNode, ExtOp, Commutable>;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user