@@ -238,9 +238,11 @@ TEST_F(SelectionDAGPatternMatchTest, matchUnaryOp) {
238
238
SDLoc DL;
239
239
auto Int32VT = EVT::getIntegerVT (Context, 32 );
240
240
auto Int64VT = EVT::getIntegerVT (Context, 64 );
241
+ auto FloatVT = EVT::getFloatingPointVT (32 );
241
242
242
243
SDValue Op0 = DAG->getCopyFromReg (DAG->getEntryNode (), DL, 1 , Int32VT);
243
244
SDValue Op1 = DAG->getCopyFromReg (DAG->getEntryNode (), DL, 1 , Int64VT);
245
+ SDValue Op2 = DAG->getCopyFromReg (DAG->getEntryNode (), DL, 1 , FloatVT);
244
246
245
247
SDValue ZExt = DAG->getNode (ISD::ZERO_EXTEND, DL, Int64VT, Op0);
246
248
SDValue SExt = DAG->getNode (ISD::SIGN_EXTEND, DL, Int64VT, Op0);
@@ -252,6 +254,9 @@ TEST_F(SelectionDAGPatternMatchTest, matchUnaryOp) {
252
254
253
255
SDValue VScale = DAG->getVScale (DL, Int32VT, APInt::getMaxValue (32 ));
254
256
257
+ SDValue FPToSI = DAG->getNode (ISD::FP_TO_SINT, DL, FloatVT, Op2);
258
+ SDValue FPToUI = DAG->getNode (ISD::FP_TO_UINT, DL, FloatVT, Op2);
259
+
255
260
using namespace SDPatternMatch ;
256
261
EXPECT_TRUE (sd_match (ZExt, m_UnaryOp (ISD::ZERO_EXTEND, m_Value ())));
257
262
EXPECT_TRUE (sd_match (SExt, m_SExt (m_Value ())));
@@ -263,6 +268,11 @@ TEST_F(SelectionDAGPatternMatchTest, matchUnaryOp) {
263
268
EXPECT_FALSE (sd_match (Sub, m_Neg (m_Value ())));
264
269
EXPECT_FALSE (sd_match (Neg, m_Not (m_Value ())));
265
270
EXPECT_TRUE (sd_match (VScale, m_VScale (m_Value ())));
271
+
272
+ EXPECT_TRUE (sd_match (FPToUI, m_FPToUI (m_Value ())));
273
+ EXPECT_TRUE (sd_match (FPToSI, m_FPToSI (m_Value ())));
274
+ EXPECT_FALSE (sd_match (FPToUI, m_FPToSI (m_Value ())));
275
+ EXPECT_FALSE (sd_match (FPToSI, m_FPToUI (m_Value ())));
266
276
}
267
277
268
278
TEST_F (SelectionDAGPatternMatchTest, matchConstants) {
0 commit comments