@@ -1444,6 +1444,21 @@ def PseudoCCSUB : Pseudo<(outs GPR:$dst),
14441444 GPR:$falsev, GPR:$rs1, GPR:$rs2), []>,
14451445 Sched<[WriteSFB, ReadSFBJmp, ReadSFBJmp,
14461446 ReadSFBALU, ReadSFBALU, ReadSFBALU]>;
1447+ def PseudoCCSLL : Pseudo<(outs GPR:$dst),
1448+ (ins GPR:$lhs, GPR:$rhs, ixlenimm:$cc,
1449+ GPR:$falsev, GPR:$rs1, GPR:$rs2), []>,
1450+ Sched<[WriteSFB, ReadSFBJmp, ReadSFBJmp, ReadSFBALU,
1451+ ReadSFBALU, ReadSFBALU]>;
1452+ def PseudoCCSRL : Pseudo<(outs GPR:$dst),
1453+ (ins GPR:$lhs, GPR:$rhs, ixlenimm:$cc,
1454+ GPR:$falsev, GPR:$rs1, GPR:$rs2), []>,
1455+ Sched<[WriteSFB, ReadSFBJmp, ReadSFBJmp, ReadSFBALU,
1456+ ReadSFBALU, ReadSFBALU]>;
1457+ def PseudoCCSRA : Pseudo<(outs GPR:$dst),
1458+ (ins GPR:$lhs, GPR:$rhs, ixlenimm:$cc,
1459+ GPR:$falsev, GPR:$rs1, GPR:$rs2), []>,
1460+ Sched<[WriteSFB, ReadSFBJmp, ReadSFBJmp, ReadSFBALU,
1461+ ReadSFBALU, ReadSFBALU]>;
14471462def PseudoCCAND : Pseudo<(outs GPR:$dst),
14481463 (ins GPR:$lhs, GPR:$rhs, ixlenimm:$cc,
14491464 GPR:$falsev, GPR:$rs1, GPR:$rs2), []>,
@@ -1460,6 +1475,42 @@ def PseudoCCXOR : Pseudo<(outs GPR:$dst),
14601475 Sched<[WriteSFB, ReadSFBJmp, ReadSFBJmp,
14611476 ReadSFBALU, ReadSFBALU, ReadSFBALU]>;
14621477
1478+ def PseudoCCADDI : Pseudo<(outs GPR:$dst),
1479+ (ins GPR:$lhs, GPR:$rhs, ixlenimm:$cc,
1480+ GPR:$falsev, GPR:$rs1, simm12:$rs2), []>,
1481+ Sched<[WriteSFB, ReadSFBJmp, ReadSFBJmp, ReadSFBALU,
1482+ ReadSFBALU]>;
1483+ def PseudoCCSLLI : Pseudo<(outs GPR:$dst),
1484+ (ins GPR:$lhs, GPR:$rhs, ixlenimm:$cc,
1485+ GPR:$falsev, GPR:$rs1, simm12:$rs2), []>,
1486+ Sched<[WriteSFB, ReadSFBJmp, ReadSFBJmp, ReadSFBALU,
1487+ ReadSFBALU]>;
1488+ def PseudoCCSRLI : Pseudo<(outs GPR:$dst),
1489+ (ins GPR:$lhs, GPR:$rhs, ixlenimm:$cc,
1490+ GPR:$falsev, GPR:$rs1, simm12:$rs2), []>,
1491+ Sched<[WriteSFB, ReadSFBJmp, ReadSFBJmp, ReadSFBALU,
1492+ ReadSFBALU]>;
1493+ def PseudoCCSRAI : Pseudo<(outs GPR:$dst),
1494+ (ins GPR:$lhs, GPR:$rhs, ixlenimm:$cc,
1495+ GPR:$falsev, GPR:$rs1, simm12:$rs2), []>,
1496+ Sched<[WriteSFB, ReadSFBJmp, ReadSFBJmp, ReadSFBALU,
1497+ ReadSFBALU]>;
1498+ def PseudoCCANDI : Pseudo<(outs GPR:$dst),
1499+ (ins GPR:$lhs, GPR:$rhs, ixlenimm:$cc,
1500+ GPR:$falsev, GPR:$rs1, simm12:$rs2), []>,
1501+ Sched<[WriteSFB, ReadSFBJmp, ReadSFBJmp, ReadSFBALU,
1502+ ReadSFBALU]>;
1503+ def PseudoCCORI : Pseudo<(outs GPR:$dst),
1504+ (ins GPR:$lhs, GPR:$rhs, ixlenimm:$cc,
1505+ GPR:$falsev, GPR:$rs1, simm12:$rs2), []>,
1506+ Sched<[WriteSFB, ReadSFBJmp, ReadSFBJmp, ReadSFBALU,
1507+ ReadSFBALU]>;
1508+ def PseudoCCXORI : Pseudo<(outs GPR:$dst),
1509+ (ins GPR:$lhs, GPR:$rhs, ixlenimm:$cc,
1510+ GPR:$falsev, GPR:$rs1, simm12:$rs2), []>,
1511+ Sched<[WriteSFB, ReadSFBJmp, ReadSFBJmp, ReadSFBALU,
1512+ ReadSFBALU]>;
1513+
14631514// RV64I instructions
14641515def PseudoCCADDW : Pseudo<(outs GPR:$dst),
14651516 (ins GPR:$lhs, GPR:$rhs, ixlenimm:$cc,
@@ -1471,6 +1522,42 @@ def PseudoCCSUBW : Pseudo<(outs GPR:$dst),
14711522 GPR:$falsev, GPR:$rs1, GPR:$rs2), []>,
14721523 Sched<[WriteSFB, ReadSFBJmp, ReadSFBJmp,
14731524 ReadSFBALU, ReadSFBALU, ReadSFBALU]>;
1525+ def PseudoCCSLLW : Pseudo<(outs GPR:$dst),
1526+ (ins GPR:$lhs, GPR:$rhs, ixlenimm:$cc,
1527+ GPR:$falsev, GPR:$rs1, GPR:$rs2), []>,
1528+ Sched<[WriteSFB, ReadSFBJmp, ReadSFBJmp, ReadSFBALU,
1529+ ReadSFBALU, ReadSFBALU]>;
1530+ def PseudoCCSRLW : Pseudo<(outs GPR:$dst),
1531+ (ins GPR:$lhs, GPR:$rhs, ixlenimm:$cc,
1532+ GPR:$falsev, GPR:$rs1, GPR:$rs2), []>,
1533+ Sched<[WriteSFB, ReadSFBJmp, ReadSFBJmp, ReadSFBALU,
1534+ ReadSFBALU, ReadSFBALU]>;
1535+ def PseudoCCSRAW : Pseudo<(outs GPR:$dst),
1536+ (ins GPR:$lhs, GPR:$rhs, ixlenimm:$cc,
1537+ GPR:$falsev, GPR:$rs1, GPR:$rs2), []>,
1538+ Sched<[WriteSFB, ReadSFBJmp, ReadSFBJmp, ReadSFBALU,
1539+ ReadSFBALU, ReadSFBALU]>;
1540+
1541+ def PseudoCCADDIW : Pseudo<(outs GPR:$dst),
1542+ (ins GPR:$lhs, GPR:$rhs, ixlenimm:$cc,
1543+ GPR:$falsev, GPR:$rs1, simm12:$rs2), []>,
1544+ Sched<[WriteSFB, ReadSFBJmp, ReadSFBJmp, ReadSFBALU,
1545+ ReadSFBALU]>;
1546+ def PseudoCCSLLIW : Pseudo<(outs GPR:$dst),
1547+ (ins GPR:$lhs, GPR:$rhs, ixlenimm:$cc,
1548+ GPR:$falsev, GPR:$rs1, simm12:$rs2), []>,
1549+ Sched<[WriteSFB, ReadSFBJmp, ReadSFBJmp, ReadSFBALU,
1550+ ReadSFBALU]>;
1551+ def PseudoCCSRLIW : Pseudo<(outs GPR:$dst),
1552+ (ins GPR:$lhs, GPR:$rhs, ixlenimm:$cc,
1553+ GPR:$falsev, GPR:$rs1, simm12:$rs2), []>,
1554+ Sched<[WriteSFB, ReadSFBJmp, ReadSFBJmp, ReadSFBALU,
1555+ ReadSFBALU]>;
1556+ def PseudoCCSRAIW : Pseudo<(outs GPR:$dst),
1557+ (ins GPR:$lhs, GPR:$rhs, ixlenimm:$cc,
1558+ GPR:$falsev, GPR:$rs1, simm12:$rs2), []>,
1559+ Sched<[WriteSFB, ReadSFBJmp, ReadSFBJmp, ReadSFBALU,
1560+ ReadSFBALU]>;
14741561}
14751562
14761563multiclass SelectCC_GPR_rrirr<DAGOperand valty, ValueType vt> {
0 commit comments