[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