From: Jessica Paquette Date: Thu, 18 Apr 2019 21:13:58 +0000 (+0000) Subject: [GlobalISel][AArch64] Legalize v8s8 loads X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d49ac7f542c29cd27c16d592b35946113d4943ab;p=llvm [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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@358714 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/AArch64/AArch64LegalizerInfo.cpp b/lib/Target/AArch64/AArch64LegalizerInfo.cpp index 8f7a521b559..19fd1d1650b 100644 --- a/lib/Target/AArch64/AArch64LegalizerInfo.cpp +++ b/lib/Target/AArch64/AArch64LegalizerInfo.cpp @@ -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}, diff --git a/test/CodeGen/AArch64/GlobalISel/legalize-load-store.mir b/test/CodeGen/AArch64/GlobalISel/legalize-load-store.mir index 04264e8513f..96e043024d4 100644 --- a/test/CodeGen/AArch64/GlobalISel/legalize-load-store.mir +++ b/test/CodeGen/AArch64/GlobalISel/legalize-load-store.mir @@ -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 + +...