diff options
author | dim <dim@FreeBSD.org> | 2016-01-16 17:57:54 +0000 |
---|---|---|
committer | dim <dim@FreeBSD.org> | 2016-01-16 17:57:54 +0000 |
commit | 7c048a3e43696cd763f00aa2b8d7a2bb1e71e1be (patch) | |
tree | 4dda31822cfd7a15653eb970741984eb54e02b62 /contrib/llvm/lib | |
parent | ea882055d841a75b702413edaf10f3801ba86bde (diff) | |
download | FreeBSD-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.cpp | 6 |
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. |