diff options
author | Eli Friedman <eli.friedman@gmail.com> | 2011-06-03 01:13:19 +0000 |
---|---|---|
committer | Eli Friedman <eli.friedman@gmail.com> | 2011-06-03 01:13:19 +0000 |
commit | d6412c940ef863d02595f7be094d8cd3afc908a1 (patch) | |
tree | d86f09bf6d592872d8b9c09c5147d78f402df4ae /test/CodeGen/ARM | |
parent | c5d93bb5c847006fa2a4319de605e1fe5c00839e (diff) | |
download | external_llvm-d6412c940ef863d02595f7be094d8cd3afc908a1.zip external_llvm-d6412c940ef863d02595f7be094d8cd3afc908a1.tar.gz external_llvm-d6412c940ef863d02595f7be094d8cd3afc908a1.tar.bz2 |
Add ARM fast-isel support for materializing the address of a global in cases where the global uses an indirect symbol.
rdar://9431157
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132522 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/ARM')
-rw-r--r-- | test/CodeGen/ARM/fast-isel.ll | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/test/CodeGen/ARM/fast-isel.ll b/test/CodeGen/ARM/fast-isel.ll index 8299c81..499c97f 100644 --- a/test/CodeGen/ARM/fast-isel.ll +++ b/test/CodeGen/ARM/fast-isel.ll @@ -131,4 +131,30 @@ bb3: ; ARM: sxth ; ARM: add ; ARM: sub -}
\ No newline at end of file +} + +; Check loads/stores with globals +@test4g = external global i32 + +define void @test4() { + %a = load i32* @test4g + %b = add i32 %a, 1 + store i32 %b, i32* @test4g + ret void + +; THUMB: ldr.n r0, LCPI4_1 +; THUMB: ldr r0, [r0] +; THUMB: ldr r0, [r0] +; THUMB: adds r0, #1 +; THUMB: ldr.n r1, LCPI4_0 +; THUMB: ldr r1, [r1] +; THUMB: str r0, [r1] + +; ARM: ldr r0, LCPI4_1 +; ARM: ldr r0, [r0] +; ARM: ldr r0, [r0] +; ARM: add r0, r0, #1 +; ARM: ldr r1, LCPI4_0 +; ARM: ldr r1, [r1] +; ARM: str r0, [r1] +} |