SelectionDAG: Use correct pointer size when splitting vector stores

llvm-svn: 189224
This commit is contained in:
Tom Stellard 2013-08-26 15:05:55 +00:00
parent f3d166aa1e
commit 7da047c9fb
2 changed files with 16 additions and 1 deletions

View File

@ -1270,7 +1270,7 @@ SDValue DAGTypeLegalizer::SplitVecOp_STORE(StoreSDNode *N, unsigned OpNo) {
// Increment the pointer to the other half.
Ptr = DAG.getNode(ISD::ADD, DL, Ptr.getValueType(), Ptr,
DAG.getIntPtrConstant(IncrementSize));
DAG.getConstant(IncrementSize, Ptr.getValueType()));
if (isTruncating)
Hi = DAG.getTruncStore(Ch, DL, Hi, Ptr,

View File

@ -202,6 +202,21 @@ entry:
ret void
}
; EG-CHECK: @store_local_v4i8
; EG-CHECK: LDS_WRITE
; CM-CHECK: @store_local_v4i8
; CM-CHECK: LDS_WRITE
; SI-CHECK: @store_local_v4i8
; SI-CHECK: DS_WRITE_B8
; SI-CHECK: DS_WRITE_B8
; SI-CHECK: DS_WRITE_B8
; SI-CHECK: DS_WRITE_B8
define void @store_local_v4i8(<4 x i8> addrspace(3)* %out, <4 x i8> %in) {
entry:
store <4 x i8> %in, <4 x i8> addrspace(3)* %out
ret void
}
; EG-CHECK: @store_local_v2i32
; EG-CHECK: LDS_WRITE
; EG-CHECK: LDS_WRITE