@@ -32,35 +32,27 @@ AArch64SelectionDAGInfo::AArch64SelectionDAGInfo()
3232
3333void AArch64SelectionDAGInfo::verifyTargetNode (const SelectionDAG &DAG,
3434 const SDNode *N) const {
35+ switch (N->getOpcode ()) {
36+ case AArch64ISD::WrapperLarge:
37+ // operand #0 must have type i32, but has type i64
38+ return ;
39+ case AArch64ISD::LDNP:
40+ // result #0 must have type v4i32, but has type v2f64
41+ return ;
42+ case AArch64ISD::STNP:
43+ // operand #1 must have type v4i32, but has type v2i64
44+ return ;
45+ }
46+
3547 SelectionDAGGenTargetInfo::verifyTargetNode (DAG, N);
3648
3749#ifndef NDEBUG
3850 // Some additional checks not yet implemented by verifyTargetNode.
39- constexpr MVT FlagsVT = MVT::i32 ;
4051 switch (N->getOpcode ()) {
41- case AArch64ISD::SUBS:
42- assert (N->getValueType (1 ) == FlagsVT);
43- break ;
44- case AArch64ISD::ADC:
45- case AArch64ISD::SBC:
46- assert (N->getOperand (2 ).getValueType () == FlagsVT);
47- break ;
48- case AArch64ISD::ADCS:
49- case AArch64ISD::SBCS:
50- assert (N->getValueType (1 ) == FlagsVT);
51- assert (N->getOperand (2 ).getValueType () == FlagsVT);
52- break ;
53- case AArch64ISD::CSEL:
54- case AArch64ISD::CSINC:
55- case AArch64ISD::BRCOND:
56- assert (N->getOperand (3 ).getValueType () == FlagsVT);
57- break ;
5852 case AArch64ISD::SADDWT:
5953 case AArch64ISD::SADDWB:
6054 case AArch64ISD::UADDWT:
6155 case AArch64ISD::UADDWB: {
62- assert (N->getNumValues () == 1 && " Expected one result!" );
63- assert (N->getNumOperands () == 2 && " Expected two operands!" );
6456 EVT VT = N->getValueType (0 );
6557 EVT Op0VT = N->getOperand (0 ).getValueType ();
6658 EVT Op1VT = N->getOperand (1 ).getValueType ();
@@ -80,8 +72,6 @@ void AArch64SelectionDAGInfo::verifyTargetNode(const SelectionDAG &DAG,
8072 case AArch64ISD::SUNPKHI:
8173 case AArch64ISD::UUNPKLO:
8274 case AArch64ISD::UUNPKHI: {
83- assert (N->getNumValues () == 1 && " Expected one result!" );
84- assert (N->getNumOperands () == 1 && " Expected one operand!" );
8575 EVT VT = N->getValueType (0 );
8676 EVT OpVT = N->getOperand (0 ).getValueType ();
8777 assert (OpVT.isVector () && VT.isVector () && OpVT.isInteger () &&
@@ -98,8 +88,6 @@ void AArch64SelectionDAGInfo::verifyTargetNode(const SelectionDAG &DAG,
9888 case AArch64ISD::UZP2:
9989 case AArch64ISD::ZIP1:
10090 case AArch64ISD::ZIP2: {
101- assert (N->getNumValues () == 1 && " Expected one result!" );
102- assert (N->getNumOperands () == 2 && " Expected two operands!" );
10391 EVT VT = N->getValueType (0 );
10492 EVT Op0VT = N->getOperand (0 ).getValueType ();
10593 EVT Op1VT = N->getOperand (1 ).getValueType ();
@@ -109,11 +97,8 @@ void AArch64SelectionDAGInfo::verifyTargetNode(const SelectionDAG &DAG,
10997 break ;
11098 }
11199 case AArch64ISD::RSHRNB_I: {
112- assert (N->getNumValues () == 1 && " Expected one result!" );
113- assert (N->getNumOperands () == 2 && " Expected two operands!" );
114100 EVT VT = N->getValueType (0 );
115101 EVT Op0VT = N->getOperand (0 ).getValueType ();
116- EVT Op1VT = N->getOperand (1 ).getValueType ();
117102 assert (VT.isVector () && VT.isInteger () &&
118103 " Expected integer vector result type!" );
119104 assert (Op0VT.isVector () && Op0VT.isInteger () &&
@@ -122,8 +107,8 @@ void AArch64SelectionDAGInfo::verifyTargetNode(const SelectionDAG &DAG,
122107 " Expected vectors of equal size!" );
123108 assert (VT.getVectorElementCount () == Op0VT.getVectorElementCount () * 2 &&
124109 " Expected input vector with half the lanes of its result!" );
125- assert (Op1VT == MVT:: i32 && isa<ConstantSDNode>(N->getOperand (1 )) &&
126- " Expected second operand to be a constant i32 !" );
110+ assert (isa<ConstantSDNode>(N->getOperand (1 )) &&
111+ " Expected second operand to be a constant!" );
127112 break ;
128113 }
129114 }
0 commit comments