[GlobalISel][AArch64] Legalize v8s8 loads

Add legalizer support for loads of v8s8 and update legalize-load-store.mir.

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

llvm-svn: 358714
This commit is contained in:
Jessica Paquette 2019-04-18 21:13:58 +00:00
parent a5bbbfef15
commit 3b5119c684
2 changed files with 26 additions and 0 deletions

View File

@ -224,6 +224,7 @@ AArch64LegalizerInfo::AArch64LegalizerInfo(const AArch64Subtarget &ST) {
{s32, p0, 32, 8},
{s64, p0, 64, 8},
{p0, p0, 64, 8},
{v8s8, p0, 64, 8},
{v16s8, p0, 128, 8},
{v4s16, p0, 64, 8},
{v8s16, p0, 128, 8},

View File

@ -48,6 +48,11 @@
ret <16 x i8> %res
}
define <8 x i8> @load_8xi8(<8 x i8>* %ptr) {
%res = load <8 x i8>, <8 x i8>* %ptr
ret <8 x i8> %res
}
...
---
name: test_load
@ -319,3 +324,23 @@ body: |
RET_ReallyLR implicit $q0
...
---
name: load_8xi8
alignment: 2
tracksRegLiveness: true
machineFunctionInfo: {}
body: |
bb.1 (%ir-block.0):
liveins: $x0
; CHECK-LABEL: name: load_8xi8
; CHECK: liveins: $x0
; CHECK: [[COPY:%[0-9]+]]:_(p0) = COPY $x0
; CHECK: [[LOAD:%[0-9]+]]:_(<8 x s8>) = G_LOAD [[COPY]](p0) :: (load 8 from %ir.ptr)
; CHECK: $d0 = COPY [[LOAD]](<8 x s8>)
; CHECK: RET_ReallyLR implicit $d0
%0:_(p0) = COPY $x0
%1:_(<8 x s8>) = G_LOAD %0(p0) :: (load 8 from %ir.ptr)
$d0 = COPY %1(<8 x s8>)
RET_ReallyLR implicit $d0
...