[X86][SSE] Replace foldShuffleOfHorizOp with generalized version in canonicalizeShuff...
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 11 May 2021 11:26:14 +0000 (12:26 +0100)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 11 May 2021 13:18:45 +0000 (14:18 +0100)
commit9acc03ad92c66b856f67bf11ff4460c7da45f413
tree5c4dab2124fe94fd315c42c5e9a5e0e61b7f4762
parentbce3cca4889a9e4ab7b9652b0c44bb49ca8f3bad
[X86][SSE] Replace foldShuffleOfHorizOp with generalized version in canonicalizeShuffleMaskWithHorizOp

foldShuffleOfHorizOp only handled basic shufps(hop(x,y),hop(z,w)) folds - by moving this to canonicalizeShuffleMaskWithHorizOp we can work with more general/combined v4x32 shuffles masks, float/integer domains and support shuffle-of-packs as well.

The next step will be to support 256/512-bit vector cases.
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/test/CodeGen/X86/horizontal-shuffle.ll
llvm/test/CodeGen/X86/horizontal-sum.ll