@@ -1438,6 +1438,21 @@ def PseudoCCSUB : Pseudo<(outs GPR:$dst),
14381438 GPR:$falsev, GPR:$rs1, GPR:$rs2), []>,
14391439 Sched<[WriteSFB, ReadSFBJmp, ReadSFBJmp,
14401440 ReadSFBALU, ReadSFBALU, ReadSFBALU]>;
1441+ def PseudoCCSLL : Pseudo<(outs GPR:$dst),
1442+ (ins GPR:$lhs, GPR:$rhs, ixlenimm:$cc,
1443+ GPR:$falsev, GPR:$rs1, GPR:$rs2), []>,
1444+ Sched<[WriteSFB, ReadSFBJmp, ReadSFBJmp, ReadSFBALU,
1445+ ReadSFBALU, ReadSFBALU]>;
1446+ def PseudoCCSRL : Pseudo<(outs GPR:$dst),
1447+ (ins GPR:$lhs, GPR:$rhs, ixlenimm:$cc,
1448+ GPR:$falsev, GPR:$rs1, GPR:$rs2), []>,
1449+ Sched<[WriteSFB, ReadSFBJmp, ReadSFBJmp, ReadSFBALU,
1450+ ReadSFBALU, ReadSFBALU]>;
1451+ def PseudoCCSRA : Pseudo<(outs GPR:$dst),
1452+ (ins GPR:$lhs, GPR:$rhs, ixlenimm:$cc,
1453+ GPR:$falsev, GPR:$rs1, GPR:$rs2), []>,
1454+ Sched<[WriteSFB, ReadSFBJmp, ReadSFBJmp, ReadSFBALU,
1455+ ReadSFBALU, ReadSFBALU]>;
14411456def PseudoCCAND : Pseudo<(outs GPR:$dst),
14421457 (ins GPR:$lhs, GPR:$rhs, ixlenimm:$cc,
14431458 GPR:$falsev, GPR:$rs1, GPR:$rs2), []>,
@@ -1454,6 +1469,42 @@ def PseudoCCXOR : Pseudo<(outs GPR:$dst),
14541469 Sched<[WriteSFB, ReadSFBJmp, ReadSFBJmp,
14551470 ReadSFBALU, ReadSFBALU, ReadSFBALU]>;
14561471
1472+ def PseudoCCADDI : Pseudo<(outs GPR:$dst),
1473+ (ins GPR:$lhs, GPR:$rhs, ixlenimm:$cc,
1474+ GPR:$falsev, GPR:$rs1, simm12:$rs2), []>,
1475+ Sched<[WriteSFB, ReadSFBJmp, ReadSFBJmp, ReadSFBALU,
1476+ ReadSFBALU]>;
1477+ def PseudoCCSLLI : Pseudo<(outs GPR:$dst),
1478+ (ins GPR:$lhs, GPR:$rhs, ixlenimm:$cc,
1479+ GPR:$falsev, GPR:$rs1, simm12:$rs2), []>,
1480+ Sched<[WriteSFB, ReadSFBJmp, ReadSFBJmp, ReadSFBALU,
1481+ ReadSFBALU]>;
1482+ def PseudoCCSRLI : Pseudo<(outs GPR:$dst),
1483+ (ins GPR:$lhs, GPR:$rhs, ixlenimm:$cc,
1484+ GPR:$falsev, GPR:$rs1, simm12:$rs2), []>,
1485+ Sched<[WriteSFB, ReadSFBJmp, ReadSFBJmp, ReadSFBALU,
1486+ ReadSFBALU]>;
1487+ def PseudoCCSRAI : Pseudo<(outs GPR:$dst),
1488+ (ins GPR:$lhs, GPR:$rhs, ixlenimm:$cc,
1489+ GPR:$falsev, GPR:$rs1, simm12:$rs2), []>,
1490+ Sched<[WriteSFB, ReadSFBJmp, ReadSFBJmp, ReadSFBALU,
1491+ ReadSFBALU]>;
1492+ def PseudoCCANDI : Pseudo<(outs GPR:$dst),
1493+ (ins GPR:$lhs, GPR:$rhs, ixlenimm:$cc,
1494+ GPR:$falsev, GPR:$rs1, simm12:$rs2), []>,
1495+ Sched<[WriteSFB, ReadSFBJmp, ReadSFBJmp, ReadSFBALU,
1496+ ReadSFBALU]>;
1497+ def PseudoCCORI : Pseudo<(outs GPR:$dst),
1498+ (ins GPR:$lhs, GPR:$rhs, ixlenimm:$cc,
1499+ GPR:$falsev, GPR:$rs1, simm12:$rs2), []>,
1500+ Sched<[WriteSFB, ReadSFBJmp, ReadSFBJmp, ReadSFBALU,
1501+ ReadSFBALU]>;
1502+ def PseudoCCXORI : Pseudo<(outs GPR:$dst),
1503+ (ins GPR:$lhs, GPR:$rhs, ixlenimm:$cc,
1504+ GPR:$falsev, GPR:$rs1, simm12:$rs2), []>,
1505+ Sched<[WriteSFB, ReadSFBJmp, ReadSFBJmp, ReadSFBALU,
1506+ ReadSFBALU]>;
1507+
14571508// RV64I instructions
14581509def PseudoCCADDW : Pseudo<(outs GPR:$dst),
14591510 (ins GPR:$lhs, GPR:$rhs, ixlenimm:$cc,
@@ -1465,6 +1516,42 @@ def PseudoCCSUBW : Pseudo<(outs GPR:$dst),
14651516 GPR:$falsev, GPR:$rs1, GPR:$rs2), []>,
14661517 Sched<[WriteSFB, ReadSFBJmp, ReadSFBJmp,
14671518 ReadSFBALU, ReadSFBALU, ReadSFBALU]>;
1519+ def PseudoCCSLLW : Pseudo<(outs GPR:$dst),
1520+ (ins GPR:$lhs, GPR:$rhs, ixlenimm:$cc,
1521+ GPR:$falsev, GPR:$rs1, GPR:$rs2), []>,
1522+ Sched<[WriteSFB, ReadSFBJmp, ReadSFBJmp, ReadSFBALU,
1523+ ReadSFBALU, ReadSFBALU]>;
1524+ def PseudoCCSRLW : Pseudo<(outs GPR:$dst),
1525+ (ins GPR:$lhs, GPR:$rhs, ixlenimm:$cc,
1526+ GPR:$falsev, GPR:$rs1, GPR:$rs2), []>,
1527+ Sched<[WriteSFB, ReadSFBJmp, ReadSFBJmp, ReadSFBALU,
1528+ ReadSFBALU, ReadSFBALU]>;
1529+ def PseudoCCSRAW : Pseudo<(outs GPR:$dst),
1530+ (ins GPR:$lhs, GPR:$rhs, ixlenimm:$cc,
1531+ GPR:$falsev, GPR:$rs1, GPR:$rs2), []>,
1532+ Sched<[WriteSFB, ReadSFBJmp, ReadSFBJmp, ReadSFBALU,
1533+ ReadSFBALU, ReadSFBALU]>;
1534+
1535+ def PseudoCCADDIW : Pseudo<(outs GPR:$dst),
1536+ (ins GPR:$lhs, GPR:$rhs, ixlenimm:$cc,
1537+ GPR:$falsev, GPR:$rs1, simm12:$rs2), []>,
1538+ Sched<[WriteSFB, ReadSFBJmp, ReadSFBJmp, ReadSFBALU,
1539+ ReadSFBALU]>;
1540+ def PseudoCCSLLIW : Pseudo<(outs GPR:$dst),
1541+ (ins GPR:$lhs, GPR:$rhs, ixlenimm:$cc,
1542+ GPR:$falsev, GPR:$rs1, simm12:$rs2), []>,
1543+ Sched<[WriteSFB, ReadSFBJmp, ReadSFBJmp, ReadSFBALU,
1544+ ReadSFBALU]>;
1545+ def PseudoCCSRLIW : Pseudo<(outs GPR:$dst),
1546+ (ins GPR:$lhs, GPR:$rhs, ixlenimm:$cc,
1547+ GPR:$falsev, GPR:$rs1, simm12:$rs2), []>,
1548+ Sched<[WriteSFB, ReadSFBJmp, ReadSFBJmp, ReadSFBALU,
1549+ ReadSFBALU]>;
1550+ def PseudoCCSRAIW : Pseudo<(outs GPR:$dst),
1551+ (ins GPR:$lhs, GPR:$rhs, ixlenimm:$cc,
1552+ GPR:$falsev, GPR:$rs1, simm12:$rs2), []>,
1553+ Sched<[WriteSFB, ReadSFBJmp, ReadSFBJmp, ReadSFBALU,
1554+ ReadSFBALU]>;
14681555}
14691556
14701557multiclass SelectCC_GPR_rrirr<DAGOperand valty, ValueType vt> {
0 commit comments