[AArch64] TBL uses zero for out of range elements.
authorDavid Green <david.green@arm.com>
Thu, 10 Mar 2022 14:45:13 +0000 (14:45 +0000)
committerDavid Green <david.green@arm.com>
Thu, 10 Mar 2022 14:45:13 +0000 (14:45 +0000)
commit21a97a2ac11b81240c08753277dc1a234c6a7816
tree1a436234e3c4ca9d1d6b15badb9e439990c1f259
parent0f031daea8fc01ce44766f07b0f4c626ef28f8f5
[AArch64] TBL uses zero for out of range elements.

A TBL instruction will use zero for any out of range values. We can use
this in GenerateTBL to help turn a TBL2 into a TBL1, avoiding the need
to materialise the zero.

Differential Revision: https://reviews.llvm.org/D121139
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
llvm/test/CodeGen/AArch64/neon-bitwise-instructions.ll
llvm/test/CodeGen/AArch64/vselect-ext.ll