diff options
author | Michael Zolotukhin <mzolotukhin@apple.com> | 2015-06-19 17:40:15 +0000 |
---|---|---|
committer | Michael Zolotukhin <mzolotukhin@apple.com> | 2015-06-19 17:40:15 +0000 |
commit | 4d8ffa082c19eeb6c07ec3f82b06604d66c18949 (patch) | |
tree | 98c1940f82bcf5841ea66d4ed3716a900c343ee4 /llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp | |
parent | 5eb5eb59fc8ba5be0e9642ec90da88d79865fda2 (diff) | |
download | bcm5719-llvm-4d8ffa082c19eeb6c07ec3f82b06604d66c18949.tar.gz bcm5719-llvm-4d8ffa082c19eeb6c07ec3f82b06604d66c18949.zip |
[SLP] Vectorize for all-constant entries.
Differential Revision: http://reviews.llvm.org/D10531
llvm-svn: 240144
Diffstat (limited to 'llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp')
-rw-r--r-- | llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp index 149936b11b3..370e2956ac4 100644 --- a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp +++ b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp @@ -1637,8 +1637,10 @@ bool BoUpSLP::isFullyVectorizableTinyTree() { if (VectorizableTree.size() != 2) return false; - // Handle splat stores. - if (!VectorizableTree[0].NeedToGather && isSplat(VectorizableTree[1].Scalars)) + // Handle splat and all-constants stores. + if (!VectorizableTree[0].NeedToGather && + (allConstant(VectorizableTree[1].Scalars) || + isSplat(VectorizableTree[1].Scalars))) return true; // Gathering cost would be too much for tiny trees. |