"README.md" did not exist on "598f3945c0ce46b1d2690cb1b0a24df90d2fc0b1"
[SLPVectorizer] Failure to beneficially vectorize 'copyable' elements in integer binary ops.
Patch tries to improve vectorization of the following code: void add1(int * __restrict dst, const int * __restrict src) { *dst++ = *src++; *dst++ = *src++ + 1; *dst++ = *src++ + 2; *dst++ = *src++ + 3; } Allows to vectorize even if the very first operation is not a binary add, but just a load. Fixed issues related to previous commit. Reviewers: spatel, mzolotukhin, mkuper, hfinkel, RKSimon, filcab, ABataev Reviewed By: ABataev, RKSimon Subscribers: llvm-commits, RKSimon Differential Revision: https://reviews.llvm.org/D28907 llvm-svn: 319531
Showing
- llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp 343 additions, 143 deletionsllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
- llvm/test/Transforms/SLPVectorizer/SystemZ/pr34619.ll 52 additions, 0 deletionsllvm/test/Transforms/SLPVectorizer/SystemZ/pr34619.ll
- llvm/test/Transforms/SLPVectorizer/X86/load-dominate.ll 27 additions, 0 deletionsllvm/test/Transforms/SLPVectorizer/X86/load-dominate.ll
- llvm/test/Transforms/SLPVectorizer/X86/vect_copyable_in_binops.ll 68 additions, 132 deletions...t/Transforms/SLPVectorizer/X86/vect_copyable_in_binops.ll
Loading
Please register or sign in to comment