summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Vectorize
diff options
context:
space:
mode:
authorMichael Zolotukhin <mzolotukhin@apple.com>2015-06-19 17:40:15 +0000
committerMichael Zolotukhin <mzolotukhin@apple.com>2015-06-19 17:40:15 +0000
commit4d8ffa082c19eeb6c07ec3f82b06604d66c18949 (patch)
tree98c1940f82bcf5841ea66d4ed3716a900c343ee4 /llvm/lib/Transforms/Vectorize
parent5eb5eb59fc8ba5be0e9642ec90da88d79865fda2 (diff)
downloadbcm5719-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')
-rw-r--r--llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp6
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.
OpenPOWER on IntegriCloud