@@ -1484,12 +1484,16 @@ def : QCIMVCCPat <SETNE, QC_MVNE>;
14841484def : QCIMVCCPat <SETLT, QC_MVLT>;
14851485def : QCIMVCCPat <SETULT, QC_MVLTU>;
14861486
1487- def : QCIMVCCIPat <SETEQ, QC_MVEQI, simm5>;
1488- def : QCIMVCCIPat <SETNE, QC_MVNEI, simm5>;
14891487def : QCIMVCCIPat <SETLT, QC_MVLTI, simm5>;
14901488def : QCIMVCCIPat <SETULT, QC_MVLTUI, uimm5>;
14911489}
14921490
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+
14931497let Predicates = [HasVendorXqcics, IsRV32] in {
14941498def : Pat<(select (XLenVT GPRNoX0:$rd), (XLenVT GPRNoX0:$rs2),(XLenVT GPRNoX0:$rs3)),
14951499 (QC_SELECTNEI GPRNoX0:$rd, (XLenVT 0), GPRNoX0:$rs2, GPRNoX0:$rs3)>;
@@ -1498,12 +1502,8 @@ def : Pat<(select (XLenVT GPRNoX0:$rd), (XLenVT GPRNoX0:$rs2), simm5:$simm2),
14981502def : Pat<(select (XLenVT GPRNoX0:$rd), simm5:$simm2,(XLenVT GPRNoX0:$rs2)),
14991503 (QC_SELECTIEQI GPRNoX0:$rd, (XLenVT 0), GPRNoX0:$rs2, simm5:$simm2)>;
15001504
1501- // Below AddedComplexity is added to prefer these conditional select instructions over
1502- // conditional move instructions
1503- let AddedComplexity = 1 in {
15041505def : QCISELECTCCIPat <SETEQ, QC_SELECTEQI>;
15051506def : QCISELECTCCIPat <SETNE, QC_SELECTNEI>;
1506- }
15071507
15081508def : QCISELECTICCIPat <SETEQ, QC_SELECTIEQI>;
15091509def : QCISELECTICCIPat <SETNE, QC_SELECTINEI>;
0 commit comments