1
; Test loads of symbolic addresses when generating medium- and
4
; RUN: llc < %s -mtriple=s390x-linux-gnu -code-model=medium | FileCheck %s
5
; RUN: llc < %s -mtriple=s390x-linux-gnu -code-model=large | FileCheck %s
7
@ev = external global i32
9
@pv = protected global i32 0
10
@hv = hidden global i32 0
16
define protected void @pf() {
19
define hidden void @hf() {
23
; Test loads of external variables. There is no guarantee that the
24
; variable will be in range of LARL.
27
; CHECK: lgrl %r2, ev@GOT
32
; ...likewise locally-defined normal-visibility variables.
35
; CHECK: lgrl %r2, dv@GOT
40
; ...likewise protected variables.
43
; CHECK: lgrl %r2, pv@GOT
48
; ...likewise hidden variables.
51
; CHECK: lgrl %r2, hv@GOT
56
; Check loads of external functions. This could use LARL, but we don't have
57
; code to detect that yet.
58
define void() *@f5() {
60
; CHECK: lgrl %r2, ef@GOT
65
; ...likewise locally-defined normal-visibility functions.
66
define void() *@f6() {
68
; CHECK: lgrl %r2, df@GOT
73
; ...likewise protected functions.
74
define void() *@f7() {
76
; CHECK: lgrl %r2, pf@GOT
81
; ...likewise hidden functions.
82
define void() *@f8() {
84
; CHECK: lgrl %r2, hf@GOT