[PATCH] D13886: Loop Vectorizer - skiping "bitcast" allows to vectorize more loops

Elena Demikhovsky via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 20 03:52:05 PDT 2015


delena created this revision.
delena added reviewers: anemet, mzolotukhin, TylerNowicki.
delena added a subscriber: llvm-commits.
delena set the repository for this revision to rL LLVM.

Vectorization of memory instruction (Load/Store) is possible when the pointer is coming from GEP.  The GEP analysis allows to estimate the profit.
In some cases we have a "bitcast" between GEP and memory instruction.
I added code that skips the "bitcast".

I replaced vectorization-remarks-profitable.ll test. As a result of the optimization, the remarks about non-beneficial vectorization disappeared and loop became vectorizable. I put another loops, that generate the same remarks as the previous.

Repository:
  rL LLVM

http://reviews.llvm.org/D13886

Files:
  ../lib/Transforms/Vectorize/LoopVectorize.cpp
  ../test/Transforms/LoopVectorize/X86/vectorization-remarks-profitable.ll
  ../test/Transforms/LoopVectorize/gep_with_bitcast.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D13886.37840.patch
Type: text/x-patch
Size: 15084 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151020/e311fa73/attachment.bin>


More information about the llvm-commits mailing list