[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)
commit8184b6e7f610f4bba1adbb040ab1a21664499cc9
treed1310f65826c6ae2e15e08d1ede8091824019732
parent8879bba67981f2e7238369b53c555e8d261938e3
[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

llvm-svn: 359222
llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp
llvm/test/CodeGen/AArch64/GlobalISel/legalize-ext.mir
llvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir
llvm/test/CodeGen/AArch64/GlobalISel/select-int-ext.mir
llvm/test/CodeGen/AArch64/arm64-subvector-extend.ll
llvm/test/CodeGen/AArch64/arm64-vabs.ll