136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// This test case will cause an internal EK_GPRel64BlockAddress to be
236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// produced. This was not handled for direct object and an assertion
336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// to occur. This is a variation on test case test/CodeGen/Mips/do_switch.ll
436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// RUN: llvm-mc < %s -filetype=obj -triple=mips64-pc-linux -relocation-model=pic -mcpu=mips64 -mattr=n64
636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.text
836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.abicalls
936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.section	.mdebug.abi64,"",@progbits
1036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.file	"/home/espindola/llvm/llvm/test/MC/Mips/do_switch.ll"
1136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.text
1236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.globl	main
1336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.align	3
1436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.type	main,@function
1536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.set	nomips16
1636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.ent	main
1736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesmain:                                   # @main
1836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.frame	$sp,16,$ra
1936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.mask 	0x00000000,0
2036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.fmask	0x00000000,0
2136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.set	noreorder
2236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.set	nomacro
2336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.set	noat
2436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# BB#0:                                 # %entry
2536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	daddiu	$sp, $sp, -16
2636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	lui	$1, %hi(%neg(%gp_rel(main)))
2736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	daddu	$2, $1, $25
2836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	addiu	$1, $zero, 2
2936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	sw	$1, 12($sp)
3036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	lw	$1, 12($sp)
3136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	sltiu	$4, $1, 4
3236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	dsll	$3, $1, 32
3336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	bnez	$4, $BB0_2
3436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	nop
3536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines$BB0_1:                                 # %bb4
3636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	addiu	$2, $zero, 4
3736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	jr	$ra
3836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	daddiu	$sp, $sp, 16
3936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines$BB0_2:                                 # %entry
4036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	daddiu	$1, $2, %lo(%neg(%gp_rel(main)))
4136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	dsrl	$2, $3, 32
4236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	daddiu	$3, $zero, 8
4336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	dmult	$2, $3
4436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	mflo	$2
4536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	ld	$3, %got_page($JTI0_0)($1)
4636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	daddu	$2, $2, $3
4736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	ld	$2, %got_ofst($JTI0_0)($2)
4836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	daddu	$1, $2, $1
4936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	jr	$1
5036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	nop
5136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines$BB0_3:                                 # %bb5
5236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	addiu	$2, $zero, 1
5336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	jr	$ra
5436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	daddiu	$sp, $sp, 16
5536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines$BB0_4:                                 # %bb1
5636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	addiu	$2, $zero, 2
5736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	jr	$ra
5836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	daddiu	$sp, $sp, 16
5936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines$BB0_5:                                 # %bb2
6036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	addiu	$2, $zero, 0
6136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	jr	$ra
6236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	daddiu	$sp, $sp, 16
6336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines$BB0_6:                                 # %bb3
6436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	addiu	$2, $zero, 3
6536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	jr	$ra
6636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	daddiu	$sp, $sp, 16
6736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.set	at
6836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.set	macro
6936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.set	reorder
7036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.end	main
7136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines$tmp0:
7236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.size	main, ($tmp0)-main
7336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.section	.rodata,"a",@progbits
7436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.align	3
7536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines$JTI0_0:
7636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.gpdword	($BB0_3)
7736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.gpdword	($BB0_4)
7836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.gpdword	($BB0_5)
7936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.gpdword	($BB0_6)
8036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
8136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
8236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.text
83