[AArch64] Turn UZP1 with undef operand into truncate
authorDavid Green <david.green@arm.com>
Fri, 4 Mar 2022 11:12:26 +0000 (11:12 +0000)
committerDavid Green <david.green@arm.com>
Fri, 4 Mar 2022 11:12:26 +0000 (11:12 +0000)
commite348b09bb5b1c21f6af17e3390807947a049f37e
treebc121c6866c2ded2b812239b318ae12b4429f5b1
parent6b5b36785826e79c67328220c4f10ad2ca4a9e46
[AArch64] Turn UZP1 with undef operand into truncate

This turns upz1(x, undef) to concat(truncate(x), undef), as the truncate
is simpler and can often be optimized away, and it helps some of the
insert-subvector tests optimize more cleanly.

Differential Revision: https://reviews.llvm.org/D120879
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
llvm/test/CodeGen/AArch64/insert-subvector.ll
llvm/test/CodeGen/AArch64/neon-perm.ll