summaryrefslogtreecommitdiffstats
path: root/contrib/llvm/lib
diff options
context:
space:
mode:
authordim <dim@FreeBSD.org>2016-01-16 17:57:54 +0000
committerdim <dim@FreeBSD.org>2016-01-16 17:57:54 +0000
commit7c048a3e43696cd763f00aa2b8d7a2bb1e71e1be (patch)
tree4dda31822cfd7a15653eb970741984eb54e02b62 /contrib/llvm/lib
parentea882055d841a75b702413edaf10f3801ba86bde (diff)
downloadFreeBSD-src-7c048a3e43696cd763f00aa2b8d7a2bb1e71e1be.zip
FreeBSD-src-7c048a3e43696cd763f00aa2b8d7a2bb1e71e1be.tar.gz
Undo r289072, which reverted upstream llvm trunk r240144. This is going
to be fixed for real by importing upstream llvm trunk r257902.
Diffstat (limited to 'contrib/llvm/lib')
-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 27d3337..f69a4e5 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.
OpenPOWER on IntegriCloud