@@ -1549,20 +1549,15 @@ class VPseudoTiedBinaryCarryIn<VReg RetClass,
1549
1549
VReg Op1Class,
1550
1550
DAGOperand Op2Class,
1551
1551
LMULInfo MInfo,
1552
- bit CarryIn,
1553
- string Constraint,
1554
1552
int TargetConstraintType = 1> :
1555
1553
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), []>,
1561
1556
RISCVVPseudo {
1562
1557
let mayLoad = 0;
1563
1558
let mayStore = 0;
1564
1559
let hasSideEffects = 0;
1565
- let Constraints = !interleave([Constraint, "$rd = $merge"], ",") ;
1560
+ let Constraints = "$rd = $merge";
1566
1561
let TargetOverlapConstraintType = TargetConstraintType;
1567
1562
let HasVLOp = 1;
1568
1563
let HasSEWOp = 1;
@@ -2465,13 +2460,11 @@ multiclass VPseudoBinaryV_VM<LMULInfo m, bit CarryOut = 0, bit CarryIn = 1,
2465
2460
m.vrclass, m.vrclass, m, CarryIn, Constraint, TargetConstraintType>;
2466
2461
}
2467
2462
2468
- multiclass VPseudoTiedBinaryV_VM<LMULInfo m, int TargetConstraintType = 1,
2469
- bit Commutable = 0> {
2463
+ multiclass VPseudoTiedBinaryV_VM<LMULInfo m, bit Commutable = 0> {
2470
2464
let isCommutable = Commutable in
2471
2465
def "_VVM" # "_" # m.MX:
2472
2466
VPseudoTiedBinaryCarryIn<GetVRegNoV0<m.vrclass>.R,
2473
- m.vrclass, m.vrclass, m, 1, "",
2474
- TargetConstraintType>;
2467
+ m.vrclass, m.vrclass, m>;
2475
2468
}
2476
2469
2477
2470
multiclass 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,
2483
2476
m.vrclass, GPR, m, CarryIn, Constraint, TargetConstraintType>;
2484
2477
}
2485
2478
2486
- multiclass VPseudoTiedBinaryV_XM<LMULInfo m, int TargetConstraintType = 1 > {
2479
+ multiclass VPseudoTiedBinaryV_XM<LMULInfo m> {
2487
2480
def "_VXM" # "_" # m.MX:
2488
2481
VPseudoTiedBinaryCarryIn<GetVRegNoV0<m.vrclass>.R,
2489
- m.vrclass, GPR, m, 1, "",
2490
- TargetConstraintType>;
2482
+ m.vrclass, GPR, m>;
2491
2483
}
2492
2484
2493
2485
multiclass VPseudoVMRG_FM {
@@ -2496,8 +2488,7 @@ multiclass VPseudoVMRG_FM {
2496
2488
defvar mx = m.MX;
2497
2489
def "_V" # f.FX # "M_" # mx
2498
2490
: VPseudoTiedBinaryCarryIn<GetVRegNoV0<m.vrclass>.R, m.vrclass,
2499
- f.fprclass, m, CarryIn=1,
2500
- Constraint = "">,
2491
+ f.fprclass, m>,
2501
2492
SchedBinary<"WriteVFMergeV", "ReadVFMergeV", "ReadVFMergeF", mx,
2502
2493
forceMasked=1, forceMergeOpRead=true>;
2503
2494
}
@@ -2516,7 +2507,7 @@ multiclass VPseudoBinaryV_IM<LMULInfo m, bit CarryOut = 0, bit CarryIn = 1,
2516
2507
multiclass VPseudoTiedBinaryV_IM<LMULInfo m> {
2517
2508
def "_VIM" # "_" # m.MX:
2518
2509
VPseudoTiedBinaryCarryIn<GetVRegNoV0<m.vrclass>.R,
2519
- m.vrclass, simm5, m, 1, "" >;
2510
+ m.vrclass, simm5, m>;
2520
2511
}
2521
2512
2522
2513
multiclass VPseudoUnaryVMV_V_X_I {
@@ -3073,17 +3064,17 @@ multiclass VPseudoVMRG_VM_XM_IM {
3073
3064
defvar mx = m.MX;
3074
3065
def "_VVM" # "_" # m.MX:
3075
3066
VPseudoTiedBinaryCarryIn<GetVRegNoV0<m.vrclass>.R,
3076
- m.vrclass, m.vrclass, m, 1, "" >,
3067
+ m.vrclass, m.vrclass, m>,
3077
3068
SchedBinary<"WriteVIMergeV", "ReadVIMergeV", "ReadVIMergeV", mx,
3078
3069
forceMergeOpRead=true>;
3079
3070
def "_VXM" # "_" # m.MX:
3080
3071
VPseudoTiedBinaryCarryIn<GetVRegNoV0<m.vrclass>.R,
3081
- m.vrclass, GPR, m, 1, "" >,
3072
+ m.vrclass, GPR, m>,
3082
3073
SchedBinary<"WriteVIMergeX", "ReadVIMergeV", "ReadVIMergeX", mx,
3083
3074
forceMergeOpRead=true>;
3084
3075
def "_VIM" # "_" # m.MX:
3085
3076
VPseudoTiedBinaryCarryIn<GetVRegNoV0<m.vrclass>.R,
3086
- m.vrclass, simm5, m, 1, "" >,
3077
+ m.vrclass, simm5, m>,
3087
3078
SchedUnary<"WriteVIMergeI", "ReadVIMergeV", mx,
3088
3079
forceMergeOpRead=true>;
3089
3080
}
0 commit comments