mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-16 11:24:39 +00:00
ARM: Don't assume an SDNode is a constant.
Before accessing a node as a ConstandSDNode, make sure it actually is one. No testcase of non-trivial size. rdar://11948669 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160735 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -4271,6 +4271,10 @@ SDValue ARMTargetLowering::ReconstructShuffle(SDValue Op,
|
|||||||
|
|
||||||
// Record this extraction against the appropriate vector if possible...
|
// Record this extraction against the appropriate vector if possible...
|
||||||
SDValue SourceVec = V.getOperand(0);
|
SDValue SourceVec = V.getOperand(0);
|
||||||
|
// If the element number isn't a constant, we can't effectively
|
||||||
|
// analyze what's going on.
|
||||||
|
if (!isa<ConstantSDNode>(V.getOperand(1)))
|
||||||
|
return SDValue();
|
||||||
unsigned EltNo = cast<ConstantSDNode>(V.getOperand(1))->getZExtValue();
|
unsigned EltNo = cast<ConstantSDNode>(V.getOperand(1))->getZExtValue();
|
||||||
bool FoundSource = false;
|
bool FoundSource = false;
|
||||||
for (unsigned j = 0; j < SourceVecs.size(); ++j) {
|
for (unsigned j = 0; j < SourceVecs.size(); ++j) {
|
||||||
|
Reference in New Issue
Block a user