]> granicus.if.org Git - llvm/commit
[GlobalISel][AArch64] Add generic legalization rule for extends
authorJessica Paquette <jpaquette@apple.com>
Thu, 25 Apr 2019 18:42:00 +0000 (18:42 +0000)
committerJessica Paquette <jpaquette@apple.com>
Thu, 25 Apr 2019 18:42:00 +0000 (18:42 +0000)
commit194fea7ca5ce84550b5b7bef9db624f66271d74e
tree1e5d11ab93129c56153b6d24fe376e56ba2031f6
parent2d0f20640c8d648cbb766c46b8fa170502c625c9
[GlobalISel][AArch64] Add generic legalization rule for extends

This adds a legalization rule for G_ZEXT, G_ANYEXT, and G_SEXT which allows
extends whenever the types will fit in registers (or the source is an s1).

Update tests. Add GISel checks throughout all of arm64-vabs.ll,
where we now select a good portion of the code. Add GISel checks to
arm64-subvector-extend.ll, which has a good number of vector extends in it.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@359222 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/AArch64/AArch64LegalizerInfo.cpp
test/CodeGen/AArch64/GlobalISel/legalize-ext.mir
test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir
test/CodeGen/AArch64/GlobalISel/select-int-ext.mir
test/CodeGen/AArch64/arm64-subvector-extend.ll
test/CodeGen/AArch64/arm64-vabs.ll