# RUN: llvm-mc -triple=powerpc64le-unknown-unknown -filetype=obj %s 2>&1 | \
# RUN: FileCheck %s -check-prefix=MC
# RUN: llvm-mc -triple=powerpc64le-unknown-unknown -filetype=obj %s | \
# RUN: llvm-readobj -r - | FileCheck %s -check-prefix=READOBJ
# RUN: llvm-mc -triple=powerpc64-unknown-unknown -filetype=obj %s 2>&1 | \
# RUN: FileCheck %s -check-prefix=MC
# RUN: llvm-mc -triple=powerpc64-unknown-unknown -filetype=obj %s | \
# RUN: llvm-readobj -r - | FileCheck %s -check-prefix=READOBJ
# This test checks that on Power PC we can correctly convert @pcrel and
# @got@pcrel into R_PPC64_PCREL34 and R_PPC64_GOT_PCREL34.
# MC-NOT: error: invalid variant
# READOBJ: 0x0 R_PPC64_PCREL34 locvalue 0x0
# READOBJ-NEXT: 0x20 R_PPC64_GOT_PCREL34 evalue 0x0
.text
.abiversion 2
.globl local # -- Begin function local
.p2align 4
.type local,@function
local: # @local
.Llocal$local:
.Lfunc_begin0:
# %bb.0: # %entry
plwa 3, locvalue@PCREL(0), 1
blr
.long 0
.quad 0
.Lfunc_end0:
.size local, .Lfunc_end0-.Lfunc_begin0
# -- End function
.globl external # -- Begin function external
.p2align 4
.type external,@function
external: # @external
.Lexternal$local:
.Lfunc_begin1:
# %bb.0: # %entry
pld 3, evalue@got@pcrel(0), 1
lwa 3, 0(3)
blr
.long 0
.quad 0
.Lfunc_end1:
.size external, .Lfunc_end1-.Lfunc_begin1
# -- End function
.type locvalue,@object # @locvalue
.section .bss,"aw",@nobits
.globl locvalue
.p2align 2
locvalue:
.Llocvalue$local:
.long 0 # 0x0
.size locvalue, 4