summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQuentin Colombet <qcolombet@apple.com>2016-10-11 00:21:08 +0000
committerQuentin Colombet <qcolombet@apple.com>2016-10-11 00:21:08 +0000
commitd3126d5fb4f918cc738dac55f71768ad4523957d (patch)
treecea74b0872fad768961396e54c53c226b7329694
parent8af4988f35e0e8fbd1096f785904af9a94116ef8 (diff)
downloadbcm5719-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.cpp2
-rw-r--r--llvm/test/CodeGen/AArch64/GlobalISel/legalize-load-store.mir4
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)
...
---
OpenPOWER on IntegriCloud