mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-15 07:59:50 +00:00
Fix PR 7191. I have been unable to create a .ll file that fails, sorry.
(oye, a word which should be better known to people writing tree traversals, means grandchild.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104619 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
7e2f5aaa67
commit
61734eb117
@ -3431,8 +3431,12 @@ SDValue DAGCombiner::visitSIGN_EXTEND(SDNode *N) {
|
||||
// fold (sext (truncate (srl (load x), c))) -> (sext (smaller load (x+c/n)))
|
||||
SDValue NarrowLoad = ReduceLoadWidth(N0.getNode());
|
||||
if (NarrowLoad.getNode()) {
|
||||
if (NarrowLoad.getNode() != N0.getNode())
|
||||
SDNode* oye = N0.getNode()->getOperand(0).getNode();
|
||||
if (NarrowLoad.getNode() != N0.getNode()) {
|
||||
CombineTo(N0.getNode(), NarrowLoad);
|
||||
// CombineTo deleted the truncate, if needed, but not what's under it.
|
||||
AddToWorkList(oye);
|
||||
}
|
||||
return SDValue(N, 0); // Return N so it doesn't get rechecked!
|
||||
}
|
||||
|
||||
@ -3619,8 +3623,12 @@ SDValue DAGCombiner::visitZERO_EXTEND(SDNode *N) {
|
||||
if (N0.getOpcode() == ISD::TRUNCATE) {
|
||||
SDValue NarrowLoad = ReduceLoadWidth(N0.getNode());
|
||||
if (NarrowLoad.getNode()) {
|
||||
if (NarrowLoad.getNode() != N0.getNode())
|
||||
SDNode* oye = N0.getNode()->getOperand(0).getNode();
|
||||
if (NarrowLoad.getNode() != N0.getNode()) {
|
||||
CombineTo(N0.getNode(), NarrowLoad);
|
||||
// CombineTo deleted the truncate, if needed, but not what's under it.
|
||||
AddToWorkList(oye);
|
||||
}
|
||||
return DAG.getNode(ISD::ZERO_EXTEND, N->getDebugLoc(), VT, NarrowLoad);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user