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