diff options
author | Anna Thomas <anna@azul.com> | 2018-10-16 15:46:26 +0000 |
---|---|---|
committer | Anna Thomas <anna@azul.com> | 2018-10-16 15:46:26 +0000 |
commit | 6f732bfb7900be621bf43002105ec05da62e679a (patch) | |
tree | b2e4f5250099752d2d474107db6b431e9bda0603 /llvm/lib/Transforms/Vectorize/LoopVectorize.cpp | |
parent | bb3dd34e62d2b53402a84d9d8b2a3c865fdf43fd (diff) | |
download | bcm5719-llvm-6f732bfb7900be621bf43002105ec05da62e679a.tar.gz bcm5719-llvm-6f732bfb7900be621bf43002105ec05da62e679a.zip |
[LV] Teach vectorizer about variant value store into uniform address
Summary:
Teach vectorizer about vectorizing variant value stores to uniform
address. Similar to rL343028, we do not allow vectorization if we have
multiple stores to the same uniform address.
Cost model already has the change for considering the extract
instruction cost for a variant value store. See added test cases for how
vectorization is done.
The patch also contains changes to the ORE messages.
Reviewers: Ayal, mkuper, anemet, hsaito
Subscribers: rkruppe, llvm-commits
Differential Revision: https://reviews.llvm.org/D52656
llvm-svn: 344613
Diffstat (limited to 'llvm/lib/Transforms/Vectorize/LoopVectorize.cpp')
-rw-r--r-- | llvm/lib/Transforms/Vectorize/LoopVectorize.cpp | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp index 2ba2f00b4a5..5a11c5a54ae 100644 --- a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp +++ b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp @@ -1189,7 +1189,6 @@ private: /// Load: scalar load + broadcast. /// Store: scalar store + (loop invariant value stored? 0 : extract of last /// element) - /// TODO: Test the extra cost of the extract when loop variant value stored. unsigned getUniformMemOpCost(Instruction *I, unsigned VF); /// Returns whether the instruction is a load or store and will be a emitted |