diff options
author | Craig Topper <craig.topper@gmail.com> | 2012-04-09 05:16:56 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@gmail.com> | 2012-04-09 05:16:56 +0000 |
commit | ae1bec52f7a0e8b719e74f3575ec238094ff7599 (patch) | |
tree | 2e483763bb2cacec7c73118523c47376a3c227ac | |
parent | ab5a55e11870c8f5aaa8e4b973092bf66f9d6742 (diff) | |
download | llvm-ae1bec52f7a0e8b719e74f3575ec238094ff7599.tar.gz llvm-ae1bec52f7a0e8b719e74f3575ec238094ff7599.tar.bz2 llvm-ae1bec52f7a0e8b719e74f3575ec238094ff7599.tar.xz |
Replace some explicit checks with asserts for conditions that should never happen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154305 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/CodeGen/SelectionDAG/DAGCombiner.cpp | 21 |
1 files changed, 7 insertions, 14 deletions
diff --git a/lib/CodeGen/SelectionDAG/DAGCombiner.cpp b/lib/CodeGen/SelectionDAG/DAGCombiner.cpp index a8822953ca..036f0392a0 100644 --- a/lib/CodeGen/SelectionDAG/DAGCombiner.cpp +++ b/lib/CodeGen/SelectionDAG/DAGCombiner.cpp @@ -7698,8 +7698,7 @@ SDValue DAGCombiner::visitVECTOR_SHUFFLE(SDNode *N) { SDValue N0 = N->getOperand(0); SDValue N1 = N->getOperand(1); - assert(N0.getValueType().getVectorNumElements() == NumElts && - "Vector shuffle must be normalized in DAG"); + assert(N0.getValueType() == VT && "Vector shuffle must be normalized in DAG"); // Canonicalize shuffle undef, undef -> undef if (N0.getOpcode() == ISD::UNDEF && N1.getOpcode() == ISD::UNDEF) @@ -7804,27 +7803,21 @@ SDValue DAGCombiner::visitVECTOR_SHUFFLE(SDNode *N) { if (N0.getOperand(1).getOpcode() != ISD::UNDEF) return SDValue(); - // The incoming shuffle must be of the same type as the result of the current - // shuffle. - if (OtherSV->getOperand(0).getValueType() != VT) - return SDValue(); - - EVT InVT = N0.getValueType(); - int InNumElts = InVT.getVectorNumElements(); + // The incoming shuffle must be of the same type as the result of the + // current shuffle. + assert(OtherSV->getOperand(0).getValueType() == VT && + "Shuffle types don't match"); for (unsigned i = 0; i != NumElts; ++i) { int Idx = SVN->getMaskElt(i); - // If we access the second (undef) operand then this index can be - // canonicalized to undef as well. - if (Idx >= InNumElts) - Idx = -1; + assert(Idx < (int)NumElts && "Index references undef operand"); // Next, this index comes from the first value, which is the incoming // shuffle. Adopt the incoming index. if (Idx >= 0) Idx = OtherSV->getMaskElt(Idx); // The combined shuffle must map each index to itself. - if ((unsigned)Idx != i && Idx != -1) + if (Idx >= 0 && (unsigned)Idx != i) return SDValue(); } |