[PATCH] D29616: LoadStoreVectorizer: Split even sized illegal chains properly

Matt Arsenault via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 6 18:20:47 PST 2017


arsenm created this revision.
Herald added a reviewer: tstellarAMD.
Herald added subscribers: tpr, mehdi_amini, nhaehnle, wdng, mzolotukhin.

Implement isLegalToVectorizeLoadChain for AMDGPU to avoid
producing private address spaces accesses that will need to be
split up later. This was doing the wrong thing in the case
where the queried chain was an even number of elements.

      

A possible <4 x i32> store was being split into
store <2 x i32>
store i32
store i32

      

rather than
store <2 x i32>
store <2 x i32>

      

when legal.


https://reviews.llvm.org/D29616

Files:
  lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
  lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
  lib/Transforms/Vectorize/LoadStoreVectorizer.cpp
  test/Transforms/LoadStoreVectorizer/AMDGPU/adjust-alloca-alignment.ll
  test/Transforms/LoadStoreVectorizer/AMDGPU/merge-stores-private.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D29616.87353.patch
Type: text/x-patch
Size: 12204 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170207/1e7729d6/attachment-0001.bin>


More information about the llvm-commits mailing list