# RUN: llvm-mc -triple=powerpc-unknown-linux-gnu -filetype=obj -o %T/ppc32_elf_rel_addr16.o %s # RUN: llvm-rtdyld -triple=powerpc-unknown-linux-gnu -verify -check=%s %T/ppc32_elf_rel_addr16.o .text .file "ppc32_elf_rel_addr16.ll" .globl lookup .align 2 .type lookup,@function lookup: # @lookup .Lfunc_begin0: # BB#0: stw 31, -4(1) stwu 1, -16(1) insn_hi: # Check the higher 16-bits of the symbol's absolute address # rtdyld-check: decode_operand(insn_hi, 1) = elements[31:16] lis 4, elements@ha slwi 3, 3, 2 mr 31, 1 insn_lo: # Check the lower 16-bits of the symbol's absolute address # rtdyld-check: decode_operand(insn_lo, 2) = elements[15:0] la 4, elements@l(4) lwzx 3, 4, 3 addi 1, 1, 16 lwz 31, -4(1) blr .Lfunc_end0: .size lookup, .Lfunc_end0-.Lfunc_begin0 .type elements,@object # @elements .data .globl elements .align 2 elements: .long 14 # 0xe .long 4 # 0x4 .long 1 # 0x1 .long 3 # 0x3 .long 13 # 0xd .long 0 # 0x0 .long 32 # 0x20 .long 334 # 0x14e .size elements, 32 .ident "clang version 3.7.0 " .section ".note.GNU-stack","",@progbits