# REQUIRES: systemz
# RUN: llvm-mc -filetype=obj -triple=s390x-unknown-linux %s -o %t.o
# RUN: echo '.tbss; .globl b, c; b: .zero 4; c:' | llvm-mc -filetype=obj -triple=s390x-unknown-linux - -o %t1.o
# RUN: ld.lld -shared -soname=t1.so %t1.o -o %t1.so

# RUN: ld.lld -shared %t.o %t1.o -o %t.so
# RUN: llvm-readelf -r %t.so | FileCheck --check-prefix=GD-REL %s
# RUN: llvm-objdump -d --no-show-raw-insn %t.so | FileCheck --check-prefix=GD %s
# RUN: llvm-objdump --section .data.rel.ro --full-contents %t.so | FileCheck --check-prefix=GD-DATA %s

# RUN: ld.lld %t.o %t1.o -o %t.le
# RUN: llvm-readelf -r %t.le | FileCheck --check-prefix=NOREL %s
# RUN: llvm-objdump -d --no-show-raw-insn %t.le | FileCheck --check-prefix=LE %s
# RUN: llvm-objdump --section .data.rel.ro --full-contents %t.le | FileCheck --check-prefix=LE-DATA %s

# RUN: ld.lld %t.o %t1.so -o %t.ie
# RUN: llvm-readelf -r %t.ie | FileCheck --check-prefix=IE-REL %s
# RUN: llvm-objdump -d --no-show-raw-insn %t.ie | FileCheck --check-prefix=IE %s
# RUN: llvm-objdump --section .data.rel.ro --full-contents %t.ie | FileCheck --check-prefix=IE-DATA %s

# GD-REL: Relocation section '.rela.dyn' at offset {{.*}} contains 6 entries:
# GD-REL:      0000000000002570 0000000200000036 R_390_TLS_DTPMOD 0000000000000008 a + 0
# GD-REL-NEXT: 0000000000002578 0000000200000037 R_390_TLS_DTPOFF 0000000000000008 a + 0
# GD-REL-NEXT: 0000000000002580 0000000300000036 R_390_TLS_DTPMOD 000000000000000c b + 0
# GD-REL-NEXT: 0000000000002588 0000000300000037 R_390_TLS_DTPOFF 000000000000000c b + 0
# GD-REL-NEXT: 0000000000002590 0000000400000036 R_390_TLS_DTPMOD 0000000000000010 c + 0
# GD-REL-NEXT: 0000000000002598 0000000400000037 R_390_TLS_DTPOFF 0000000000000010 c + 0

## _GLOBAL_OFFSET_TABLE is at 0x2558
# GD:      larl    %r12, 0x2558

## GOT offset of the TLS module ID / offset pair for a is at 0x2460
# GD-NEXT: lgrl    %r2, 0x2460
# GD-NEXT: brasl   %r14, 0x1440
# GD-NEXT: lgf     %r2, 0(%r2,%r7)

## GOT offset of the TLS module ID / offset pair for b is at 0x2468
# GD-NEXT: lgrl    %r2, 0x2468
# GD-NEXT: brasl   %r14, 0x1440
# GD-NEXT: lgf     %r2, 0(%r2,%r7)

## GOT offset of the TLS module ID / offset pair for c is at 0x2470
# GD-NEXT: lgrl    %r2, 0x2470
# GD-NEXT: brasl   %r14, 0x1440
# GD-NEXT: lgf     %r2, 0(%r2,%r7)

## Constant pool holding GOT offsets of TLS module ID / offset pairs:
# a: 0x2570 / 0x18
# b: 0x2580 / 0x28
# c: 0x2590 / 0x38
# GD-DATA:      2460 00000000 00000018 00000000 00000028
# GD-DATA-NEXT: 2470 00000000 00000038

# NOREL: no relocations

## _GLOBAL_OFFSET_TABLE is at 0x1002230
# LE:      larl    %r12, 0x1002230

## TP offset of a is at 0x1002218
# LE-NEXT: lgrl    %r2, 0x1002218
# LE-NEXT: brcl    0,
# LE-NEXT: lgf     %r2, 0(%r2,%r7)

## TP offset of b is at 0x1002220
# LE-NEXT: lgrl    %r2, 0x1002220
# LE-NEXT: brcl    0,
# LE-NEXT: lgf     %r2, 0(%r2,%r7)

## TP offset of c is at 0x1002228
# LE-NEXT: lgrl    %r2, 0x1002228
# LE-NEXT: brcl    0,
# LE-NEXT: lgf     %r2, 0(%r2,%r7)

## TP offsets
# a: -8
# b: -4
# c: 0
# LE-DATA:      1002218 ffffffff fffffff8 ffffffff fffffffc
# LE-DATA-NEXT: 1002228 00000000 00000000


# IE-REL: Relocation section '.rela.dyn' at offset {{.*}} contains 2 entries:
# IE-REL:      0000000001002430 0000000200000038 R_390_TLS_TPOFF 0000000000000000 b + 0
# IE-REL-NEXT: 0000000001002438 0000000300000038 R_390_TLS_TPOFF 0000000000000000 c + 0

## _GLOBAL_OFFSET_TABLE is at 0x1002418
# IE:      larl    %r12, 0x1002418

## TP offset of a is at 0x1002340
# IE-NEXT: lgrl    %r2, 0x1002340
# IE-NEXT: brcl    0,
# IE-NEXT: lgf     %r2, 0(%r2,%r7)

## GOT offset of the TP offset for b is at 0x1002348
# IE-NEXT: lgrl    %r2, 0x1002348
# IE-NEXT: lg      %r2, 0(%r2,%r12)
# IE-NEXT: lgf     %r2, 0(%r2,%r7)

## GOT offset of the TP offset for c is at 0x1002350
# IE-NEXT: lgrl    %r2, 0x1002350
# IE-NEXT: lg      %r2, 0(%r2,%r12)
# IE-NEXT: lgf     %r2, 0(%r2,%r7)

## TP offsets (a) / GOT offset of TP offsets (b, c)
# a: -4
# b: 0x1002430 / 0x18
# c: 0x1002438 / 0x20
# IE-DATA:      1002340 ffffffff fffffffc 00000000 00000018
# IE-DATA-NEXT: 1002350 00000000 00000020


ear     %r7,%a0
sllg    %r7,%r1,32
ear     %r7,%a1
larl    %r12,_GLOBAL_OFFSET_TABLE_

lgrl    %r2,.LC0
brasl   %r14,__tls_get_offset@PLT:tls_gdcall:a
lgf     %r2,0(%r2,%r7)

lgrl    %r2,.LC1
brasl   %r14,__tls_get_offset@PLT:tls_gdcall:b
lgf     %r2,0(%r2,%r7)

lgrl    %r2,.LC2
brasl   %r14,__tls_get_offset@PLT:tls_gdcall:c
lgf     %r2,0(%r2,%r7)

        .section        .data.rel.ro,"aw"
        .align  8
.LC0:
        .quad   a@TLSGD
.LC1:
        .quad   b@TLSGD
.LC2:
        .quad   c@TLSGD

	.section .tbss
	.globl a
	.zero 8
a:
	.zero 4
