1# REQUIRES: ppc
2# RUN: llvm-mc -filetype=obj -triple=ppc64le %s -o %t.o
3# RUN: ld.lld %t.o --defsym=a=0x0123456789abcdef --defsym=b=0x76543210 -o %t
4# RUN: llvm-objdump -d --no-show-raw-insn %t | FileCheck %s
5# RUN: llvm-objdump -s --no-show-raw-insn %t | FileCheck --check-prefixes=HEX,HEXLE %s
6
7# HEX-LABEL:  section .R_PPC64_ADDR32:
8# HEXLE-NEXT:   10325476
9# HEXBE-NEXT:   76543210
10.section .R_PPC64_ADDR32,"a",@progbits
11  .long b
12
13# CHECK-LABEL: <.R_PPC64_ADDR16_LO>:
14# CHECK-NEXT:    addi 4, 4, 12816
15.section .R_PPC64_ADDR16_LO,"ax",@progbits
16  addi 4, 4, b@l
17
18# CHECK-LABEL: <.R_PPC64_ADDR16_HI>:
19# CHECK-NEXT:    lis 4, 30292
20.section .R_PPC64_ADDR16_HI,"ax",@progbits
21  lis 4, b@h
22
23# CHECK-LABEL: <.R_PPC64_ADDR16_HA>:
24# CHECK-NEXT:    lis 4, 30292
25.section .R_PPC64_ADDR16_HA,"ax",@progbits
26  lis 4, b@ha
27
28# CHECK-LABEL: <.R_PPC64_ADDR16_HIGH>:
29# CHECK-NEXT:    lis 4, -30293
30.section .R_PPC64_ADDR16_HIGH,"ax",@progbits
31  lis 4, a@high
32
33# CHECK-LABEL: <.R_PPC64_ADDR16_HIGHER>:
34# CHECK-NEXT:    li 3, 17767
35.section .R_PPC64_ADDR16_HIGHER,"ax",@progbits
36  li 3, a@higher
37
38# CHECK-LABEL: <.R_PPC64_ADDR16_HIGHERA>:
39# CHECK-NEXT:    li 3, 17767
40.section .R_PPC64_ADDR16_HIGHERA,"ax",@progbits
41  li 3, a@highera
42
43# CHECK-LABEL: <.R_PPC64_ADDR16_HIGHEST>:
44# CHECK-NEXT:    li 3, 291
45.section .R_PPC64_ADDR16_HIGHEST,"ax",@progbits
46  li 3, a@highest
47
48# CHECK-LABEL: <.R_PPC64_ADDR16_HIGHESTA>:
49# CHECK-NEXT:    li 3, 291
50.section .R_PPC64_ADDR16_HIGHESTA,"ax",@progbits
51  li 3, a@highesta
52