@@ -1438,6 +1438,21 @@ def PseudoCCSUB : Pseudo<(outs GPR:$dst),
1438
1438
GPR:$falsev, GPR:$rs1, GPR:$rs2), []>,
1439
1439
Sched<[WriteSFB, ReadSFBJmp, ReadSFBJmp,
1440
1440
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]>;
1441
1456
def PseudoCCAND : Pseudo<(outs GPR:$dst),
1442
1457
(ins GPR:$lhs, GPR:$rhs, ixlenimm:$cc,
1443
1458
GPR:$falsev, GPR:$rs1, GPR:$rs2), []>,
@@ -1454,6 +1469,42 @@ def PseudoCCXOR : Pseudo<(outs GPR:$dst),
1454
1469
Sched<[WriteSFB, ReadSFBJmp, ReadSFBJmp,
1455
1470
ReadSFBALU, ReadSFBALU, ReadSFBALU]>;
1456
1471
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
+
1457
1508
// RV64I instructions
1458
1509
def PseudoCCADDW : Pseudo<(outs GPR:$dst),
1459
1510
(ins GPR:$lhs, GPR:$rhs, ixlenimm:$cc,
@@ -1465,6 +1516,42 @@ def PseudoCCSUBW : Pseudo<(outs GPR:$dst),
1465
1516
GPR:$falsev, GPR:$rs1, GPR:$rs2), []>,
1466
1517
Sched<[WriteSFB, ReadSFBJmp, ReadSFBJmp,
1467
1518
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]>;
1468
1555
}
1469
1556
1470
1557
multiclass SelectCC_GPR_rrirr<DAGOperand valty, ValueType vt> {
0 commit comments