@@ -1549,20 +1549,15 @@ class VPseudoTiedBinaryCarryIn<VReg RetClass,
15491549 VReg Op1Class,
15501550 DAGOperand Op2Class,
15511551 LMULInfo MInfo,
1552- bit CarryIn,
1553- string Constraint,
15541552 int TargetConstraintType = 1> :
15551553 Pseudo<(outs RetClass:$rd),
1556- !if(CarryIn,
1557- (ins RetClass:$merge, Op1Class:$rs2, Op2Class:$rs1,
1558- VMV0:$carry, AVL:$vl, ixlenimm:$sew),
1559- (ins RetClass:$merge, Op1Class:$rs2, Op2Class:$rs1,
1560- AVL:$vl, ixlenimm:$sew)), []>,
1554+ (ins RetClass:$merge, Op1Class:$rs2, Op2Class:$rs1,
1555+ VMV0:$carry, AVL:$vl, ixlenimm:$sew), []>,
15611556 RISCVVPseudo {
15621557 let mayLoad = 0;
15631558 let mayStore = 0;
15641559 let hasSideEffects = 0;
1565- let Constraints = !interleave([Constraint, "$rd = $merge"], ",") ;
1560+ let Constraints = "$rd = $merge";
15661561 let TargetOverlapConstraintType = TargetConstraintType;
15671562 let HasVLOp = 1;
15681563 let HasSEWOp = 1;
@@ -2465,13 +2460,11 @@ multiclass VPseudoBinaryV_VM<LMULInfo m, bit CarryOut = 0, bit CarryIn = 1,
24652460 m.vrclass, m.vrclass, m, CarryIn, Constraint, TargetConstraintType>;
24662461}
24672462
2468- multiclass VPseudoTiedBinaryV_VM<LMULInfo m, int TargetConstraintType = 1,
2469- bit Commutable = 0> {
2463+ multiclass VPseudoTiedBinaryV_VM<LMULInfo m, bit Commutable = 0> {
24702464 let isCommutable = Commutable in
24712465 def "_VVM" # "_" # m.MX:
24722466 VPseudoTiedBinaryCarryIn<GetVRegNoV0<m.vrclass>.R,
2473- m.vrclass, m.vrclass, m, 1, "",
2474- TargetConstraintType>;
2467+ m.vrclass, m.vrclass, m>;
24752468}
24762469
24772470multiclass VPseudoBinaryV_XM<LMULInfo m, bit CarryOut = 0, bit CarryIn = 1,
@@ -2483,11 +2476,10 @@ multiclass VPseudoBinaryV_XM<LMULInfo m, bit CarryOut = 0, bit CarryIn = 1,
24832476 m.vrclass, GPR, m, CarryIn, Constraint, TargetConstraintType>;
24842477}
24852478
2486- multiclass VPseudoTiedBinaryV_XM<LMULInfo m, int TargetConstraintType = 1 > {
2479+ multiclass VPseudoTiedBinaryV_XM<LMULInfo m> {
24872480 def "_VXM" # "_" # m.MX:
24882481 VPseudoTiedBinaryCarryIn<GetVRegNoV0<m.vrclass>.R,
2489- m.vrclass, GPR, m, 1, "",
2490- TargetConstraintType>;
2482+ m.vrclass, GPR, m>;
24912483}
24922484
24932485multiclass VPseudoVMRG_FM {
@@ -2496,8 +2488,7 @@ multiclass VPseudoVMRG_FM {
24962488 defvar mx = m.MX;
24972489 def "_V" # f.FX # "M_" # mx
24982490 : VPseudoTiedBinaryCarryIn<GetVRegNoV0<m.vrclass>.R, m.vrclass,
2499- f.fprclass, m, CarryIn=1,
2500- Constraint = "">,
2491+ f.fprclass, m>,
25012492 SchedBinary<"WriteVFMergeV", "ReadVFMergeV", "ReadVFMergeF", mx,
25022493 forceMasked=1, forceMergeOpRead=true>;
25032494 }
@@ -2516,7 +2507,7 @@ multiclass VPseudoBinaryV_IM<LMULInfo m, bit CarryOut = 0, bit CarryIn = 1,
25162507multiclass VPseudoTiedBinaryV_IM<LMULInfo m> {
25172508 def "_VIM" # "_" # m.MX:
25182509 VPseudoTiedBinaryCarryIn<GetVRegNoV0<m.vrclass>.R,
2519- m.vrclass, simm5, m, 1, "" >;
2510+ m.vrclass, simm5, m>;
25202511}
25212512
25222513multiclass VPseudoUnaryVMV_V_X_I {
@@ -3073,17 +3064,17 @@ multiclass VPseudoVMRG_VM_XM_IM {
30733064 defvar mx = m.MX;
30743065 def "_VVM" # "_" # m.MX:
30753066 VPseudoTiedBinaryCarryIn<GetVRegNoV0<m.vrclass>.R,
3076- m.vrclass, m.vrclass, m, 1, "" >,
3067+ m.vrclass, m.vrclass, m>,
30773068 SchedBinary<"WriteVIMergeV", "ReadVIMergeV", "ReadVIMergeV", mx,
30783069 forceMergeOpRead=true>;
30793070 def "_VXM" # "_" # m.MX:
30803071 VPseudoTiedBinaryCarryIn<GetVRegNoV0<m.vrclass>.R,
3081- m.vrclass, GPR, m, 1, "" >,
3072+ m.vrclass, GPR, m>,
30823073 SchedBinary<"WriteVIMergeX", "ReadVIMergeV", "ReadVIMergeX", mx,
30833074 forceMergeOpRead=true>;
30843075 def "_VIM" # "_" # m.MX:
30853076 VPseudoTiedBinaryCarryIn<GetVRegNoV0<m.vrclass>.R,
3086- m.vrclass, simm5, m, 1, "" >,
3077+ m.vrclass, simm5, m>,
30873078 SchedUnary<"WriteVIMergeI", "ReadVIMergeV", mx,
30883079 forceMergeOpRead=true>;
30893080 }
0 commit comments