diff options
| author | Jessica Paquette <jpaquette@apple.com> | 2019-04-18 21:15:48 +0000 |
|---|---|---|
| committer | Jessica Paquette <jpaquette@apple.com> | 2019-04-18 21:15:48 +0000 |
| commit | 0aa9b453c40ec4707ebb9b7a7e2bd21919d5e470 (patch) | |
| tree | fe9eebb4231324f6993f451245e7d819032003e8 /llvm/lib | |
| parent | 3b5119c68455fe30ab1f2e32b12b4e15ce3ef122 (diff) | |
| download | bcm5719-llvm-0aa9b453c40ec4707ebb9b7a7e2bd21919d5e470.tar.gz bcm5719-llvm-0aa9b453c40ec4707ebb9b7a7e2bd21919d5e470.zip | |
[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
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp b/llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp index 19fd1d1650b..4fb09bb8666 100644 --- a/llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp +++ b/llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp @@ -316,7 +316,8 @@ AArch64LegalizerInfo::AArch64LegalizerInfo(const AArch64Subtarget &ST) { // Extensions getActionDefinitionsBuilder({G_ZEXT, G_SEXT, G_ANYEXT}) - .legalForCartesianProduct({s8, s16, s32, s64}, {s1, s8, s16, s32}); + .legalForCartesianProduct({s8, s16, s32, s64}, {s1, s8, s16, s32}) + .legalFor({v8s16, v8s8}); getActionDefinitionsBuilder(G_TRUNC).alwaysLegal(); |

