diff options
| author | Amara Emerson <aemerson@apple.com> | 2019-04-11 20:40:01 +0000 |
|---|---|---|
| committer | Amara Emerson <aemerson@apple.com> | 2019-04-11 20:40:01 +0000 |
| commit | 7e9355f870aea017153581fa09671b31a21b6d73 (patch) | |
| tree | 484c81b9563c35f98cece28c8c71dfe59803973a /llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp | |
| parent | b956051415a6f5cdd60f2dfaea3f0ead6406fd74 (diff) | |
| download | bcm5719-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.cpp | 8 |
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) |

