aboutsummaryrefslogtreecommitdiff
path: root/contrib/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2016-01-16 17:57:54 +0000
committerDimitry Andric <dim@FreeBSD.org>2016-01-16 17:57:54 +0000
commit5673a0f9182b84022657990fbb01ca6cf91cf94f (patch)
tree4dda31822cfd7a15653eb970741984eb54e02b62 /contrib/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
parent42d8074a701c411b0446ad3eaf0af17a66a8d654 (diff)
Notes
Diffstat (limited to 'contrib/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp')
-rw-r--r--contrib/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/contrib/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp b/contrib/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
index 27d3337f1351..f69a4e52c7e1 100644
--- a/contrib/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+++ b/contrib/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
@@ -1691,8 +1691,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.