xref: /llvm-project/llvm/test/CodeGen/NVPTX/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 nvptx | FileCheck %s -check-prefixes=CHECK-32
3; RUN: llc < %s -mtriple nvptx64 | FileCheck %s -check-prefixes=CHECK-64
4
5declare dso_local void @main()
6
7define dso_local void @naked() naked "frame-pointer"="all" {
8; CHECK-32-LABEL: naked(
9; CHECK-32:       {
10; CHECK-32-EMPTY:
11; CHECK-32-EMPTY:
12; CHECK-32-NEXT:  // %bb.0:
13; CHECK-32-NEXT:    { // callseq 0, 0
14; CHECK-32-NEXT:    call.uni
15; CHECK-32-NEXT:    main,
16; CHECK-32-NEXT:    (
17; CHECK-32-NEXT:    );
18; CHECK-32-NEXT:    } // callseq 0
19; CHECK-32-NEXT:    // begin inline asm
20; CHECK-32-NEXT:    exit;
21; CHECK-32-NEXT:    // end inline asm
22;
23; CHECK-64-LABEL: naked(
24; CHECK-64:       {
25; CHECK-64-EMPTY:
26; CHECK-64-EMPTY:
27; CHECK-64-NEXT:  // %bb.0:
28; CHECK-64-NEXT:    { // callseq 0, 0
29; CHECK-64-NEXT:    call.uni
30; CHECK-64-NEXT:    main,
31; CHECK-64-NEXT:    (
32; CHECK-64-NEXT:    );
33; CHECK-64-NEXT:    } // callseq 0
34; CHECK-64-NEXT:    // begin inline asm
35; CHECK-64-NEXT:    exit;
36; CHECK-64-NEXT:    // end inline asm
37  call void @main()
38  unreachable
39}
40
41define dso_local void @normal() "frame-pointer"="all" {
42; CHECK-32-LABEL: normal(
43; CHECK-32:       {
44; CHECK-32-EMPTY:
45; CHECK-32-EMPTY:
46; CHECK-32-NEXT:  // %bb.0:
47; CHECK-32-NEXT:    { // callseq 1, 0
48; CHECK-32-NEXT:    call.uni
49; CHECK-32-NEXT:    main,
50; CHECK-32-NEXT:    (
51; CHECK-32-NEXT:    );
52; CHECK-32-NEXT:    } // callseq 1
53; CHECK-32-NEXT:    // begin inline asm
54; CHECK-32-NEXT:    exit;
55; CHECK-32-NEXT:    // end inline asm
56;
57; CHECK-64-LABEL: normal(
58; CHECK-64:       {
59; CHECK-64-EMPTY:
60; CHECK-64-EMPTY:
61; CHECK-64-NEXT:  // %bb.0:
62; CHECK-64-NEXT:    { // callseq 1, 0
63; CHECK-64-NEXT:    call.uni
64; CHECK-64-NEXT:    main,
65; CHECK-64-NEXT:    (
66; CHECK-64-NEXT:    );
67; CHECK-64-NEXT:    } // callseq 1
68; CHECK-64-NEXT:    // begin inline asm
69; CHECK-64-NEXT:    exit;
70; CHECK-64-NEXT:    // end inline asm
71  call void @main()
72  unreachable
73}
74