aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Utils/LoopUtils.cpp
diff options
context:
space:
mode:
authorDavid Green <david.green@arm.com>2022-07-05 17:16:18 +0100
committerDavid Green <david.green@arm.com>2022-07-05 17:16:18 +0100
commit5493f8fc59ca9cc6fc14da8e6aafe6a52fb9ebc0 (patch)
treece3ce5fb135daf6569dd3de96481a8dd6617ac23 /llvm/lib/Transforms/Utils/LoopUtils.cpp
parente70ea18e2fdedbc4e0fe3610861e003857763a4c (diff)
downloadllvm-5493f8fc59ca9cc6fc14da8e6aafe6a52fb9ebc0.zip
llvm-5493f8fc59ca9cc6fc14da8e6aafe6a52fb9ebc0.tar.gz
llvm-5493f8fc59ca9cc6fc14da8e6aafe6a52fb9ebc0.tar.bz2
[VectorCombine] Improve shuffle select shuffle-of-shuffles
This in an extension to the code added in D123911 which added vector combine folding of shuffle-select patterns, attempting to reduce the total amount of shuffling required in patterns like: %x = shuffle %i1, %i2 %y = shuffle %i1, %i2 %a = binop %x, %y %b = binop %x, %y shuffle %a, %b, selectmask This patch extends the handing of shuffles that are dependent on one another, which can arise from the SLP vectorizer, as-in: %x = shuffle %i1, %i2 %y = shuffle %x The input shuffles can also be emitted, in which case they are treated like identity shuffles. This patch also attempts to calculate a better ordering of input shuffles, which can help getting lower cost input shuffles, pushing complex shuffles further down the tree. This is a recommit with some additional checks for supported forms and out-of-bounds mask elements, with some extra tests. Differential Revision: https://reviews.llvm.org/D128732
Diffstat (limited to 'llvm/lib/Transforms/Utils/LoopUtils.cpp')
0 files changed, 0 insertions, 0 deletions