# REQUIRES: x86
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t.o
# RUN: ld.lld %t.o -o %t1
# RUN: llvm-readobj --symbols -r %t1 | FileCheck --check-prefix=SYMRELOC %s
# RUN: llvm-objdump -d --no-show-raw-insn --print-imm-hex %t1 | FileCheck --check-prefix=DISASM %s

## There is no relocations.
# SYMRELOC:      Relocations [
# SYMRELOC-NEXT: ]
# SYMRELOC:      Symbols [
# SYMRELOC:       Symbol {
# SYMRELOC:        Name: bar
# SYMRELOC-NEXT:   Value: 0x203248

## 2105751 = 0x202197 (bar)
# DISASM:      Disassembly of section .text:
# DISASM-EMPTY:
# DISASM-NEXT: <_start>:
# DISASM-NEXT:   2011c8:       adcl  {{.*}}(%rip), %eax  # 0x202240
# DISASM-NEXT:                 addl  {{.*}}(%rip), %ebx  # 0x202240
# DISASM-NEXT:                 andl  {{.*}}(%rip), %ecx  # 0x202240
# DISASM-NEXT:                 cmpl  {{.*}}(%rip), %edx  # 0x202240
# DISASM-NEXT:                 orl   {{.*}}(%rip), %edi  # 0x202240
# DISASM-NEXT:                 sbbl  {{.*}}(%rip), %esi  # 0x202240
# DISASM-NEXT:                 subl  {{.*}}(%rip), %ebp  # 0x202240
# DISASM-NEXT:                 xorl  $0x203248, %r8d
# DISASM-NEXT:                 testl $0x203248, %r15d
# DISASM-NEXT:   201200:       adcq  $0x203248, %rax
# DISASM-NEXT:                 addq  $0x203248, %rbx
# DISASM-NEXT:                 andq  $0x203248, %rcx
# DISASM-NEXT:                 cmpq  $0x203248, %rdx
# DISASM-NEXT:                 orq   $0x203248, %rdi
# DISASM-NEXT:                 sbbq  $0x203248, %rsi
# DISASM-NEXT:                 subq  $0x203248, %rbp
# DISASM-NEXT:                 xorq  $0x203248, %r8
# DISASM-NEXT:                 testq $0x203248, %r15

# RUN: ld.lld --hash-style=sysv -shared %t.o -o %t2
# RUN: llvm-readobj -S -r -d %t2 | FileCheck --check-prefix=SEC-PIC    %s
# RUN: llvm-objdump -d --no-show-raw-insn %t2 | FileCheck --check-prefix=DISASM-PIC %s
# SEC-PIC:      Section {
# SEC-PIC:        Index:
# SEC-PIC:        Name: .got
# SEC-PIC-NEXT:   Type: SHT_PROGBITS
# SEC-PIC-NEXT:   Flags [
# SEC-PIC-NEXT:     SHF_ALLOC
# SEC-PIC-NEXT:     SHF_WRITE
# SEC-PIC-NEXT:   ]
# SEC-PIC-NEXT:   Address: 0x2380
# SEC-PIC-NEXT:   Offset: 0x380
# SEC-PIC-NEXT:   Size: 8
# SEC-PIC-NEXT:   Link:
# SEC-PIC-NEXT:   Info:
# SEC-PIC-NEXT:   AddressAlignment:
# SEC-PIC-NEXT:   EntrySize:
# SEC-PIC-NEXT: }
# SEC-PIC:      0x000000006FFFFFF9 RELACOUNT            1
# SEC-PIC:      Relocations [
# SEC-PIC-NEXT:   Section ({{.*}}) .rela.dyn {
# SEC-PIC-NEXT:     0x2380 R_X86_64_RELATIVE - 0x3388
# SEC-PIC-NEXT:   }
# SEC-PIC-NEXT: ]

## Check that there was no relaxation performed. All values refer to got entry.
# DISASM-PIC:      Disassembly of section .text:
# DISASM-PIC-EMPTY:
# DISASM-PIC-NEXT: <_start>:
# DISASM-PIC-NEXT: 1268:       adcl  {{.*}}(%rip), %eax  # 0x2380
# DISASM-PIC-NEXT:             addl  {{.*}}(%rip), %ebx  # 0x2380
# DISASM-PIC-NEXT:             andl  {{.*}}(%rip), %ecx  # 0x2380
# DISASM-PIC-NEXT:             cmpl  {{.*}}(%rip), %edx  # 0x2380
# DISASM-PIC-NEXT:             orl   {{.*}}(%rip), %edi  # 0x2380
# DISASM-PIC-NEXT:             sbbl  {{.*}}(%rip), %esi  # 0x2380
# DISASM-PIC-NEXT:             subl  {{.*}}(%rip), %ebp  # 0x2380
# DISASM-PIC-NEXT:             xorl  {{.*}}(%rip), %r8d  # 0x2380
# DISASM-PIC-NEXT:             testl %r15d, {{.*}}(%rip) # 0x2380
# DISASM-PIC-NEXT: 12a0:       adcq  {{.*}}(%rip), %rax  # 0x2380
# DISASM-PIC-NEXT:             addq  {{.*}}(%rip), %rbx  # 0x2380
# DISASM-PIC-NEXT:             andq  {{.*}}(%rip), %rcx  # 0x2380
# DISASM-PIC-NEXT:             cmpq  {{.*}}(%rip), %rdx  # 0x2380
# DISASM-PIC-NEXT:             orq   {{.*}}(%rip), %rdi  # 0x2380
# DISASM-PIC-NEXT:             sbbq  {{.*}}(%rip), %rsi  # 0x2380
# DISASM-PIC-NEXT:             subq  {{.*}}(%rip), %rbp  # 0x2380
# DISASM-PIC-NEXT:             xorq  {{.*}}(%rip), %r8   # 0x2380
# DISASM-PIC-NEXT:             testq %r15, {{.*}}(%rip)  # 0x2380

.data
.type   bar, @object
bar:
 .byte   1
 .size   bar, .-bar

.text
.globl  _start
.type   _start, @function
_start:
## R_X86_64_GOTPCRELX
  adcl    bar@GOTPCREL(%rip), %eax
  addl    bar@GOTPCREL(%rip), %ebx
  andl    bar@GOTPCREL(%rip), %ecx
  cmpl    bar@GOTPCREL(%rip), %edx
  orl     bar@GOTPCREL(%rip), %edi
  sbbl    bar@GOTPCREL(%rip), %esi
  subl    bar@GOTPCREL(%rip), %ebp
  xorl    bar@GOTPCREL(%rip), %r8d
  testl   %r15d, bar@GOTPCREL(%rip)

## R_X86_64_REX_GOTPCRELX
  adcq    bar@GOTPCREL(%rip), %rax
  addq    bar@GOTPCREL(%rip), %rbx
  andq    bar@GOTPCREL(%rip), %rcx
  cmpq    bar@GOTPCREL(%rip), %rdx
  orq     bar@GOTPCREL(%rip), %rdi
  sbbq    bar@GOTPCREL(%rip), %rsi
  subq    bar@GOTPCREL(%rip), %rbp
  xorq    bar@GOTPCREL(%rip), %r8
  testq   %r15, bar@GOTPCREL(%rip)
