Revert rG66e7dce714fab "Revert "[X86][SSE] Shuffle combine blends to OR(X,Y) if the...
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 4 Aug 2020 09:32:27 +0000 (10:32 +0100)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 4 Aug 2020 09:32:39 +0000 (10:32 +0100)
commit47cea9e82dda941e49a2d9cc11f0414436336d46
treef301ff92166a87263ee5dffc42661d5a1dac1e76
parentf7658241cb27491b4160a1f7060ef883bc535d09
Revert rG66e7dce714fab "Revert "[X86][SSE] Shuffle combine blends to OR(X,Y) if the relevant elements are known zero.""

[X86][SSE] Shuffle combine blends to OR(X,Y) if the relevant elements are known zero (REAPPLIED)

This allows us to remove the (depth violating) code in getFauxShuffleMask where we were combining the OR(SHUFFLE,SHUFFLE) shuffle inputs as well, and not just the OR().

This is a minor step toward being able to shuffle combine from/to SELECT/BLENDV as a faux shuffle.

Reapplied with fixed signed/unsigned comparisons.
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/test/CodeGen/X86/insertelement-ones.ll
llvm/test/CodeGen/X86/shuffle-vs-trunc-256.ll
llvm/test/CodeGen/X86/vector-shuffle-128-v8.ll
llvm/test/CodeGen/X86/vector-shuffle-256-v32.ll