xref: /aosp_15_r20/external/llvm/test/CodeGen/ARM/frame-register.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple arm-eabi -disable-fp-elim -filetype asm -o - %s \
2*9880d681SAndroid Build Coastguard Worker; RUN:     | FileCheck -check-prefix CHECK-ARM %s
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple thumb-eabi -disable-fp-elim -filetype asm -o - %s \
5*9880d681SAndroid Build Coastguard Worker; RUN:     | FileCheck -check-prefix CHECK-THUMB %s
6*9880d681SAndroid Build Coastguard Worker
7*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple arm-darwin -disable-fp-elim -filetype asm -o - %s \
8*9880d681SAndroid Build Coastguard Worker; RUN:     | FileCheck -check-prefix CHECK-DARWIN-ARM %s
9*9880d681SAndroid Build Coastguard Worker
10*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple thumb-darwin -disable-fp-elim -filetype asm -o - %s \
11*9880d681SAndroid Build Coastguard Worker; RUN:     | FileCheck -check-prefix CHECK-DARWIN-THUMB %s
12*9880d681SAndroid Build Coastguard Worker
13*9880d681SAndroid Build Coastguard Workerdeclare void @callee(i32)
14*9880d681SAndroid Build Coastguard Worker
15*9880d681SAndroid Build Coastguard Workerdefine i32 @calleer(i32 %i) {
16*9880d681SAndroid Build Coastguard Workerentry:
17*9880d681SAndroid Build Coastguard Worker  %i.addr = alloca i32, align 4
18*9880d681SAndroid Build Coastguard Worker  %j = alloca i32, align 4
19*9880d681SAndroid Build Coastguard Worker  store i32 %i, i32* %i.addr, align 4
20*9880d681SAndroid Build Coastguard Worker  %0 = load i32, i32* %i.addr, align 4
21*9880d681SAndroid Build Coastguard Worker  %add = add nsw i32 %0, 1
22*9880d681SAndroid Build Coastguard Worker  store i32 %add, i32* %j, align 4
23*9880d681SAndroid Build Coastguard Worker  %1 = load i32, i32* %j, align 4
24*9880d681SAndroid Build Coastguard Worker  call void @callee(i32 %1)
25*9880d681SAndroid Build Coastguard Worker  %2 = load i32, i32* %j, align 4
26*9880d681SAndroid Build Coastguard Worker  %add1 = add nsw i32 %2, 1
27*9880d681SAndroid Build Coastguard Worker  ret i32 %add1
28*9880d681SAndroid Build Coastguard Worker}
29*9880d681SAndroid Build Coastguard Worker
30*9880d681SAndroid Build Coastguard Worker; CHECK-ARM: push {r11, lr}
31*9880d681SAndroid Build Coastguard Worker; CHECK-ARM: mov r11, sp
32*9880d681SAndroid Build Coastguard Worker
33*9880d681SAndroid Build Coastguard Worker; CHECK-THUMB: push {r7, lr}
34*9880d681SAndroid Build Coastguard Worker; CHECK-THUMB: add r7, sp, #0
35*9880d681SAndroid Build Coastguard Worker
36*9880d681SAndroid Build Coastguard Worker; CHECK-DARWIN-ARM: push {r7, lr}
37*9880d681SAndroid Build Coastguard Worker; CHECK-DARWIN-THUMB: push {r7, lr}
38*9880d681SAndroid Build Coastguard Worker
39