mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-30 23:42:52 +01:00
cb970f1789
instructions. With this patch: 1. ldr.n is recognized as mnemonic for the short encoding 2. ldr.w is recognized as menmonic for the long encoding 3. ldr will map to either short or long encodings depending on the size of the offset llvm-svn: 186831
36 lines
748 B
LLVM
36 lines
748 B
LLVM
; RUN: llc < %s -mtriple=thumb-apple-ios | FileCheck %s
|
|
|
|
define void @test1() {
|
|
; CHECK-LABEL: test1:
|
|
; CHECK: sub sp, #256
|
|
; CHECK: add sp, #256
|
|
%tmp = alloca [ 64 x i32 ] , align 4
|
|
ret void
|
|
}
|
|
|
|
define void @test2() {
|
|
; CHECK-LABEL: test2:
|
|
; CHECK: ldr r0, LCPI
|
|
; CHECK: add sp, r0
|
|
; CHECK: subs r4, r7, #4
|
|
; CHECK: mov sp, r4
|
|
%tmp = alloca [ 4168 x i8 ] , align 4
|
|
ret void
|
|
}
|
|
|
|
define i32 @test3() {
|
|
; CHECK-LABEL: test3:
|
|
; CHECK: ldr r1, LCPI
|
|
; CHECK: add sp, r1
|
|
; CHECK: ldr r1, LCPI
|
|
; CHECK: add r1, sp
|
|
; CHECK: subs r4, r7, #4
|
|
; CHECK: mov sp, r4
|
|
%retval = alloca i32, align 4
|
|
%tmp = alloca i32, align 4
|
|
%a = alloca [805306369 x i8], align 16
|
|
store i32 0, i32* %tmp
|
|
%tmp1 = load i32* %tmp
|
|
ret i32 %tmp1
|
|
}
|