1// This test case will cause an internal EK_GPRel64BlockAddress to be
2// produced. This was not handled for direct object and an assertion
3// to occur. This is a variation on test case test/CodeGen/Mips/do_switch.ll
4
5// RUN: llvm-mc < %s -filetype=obj -triple=mips64-pc-linux -mcpu=mips64 -target-abi=n64
6
7	.text
8	.abicalls
9	.section	.mdebug.abi64,"",@progbits
10	.file	"/home/espindola/llvm/llvm/test/MC/Mips/do_switch.ll"
11	.text
12	.globl	main
13	.align	3
14	.type	main,@function
15	.set	nomips16
16	.ent	main
17main:                                   # @main
18	.frame	$sp,16,$ra
19	.mask 	0x00000000,0
20	.fmask	0x00000000,0
21	.set	noreorder
22	.set	nomacro
23	.set	noat
24# %bb.0:                                # %entry
25	daddiu	$sp, $sp, -16
26	lui	$1, %hi(%neg(%gp_rel(main)))
27	daddu	$2, $1, $25
28	addiu	$1, $zero, 2
29	sw	$1, 12($sp)
30	lw	$1, 12($sp)
31	sltiu	$4, $1, 4
32	dsll	$3, $1, 32
33	bnez	$4, $BB0_2
34	nop
35$BB0_1:                                 # %bb4
36	addiu	$2, $zero, 4
37	jr	$ra
38	daddiu	$sp, $sp, 16
39$BB0_2:                                 # %entry
40	daddiu	$1, $2, %lo(%neg(%gp_rel(main)))
41	dsrl	$2, $3, 32
42	daddiu	$3, $zero, 8
43	dmult	$2, $3
44	mflo	$2
45	ld	$3, %got_page($JTI0_0)($1)
46	daddu	$2, $2, $3
47	ld	$2, %got_ofst($JTI0_0)($2)
48	daddu	$1, $2, $1
49	jr	$1
50	nop
51$BB0_3:                                 # %bb5
52	addiu	$2, $zero, 1
53	jr	$ra
54	daddiu	$sp, $sp, 16
55$BB0_4:                                 # %bb1
56	addiu	$2, $zero, 2
57	jr	$ra
58	daddiu	$sp, $sp, 16
59$BB0_5:                                 # %bb2
60	addiu	$2, $zero, 0
61	jr	$ra
62	daddiu	$sp, $sp, 16
63$BB0_6:                                 # %bb3
64	addiu	$2, $zero, 3
65	jr	$ra
66	daddiu	$sp, $sp, 16
67	.set	at
68	.set	macro
69	.set	reorder
70	.end	main
71$tmp0:
72	.size	main, ($tmp0)-main
73	.section	.rodata,"a",@progbits
74	.align	3
75$JTI0_0:
76	.gpdword	($BB0_3)
77	.gpdword	($BB0_4)
78	.gpdword	($BB0_5)
79	.gpdword	($BB0_6)
80
81
82	.text
83