@@ -1484,12 +1484,16 @@ def : QCIMVCCPat <SETNE, QC_MVNE>;
1484
1484
def : QCIMVCCPat <SETLT, QC_MVLT>;
1485
1485
def : QCIMVCCPat <SETULT, QC_MVLTU>;
1486
1486
1487
- def : QCIMVCCIPat <SETEQ, QC_MVEQI, simm5>;
1488
- def : QCIMVCCIPat <SETNE, QC_MVNEI, simm5>;
1489
1487
def : QCIMVCCIPat <SETLT, QC_MVLTI, simm5>;
1490
1488
def : QCIMVCCIPat <SETULT, QC_MVLTUI, uimm5>;
1491
1489
}
1492
1490
1491
+ // Prioritize Xqcics over these patterns.
1492
+ let Predicates = [HasVendorXqcicm, NoVendorXqcics, IsRV32] in {
1493
+ def : QCIMVCCIPat <SETEQ, QC_MVEQI, simm5>;
1494
+ def : QCIMVCCIPat <SETNE, QC_MVNEI, simm5>;
1495
+ }
1496
+
1493
1497
let Predicates = [HasVendorXqcics, IsRV32] in {
1494
1498
def : Pat<(select (i32 GPRNoX0:$rd), (i32 GPRNoX0:$rs2),(i32 GPRNoX0:$rs3)),
1495
1499
(QC_SELECTNEI GPRNoX0:$rd, (i32 0), GPRNoX0:$rs2, GPRNoX0:$rs3)>;
@@ -1498,12 +1502,8 @@ def : Pat<(select (i32 GPRNoX0:$rd), (i32 GPRNoX0:$rs2), simm5:$simm2),
1498
1502
def : Pat<(select (i32 GPRNoX0:$rd), simm5:$simm2,(i32 GPRNoX0:$rs2)),
1499
1503
(QC_SELECTIEQI GPRNoX0:$rd, (i32 0), GPRNoX0:$rs2, simm5:$simm2)>;
1500
1504
1501
- // Below AddedComplexity is added to prefer these conditional select instructions over
1502
- // conditional move instructions
1503
- let AddedComplexity = 1 in {
1504
1505
def : QCISELECTCCIPat <SETEQ, QC_SELECTEQI>;
1505
1506
def : QCISELECTCCIPat <SETNE, QC_SELECTNEI>;
1506
- }
1507
1507
1508
1508
def : QCISELECTICCIPat <SETEQ, QC_SELECTIEQI>;
1509
1509
def : QCISELECTICCIPat <SETNE, QC_SELECTINEI>;
0 commit comments