brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.7 KiB · 95338bc Raw
88 lines · plain
1; Test loads of symbolic addresses when generating medium- and2; large-model non-PIC.3;4; RUN: llc < %s -mtriple=s390x-linux-gnu -code-model=medium | FileCheck %s5; RUN: llc < %s -mtriple=s390x-linux-gnu -code-model=large | FileCheck %s6 7@ev = external global i328@dv = global i32 09@pv = protected global i32 010@hv = hidden global i32 011 12declare void @ef()13define void @df() {14  ret void15}16define protected void @pf() {17  ret void18}19define hidden void @hf() {20  ret void21}22 23; Test loads of external variables.  There is no guarantee that the24; variable will be in range of LARL.25define ptr@f1() {26; CHECK-LABEL: f1:27; CHECK: lgrl %r2, ev@GOT28; CHECK: br %r1429  ret ptr@ev30}31 32; ...likewise locally-defined normal-visibility variables.33define ptr@f2() {34; CHECK-LABEL: f2:35; CHECK: lgrl %r2, dv@GOT36; CHECK: br %r1437  ret ptr@dv38}39 40; ...likewise protected variables.41define ptr@f3() {42; CHECK-LABEL: f3:43; CHECK: lgrl %r2, pv@GOT44; CHECK: br %r1445  ret ptr@pv46}47 48; ...likewise hidden variables.49define ptr@f4() {50; CHECK-LABEL: f4:51; CHECK: lgrl %r2, hv@GOT52; CHECK: br %r1453  ret ptr@hv54}55 56; Check loads of external functions.  This could use LARL, but we don't have57; code to detect that yet.58define ptr@f5() {59; CHECK-LABEL: f5:60; CHECK: lgrl %r2, ef@GOT61; CHECK: br %r1462  ret ptr@ef63}64 65; ...likewise locally-defined normal-visibility functions.66define ptr@f6() {67; CHECK-LABEL: f6:68; CHECK: lgrl %r2, df@GOT69; CHECK: br %r1470  ret ptr@df71}72 73; ...likewise protected functions.74define ptr@f7() {75; CHECK-LABEL: f7:76; CHECK: lgrl %r2, pf@GOT77; CHECK: br %r1478  ret ptr@pf79}80 81; ...likewise hidden functions.82define ptr@f8() {83; CHECK-LABEL: f8:84; CHECK: lgrl %r2, hf@GOT85; CHECK: br %r1486  ret ptr@hf87}88