[PATCH] D17121: AMDGPU: Fix mishandling alignment when scalarizing vector loads/stores
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Wed Feb 10 18:59:52 PST 2016
arsenm created this revision.
arsenm added a reviewer: tstellarAMD.
arsenm added a subscriber: llvm-commits.
Herald added a subscriber: arsenm.
I don't think this was causing any real problems, so I'm not sure
how to test for this.
http://reviews.llvm.org/D17121
Files:
lib/Target/AMDGPU/AMDGPUISelLowering.cpp
Index: lib/Target/AMDGPU/AMDGPUISelLowering.cpp
===================================================================
--- lib/Target/AMDGPU/AMDGPUISelLowering.cpp
+++ lib/Target/AMDGPU/AMDGPUISelLowering.cpp
@@ -1061,7 +1061,9 @@
SmallVector<SDValue, 8> Chains;
SDLoc SL(Op);
+ unsigned BaseAlign = Load->getAlignment();
unsigned MemEltSize = MemEltVT.getStoreSize();
+
MachinePointerInfo SrcValue(Load->getMemOperand()->getValue());
for (unsigned i = 0; i < NumElts; ++i) {
@@ -1073,7 +1075,7 @@
Load->getChain(), Ptr,
SrcValue.getWithOffset(i * MemEltSize),
MemEltVT, Load->isVolatile(), Load->isNonTemporal(),
- Load->isInvariant(), Load->getAlignment());
+ Load->isInvariant(), MinAlign(BaseAlign, i * MemEltSize));
Loads.push_back(NewLoad.getValue(0));
Chains.push_back(NewLoad.getValue(1));
}
@@ -1212,6 +1214,7 @@
SmallVector<SDValue, 8> Chains;
+ unsigned BaseAlign = Store->getAlignment();
unsigned EltSize = MemEltVT.getStoreSize();
MachinePointerInfo SrcValue(Store->getMemOperand()->getValue());
@@ -1226,7 +1229,7 @@
DAG.getTruncStore(Store->getChain(), SL, Val, Ptr,
SrcValue.getWithOffset(i * EltSize),
MemEltVT, Store->isNonTemporal(), Store->isVolatile(),
- Store->getAlignment());
+ MinAlign(BaseAlign, i * EltSize));
Chains.push_back(NewStore);
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D17121.47576.patch
Type: text/x-patch
Size: 1542 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160211/f336fc11/attachment.bin>
More information about the llvm-commits
mailing list