Bug fix: should check ABI alignment, not pref. alignment.
authorEvan Cheng <evan.cheng@apple.com>
Wed, 16 May 2007 02:04:50 +0000 (02:04 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Wed, 16 May 2007 02:04:50 +0000 (02:04 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37094 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SelectionDAG/DAGCombiner.cpp

index da0f8cffa95a44785e9b7878d0f6c087c4402569..2ea38e209020ecb51b6bc28e4b48e1f8192a5245 100644 (file)
@@ -2685,7 +2685,7 @@ SDOperand DAGCombiner::visitBIT_CONVERT(SDNode *N) {
       TLI.isOperationLegal(ISD::LOAD, VT)) {
     LoadSDNode *LN0 = cast<LoadSDNode>(N0);
     unsigned Align = TLI.getTargetMachine().getTargetData()->
-      getPrefTypeAlignment(getTypeForValueType(VT));
+      getABITypeAlignment(getTypeForValueType(VT));
     unsigned OrigAlign = LN0->getAlignment();
     if (Align <= OrigAlign) {
       SDOperand Load = DAG.getLoad(VT, LN0->getChain(), LN0->getBasePtr(),
@@ -3564,7 +3564,7 @@ SDOperand DAGCombiner::visitSTORE(SDNode *N) {
     unsigned Align = ST->getAlignment();
     MVT::ValueType SVT = Value.getOperand(0).getValueType();
     unsigned OrigAlign = TLI.getTargetMachine().getTargetData()->
-      getPrefTypeAlignment(getTypeForValueType(SVT));
+      getABITypeAlignment(getTypeForValueType(SVT));
     if (Align <= OrigAlign && TLI.isOperationLegal(ISD::STORE, SVT))
       return DAG.getStore(Chain, Value.getOperand(0), Ptr, ST->getSrcValue(),
                           ST->getSrcValueOffset());