diff options
author | Mon P Wang <wangmp@apple.com> | 2008-07-15 05:28:34 +0000 |
---|---|---|
committer | Mon P Wang <wangmp@apple.com> | 2008-07-15 05:28:34 +0000 |
commit | 2920d2b7b601d9dfcec783cb91316f35b6811be1 (patch) | |
tree | b203cedc56be7f743d8b628dfb88e1909700b5d5 | |
parent | 8ae38e15161696cae57aa1ec725ec4391d1e4c77 (diff) |
Fixed potential bug if the source and target of a bit convert have different alignment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53590 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/CodeGen/SelectionDAG/LegalizeDAG.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp index 632653b624..4b9236db46 100644 --- a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp +++ b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp @@ -7015,7 +7015,9 @@ void SelectionDAGLegalize::SplitVectorOp(SDOperand Op, SDOperand &Lo, // The input is a scalar or single-element vector. // Lower to a store/load so that it can be split. // FIXME: this could be improved probably. - SDOperand Ptr = DAG.CreateStackTemporary(InOp.getValueType()); + unsigned LdAlign = TLI.getTargetData()->getPrefTypeAlignment( + Op.getValueType().getTypeForMVT()); + SDOperand Ptr = DAG.CreateStackTemporary(InOp.getValueType(), LdAlign); int FI = cast<FrameIndexSDNode>(Ptr.Val)->getIndex(); SDOperand St = DAG.getStore(DAG.getEntryNode(), |