xref: /llvm-project/llvm/test/CodeGen/M68k/CodeModel/Large/large-pie.ll (revision 4cce10743d2275710d3d2e0de8013386a9799092)
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2; RUN: llc < %s -O0 -mtriple=m68k -verify-machineinstrs \
3; RUN:              -code-model=large -relocation-model=pic \
4; RUN:   | FileCheck %s
5
6define weak void @weak_foo() {
7; CHECK-LABEL: weak_foo:
8; CHECK:         .cfi_startproc
9; CHECK-NEXT:  ; %bb.0:
10; CHECK-NEXT:    rts
11  ret void
12}
13
14define weak_odr void @weak_odr_foo() {
15; CHECK-LABEL: weak_odr_foo:
16; CHECK:         .cfi_startproc
17; CHECK-NEXT:  ; %bb.0:
18; CHECK-NEXT:    rts
19  ret void
20}
21
22define internal void @internal_foo() {
23; CHECK-LABEL: internal_foo:
24; CHECK:         .cfi_startproc
25; CHECK-NEXT:  ; %bb.0:
26; CHECK-NEXT:    rts
27  ret void
28}
29
30declare i32 @ext_baz()
31
32define void @foo() {
33; CHECK-LABEL: foo:
34; CHECK:         .cfi_startproc
35; CHECK-NEXT:  ; %bb.0:
36; CHECK-NEXT:    rts
37  ret void
38}
39
40define void @bar() {
41; CHECK-LABEL: bar:
42; CHECK:         .cfi_startproc
43; CHECK-NEXT:  ; %bb.0: ; %entry
44; CHECK-NEXT:    suba.l #4, %sp
45; CHECK-NEXT:    .cfi_def_cfa_offset -8
46; CHECK-NEXT:    jsr (foo@PLT,%pc)
47; CHECK-NEXT:    jsr (weak_odr_foo@PLT,%pc)
48; CHECK-NEXT:    jsr (weak_foo@PLT,%pc)
49; CHECK-NEXT:    jsr (internal_foo,%pc)
50; CHECK-NEXT:    jsr (ext_baz@PLT,%pc)
51; CHECK-NEXT:    adda.l #4, %sp
52; CHECK-NEXT:    rts
53entry:
54  call void @foo()
55  call void @weak_odr_foo()
56  call void @weak_foo()
57  call void @internal_foo()
58  call i32 @ext_baz()
59  ret void
60}
61
62; -fpie for local global data tests should be added here
63
64!llvm.module.flags = !{!0, !1}
65!0 = !{i32 1, !"PIC Level", i32 1}
66!1 = !{i32 1, !"PIE Level", i32 1}
67