GlobalISel: mark pointer stores as legal on AArch64.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281448 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Tim Northover 2016-09-14 08:28:54 +00:00
parent 82d457bf36
commit d40a5626fc
2 changed files with 8 additions and 1 deletions

View File

@ -70,7 +70,7 @@ AArch64MachineLegalizer::AArch64MachineLegalizer() {
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);

View File

@ -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)
...