summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp
diff options
context:
space:
mode:
authorAmara Emerson <aemerson@apple.com>2019-04-11 20:40:01 +0000
committerAmara Emerson <aemerson@apple.com>2019-04-11 20:40:01 +0000
commit7e9355f870aea017153581fa09671b31a21b6d73 (patch)
tree484c81b9563c35f98cece28c8c71dfe59803973a /llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp
parentb956051415a6f5cdd60f2dfaea3f0ead6406fd74 (diff)
downloadbcm5719-llvm-7e9355f870aea017153581fa09671b31a21b6d73.tar.gz
bcm5719-llvm-7e9355f870aea017153581fa09671b31a21b6d73.zip
[AArch64][GlobalISel] Flesh out vector load/store support for more types.
Some of these were legalizing into smaller vector types unnecessarily, others were simply not supported yet. llvm-svn: 358223
Diffstat (limited to 'llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp')
-rw-r--r--llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp b/llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp
index eedcdd7f2dc..3a42ef11ab5 100644
--- a/llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp
+++ b/llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp
@@ -224,7 +224,11 @@ AArch64LegalizerInfo::AArch64LegalizerInfo(const AArch64Subtarget &ST) {
{s32, p0, 32, 8},
{s64, p0, 64, 8},
{p0, p0, 64, 8},
+ {v16s8, p0, 128, 8},
+ {v4s16, p0, 64, 8},
+ {v8s16, p0, 128, 8},
{v2s32, p0, 64, 8},
+ {v4s32, p0, 128, 8},
{v2s64, p0, 128, 8}})
// These extends are also legal
.legalForTypesWithMemDesc({{s32, p0, 8, 8},
@@ -248,7 +252,11 @@ AArch64LegalizerInfo::AArch64LegalizerInfo(const AArch64Subtarget &ST) {
{s32, p0, 32, 8},
{s64, p0, 64, 8},
{p0, p0, 64, 8},
+ {v16s8, p0, 128, 8},
+ {v4s16, p0, 64, 8},
+ {v8s16, p0, 128, 8},
{v2s32, p0, 64, 8},
+ {v4s32, p0, 128, 8},
{v2s64, p0, 128, 8}})
.clampScalar(0, s8, s64)
.widenScalarToNextPow2(0)
OpenPOWER on IntegriCloud