forked from OSchip/llvm-project
26 lines
808 B
LLVM
26 lines
808 B
LLVM
; RUN: llc %s -o - -mtriple=powerpc | FileCheck --check-prefix=REL %s
|
|
; RUN: llc %s -o - -mtriple=powerpc -relocation-model=pic | FileCheck --check-prefix=PLTREL %s
|
|
; RUN: llc %s -o - -mtriple=powerpc64 | FileCheck --check-prefix=REL %s
|
|
; RUN: llc %s -o - -mtriple=powerpc64 -relocation-model=pic | FileCheck --check-prefix=REL %s
|
|
|
|
@ifunc1 = dso_local ifunc void(), i8*()* @resolver
|
|
@ifunc2 = ifunc void(), i8*()* @resolver
|
|
|
|
define i8* @resolver() { ret i8* null }
|
|
|
|
define void @foo() #0 {
|
|
; REL: bl ifunc1{{$}}
|
|
; REL: bl ifunc2{{$}}
|
|
; PLTREL: bl ifunc1@PLT+32768
|
|
; PLTREL: bl ifunc2@PLT+32768
|
|
call void @ifunc1()
|
|
call void @ifunc2()
|
|
ret void
|
|
}
|
|
|
|
;; Use Secure PLT ABI for PPC32.
|
|
attributes #0 = { "target-features"="+secure-plt" }
|
|
|
|
!llvm.module.flags = !{!0}
|
|
!0 = !{i32 1, !"PIC Level", i32 2}
|