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