[GlobalISel][AArch64] Legalize/select G_(S/Z/ANY)_EXT for v8s8s
authorJessica Paquette <jpaquette@apple.com>
Thu, 18 Apr 2019 21:15:48 +0000 (21:15 +0000)
committerJessica Paquette <jpaquette@apple.com>
Thu, 18 Apr 2019 21:15:48 +0000 (21:15 +0000)
commit0aa9b453c40ec4707ebb9b7a7e2bd21919d5e470
treefe9eebb4231324f6993f451245e7d819032003e8
parent3b5119c68455fe30ab1f2e32b12b4e15ce3ef122
[GlobalISel][AArch64] Legalize/select G_(S/Z/ANY)_EXT for v8s8s

This adds legalization for G_SEXT, G_ZEXT, and G_ANYEXT for v8s8s.

We were falling back on G_ZEXT in arm64-vabs.ll before, preventing us from
selecting the @llvm.aarch64.neon.sabd.v8i8 intrinsic.

This adds legalizer support for those 3, which gives us selection via the
importer. Update the relevant tests (legalize-ext.mir, select-int-ext.mir) and
add a GISel line to arm64-vabs.ll.

Differential Revision: https://reviews.llvm.org/D60881

llvm-svn: 358715
llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp
llvm/test/CodeGen/AArch64/GlobalISel/legalize-ext.mir
llvm/test/CodeGen/AArch64/GlobalISel/select-int-ext.mir
llvm/test/CodeGen/AArch64/arm64-vabs.ll