@@ -307,6 +307,23 @@ TEST_F(SelectionDAGPatternMatchTest, matchBinaryOp) {
307307 SDValue UMinLikeULT = DAG->getSelect (DL, MVT::i32 , ICMP_ULT, Op0, Op1);
308308 SDValue UMinLikeULE = DAG->getSelect (DL, MVT::i32 , ICMP_ULE, Op0, Op1);
309309
310+ SDValue CCSMaxLikeGT = DAG->getSelectCC (DL, Op0, Op1, Op0, Op1, ISD::SETGT);
311+ SDValue CCSMaxLikeGE = DAG->getSelectCC (DL, Op0, Op1, Op0, Op1, ISD::SETGE);
312+ SDValue CCSMaxLikeLT = DAG->getSelectCC (DL, Op0, Op1, Op1, Op0, ISD::SETLT);
313+ SDValue CCSMaxLikeLE = DAG->getSelectCC (DL, Op0, Op1, Op1, Op0, ISD::SETLE);
314+ SDValue CCUMaxLikeUGT = DAG->getSelectCC (DL, Op0, Op1, Op0, Op1, ISD::SETUGT);
315+ SDValue CCUMaxLikeUGE = DAG->getSelectCC (DL, Op0, Op1, Op0, Op1, ISD::SETUGE);
316+ SDValue CCUMaxLikeULT = DAG->getSelectCC (DL, Op0, Op1, Op1, Op0, ISD::SETULT);
317+ SDValue CCUMaxLikeULE = DAG->getSelectCC (DL, Op0, Op1, Op1, Op0, ISD::SETULE);
318+ SDValue CCSMinLikeLT = DAG->getSelectCC (DL, Op0, Op1, Op0, Op1, ISD::SETLT);
319+ SDValue CCSMinLikeGT = DAG->getSelectCC (DL, Op0, Op1, Op1, Op0, ISD::SETGT);
320+ SDValue CCSMinLikeLE = DAG->getSelectCC (DL, Op0, Op1, Op0, Op1, ISD::SETLE);
321+ SDValue CCSMinLikeGE = DAG->getSelectCC (DL, Op0, Op1, Op1, Op0, ISD::SETGE);
322+ SDValue CCUMinLikeULT = DAG->getSelectCC (DL, Op0, Op1, Op0, Op1, ISD::SETULT);
323+ SDValue CCUMinLikeUGT = DAG->getSelectCC (DL, Op0, Op1, Op1, Op0, ISD::SETUGT);
324+ SDValue CCUMinLikeULE = DAG->getSelectCC (DL, Op0, Op1, Op0, Op1, ISD::SETULE);
325+ SDValue CCUMinLikeUGE = DAG->getSelectCC (DL, Op0, Op1, Op1, Op0, ISD::SETUGE);
326+
310327 SDValue SFAdd = DAG->getNode (ISD::STRICT_FADD, DL, {Float32VT, MVT::Other},
311328 {DAG->getEntryNode (), Op2, Op2});
312329
@@ -357,21 +374,37 @@ TEST_F(SelectionDAGPatternMatchTest, matchBinaryOp) {
357374 EXPECT_TRUE (sd_match (SMax, m_SMaxLike (m_Value (), m_Value ())));
358375 EXPECT_TRUE (sd_match (SMaxLikeGT, m_SMaxLike (m_Value (), m_Value ())));
359376 EXPECT_TRUE (sd_match (SMaxLikeGE, m_SMaxLike (m_Value (), m_Value ())));
377+ EXPECT_TRUE (sd_match (CCSMaxLikeGT, m_SMaxLike (m_Value (), m_Value ())));
378+ EXPECT_TRUE (sd_match (CCSMaxLikeGE, m_SMaxLike (m_Value (), m_Value ())));
379+ EXPECT_TRUE (sd_match (CCSMaxLikeLT, m_SMaxLike (m_Value (), m_Value ())));
380+ EXPECT_TRUE (sd_match (CCSMaxLikeLE, m_SMaxLike (m_Value (), m_Value ())));
360381 EXPECT_TRUE (sd_match (SMin, m_c_BinOp (ISD::SMIN, m_Value (), m_Value ())));
361382 EXPECT_TRUE (sd_match (SMin, m_SMin (m_Value (), m_Value ())));
362383 EXPECT_TRUE (sd_match (SMin, m_SMinLike (m_Value (), m_Value ())));
363384 EXPECT_TRUE (sd_match (SMinLikeLT, m_SMinLike (m_Value (), m_Value ())));
364385 EXPECT_TRUE (sd_match (SMinLikeLE, m_SMinLike (m_Value (), m_Value ())));
386+ EXPECT_TRUE (sd_match (CCSMinLikeGT, m_SMinLike (m_Value (), m_Value ())));
387+ EXPECT_TRUE (sd_match (CCSMinLikeGE, m_SMinLike (m_Value (), m_Value ())));
388+ EXPECT_TRUE (sd_match (CCSMinLikeLT, m_SMinLike (m_Value (), m_Value ())));
389+ EXPECT_TRUE (sd_match (CCSMinLikeLE, m_SMinLike (m_Value (), m_Value ())));
365390 EXPECT_TRUE (sd_match (UMax, m_c_BinOp (ISD::UMAX, m_Value (), m_Value ())));
366391 EXPECT_TRUE (sd_match (UMax, m_UMax (m_Value (), m_Value ())));
367392 EXPECT_TRUE (sd_match (UMax, m_UMaxLike (m_Value (), m_Value ())));
368393 EXPECT_TRUE (sd_match (UMaxLikeUGT, m_UMaxLike (m_Value (), m_Value ())));
369394 EXPECT_TRUE (sd_match (UMaxLikeUGE, m_UMaxLike (m_Value (), m_Value ())));
395+ EXPECT_TRUE (sd_match (CCUMaxLikeUGT, m_UMaxLike (m_Value (), m_Value ())));
396+ EXPECT_TRUE (sd_match (CCUMaxLikeUGE, m_UMaxLike (m_Value (), m_Value ())));
397+ EXPECT_TRUE (sd_match (CCUMaxLikeULT, m_UMaxLike (m_Value (), m_Value ())));
398+ EXPECT_TRUE (sd_match (CCUMaxLikeULE, m_UMaxLike (m_Value (), m_Value ())));
370399 EXPECT_TRUE (sd_match (UMin, m_c_BinOp (ISD::UMIN, m_Value (), m_Value ())));
371400 EXPECT_TRUE (sd_match (UMin, m_UMin (m_Value (), m_Value ())));
372401 EXPECT_TRUE (sd_match (UMin, m_UMinLike (m_Value (), m_Value ())));
373402 EXPECT_TRUE (sd_match (UMinLikeULT, m_UMinLike (m_Value (), m_Value ())));
374403 EXPECT_TRUE (sd_match (UMinLikeULE, m_UMinLike (m_Value (), m_Value ())));
404+ EXPECT_TRUE (sd_match (CCUMinLikeUGT, m_UMinLike (m_Value (), m_Value ())));
405+ EXPECT_TRUE (sd_match (CCUMinLikeUGE, m_UMinLike (m_Value (), m_Value ())));
406+ EXPECT_TRUE (sd_match (CCUMinLikeULT, m_UMinLike (m_Value (), m_Value ())));
407+ EXPECT_TRUE (sd_match (CCUMinLikeULE, m_UMinLike (m_Value (), m_Value ())));
375408
376409 // By default, it matches any of the results.
377410 EXPECT_TRUE (
0 commit comments