diff options
author | Quentin Colombet <qcolombet@apple.com> | 2016-10-11 00:21:08 +0000 |
---|---|---|
committer | Quentin Colombet <qcolombet@apple.com> | 2016-10-11 00:21:08 +0000 |
commit | d3126d5fb4f918cc738dac55f71768ad4523957d (patch) | |
tree | cea74b0872fad768961396e54c53c226b7329694 | |
parent | 8af4988f35e0e8fbd1096f785904af9a94116ef8 (diff) | |
download | bcm5719-llvm-d3126d5fb4f918cc738dac55f71768ad4523957d.tar.gz bcm5719-llvm-d3126d5fb4f918cc738dac55f71768ad4523957d.zip |
[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
-rw-r--r-- | llvm/lib/Target/AArch64/AArch64MachineLegalizer.cpp | 2 | ||||
-rw-r--r-- | llvm/test/CodeGen/AArch64/GlobalISel/legalize-load-store.mir | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64MachineLegalizer.cpp b/llvm/lib/Target/AArch64/AArch64MachineLegalizer.cpp index f35fd35b7bb..f59804d3853 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 9b343057c70..138435765e4 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) ... --- |