This code was usurping the sextload expand in teh legalizer. Just make

sure the right conditions are checked.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32611 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Jim Laskey 2006-12-15 21:38:30 +00:00
parent a52035a062
commit f6c4ccfaab

View File

@ -1943,13 +1943,15 @@ SDOperand DAGCombiner::visitSIGN_EXTEND(SDNode *N) {
if ((ISD::isSEXTLoad(N0.Val) || ISD::isEXTLoad(N0.Val)) && N0.hasOneUse()) { if ((ISD::isSEXTLoad(N0.Val) || ISD::isEXTLoad(N0.Val)) && N0.hasOneUse()) {
LoadSDNode *LN0 = cast<LoadSDNode>(N0); LoadSDNode *LN0 = cast<LoadSDNode>(N0);
MVT::ValueType EVT = LN0->getLoadedVT(); MVT::ValueType EVT = LN0->getLoadedVT();
SDOperand ExtLoad = DAG.getExtLoad(ISD::SEXTLOAD, VT, LN0->getChain(), if (!AfterLegalize || TLI.isLoadXLegal(ISD::SEXTLOAD, EVT)) {
LN0->getBasePtr(), LN0->getSrcValue(), SDOperand ExtLoad = DAG.getExtLoad(ISD::SEXTLOAD, VT, LN0->getChain(),
LN0->getSrcValueOffset(), EVT); LN0->getBasePtr(), LN0->getSrcValue(),
CombineTo(N, ExtLoad); LN0->getSrcValueOffset(), EVT);
CombineTo(N0.Val, DAG.getNode(ISD::TRUNCATE, N0.getValueType(), ExtLoad), CombineTo(N, ExtLoad);
ExtLoad.getValue(1)); CombineTo(N0.Val, DAG.getNode(ISD::TRUNCATE, N0.getValueType(), ExtLoad),
return SDOperand(N, 0); // Return N so it doesn't get rechecked! ExtLoad.getValue(1));
return SDOperand(N, 0); // Return N so it doesn't get rechecked!
}
} }
return SDOperand(); return SDOperand();