mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-15 04:30:12 +00:00
Truncate of undef is just undef of smaller size.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148205 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
d07ef50ca1
commit
799ea5ccc0
@ -2571,17 +2571,18 @@ SDValue SelectionDAG::getNode(unsigned Opcode, DebugLoc DL,
|
|||||||
"Vector element count mismatch!");
|
"Vector element count mismatch!");
|
||||||
if (OpOpcode == ISD::TRUNCATE)
|
if (OpOpcode == ISD::TRUNCATE)
|
||||||
return getNode(ISD::TRUNCATE, DL, VT, Operand.getNode()->getOperand(0));
|
return getNode(ISD::TRUNCATE, DL, VT, Operand.getNode()->getOperand(0));
|
||||||
else if (OpOpcode == ISD::ZERO_EXTEND || OpOpcode == ISD::SIGN_EXTEND ||
|
if (OpOpcode == ISD::ZERO_EXTEND || OpOpcode == ISD::SIGN_EXTEND ||
|
||||||
OpOpcode == ISD::ANY_EXTEND) {
|
OpOpcode == ISD::ANY_EXTEND) {
|
||||||
// If the source is smaller than the dest, we still need an extend.
|
// If the source is smaller than the dest, we still need an extend.
|
||||||
if (Operand.getNode()->getOperand(0).getValueType().getScalarType()
|
if (Operand.getNode()->getOperand(0).getValueType().getScalarType()
|
||||||
.bitsLT(VT.getScalarType()))
|
.bitsLT(VT.getScalarType()))
|
||||||
return getNode(OpOpcode, DL, VT, Operand.getNode()->getOperand(0));
|
return getNode(OpOpcode, DL, VT, Operand.getNode()->getOperand(0));
|
||||||
else if (Operand.getNode()->getOperand(0).getValueType().bitsGT(VT))
|
if (Operand.getNode()->getOperand(0).getValueType().bitsGT(VT))
|
||||||
return getNode(ISD::TRUNCATE, DL, VT, Operand.getNode()->getOperand(0));
|
return getNode(ISD::TRUNCATE, DL, VT, Operand.getNode()->getOperand(0));
|
||||||
else
|
return Operand.getNode()->getOperand(0);
|
||||||
return Operand.getNode()->getOperand(0);
|
|
||||||
}
|
}
|
||||||
|
if (OpOpcode == ISD::UNDEF)
|
||||||
|
return getUNDEF(VT);
|
||||||
break;
|
break;
|
||||||
case ISD::BITCAST:
|
case ISD::BITCAST:
|
||||||
// Basic sanity checking.
|
// Basic sanity checking.
|
||||||
|
Loading…
Reference in New Issue
Block a user