diff options
author | Tom Stellard <thomas.stellard@amd.com> | 2013-08-26 15:06:04 +0000 |
---|---|---|
committer | Tom Stellard <thomas.stellard@amd.com> | 2013-08-26 15:06:04 +0000 |
commit | d08a9303614355cfdcac5f2c27c09ce809565423 (patch) | |
tree | 4e2da5d0223dc6249c4f7105cb69864fb4162388 /lib/Target/R600/R600ISelLowering.cpp | |
parent | a01cdea9c660dc8b295782a4ab560d0039ff7571 (diff) | |
download | llvm-d08a9303614355cfdcac5f2c27c09ce809565423.tar.gz llvm-d08a9303614355cfdcac5f2c27c09ce809565423.tar.bz2 llvm-d08a9303614355cfdcac5f2c27c09ce809565423.tar.xz |
R600: Add support for vector local memory loads
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189226 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/R600/R600ISelLowering.cpp')
-rw-r--r-- | lib/Target/R600/R600ISelLowering.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/Target/R600/R600ISelLowering.cpp b/lib/Target/R600/R600ISelLowering.cpp index 9bc8e8a818..f0242b86c0 100644 --- a/lib/Target/R600/R600ISelLowering.cpp +++ b/lib/Target/R600/R600ISelLowering.cpp @@ -1155,6 +1155,14 @@ SDValue R600TargetLowering::LowerLOAD(SDValue Op, SelectionDAG &DAG) const SDValue Ptr = Op.getOperand(1); SDValue LoweredLoad; + if (LoadNode->getAddressSpace() == AMDGPUAS::LOCAL_ADDRESS && VT.isVector()) { + SDValue MergedValues[2] = { + SplitVectorLoad(Op, DAG), + Chain + }; + return DAG.getMergeValues(MergedValues, 2, DL); + } + int ConstantBlock = ConstantAddressBlock(LoadNode->getAddressSpace()); if (ConstantBlock > -1) { SDValue Result; |