From d3126d5fb4f918cc738dac55f71768ad4523957d Mon Sep 17 00:00:00 2001 From: Quentin Colombet Date: Tue, 11 Oct 2016 00:21:08 +0000 Subject: [PATCH] [AArch64][MachineLegalizer] Mark v2s32 G_LOAD as legal. Actually every 64-bit loads are legal, but right now the API does not offer a simple way to express that. llvm-svn: 283829 --- llvm/lib/Target/AArch64/AArch64MachineLegalizer.cpp | 2 +- llvm/test/CodeGen/AArch64/GlobalISel/legalize-load-store.mir | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/llvm/lib/Target/AArch64/AArch64MachineLegalizer.cpp b/llvm/lib/Target/AArch64/AArch64MachineLegalizer.cpp index f35fd35..f59804d 100644 --- a/llvm/lib/Target/AArch64/AArch64MachineLegalizer.cpp +++ b/llvm/lib/Target/AArch64/AArch64MachineLegalizer.cpp @@ -76,7 +76,7 @@ AArch64MachineLegalizer::AArch64MachineLegalizer() { setAction({G_FREM, s64}, Libcall); for (auto MemOp : {G_LOAD, G_STORE}) { - for (auto Ty : {s8, s16, s32, s64, p0}) + for (auto Ty : {s8, s16, s32, s64, p0, v2s32}) setAction({MemOp, Ty}, Legal); setAction({MemOp, s1}, WidenScalar); diff --git a/llvm/test/CodeGen/AArch64/GlobalISel/legalize-load-store.mir b/llvm/test/CodeGen/AArch64/GlobalISel/legalize-load-store.mir index 9b34305..1384357 100644 --- a/llvm/test/CodeGen/AArch64/GlobalISel/legalize-load-store.mir +++ b/llvm/test/CodeGen/AArch64/GlobalISel/legalize-load-store.mir @@ -23,6 +23,7 @@ registers: - { id: 4, class: _ } - { id: 5, class: _ } - { id: 6, class: _ } + - { id: 7, class: _ } body: | bb.0.entry: liveins: %x0, %x1, %x2, %x3 @@ -47,6 +48,9 @@ body: | ; CHECK: %6(p0) = G_LOAD %0(p0) :: (load 8 from %ir.addr) %6(p0) = G_LOAD %0(p0) :: (load 8 from %ir.addr) + + ; CHECK: %7(<2 x s32>) = G_LOAD %0(p0) :: (load 8 from %ir.addr) + %7(<2 x s32>) = G_LOAD %0(p0) :: (load 8 from %ir.addr) ... --- -- 2.7.4