mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-09 13:33:17 +00:00
Don't create SEXTLOAD/ZEXTLOAD instructions that the target doesn't support
if after legalize. This fixes IA64 failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24725 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
502c5bb428
commit
d0f6d18aa8
@ -1550,7 +1550,8 @@ SDOperand DAGCombiner::visitSIGN_EXTEND(SDNode *N) {
|
||||
return DAG.getNode(ISD::SIGN_EXTEND_INREG, VT, N0.getOperand(0),
|
||||
DAG.getValueType(N0.getValueType()));
|
||||
// fold (sext (load x)) -> (sext (truncate (sextload x)))
|
||||
if (N0.getOpcode() == ISD::LOAD && N0.hasOneUse()) {
|
||||
if (N0.getOpcode() == ISD::LOAD && N0.hasOneUse() &&
|
||||
(!AfterLegalize||TLI.isOperationLegal(ISD::SEXTLOAD, N0.getValueType()))){
|
||||
SDOperand ExtLoad = DAG.getExtLoad(ISD::SEXTLOAD, VT, N0.getOperand(0),
|
||||
N0.getOperand(1), N0.getOperand(2),
|
||||
N0.getValueType());
|
||||
@ -1592,7 +1593,8 @@ SDOperand DAGCombiner::visitZERO_EXTEND(SDNode *N) {
|
||||
(!AfterLegalize || TLI.isOperationLegal(ISD::AND, N0.getValueType())))
|
||||
return DAG.getZeroExtendInReg(N0.getOperand(0), N0.getValueType());
|
||||
// fold (zext (load x)) -> (zext (truncate (zextload x)))
|
||||
if (N0.getOpcode() == ISD::LOAD && N0.hasOneUse()) {
|
||||
if (N0.getOpcode() == ISD::LOAD && N0.hasOneUse() &&
|
||||
(!AfterLegalize||TLI.isOperationLegal(ISD::ZEXTLOAD, N0.getValueType()))){
|
||||
SDOperand ExtLoad = DAG.getExtLoad(ISD::ZEXTLOAD, VT, N0.getOperand(0),
|
||||
N0.getOperand(1), N0.getOperand(2),
|
||||
N0.getValueType());
|
||||
|
Loading…
x
Reference in New Issue
Block a user