Skip to content

Commit bb531ff

Browse files
authored
[DAG] getNode - assert that INSERT_VECTOR_ELT operand types are legal (#143502)
Helped track down a typo in the X86ISD::CVTPH2PS lowering.
1 parent 6f23116 commit bb531ff

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7896,7 +7896,18 @@ SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, EVT VT,
78967896
break;
78977897
}
78987898
case ISD::INSERT_VECTOR_ELT: {
7899-
ConstantSDNode *N3C = dyn_cast<ConstantSDNode>(N3);
7899+
assert(VT.isVector() && VT == N1.getValueType() &&
7900+
"INSERT_VECTOR_ELT vector type mismatch");
7901+
assert(VT.isFloatingPoint() == N2.getValueType().isFloatingPoint() &&
7902+
"INSERT_VECTOR_ELT scalar fp/int mismatch");
7903+
assert((!VT.isFloatingPoint() ||
7904+
VT.getVectorElementType() == N2.getValueType()) &&
7905+
"INSERT_VECTOR_ELT fp scalar type mismatch");
7906+
assert((!VT.isInteger() ||
7907+
VT.getScalarSizeInBits() <= N2.getScalarValueSizeInBits()) &&
7908+
"INSERT_VECTOR_ELT int scalar size mismatch");
7909+
7910+
auto *N3C = dyn_cast<ConstantSDNode>(N3);
79007911
// INSERT_VECTOR_ELT into out-of-bounds element is an UNDEF, except
79017912
// for scalable vectors where we will generate appropriate code to
79027913
// deal with out-of-bounds cases correctly.

llvm/lib/Target/X86/X86ISelLowering.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22247,7 +22247,7 @@ SDValue X86TargetLowering::LowerFP_EXTEND(SDValue Op, SelectionDAG &DAG) const {
2224722247
} else {
2224822248
In = DAG.getNode(ISD::ANY_EXTEND, DL, MVT::i32, In);
2224922249
In = DAG.getNode(ISD::INSERT_VECTOR_ELT, DL, MVT::v4i32,
22250-
DAG.getUNDEF(MVT::v4f32), In,
22250+
DAG.getUNDEF(MVT::v4i32), In,
2225122251
DAG.getVectorIdxConstant(0, DL));
2225222252
In = DAG.getBitcast(MVT::v8i16, In);
2225322253
Res = DAG.getNode(X86ISD::CVTPH2PS, DL, MVT::v4f32, In,

0 commit comments

Comments
 (0)