@@ -137,6 +137,11 @@ TEST_F(SelectionDAGPatternMatchTest, matchTernaryOp) {
137
137
SDValue F = DAG->getCopyFromReg (DAG->getEntryNode (), DL, 5 , Int1VT);
138
138
SDValue Select = DAG->getSelect (DL, MVT::i1, Cond, T, F);
139
139
140
+ auto VInt32VT = EVT::getVectorVT (Context, Int32VT, 4 );
141
+ SDValue V1 = DAG->getCopyFromReg (DAG->getEntryNode (), DL, 6 , VInt32VT);
142
+ SDValue V2 = DAG->getCopyFromReg (DAG->getEntryNode (), DL, 7 , VInt32VT);
143
+ SDValue VSelect = DAG->getNode (ISD::VSELECT, DL, VInt32VT, Cond, V1, V2);
144
+
140
145
using namespace SDPatternMatch ;
141
146
ISD::CondCode CC;
142
147
EXPECT_TRUE (sd_match (ICMP_UGT, m_SetCC (m_Value (), m_Value (),
@@ -166,6 +171,10 @@ TEST_F(SelectionDAGPatternMatchTest, matchTernaryOp) {
166
171
Select, m_Select (m_Specific (Cond), m_Specific (F), m_Specific (T))));
167
172
EXPECT_FALSE (sd_match (ICMP_EQ01, m_Select (m_Specific (Op0), m_Specific (Op1),
168
173
m_SpecificCondCode (ISD::SETEQ))));
174
+ EXPECT_TRUE (sd_match (
175
+ VSelect, m_VSelect (m_Specific (Cond), m_Specific (V1), m_Specific (V2))));
176
+ EXPECT_FALSE (sd_match (
177
+ Select, m_VSelect (m_Specific (Cond), m_Specific (V1), m_Specific (V2))));
169
178
}
170
179
171
180
TEST_F (SelectionDAGPatternMatchTest, matchBinaryOp) {
0 commit comments