[SLP]Vectorize unique scalars of splat gather nodes as separate subtrees
A splat gather (the same instruction in every lane) is emitted as an
expensive insertion sequence. When the unique scalars of several splat
gathers form a vectorizable bundle, build them as a separate subtree and
emit the splat gathers as broadcasts of the vectorized value.
Original Pull Request: https://github.com/llvm/llvm-project/pull/218250
Recommit after revert in b80664df122426d703fd8eb0ad7e8e9c2c19bbf3 with
fixed compiler crashes
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/220250