[PATCH] D27919: [Loop Vectorizer] Interleave vs Gather - in some cases Gather is better.

Elena Demikhovsky via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 18 02:40:22 PST 2017


delena updated this revision to Diff 84811.
delena added a comment.

I'm revisiting the set of Scalars and Uniforms after cost modeling. Taking into account that the cost model uses Uniforms and the Uniforms are changed after the cost modeling, I still think that there is no circular dependency here. 
(1) I remove uniform GEP (and the corresponding induction) when we decide to scalarize memory instruction.
(2) I do not remove GEP from scalars if it will not be used in Gather/Scatter.

I added a test that Matthew sent me.


Repository:
  rL LLVM

https://reviews.llvm.org/D27919

Files:
  ../lib/Transforms/Vectorize/LoopVectorize.cpp
  ../test/Analysis/CostModel/X86/interleave-load-i32.ll
  ../test/Analysis/CostModel/X86/interleave-store-i32.ll
  ../test/Transforms/LoopVectorize/AArch64/interleaved-vs-scalar.ll
  ../test/Transforms/LoopVectorize/X86/consecutive-ptr-uniforms.ll
  ../test/Transforms/LoopVectorize/X86/gather-vs-interleave.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D27919.84811.patch
Type: text/x-patch
Size: 31433 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170118/45f2bd53/attachment.bin>


More information about the llvm-commits mailing list