xref: /aosp_15_r20/external/llvm/test/CodeGen/X86/emutls.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -emulated-tls -march=x86 -mtriple=i386-linux-gnu | FileCheck -check-prefix=X32 %s
2*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -emulated-tls -march=x86-64 -mtriple=x86_64-linux-gnu | FileCheck -check-prefix=X64 %s
3*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -emulated-tls -march=x86 -mtriple=x86-linux-android | FileCheck -check-prefix=X32 %s
4*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -emulated-tls -march=x86-64 -mtriple=x86_64-linux-android | FileCheck -check-prefix=X64 %s
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Worker; Copied from tls.ll; emulated TLS model is not implemented
7*9880d681SAndroid Build Coastguard Worker; for *-pc-win32 and *-pc-winows targets yet.
8*9880d681SAndroid Build Coastguard Worker
9*9880d681SAndroid Build Coastguard Worker; Use my_emutls_get_address like __emutls_get_address.
10*9880d681SAndroid Build Coastguard Worker@my_emutls_v_xyz = external global i8*, align 4
11*9880d681SAndroid Build Coastguard Workerdeclare i8* @my_emutls_get_address(i8*)
12*9880d681SAndroid Build Coastguard Worker
13*9880d681SAndroid Build Coastguard Workerdefine i32 @my_get_xyz() {
14*9880d681SAndroid Build Coastguard Worker; X32-LABEL: my_get_xyz:
15*9880d681SAndroid Build Coastguard Worker; X32:         movl $my_emutls_v_xyz, (%esp)
16*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    calll my_emutls_get_address
17*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    movl (%eax), %eax
18*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    addl $12, %esp
19*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    retl
20*9880d681SAndroid Build Coastguard Worker; X64-LABEL: my_get_xyz:
21*9880d681SAndroid Build Coastguard Worker; X64:         movl $my_emutls_v_xyz, %edi
22*9880d681SAndroid Build Coastguard Worker; X64-NEXT:    callq my_emutls_get_address
23*9880d681SAndroid Build Coastguard Worker; X64-NEXT:    movl (%rax), %eax
24*9880d681SAndroid Build Coastguard Worker; X64-NEXT:    popq %rcx
25*9880d681SAndroid Build Coastguard Worker; X64-NEXT:    retq
26*9880d681SAndroid Build Coastguard Worker
27*9880d681SAndroid Build Coastguard Workerentry:
28*9880d681SAndroid Build Coastguard Worker  %call = call i8* @my_emutls_get_address(i8* bitcast (i8** @my_emutls_v_xyz to i8*))
29*9880d681SAndroid Build Coastguard Worker  %0 = bitcast i8* %call to i32*
30*9880d681SAndroid Build Coastguard Worker  %1 = load i32, i32* %0, align 4
31*9880d681SAndroid Build Coastguard Worker  ret i32 %1
32*9880d681SAndroid Build Coastguard Worker}
33*9880d681SAndroid Build Coastguard Worker
34*9880d681SAndroid Build Coastguard Worker@i1 = thread_local global i32 15
35*9880d681SAndroid Build Coastguard Worker@i2 = external thread_local global i32
36*9880d681SAndroid Build Coastguard Worker@i3 = internal thread_local global i32 15
37*9880d681SAndroid Build Coastguard Worker@i4 = hidden thread_local global i32 15
38*9880d681SAndroid Build Coastguard Worker@i5 = external hidden thread_local global i32
39*9880d681SAndroid Build Coastguard Worker@s1 = thread_local global i16 15
40*9880d681SAndroid Build Coastguard Worker@b1 = thread_local global i8 0
41*9880d681SAndroid Build Coastguard Worker
42*9880d681SAndroid Build Coastguard Workerdefine i32 @f1() {
43*9880d681SAndroid Build Coastguard Worker; X32-LABEL: f1:
44*9880d681SAndroid Build Coastguard Worker; X32:         movl $__emutls_v.i1, (%esp)
45*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    calll __emutls_get_address
46*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    movl (%eax), %eax
47*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    addl $12, %esp
48*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    retl
49*9880d681SAndroid Build Coastguard Worker; X64-LABEL: f1:
50*9880d681SAndroid Build Coastguard Worker; X64:         movl $__emutls_v.i1, %edi
51*9880d681SAndroid Build Coastguard Worker; X64-NEXT:    callq __emutls_get_address
52*9880d681SAndroid Build Coastguard Worker; X64-NEXT:    movl (%rax), %eax
53*9880d681SAndroid Build Coastguard Worker; X64-NEXT:    popq %rcx
54*9880d681SAndroid Build Coastguard Worker; X64-NEXT:    retq
55*9880d681SAndroid Build Coastguard Worker
56*9880d681SAndroid Build Coastguard Workerentry:
57*9880d681SAndroid Build Coastguard Worker  %tmp1 = load i32, i32* @i1
58*9880d681SAndroid Build Coastguard Worker  ret i32 %tmp1
59*9880d681SAndroid Build Coastguard Worker}
60*9880d681SAndroid Build Coastguard Worker
61*9880d681SAndroid Build Coastguard Workerdefine i32* @f2() {
62*9880d681SAndroid Build Coastguard Worker; X32-LABEL: f2:
63*9880d681SAndroid Build Coastguard Worker; X32:         movl $__emutls_v.i1, (%esp)
64*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    calll __emutls_get_address
65*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    addl $12, %esp
66*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    retl
67*9880d681SAndroid Build Coastguard Worker; X64-LABEL: f2:
68*9880d681SAndroid Build Coastguard Worker; X64:         movl $__emutls_v.i1, %edi
69*9880d681SAndroid Build Coastguard Worker; X64-NEXT:    callq __emutls_get_address
70*9880d681SAndroid Build Coastguard Worker; X64-NEXT:    popq %rcx
71*9880d681SAndroid Build Coastguard Worker; X64-NEXT:    retq
72*9880d681SAndroid Build Coastguard Worker
73*9880d681SAndroid Build Coastguard Workerentry:
74*9880d681SAndroid Build Coastguard Worker  ret i32* @i1
75*9880d681SAndroid Build Coastguard Worker}
76*9880d681SAndroid Build Coastguard Worker
77*9880d681SAndroid Build Coastguard Workerdefine i32 @f3() nounwind {
78*9880d681SAndroid Build Coastguard Worker; X32-LABEL: f3:
79*9880d681SAndroid Build Coastguard Worker; X32:         movl $__emutls_v.i2, (%esp)
80*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    calll __emutls_get_address
81*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    movl (%eax), %eax
82*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    addl $12, %esp
83*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    retl
84*9880d681SAndroid Build Coastguard Worker
85*9880d681SAndroid Build Coastguard Workerentry:
86*9880d681SAndroid Build Coastguard Worker  %tmp1 = load i32, i32* @i2
87*9880d681SAndroid Build Coastguard Worker  ret i32 %tmp1
88*9880d681SAndroid Build Coastguard Worker}
89*9880d681SAndroid Build Coastguard Worker
90*9880d681SAndroid Build Coastguard Workerdefine i32* @f4() {
91*9880d681SAndroid Build Coastguard Worker; X32-LABEL: f4:
92*9880d681SAndroid Build Coastguard Worker; X32:         movl $__emutls_v.i2, (%esp)
93*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    calll __emutls_get_address
94*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    addl $12, %esp
95*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    retl
96*9880d681SAndroid Build Coastguard Worker
97*9880d681SAndroid Build Coastguard Workerentry:
98*9880d681SAndroid Build Coastguard Worker  ret i32* @i2
99*9880d681SAndroid Build Coastguard Worker}
100*9880d681SAndroid Build Coastguard Worker
101*9880d681SAndroid Build Coastguard Workerdefine i32 @f5() nounwind {
102*9880d681SAndroid Build Coastguard Worker; X32-LABEL: f5:
103*9880d681SAndroid Build Coastguard Worker; X32:         movl $__emutls_v.i3, (%esp)
104*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    calll __emutls_get_address
105*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    movl (%eax), %eax
106*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    addl $12, %esp
107*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    retl
108*9880d681SAndroid Build Coastguard Worker
109*9880d681SAndroid Build Coastguard Workerentry:
110*9880d681SAndroid Build Coastguard Worker  %tmp1 = load i32, i32* @i3
111*9880d681SAndroid Build Coastguard Worker  ret i32 %tmp1
112*9880d681SAndroid Build Coastguard Worker}
113*9880d681SAndroid Build Coastguard Worker
114*9880d681SAndroid Build Coastguard Workerdefine i32* @f6() {
115*9880d681SAndroid Build Coastguard Worker; X32-LABEL: f6:
116*9880d681SAndroid Build Coastguard Worker; X32:         movl $__emutls_v.i3, (%esp)
117*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    calll __emutls_get_address
118*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    addl $12, %esp
119*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    retl
120*9880d681SAndroid Build Coastguard Worker
121*9880d681SAndroid Build Coastguard Workerentry:
122*9880d681SAndroid Build Coastguard Worker  ret i32* @i3
123*9880d681SAndroid Build Coastguard Worker}
124*9880d681SAndroid Build Coastguard Worker
125*9880d681SAndroid Build Coastguard Workerdefine i32 @f7() {
126*9880d681SAndroid Build Coastguard Worker; X32-LABEL: f7:
127*9880d681SAndroid Build Coastguard Worker; X32:         movl $__emutls_v.i4, (%esp)
128*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    calll __emutls_get_address
129*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    movl (%eax), %eax
130*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    addl $12, %esp
131*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    retl
132*9880d681SAndroid Build Coastguard Worker
133*9880d681SAndroid Build Coastguard Workerentry:
134*9880d681SAndroid Build Coastguard Worker  %tmp1 = load i32, i32* @i4
135*9880d681SAndroid Build Coastguard Worker  ret i32 %tmp1
136*9880d681SAndroid Build Coastguard Worker}
137*9880d681SAndroid Build Coastguard Worker
138*9880d681SAndroid Build Coastguard Workerdefine i32* @f8() {
139*9880d681SAndroid Build Coastguard Worker; X32-LABEL: f8:
140*9880d681SAndroid Build Coastguard Worker; X32:         movl $__emutls_v.i4, (%esp)
141*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    calll __emutls_get_address
142*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    addl $12, %esp
143*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    retl
144*9880d681SAndroid Build Coastguard Worker
145*9880d681SAndroid Build Coastguard Workerentry:
146*9880d681SAndroid Build Coastguard Worker  ret i32* @i4
147*9880d681SAndroid Build Coastguard Worker}
148*9880d681SAndroid Build Coastguard Worker
149*9880d681SAndroid Build Coastguard Workerdefine i32 @f9() {
150*9880d681SAndroid Build Coastguard Worker; X32-LABEL: f9:
151*9880d681SAndroid Build Coastguard Worker; X32:         movl $__emutls_v.i5, (%esp)
152*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    calll __emutls_get_address
153*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    movl (%eax), %eax
154*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    addl $12, %esp
155*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    retl
156*9880d681SAndroid Build Coastguard Worker
157*9880d681SAndroid Build Coastguard Workerentry:
158*9880d681SAndroid Build Coastguard Worker  %tmp1 = load i32, i32* @i5
159*9880d681SAndroid Build Coastguard Worker  ret i32 %tmp1
160*9880d681SAndroid Build Coastguard Worker}
161*9880d681SAndroid Build Coastguard Worker
162*9880d681SAndroid Build Coastguard Workerdefine i32* @f10() {
163*9880d681SAndroid Build Coastguard Worker; X32-LABEL: f10:
164*9880d681SAndroid Build Coastguard Worker; X32:         movl $__emutls_v.i5, (%esp)
165*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    calll __emutls_get_address
166*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    addl $12, %esp
167*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    retl
168*9880d681SAndroid Build Coastguard Worker
169*9880d681SAndroid Build Coastguard Workerentry:
170*9880d681SAndroid Build Coastguard Worker  ret i32* @i5
171*9880d681SAndroid Build Coastguard Worker}
172*9880d681SAndroid Build Coastguard Worker
173*9880d681SAndroid Build Coastguard Workerdefine i16 @f11() {
174*9880d681SAndroid Build Coastguard Worker; X32-LABEL: f11:
175*9880d681SAndroid Build Coastguard Worker; X32:         movl $__emutls_v.s1, (%esp)
176*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    calll __emutls_get_address
177*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    movzwl (%eax), %eax
178*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    addl $12, %esp
179*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    retl
180*9880d681SAndroid Build Coastguard Worker
181*9880d681SAndroid Build Coastguard Workerentry:
182*9880d681SAndroid Build Coastguard Worker  %tmp1 = load i16, i16* @s1
183*9880d681SAndroid Build Coastguard Worker  ret i16 %tmp1
184*9880d681SAndroid Build Coastguard Worker}
185*9880d681SAndroid Build Coastguard Worker
186*9880d681SAndroid Build Coastguard Workerdefine i32 @f12() {
187*9880d681SAndroid Build Coastguard Worker; X32-LABEL: f12:
188*9880d681SAndroid Build Coastguard Worker; X32:         movl $__emutls_v.s1, (%esp)
189*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    calll __emutls_get_address
190*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    movswl (%eax), %eax
191*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    addl $12, %esp
192*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    retl
193*9880d681SAndroid Build Coastguard Worker
194*9880d681SAndroid Build Coastguard Workerentry:
195*9880d681SAndroid Build Coastguard Worker  %tmp1 = load i16, i16* @s1
196*9880d681SAndroid Build Coastguard Worker  %tmp2 = sext i16 %tmp1 to i32
197*9880d681SAndroid Build Coastguard Worker  ret i32 %tmp2
198*9880d681SAndroid Build Coastguard Worker}
199*9880d681SAndroid Build Coastguard Worker
200*9880d681SAndroid Build Coastguard Workerdefine i8 @f13() {
201*9880d681SAndroid Build Coastguard Worker; X32-LABEL: f13:
202*9880d681SAndroid Build Coastguard Worker; X32:         movl $__emutls_v.b1, (%esp)
203*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    calll __emutls_get_address
204*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    movb (%eax), %al
205*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    addl $12, %esp
206*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    retl
207*9880d681SAndroid Build Coastguard Worker
208*9880d681SAndroid Build Coastguard Workerentry:
209*9880d681SAndroid Build Coastguard Worker  %tmp1 = load i8, i8* @b1
210*9880d681SAndroid Build Coastguard Worker  ret i8 %tmp1
211*9880d681SAndroid Build Coastguard Worker}
212*9880d681SAndroid Build Coastguard Worker
213*9880d681SAndroid Build Coastguard Workerdefine i32 @f14() {
214*9880d681SAndroid Build Coastguard Worker; X32-LABEL: f14:
215*9880d681SAndroid Build Coastguard Worker; X32:         movl $__emutls_v.b1, (%esp)
216*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    calll __emutls_get_address
217*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    movsbl (%eax), %eax
218*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    addl $12, %esp
219*9880d681SAndroid Build Coastguard Worker; X32-NEXT:    retl
220*9880d681SAndroid Build Coastguard Worker
221*9880d681SAndroid Build Coastguard Workerentry:
222*9880d681SAndroid Build Coastguard Worker  %tmp1 = load i8, i8* @b1
223*9880d681SAndroid Build Coastguard Worker  %tmp2 = sext i8 %tmp1 to i32
224*9880d681SAndroid Build Coastguard Worker  ret i32 %tmp2
225*9880d681SAndroid Build Coastguard Worker}
226*9880d681SAndroid Build Coastguard Worker
227*9880d681SAndroid Build Coastguard Worker;;;;;;;;;;;;;; 32-bit __emutls_v. and __emutls_t.
228*9880d681SAndroid Build Coastguard Worker
229*9880d681SAndroid Build Coastguard Worker; X32       .section .data.rel.local,
230*9880d681SAndroid Build Coastguard Worker; X32-LABEL: __emutls_v.i1:
231*9880d681SAndroid Build Coastguard Worker; X32-NEXT: .long 4
232*9880d681SAndroid Build Coastguard Worker; X32-NEXT: .long 4
233*9880d681SAndroid Build Coastguard Worker; X32-NEXT: .long 0
234*9880d681SAndroid Build Coastguard Worker; X32-NEXT: .long __emutls_t.i1
235*9880d681SAndroid Build Coastguard Worker
236*9880d681SAndroid Build Coastguard Worker; X32       .section .rodata,
237*9880d681SAndroid Build Coastguard Worker; X32-LABEL: __emutls_t.i1:
238*9880d681SAndroid Build Coastguard Worker; X32-NEXT: .long 15
239*9880d681SAndroid Build Coastguard Worker
240*9880d681SAndroid Build Coastguard Worker; X32-NOT:   __emutls_v.i2
241*9880d681SAndroid Build Coastguard Worker
242*9880d681SAndroid Build Coastguard Worker; X32       .section .data.rel.local,
243*9880d681SAndroid Build Coastguard Worker; X32-LABEL: __emutls_v.i3:
244*9880d681SAndroid Build Coastguard Worker; X32-NEXT: .long 4
245*9880d681SAndroid Build Coastguard Worker; X32-NEXT: .long 4
246*9880d681SAndroid Build Coastguard Worker; X32-NEXT: .long 0
247*9880d681SAndroid Build Coastguard Worker; X32-NEXT: .long __emutls_t.i3
248*9880d681SAndroid Build Coastguard Worker
249*9880d681SAndroid Build Coastguard Worker; X32       .section .rodata,
250*9880d681SAndroid Build Coastguard Worker; X32-LABEL: __emutls_t.i3:
251*9880d681SAndroid Build Coastguard Worker; X32-NEXT: .long 15
252*9880d681SAndroid Build Coastguard Worker
253*9880d681SAndroid Build Coastguard Worker; X32       .section .data.rel.local,
254*9880d681SAndroid Build Coastguard Worker; X32-LABEL: __emutls_v.i4:
255*9880d681SAndroid Build Coastguard Worker; X32-NEXT: .long 4
256*9880d681SAndroid Build Coastguard Worker; X32-NEXT: .long 4
257*9880d681SAndroid Build Coastguard Worker; X32-NEXT: .long 0
258*9880d681SAndroid Build Coastguard Worker; X32-NEXT: .long __emutls_t.i4
259*9880d681SAndroid Build Coastguard Worker
260*9880d681SAndroid Build Coastguard Worker; X32       .section .rodata,
261*9880d681SAndroid Build Coastguard Worker; X32-LABEL: __emutls_t.i4:
262*9880d681SAndroid Build Coastguard Worker; X32-NEXT: .long 15
263*9880d681SAndroid Build Coastguard Worker
264*9880d681SAndroid Build Coastguard Worker; X32-NOT:   __emutls_v.i5:
265*9880d681SAndroid Build Coastguard Worker; X32       .hidden __emutls_v.i5
266*9880d681SAndroid Build Coastguard Worker; X32-NOT:   __emutls_v.i5:
267*9880d681SAndroid Build Coastguard Worker
268*9880d681SAndroid Build Coastguard Worker; X32 .section .data.rel.local,
269*9880d681SAndroid Build Coastguard Worker; X32-LABEL: __emutls_v.s1:
270*9880d681SAndroid Build Coastguard Worker; X32-NEXT: .long 2
271*9880d681SAndroid Build Coastguard Worker; X32-NEXT: .long 2
272*9880d681SAndroid Build Coastguard Worker; X32-NEXT: .long 0
273*9880d681SAndroid Build Coastguard Worker; X32-NEXT: .long __emutls_t.s1
274*9880d681SAndroid Build Coastguard Worker
275*9880d681SAndroid Build Coastguard Worker; X32 .section .rodata,
276*9880d681SAndroid Build Coastguard Worker; X32-LABEL: __emutls_t.s1:
277*9880d681SAndroid Build Coastguard Worker; X32-NEXT: .short 15
278*9880d681SAndroid Build Coastguard Worker
279*9880d681SAndroid Build Coastguard Worker; X32 .section .data.rel.local,
280*9880d681SAndroid Build Coastguard Worker; X32-LABEL: __emutls_v.b1:
281*9880d681SAndroid Build Coastguard Worker; X32-NEXT: .long 1
282*9880d681SAndroid Build Coastguard Worker; X32-NEXT: .long 1
283*9880d681SAndroid Build Coastguard Worker; X32-NEXT: .long 0
284*9880d681SAndroid Build Coastguard Worker; X32-NEXT: .long 0
285*9880d681SAndroid Build Coastguard Worker
286*9880d681SAndroid Build Coastguard Worker; X32-NOT:   __emutls_t.b1
287*9880d681SAndroid Build Coastguard Worker
288*9880d681SAndroid Build Coastguard Worker;;;;;;;;;;;;;; 64-bit __emutls_v. and __emutls_t.
289*9880d681SAndroid Build Coastguard Worker
290*9880d681SAndroid Build Coastguard Worker; X64       .section .data.rel.local,
291*9880d681SAndroid Build Coastguard Worker; X64-LABEL: __emutls_v.i1:
292*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .quad 4
293*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .quad 4
294*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .quad 0
295*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .quad __emutls_t.i1
296*9880d681SAndroid Build Coastguard Worker
297*9880d681SAndroid Build Coastguard Worker; X64       .section .rodata,
298*9880d681SAndroid Build Coastguard Worker; X64-LABEL: __emutls_t.i1:
299*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .long 15
300*9880d681SAndroid Build Coastguard Worker
301*9880d681SAndroid Build Coastguard Worker; X64-NOT:   __emutls_v.i2
302*9880d681SAndroid Build Coastguard Worker
303*9880d681SAndroid Build Coastguard Worker; X64       .section .data.rel.local,
304*9880d681SAndroid Build Coastguard Worker; X64-LABEL: __emutls_v.i3:
305*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .quad 4
306*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .quad 4
307*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .quad 0
308*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .quad __emutls_t.i3
309*9880d681SAndroid Build Coastguard Worker
310*9880d681SAndroid Build Coastguard Worker; X64       .section .rodata,
311*9880d681SAndroid Build Coastguard Worker; X64-LABEL: __emutls_t.i3:
312*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .long 15
313*9880d681SAndroid Build Coastguard Worker
314*9880d681SAndroid Build Coastguard Worker; X64       .section .data.rel.local,
315*9880d681SAndroid Build Coastguard Worker; X64-LABEL: __emutls_v.i4:
316*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .quad 4
317*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .quad 4
318*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .quad 0
319*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .quad __emutls_t.i4
320*9880d681SAndroid Build Coastguard Worker
321*9880d681SAndroid Build Coastguard Worker; X64       .section .rodata,
322*9880d681SAndroid Build Coastguard Worker; X64-LABEL: __emutls_t.i4:
323*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .long 15
324*9880d681SAndroid Build Coastguard Worker
325*9880d681SAndroid Build Coastguard Worker; X64-NOT:   __emutls_v.i5:
326*9880d681SAndroid Build Coastguard Worker; X64       .hidden __emutls_v.i5
327*9880d681SAndroid Build Coastguard Worker; X64-NOT:   __emutls_v.i5:
328*9880d681SAndroid Build Coastguard Worker
329*9880d681SAndroid Build Coastguard Worker; X64       .section .data.rel.local,
330*9880d681SAndroid Build Coastguard Worker; X64-LABEL: __emutls_v.s1:
331*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .quad 2
332*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .quad 2
333*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .quad 0
334*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .quad __emutls_t.s1
335*9880d681SAndroid Build Coastguard Worker
336*9880d681SAndroid Build Coastguard Worker; X64       .section .rodata,
337*9880d681SAndroid Build Coastguard Worker; X64-LABEL: __emutls_t.s1:
338*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .short 15
339*9880d681SAndroid Build Coastguard Worker
340*9880d681SAndroid Build Coastguard Worker; X64       .section .data.rel.local,
341*9880d681SAndroid Build Coastguard Worker; X64-LABEL: __emutls_v.b1:
342*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .quad 1
343*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .quad 1
344*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .quad 0
345*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .quad 0
346*9880d681SAndroid Build Coastguard Worker
347*9880d681SAndroid Build Coastguard Worker; X64-NOT:  __emutls_t.b1
348