# REQUIRES: aarch64

# RUN: llvm-mc -filetype=obj -triple=aarch64-linux-none %s -o %t.o
# RUN: ld.lld --hash-style=sysv -shared %t.o -o %t
# RUN: llvm-objdump %t -d | FileCheck %s --check-prefix=DISASM
# RUN: llvm-readobj -elf-output-style=GNU %t -t | FileCheck %s --check-prefix=SYM

# It would be much easier to understand/read this test if llvm-objdump would print
# the immediates in hex.
# IMM = hex(65540) = 0x10004
# PC = 0x10000
# As the relocation is PC-relative, IMM + PC = 0x20004 which is the VA of the
# correct symbol.

# DISASM: Disassembly of section .text:
# DISASM-NEXT: $x.0:
# DISASM-NEXT:   10000:       28 00 08 58     ldr     x8, #65540

# SYM: Symbol table '.symtab'
# SYM:  0000000000020004     0 NOTYPE  LOCAL  DEFAULT    5 patatino

  ldr x8, patatino
  .data
  .zero 4
patatino:
