@@ -302,7 +302,12 @@ TEST_F(SelectionDAGPatternMatchTest, matchUnaryOp) {
302
302
SDValue FPToSI = DAG->getNode (ISD::FP_TO_SINT, DL, FloatVT, Op2);
303
303
SDValue FPToUI = DAG->getNode (ISD::FP_TO_UINT, DL, FloatVT, Op2);
304
304
305
+ SDValue Brev = DAG->getNode (ISD::BITREVERSE, DL, Int32VT, Op0);
306
+ SDValue Bswap = DAG->getNode (ISD::BSWAP, DL, Int32VT, Op0);
307
+
308
+ SDValue Ctpop = DAG->getNode (ISD::CTPOP, DL, Int32VT, Op0);
305
309
SDValue Ctlz = DAG->getNode (ISD::CTLZ, DL, Int32VT, Op0);
310
+ SDValue Cttz = DAG->getNode (ISD::CTTZ, DL, Int32VT, Op0);
306
311
307
312
using namespace SDPatternMatch ;
308
313
EXPECT_TRUE (sd_match (ZExt, m_UnaryOp (ISD::ZERO_EXTEND, m_Value ())));
@@ -328,7 +333,17 @@ TEST_F(SelectionDAGPatternMatchTest, matchUnaryOp) {
328
333
EXPECT_FALSE (sd_match (FPToUI, m_FPToSI (m_Value ())));
329
334
EXPECT_FALSE (sd_match (FPToSI, m_FPToUI (m_Value ())));
330
335
336
+ EXPECT_TRUE (sd_match (Brev, m_BitReverse (m_Value ())));
337
+ EXPECT_TRUE (sd_match (Bswap, m_BSwap (m_Value ())));
338
+ EXPECT_FALSE (sd_match (Brev, m_BSwap (m_Value ())));
339
+ EXPECT_FALSE (sd_match (Bswap, m_BitReverse (m_Value ())));
340
+
341
+ EXPECT_TRUE (sd_match (Ctpop, m_Ctpop (m_Value ())));
331
342
EXPECT_TRUE (sd_match (Ctlz, m_Ctlz (m_Value ())));
343
+ EXPECT_TRUE (sd_match (Cttz, m_Cttz (m_Value ())));
344
+ EXPECT_FALSE (sd_match (Ctpop, m_Ctlz (m_Value ())));
345
+ EXPECT_FALSE (sd_match (Ctlz, m_Cttz (m_Value ())));
346
+ EXPECT_FALSE (sd_match (Cttz, m_Ctlz (m_Value ())));
332
347
}
333
348
334
349
TEST_F (SelectionDAGPatternMatchTest, matchConstants) {
0 commit comments