[SLP]Improve reordering of clustered reused scalars.
authorAlexey Bataev <a.bataev@outlook.com>
Thu, 8 Sep 2022 14:41:24 +0000 (07:41 -0700)
committerAlexey Bataev <a.bataev@outlook.com>
Mon, 12 Sep 2022 13:52:25 +0000 (06:52 -0700)
commitdfe1e9dd79a7be30c777a50ab268341e48408e64
treed965c8e36111ef9cdcf6ef7e4c3ffd7052b582b6
parentaecd4791980c0b6f92cf38ae810ebfa09c9371d6
[SLP]Improve reordering of clustered reused scalars.

If the reused scalars are clustered, i.e. each part of the reused mask
contains all elements of the original scalars exactly once, we can
reorder those clusters to improve the whole ordering of of the clustered
vectors.

Differential Revision: https://reviews.llvm.org/D133524
llvm/include/llvm/IR/Instructions.h
llvm/lib/IR/Instructions.cpp
llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
llvm/test/Transforms/SLPVectorizer/X86/insert-shuffle.ll
llvm/test/Transforms/SLPVectorizer/X86/reduction-logical.ll