OSDN Git Service

Revert r319531 "[SLPVectorizer] Failure to beneficially vectorize 'copyable' elements...
authorHans Wennborg <hans@hanshq.net>
Fri, 1 Dec 2017 16:17:24 +0000 (16:17 +0000)
committerHans Wennborg <hans@hanshq.net>
Fri, 1 Dec 2017 16:17:24 +0000 (16:17 +0000)
commitfaed772a259443843840b58d0853cef509ff0972
tree5b36dc67976914041926860cb4a49648c6e9953e
parent4d8809ff53b09b1afda6b13675612ff5326319ce
Revert r319531 "[SLPVectorizer] Failure to beneficially vectorize 'copyable' elements in integer binary ops."

It causes builds to fail with "Instruction does not dominate all uses" (PR35497).

> 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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@319550 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Vectorize/SLPVectorizer.cpp
test/Transforms/SLPVectorizer/SystemZ/pr34619.ll [deleted file]
test/Transforms/SLPVectorizer/X86/load-dominate.ll [deleted file]
test/Transforms/SLPVectorizer/X86/vect_copyable_in_binops.ll