@@ -202,13 +202,21 @@ TEST_F(SelectionDAGPatternMatchTest, matchBinaryOp) {
202202 SDValue UMin = DAG->getNode (ISD::UMIN, DL, Int32VT, Op1, Op0);
203203
204204 SDValue ICMP_GT = DAG->getSetCC (DL, MVT::i1, Op0, Op1, ISD::SETGT);
205+ SDValue ICMP_GE = DAG->getSetCC (DL, MVT::i1, Op0, Op1, ISD::SETGE);
205206 SDValue ICMP_UGT = DAG->getSetCC (DL, MVT::i1, Op0, Op1, ISD::SETUGT);
207+ SDValue ICMP_UGE = DAG->getSetCC (DL, MVT::i1, Op0, Op1, ISD::SETUGE);
206208 SDValue ICMP_LT = DAG->getSetCC (DL, MVT::i1, Op0, Op1, ISD::SETLT);
209+ SDValue ICMP_LE = DAG->getSetCC (DL, MVT::i1, Op0, Op1, ISD::SETLE);
207210 SDValue ICMP_ULT = DAG->getSetCC (DL, MVT::i1, Op0, Op1, ISD::SETULT);
208- SDValue SMaxLike = DAG->getSelect (DL, MVT::i32 , ICMP_GT, Op0, Op1);
209- SDValue UMaxLike = DAG->getSelect (DL, MVT::i32 , ICMP_UGT, Op0, Op1);
210- SDValue SMinLike = DAG->getSelect (DL, MVT::i32 , ICMP_LT, Op0, Op1);
211- SDValue UMinLike = DAG->getSelect (DL, MVT::i32 , ICMP_ULT, Op0, Op1);
211+ SDValue ICMP_ULE = DAG->getSetCC (DL, MVT::i1, Op0, Op1, ISD::SETULE);
212+ SDValue SMaxLikeGT = DAG->getSelect (DL, MVT::i32 , ICMP_GT, Op0, Op1);
213+ SDValue SMaxLikeGE = DAG->getSelect (DL, MVT::i32 , ICMP_GE, Op0, Op1);
214+ SDValue UMaxLikeUGT = DAG->getSelect (DL, MVT::i32 , ICMP_UGT, Op0, Op1);
215+ SDValue UMaxLikeUGE = DAG->getSelect (DL, MVT::i32 , ICMP_UGE, Op0, Op1);
216+ SDValue SMinLikeLT = DAG->getSelect (DL, MVT::i32 , ICMP_LT, Op0, Op1);
217+ SDValue SMinLikeLE = DAG->getSelect (DL, MVT::i32 , ICMP_LE, Op0, Op1);
218+ SDValue UMinLikeULT = DAG->getSelect (DL, MVT::i32 , ICMP_ULT, Op0, Op1);
219+ SDValue UMinLikeULE = DAG->getSelect (DL, MVT::i32 , ICMP_ULE, Op0, Op1);
212220
213221 SDValue SFAdd = DAG->getNode (ISD::STRICT_FADD, DL, {Float32VT, MVT::Other},
214222 {DAG->getEntryNode (), Op2, Op2});
@@ -241,19 +249,23 @@ TEST_F(SelectionDAGPatternMatchTest, matchBinaryOp) {
241249 EXPECT_TRUE (sd_match (SMax, m_c_BinOp (ISD::SMAX, m_Value (), m_Value ())));
242250 EXPECT_TRUE (sd_match (SMax, m_SMax (m_Value (), m_Value ())));
243251 EXPECT_TRUE (sd_match (SMax, m_SMaxLike (m_Value (), m_Value ())));
244- EXPECT_TRUE (sd_match (SMaxLike, m_SMaxLike (m_Value (), m_Value ())));
252+ EXPECT_TRUE (sd_match (SMaxLikeGT, m_SMaxLike (m_Value (), m_Value ())));
253+ EXPECT_TRUE (sd_match (SMaxLikeGE, m_SMaxLike (m_Value (), m_Value ())));
245254 EXPECT_TRUE (sd_match (SMin, m_c_BinOp (ISD::SMIN, m_Value (), m_Value ())));
246255 EXPECT_TRUE (sd_match (SMin, m_SMin (m_Value (), m_Value ())));
247256 EXPECT_TRUE (sd_match (SMin, m_SMinLike (m_Value (), m_Value ())));
248- EXPECT_TRUE (sd_match (SMinLike, m_SMinLike (m_Value (), m_Value ())));
257+ EXPECT_TRUE (sd_match (SMinLikeLT, m_SMinLike (m_Value (), m_Value ())));
258+ EXPECT_TRUE (sd_match (SMinLikeLE, m_SMinLike (m_Value (), m_Value ())));
249259 EXPECT_TRUE (sd_match (UMax, m_c_BinOp (ISD::UMAX, m_Value (), m_Value ())));
250260 EXPECT_TRUE (sd_match (UMax, m_UMax (m_Value (), m_Value ())));
251261 EXPECT_TRUE (sd_match (UMax, m_UMaxLike (m_Value (), m_Value ())));
252- EXPECT_TRUE (sd_match (UMaxLike, m_UMaxLike (m_Value (), m_Value ())));
262+ EXPECT_TRUE (sd_match (UMaxLikeUGT, m_UMaxLike (m_Value (), m_Value ())));
263+ EXPECT_TRUE (sd_match (UMaxLikeUGE, m_UMaxLike (m_Value (), m_Value ())));
253264 EXPECT_TRUE (sd_match (UMin, m_c_BinOp (ISD::UMIN, m_Value (), m_Value ())));
254265 EXPECT_TRUE (sd_match (UMin, m_UMin (m_Value (), m_Value ())));
255266 EXPECT_TRUE (sd_match (UMin, m_UMinLike (m_Value (), m_Value ())));
256- EXPECT_TRUE (sd_match (UMinLike, m_UMinLike (m_Value (), m_Value ())));
267+ EXPECT_TRUE (sd_match (UMinLikeULT, m_UMinLike (m_Value (), m_Value ())));
268+ EXPECT_TRUE (sd_match (UMinLikeULE, m_UMinLike (m_Value (), m_Value ())));
257269
258270 SDValue BindVal;
259271 EXPECT_TRUE (sd_match (SFAdd, m_ChainedBinOp (ISD::STRICT_FADD, m_Value (BindVal),
0 commit comments