If the value types are equal then this routine
authorDuncan Sands <baldrick@free.fr>
Fri, 19 Oct 2007 13:05:40 +0000 (13:05 +0000)
committerDuncan Sands <baldrick@free.fr>
Fri, 19 Oct 2007 13:05:40 +0000 (13:05 +0000)
asserts in later checks rather than producing
the ordinary load it is supposed to.  Avoid all
such hassles by directly returning an ordinary
load in this case.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43174 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SelectionDAG/SelectionDAG.cpp

index 09e8b579a0fd3438ec21ead607b44f1f5e35799a..5b7f1b6e3b8b511ac48898410761b64b4f7a7ecf 100644 (file)
@@ -2340,7 +2340,7 @@ SDOperand SelectionDAG::getExtLoad(ISD::LoadExtType ExtType, MVT::ValueType VT,
   // If they are asking for an extending load from/to the same thing, return a
   // normal load.
   if (VT == EVT)
-    ExtType = ISD::NON_EXTLOAD;
+    return getLoad(VT, Chain, Ptr, SV, SVOffset, isVolatile, Alignment);
 
   if (MVT::isVector(VT))
     assert(EVT == MVT::getVectorElementType(VT) && "Invalid vector extload!");