aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineVerifier.cpp
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@intel.com>2019-01-21 20:02:28 +0000
committerCraig Topper <craig.topper@intel.com>2019-01-21 20:02:28 +0000
commitc2087d8f3fa40a765f53043c08d93cc0cd7be341 (patch)
tree95e5d7ea78622d29b07c0c198f857fe53c8aea42 /llvm/lib/CodeGen/MachineVerifier.cpp
parenta79ff5f5f77a1e476ef26f8ba4ec11e8679b94f5 (diff)
downloadllvm-c2087d8f3fa40a765f53043c08d93cc0cd7be341.zip
llvm-c2087d8f3fa40a765f53043c08d93cc0cd7be341.tar.gz
llvm-c2087d8f3fa40a765f53043c08d93cc0cd7be341.tar.bz2
[X86] Change avx512 COMPRESS and EXPAND lowering to use a single masked node instead of expand/compress+select.
Summary: For compress, a select node doesn't semantically reflect the behavior of the instruction. The mask would have holes in it, but the resulting write is to contiguous elements at the bottom of the vector. Furthermore, as far as the compressing and expanding is concerned the behavior is depended on the mask. You can't just have an expand/compress node that only reads the input vector. That node would have no meaning by itself. This all only works because we pattern match the compress/expand+select back to the instruction. But conceivably an optimization of the select could break the pattern and leave something meaningless. This patch modifies the expand and compress node to take the mask and passthru as additional inputs and gets rid of the select all together. Reviewers: RKSimon, spatel Reviewed By: RKSimon Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D57002 llvm-svn: 351761
Diffstat (limited to 'llvm/lib/CodeGen/MachineVerifier.cpp')
0 files changed, 0 insertions, 0 deletions