Compiler projects using llvm
// This addresses bug 14456. We were not writing
// out the addend to the gprel16 relocation. The
// addend is stored in the instruction immediate
// field.

// RUN: llvm-mc -mcpu=mips32r2 -triple=mipsel-pc-linux -filetype=obj %s -o - \
// RUN: | llvm-objdump -d - | FileCheck %s
// RUN: llvm-mc -mcpu=mips32r2 -triple=mips-pc-linux -filetype=obj %s -o - \
// RUN: | llvm-objdump -d - | FileCheck %s

	.text
	.abicalls
	.option	pic0
	.section	.mdebug.abi32,"",@progbits
	.file	"/home/espindola/llvm/llvm/test/MC/Mips/mips_gprel16.ll"
	.text
	.globl	testvar1
	.align	2
	.type	testvar1,@function
	.set	nomips16
	.ent	testvar1
testvar1:                               # @testvar1
	.frame	$sp,0,$ra
	.mask 	0x00000000,0
	.fmask	0x00000000,0
	.set	noreorder
	.set	nomacro
	.set	noat
# %bb.0:                                # %entry
// CHECK: lw ${{[0-9]+}}, 0($gp)
	lw	$1, %gp_rel(var1)($gp)
	jr	$ra
	sltu	$2, $zero, $1
	.set	at
	.set	macro
	.set	reorder
	.end	testvar1
$tmp0:
	.size	testvar1, ($tmp0)-testvar1

	.globl	testvar2
	.align	2
	.type	testvar2,@function
	.set	nomips16
	.ent	testvar2
testvar2:                               # @testvar2
	.frame	$sp,0,$ra
	.mask 	0x00000000,0
	.fmask	0x00000000,0
	.set	noreorder
	.set	nomacro
	.set	noat
# %bb.0:                                # %entry
// CHECK: lw ${{[0-9]+}}, 4($gp)
	lw	$1, %gp_rel(var2)($gp)
	jr	$ra
	sltu	$2, $zero, $1
	.set	at
	.set	macro
	.set	reorder
	.end	testvar2
$tmp1:
	.size	testvar2, ($tmp1)-testvar2

	.type	var1,@object            # @var1
	.local	var1
	.comm	var1,4,4
	.type	var2,@object            # @var2
	.local	var2
	.comm	var2,4,4