OSDN Git Service

Fix thinko: we must turn select(anyext, sext) into sext(select)
authorDuncan Sands <baldrick@free.fr>
Thu, 18 Nov 2010 21:16:28 +0000 (21:16 +0000)
committerDuncan Sands <baldrick@free.fr>
Thu, 18 Nov 2010 21:16:28 +0000 (21:16 +0000)
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

lib/CodeGen/SelectionDAG/DAGCombiner.cpp

index 53b4493..d705704 100644 (file)
@@ -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.