From: Chris Lattner Date: Tue, 4 Apr 2006 17:39:18 +0000 (+0000) Subject: Do not create ZEXTLOAD's unless we are before legalize or the operation is X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=e44be60ee91b65df8dcf13cca15563ab80b236c4;p=oota-llvm.git Do not create ZEXTLOAD's unless we are before legalize or the operation is legal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27402 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/SelectionDAG/DAGCombiner.cpp b/lib/CodeGen/SelectionDAG/DAGCombiner.cpp index c982e5be8fc..a5925ad69c6 100644 --- a/lib/CodeGen/SelectionDAG/DAGCombiner.cpp +++ b/lib/CodeGen/SelectionDAG/DAGCombiner.cpp @@ -1193,7 +1193,8 @@ SDOperand DAGCombiner::visitAND(SDNode *N) { LoadedVT = N0.getOpcode() == ISD::LOAD ? VT : cast(N0.getOperand(3))->getVT(); - if (EVT != MVT::Other && LoadedVT > EVT) { + if (EVT != MVT::Other && LoadedVT > EVT && + (!AfterLegalize || TLI.isOperationLegal(ISD::ZEXTLOAD, EVT))) { MVT::ValueType PtrType = N0.getOperand(1).getValueType(); // For big endian targets, we need to add an offset to the pointer to load // the correct bytes. For little endian systems, we merely need to read