xref: /llvm-project/llvm/test/CodeGen/ARM/naked-fn-with-frame-pointer.ll (revision ad4a582fd938c933e784f0052bd773676b37b690)
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
2; RUN: llc < %s -mtriple arm | FileCheck %s -check-prefixes=CHECK-ALE
3; RUN: llc < %s -mtriple armeb | FileCheck %s -check-prefixes=CHECK-ABE
4; RUN: llc < %s -mtriple thumb | FileCheck %s -check-prefixes=CHECK-TLE
5; RUN: llc < %s -mtriple thumbeb | FileCheck %s -check-prefixes=CHECK-TBE
6
7declare dso_local void @main()
8
9define dso_local void @naked() naked "frame-pointer"="all" {
10; CHECK-ALE-LABEL: naked:
11; CHECK-ALE:       @ %bb.0:
12; CHECK-ALE-NEXT:    bl main
13;
14; CHECK-ABE-LABEL: naked:
15; CHECK-ABE:       @ %bb.0:
16; CHECK-ABE-NEXT:    bl main
17;
18; CHECK-TLE-LABEL: naked:
19; CHECK-TLE:       @ %bb.0:
20; CHECK-TLE-NEXT:    bl main
21;
22; CHECK-TBE-LABEL: naked:
23; CHECK-TBE:       @ %bb.0:
24; CHECK-TBE-NEXT:    bl main
25  call void @main()
26  unreachable
27}
28
29define dso_local void @normal() "frame-pointer"="all" {
30; CHECK-ALE-LABEL: normal:
31; CHECK-ALE:       @ %bb.0:
32; CHECK-ALE-NEXT:    push {r11, lr}
33; CHECK-ALE-NEXT:    mov r11, sp
34; CHECK-ALE-NEXT:    bl main
35;
36; CHECK-ABE-LABEL: normal:
37; CHECK-ABE:       @ %bb.0:
38; CHECK-ABE-NEXT:    push {r11, lr}
39; CHECK-ABE-NEXT:    mov r11, sp
40; CHECK-ABE-NEXT:    bl main
41;
42; CHECK-TLE-LABEL: normal:
43; CHECK-TLE:       @ %bb.0:
44; CHECK-TLE-NEXT:    push {r7, lr}
45; CHECK-TLE-NEXT:    add r7, sp, #0
46; CHECK-TLE-NEXT:    bl main
47;
48; CHECK-TBE-LABEL: normal:
49; CHECK-TBE:       @ %bb.0:
50; CHECK-TBE-NEXT:    push {r7, lr}
51; CHECK-TBE-NEXT:    add r7, sp, #0
52; CHECK-TBE-NEXT:    bl main
53  call void @main()
54  unreachable
55}
56