]> granicus.if.org Git - llvm/commit
[X86][SSE] Don't merge known undef/zero elements into target shuffle masks.
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Sun, 6 Oct 2019 19:06:45 +0000 (19:06 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Sun, 6 Oct 2019 19:06:45 +0000 (19:06 +0000)
commit31544ffef4ede4700b2469fd15319ff6c2eeff14
tree70c9d3eace2195f8bff4fb659b3d108462a61add
parent9b2a6eb0bb3e0ddc9bbc8d034bd60b617a7f1932
[X86][SSE] Don't merge known undef/zero elements into target shuffle masks.

Replaces setTargetShuffleZeroElements with getTargetShuffleAndZeroables which reports the Zeroable elements but doesn't merge them into the decoded target shuffle mask (the merging has been moved up into getTargetShuffleInputs until we can get rid of it entirely).

This is part of the work to fix PR43024 and allow us to use SimplifyDemandedElts to simplify shuffle chains - we need to get to a point where the target shuffle mask isn't adjusted by its source inputs but instead we cache them in a parallel Zeroable mask.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@373867 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp