mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 11:13:28 +01:00
[SelectionDAG] Fix noop detection for vectors in AssertZext/AssertSext in getNode
The assertion type is always supposed to be a scalar type. So if the result VT of the assertion is a vector, we need to get the scalar VT before we can compare them. Similarly for the assert above it. I don't have a test case because I don't know of any place we violate this today. A coworker found this while trying to use r347287 on the 6.0 branch without also having r336868 llvm-svn: 349390
This commit is contained in:
parent
f2def9239d
commit
722c971488
@ -4842,8 +4842,8 @@ SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, EVT VT,
|
|||||||
assert(!EVT.isVector() &&
|
assert(!EVT.isVector() &&
|
||||||
"AssertSExt/AssertZExt type should be the vector element type "
|
"AssertSExt/AssertZExt type should be the vector element type "
|
||||||
"rather than the vector type!");
|
"rather than the vector type!");
|
||||||
assert(EVT.bitsLE(VT) && "Not extending!");
|
assert(EVT.bitsLE(VT.getScalarType()) && "Not extending!");
|
||||||
if (VT == EVT) return N1; // noop assertion.
|
if (VT.getScalarType() == EVT) return N1; // noop assertion.
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ISD::SIGN_EXTEND_INREG: {
|
case ISD::SIGN_EXTEND_INREG: {
|
||||||
|
Loading…
Reference in New Issue
Block a user