aboutsummaryrefslogtreecommitdiffstats
path: root/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
diff options
context:
space:
mode:
authorDuncan Sands <baldrick@free.fr>2010-11-18 21:16:28 +0000
committerDuncan Sands <baldrick@free.fr>2010-11-18 21:16:28 +0000
commitb9064bb96458ab48a878e1a7e678cada2e22ab7a (patch)
treee971c7050f045ae623ce65d3921a777644410d45 /lib/CodeGen/SelectionDAG/DAGCombiner.cpp
parentd5448bb6e845bd6c2dcb98156f49a73842759ab0 (diff)
downloadexternal_llvm-b9064bb96458ab48a878e1a7e678cada2e22ab7a.zip
external_llvm-b9064bb96458ab48a878e1a7e678cada2e22ab7a.tar.gz
external_llvm-b9064bb96458ab48a878e1a7e678cada2e22ab7a.tar.bz2
Fix thinko: we must turn select(anyext, sext) into sext(select)
not anyext(select). Spotted by Frits van Bommel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119739 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/SelectionDAG/DAGCombiner.cpp')
-rw-r--r--lib/CodeGen/SelectionDAG/DAGCombiner.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/CodeGen/SelectionDAG/DAGCombiner.cpp b/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
index 53b4493..d705704 100644
--- a/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+++ b/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
@@ -6712,7 +6712,8 @@ bool DAGCombiner::SimplifySelectOps(SDNode *TheSelect, SDValue LHS,
LLD->isVolatile(), LLD->isNonTemporal(),
LLD->getAlignment());
} else {
- Load = DAG.getExtLoad(LLD->getExtensionType(),
+ Load = DAG.getExtLoad(LLD->getExtensionType() == ISD::EXTLOAD ?
+ RLD->getExtensionType() : LLD->getExtensionType(),
TheSelect->getValueType(0),
TheSelect->getDebugLoc(),
// FIXME: Discards pointer info.