aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineSink.cpp
diff options
context:
space:
mode:
authorDavid Green <david.green@arm.com>2023-09-29 08:26:32 +0100
committerDavid Green <david.green@arm.com>2023-09-29 08:26:32 +0100
commit7cc83c5a18b5312c56fd01fe0dce6a9bcd0f856f (patch)
treefeb4641d75677d50926d9670d16ae450b750f938 /llvm/lib/CodeGen/MachineSink.cpp
parent7fc25ae12c4573877415630098a9eae8c8c8b673 (diff)
downloadllvm-7cc83c5a18b5312c56fd01fe0dce6a9bcd0f856f.zip
llvm-7cc83c5a18b5312c56fd01fe0dce6a9bcd0f856f.tar.gz
llvm-7cc83c5a18b5312c56fd01fe0dce6a9bcd0f856f.tar.bz2
[AArch64] Don't expand RSHRN intrinsics to add+srl+trunc.
We expand aarch64_neon_rshrn intrinsics to trunc(srl(add)), having tablegen patterns to combine the results back into rshrn. See D140297. Unfortunately, but perhaps not surprisingly, other combines can happen that prevent us converting back. For example sext(rshrn) becomes sext(trunc(srl(add))) which will turn into sext_inreg(srl(add))). This patch just prevents the expansion of rshrn intrinsics, reinstating the old tablegen patterns for selecting them. This should allow us to still regognize the rshrn instructions from trunc+shift+add, without performing any negative optimizations for the intrinsics. Closes #67451
Diffstat (limited to 'llvm/lib/CodeGen/MachineSink.cpp')
0 files changed, 0 insertions, 0 deletions