Implement PromoteOp for *EXTLOAD, allowing MallocBench/gs to Legalize
authorChris Lattner <sabre@nondot.org>
Thu, 13 Oct 2005 20:07:41 +0000 (20:07 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 13 Oct 2005 20:07:41 +0000 (20:07 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23715 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SelectionDAG/LegalizeDAG.cpp

index 8ea3eb78847de4cf2842e498d5665a915843682f..3fcf45afe384d51043420de4c814b96b1dd05e98 100644 (file)
@@ -2350,6 +2350,16 @@ SDOperand SelectionDAGLegalize::PromoteOp(SDOperand Op) {
     // Remember that we legalized the chain.
     AddLegalizedOperand(Op.getValue(1), Result.getValue(1));
     break;
+  case ISD::SEXTLOAD:
+  case ISD::ZEXTLOAD:
+  case ISD::EXTLOAD:
+    Tmp1 = LegalizeOp(Node->getOperand(0));   // Legalize the chain.
+    Tmp2 = LegalizeOp(Node->getOperand(1));   // Legalize the pointer.
+    Result = DAG.getNode(Node->getOpcode(), NVT, Tmp1, Tmp2,
+                         Node->getOperand(2), Node->getOperand(3));
+    // Remember that we legalized the chain.
+    AddLegalizedOperand(Op.getValue(1), Result.getValue(1));
+    break;
   case ISD::SELECT:
     switch (getTypeAction(Node->getOperand(0).getValueType())) {
     case Expand: assert(0 && "It's impossible to expand bools");