1	.section ".tdata", "awT", @progbits
2	.align 16
3	.global x#, y#, z#, a#, b#, c#
4	.protected a#, b#, c#
5	.type	x#,@object
6	.size	x#,4
7x:	data4	1
8	.type	y#,@object
9	.size	y#,4
10y:	data4	2
11	.type	z#,@object
12	.size	z#,4
13z:	data4	3
14	.align	8
15	.type	a#,@object
16	.size	a#,8
17a:	data8	4
18	.type	b#,@object
19	.size	b#,8
20b:	data8	5
21	.type	c#,@object
22	.size	c#,1
23c:	data1	6
24
25	.text
26	.align 16
27	.global foo#
28	.proc foo#
29foo:
30	.prologue
31	alloc r36 = ar.pfs, 0, 5, 3, 0
32	.body
33	addl	loc0 = @ltoff(@tprel(x)), gp;;
34	ld8	loc0 = [loc0];;
35	add	loc1 = loc0, r13;;
36
37	mov	r2 = r13;;
38	addl	loc1 = @tprel(y), r2;;
39
40	mov	loc0 = gp
41	addl	out0 = @ltoff(@dtpmod(z)), gp
42	addl	out1 = @ltoff(@dtprel(z)), gp;;
43	ld8	out0 = [out0]
44	ld8	out1 = [out1]
45	br.call.sptk.many	b0 = __tls_get_addr;;
46	mov	gp = loc0;;
47
48	addl	out0 = @ltoff(@dtpmod(a)), gp
49	addl	out1 = @dtprel(a), r0;;
50	ld8	out0 = [out0]
51	br.call.sptk.many	b0 = __tls_get_addr;;
52	mov	gp = loc0;;
53
54	addl	out0 = @ltoff(@dtpmod(b)), gp
55	mov	out1 = r0;;
56	ld8	out0 = [out0]
57	br.call.sptk.many	b0 = __tls_get_addr;;
58	mov	gp = loc0
59	mov	r2 = ret0;;
60	addl	loc1 = @dtprel(b), r2
61	addl	loc2 = @dtprel(c), r2
62
63	br.ret.sptk.many b0
64	.endp foo#
65