[llvm] r281448 - GlobalISel: mark pointer stores as legal on AArch64.
Tim Northover via llvm-commits
llvm-commits at lists.llvm.org
Wed Sep 14 01:28:54 PDT 2016
Author: tnorthover
Date: Wed Sep 14 03:28:54 2016
New Revision: 281448
URL: http://llvm.org/viewvc/llvm-project?rev=281448&view=rev
Log:
GlobalISel: mark pointer stores as legal on AArch64.
Modified:
llvm/trunk/lib/Target/AArch64/AArch64MachineLegalizer.cpp
llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-load-store.mir
Modified: llvm/trunk/lib/Target/AArch64/AArch64MachineLegalizer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64MachineLegalizer.cpp?rev=281448&r1=281447&r2=281448&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AArch64/AArch64MachineLegalizer.cpp (original)
+++ llvm/trunk/lib/Target/AArch64/AArch64MachineLegalizer.cpp Wed Sep 14 03:28:54 2016
@@ -70,7 +70,7 @@ AArch64MachineLegalizer::AArch64MachineL
setAction({G_FREM, s64}, Libcall);
for (auto MemOp : {G_LOAD, G_STORE}) {
- for (auto Ty : {s8, s16, s32, s64})
+ for (auto Ty : {s8, s16, s32, s64, p0})
setAction({MemOp, Ty}, Legal);
setAction({MemOp, s1}, WidenScalar);
Modified: llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-load-store.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-load-store.mir?rev=281448&r1=281447&r2=281448&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-load-store.mir (original)
+++ llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-load-store.mir Wed Sep 14 03:28:54 2016
@@ -22,6 +22,7 @@ registers:
- { id: 3, class: _ }
- { id: 4, class: _ }
- { id: 5, class: _ }
+ - { id: 6, class: _ }
body: |
bb.0.entry:
liveins: %x0, %x1, %x2, %x3
@@ -43,6 +44,9 @@ body: |
; CHECK: %5(s64) = G_LOAD %0(p0) :: (load 8 from %ir.addr)
%5(s64) = G_LOAD %0 :: (load 8 from %ir.addr)
+
+ ; CHECK: %6(p0) = G_LOAD %0(p0) :: (load 8 from %ir.addr)
+ %6(p0) = G_LOAD %0(p0) :: (load 8 from %ir.addr)
...
---
@@ -81,4 +85,7 @@ body: |
; CHECK: G_STORE %5(s64), %0(p0) :: (store 8 into %ir.addr)
%5(s64) = G_PTRTOINT %0(p0)
G_STORE %5, %0 :: (store 8 into %ir.addr)
+
+ ; CHECK: G_STORE %0(p0), %0(p0) :: (store 8 into %ir.addr)
+ G_STORE %0(p0), %0(p0) :: (store 8 into %ir.addr)
...
More information about the llvm-commits
mailing list