; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc < %s -O0 -mtriple=m68k -verify-machineinstrs \
; RUN:              -code-model=small -relocation-model=pic \
; RUN:   | FileCheck %s

define weak void @weak_foo() {
; CHECK-LABEL: weak_foo:
; CHECK:         .cfi_startproc
; CHECK-NEXT:  ; %bb.0:
; CHECK-NEXT:    rts
  ret void
}

define weak_odr void @weak_odr_foo() {
; CHECK-LABEL: weak_odr_foo:
; CHECK:         .cfi_startproc
; CHECK-NEXT:  ; %bb.0:
; CHECK-NEXT:    rts
  ret void
}

define internal void @internal_foo() {
; CHECK-LABEL: internal_foo:
; CHECK:         .cfi_startproc
; CHECK-NEXT:  ; %bb.0:
; CHECK-NEXT:    rts
  ret void
}

declare i32 @ext_baz()

define void @foo() {
; CHECK-LABEL: foo:
; CHECK:         .cfi_startproc
; CHECK-NEXT:  ; %bb.0:
; CHECK-NEXT:    rts
  ret void
}


define void @bar() {
; CHECK-LABEL: bar:
; CHECK:         .cfi_startproc
; CHECK-NEXT:  ; %bb.0: ; %entry
; CHECK-NEXT:    suba.l #4, %sp
; CHECK-NEXT:    .cfi_def_cfa_offset -8
; CHECK-NEXT:    jsr (foo@PLT,%pc)
; CHECK-NEXT:    jsr (weak_odr_foo@PLT,%pc)
; CHECK-NEXT:    jsr (weak_foo@PLT,%pc)
; CHECK-NEXT:    jsr (internal_foo,%pc)
; CHECK-NEXT:    jsr (ext_baz@PLT,%pc)
; CHECK-NEXT:    adda.l #4, %sp
; CHECK-NEXT:    rts
entry:
  call void @foo()
  call void @weak_odr_foo()
  call void @weak_foo()
  call void @internal_foo()
  call i32 @ext_baz()
  ret void
}

; -fpie for local global data tests should be added here

!llvm.module.flags = !{!0, !1}
!0 = !{i32 1, !"PIC Level", i32 1}
!1 = !{i32 1, !"PIE Level", i32 1}
