[SLP] Add detection of shuffled/perfect matching of tree entries.
authorAlexey Bataev <a.bataev@outlook.com>
Tue, 20 Apr 2021 15:30:09 +0000 (08:30 -0700)
committerAlexey Bataev <a.bataev@outlook.com>
Tue, 20 Apr 2021 16:08:46 +0000 (09:08 -0700)
commitaf870e11aed7a5c475ae41a72e3015c4c88597d1
tree0862bd0efb7cd62054fdd3561640fd03c5bdb2d0
parent3b1474cab26b27c4d71a2c21cb45a62eefdacb6a
[SLP] Add detection of shuffled/perfect matching of tree entries.

SLP supports perfect diamond matching for the vectorized tree entries
but do not support it for gathered entries and does not support
non-perfect (shuffled) matching with 1 or 2 tree entries. Patch adds
support for this matching to improve cost of the vectorized tree.

Reviewed By: RKSimon

Differential Revision: https://reviews.llvm.org/D100495
llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
llvm/test/Transforms/SLPVectorizer/AArch64/gather-cost.ll
llvm/test/Transforms/SLPVectorizer/X86/matched-shuffled-entries.ll