1 ; This file tests the codegen of tls variables in AIX XCOFF object files
3 ; RUN: llc -mtriple powerpc-ibm-aix-xcoff -filetype=obj -o %t.o < %s
4 ; RUN: llvm-readobj --section-headers %t.o | FileCheck --check-prefix=SECTION %s
5 ; RUN: llvm-readobj --syms %t.o | FileCheck --check-prefixes=SYMS,SYMS-DATASECT %s
6 ; RUN: llvm-objdump -D --symbol-description %t.o | FileCheck --check-prefixes=OBJDUMP-DATASECT %s
8 ; RUN: llc -mtriple powerpc-ibm-aix-xcoff -data-sections=false -filetype=obj -o %t.o < %s
9 ; RUN: llvm-readobj --section-headers %t.o | FileCheck --check-prefix=SECTION %s
10 ; RUN: llvm-readobj --syms %t.o | FileCheck --check-prefixes=SYMS,SYMS-NODATASECT %s
11 ; RUN: llvm-objdump -D --symbol-description %t.o | FileCheck --check-prefixes=OBJDUMP-NODATASECT %s
13 ;; FIXME: currently only fileHeader and sectionHeaders are supported in XCOFF64.
15 ; SECTION: File: {{.*}}aix-tls-xcoff-variables.ll.tmp.o
16 ; SECTION-NEXT: Format: aixcoff-rs6000
17 ; SECTION-NEXT: Arch: powerpc
18 ; SECTION-NEXT: AddressSize: 32bit
19 ; SECTION-NEXT: Sections [
20 ; SECTION-NEXT: Section {
21 ; SECTION-NEXT: Index: 1
22 ; SECTION-NEXT: Name: .text
23 ; SECTION-NEXT: PhysicalAddress: 0x0
24 ; SECTION-NEXT: VirtualAddress: 0x0
25 ; SECTION-NEXT: Size: 0x4
26 ; SECTION-NEXT: RawDataOffset: 0x8C
27 ; SECTION-NEXT: RelocationPointer: 0x0
28 ; SECTION-NEXT: LineNumberPointer: 0x0
29 ; SECTION-NEXT: NumberOfRelocations: 0
30 ; SECTION-NEXT: NumberOfLineNumbers: 0
31 ; SECTION-NEXT: Type: STYP_TEXT (0x20)
33 ; SECTION-NEXT: Section {
34 ; SECTION-NEXT: Index: 2
35 ; SECTION-NEXT: Name: .tdata
36 ; SECTION-NEXT: PhysicalAddress: 0x0
37 ; SECTION-NEXT: VirtualAddress: 0x0
38 ; SECTION-NEXT: Size: 0x30
39 ; SECTION-NEXT: RawDataOffset: 0x90
40 ; SECTION-NEXT: RelocationPointer: 0x0
41 ; SECTION-NEXT: LineNumberPointer: 0x0
42 ; SECTION-NEXT: NumberOfRelocations: 0
43 ; SECTION-NEXT: NumberOfLineNumbers: 0
44 ; SECTION-NEXT: Type: STYP_TDATA (0x400)
46 ; SECTION-NEXT: Section {
47 ; SECTION-NEXT: Index: 3
48 ; SECTION-NEXT: Name: .tbss
49 ; SECTION-NEXT: PhysicalAddress: 0x30
50 ; SECTION-NEXT: VirtualAddress: 0x30
51 ; SECTION-NEXT: Size: 0x18
52 ; SECTION-NEXT: RawDataOffset: 0x0
53 ; SECTION-NEXT: RelocationPointer: 0x0
54 ; SECTION-NEXT: LineNumberPointer: 0x0
55 ; SECTION-NEXT: NumberOfRelocations: 0
56 ; SECTION-NEXT: NumberOfLineNumbers: 0
57 ; SECTION-NEXT: Type: STYP_TBSS (0x800)
62 ; SYMS: File: {{.*}}aix-tls-xcoff-variables.ll.tmp.o
63 ; SYMS-NEXT: Format: aixcoff-rs6000
64 ; SYMS-NEXT: Arch: powerpc
65 ; SYMS-NEXT: AddressSize: 32bit
66 ; SYMS-NEXT: Symbols [
69 ; SYMS-NEXT: Name: <stdin>
70 ; SYMS-NEXT: Value (SymbolTableIndex): 0x0
71 ; SYMS-NEXT: Section: N_DEBUG
72 ; SYMS-NEXT: Source Language ID: TB_C (0x0)
73 ; SYMS-NEXT: CPU Version ID: 0x0
74 ; SYMS-NEXT: StorageClass: C_FILE (0x67)
75 ; SYMS-NEXT: NumberOfAuxEntries: 0
78 ; SYMS-NEXT: Index: [[#INDX:]]
79 ; SYMS-NEXT: Name: tls_global_int_external_uninitialized
80 ; SYMS-NEXT: Value (RelocatableAddress): 0x0
81 ; SYMS-NEXT: Section: N_UNDEF
82 ; SYMS-NEXT: Type: 0x0
83 ; SYMS-NEXT: StorageClass: C_EXT (0x2)
84 ; SYMS-NEXT: NumberOfAuxEntries: 1
85 ; SYMS-NEXT: CSECT Auxiliary Entry {
86 ; SYMS-NEXT: Index: [[#INDX+1]]
87 ; SYMS-NEXT: SectionLen: 0
88 ; SYMS-NEXT: ParameterHashIndex: 0x0
89 ; SYMS-NEXT: TypeChkSectNum: 0x0
90 ; SYMS-NEXT: SymbolAlignmentLog2: 0
91 ; SYMS-NEXT: SymbolType: XTY_ER (0x0)
92 ; SYMS-NEXT: StorageMappingClass: XMC_UL (0x15)
93 ; SYMS-NEXT: StabInfoIndex: 0x0
94 ; SYMS-NEXT: StabSectNum: 0x0
98 ; SYMS-NEXT: Index: [[#INDX+2]]
99 ; SYMS-NEXT: Name: tls_global_double_external_uninitialized
100 ; SYMS-NEXT: Value (RelocatableAddress): 0x0
101 ; SYMS-NEXT: Section: N_UNDEF
102 ; SYMS-NEXT: Type: 0x0
103 ; SYMS-NEXT: StorageClass: C_EXT (0x2)
104 ; SYMS-NEXT: NumberOfAuxEntries: 1
105 ; SYMS-NEXT: CSECT Auxiliary Entry {
106 ; SYMS-NEXT: Index: [[#INDX+3]]
107 ; SYMS-NEXT: SectionLen: 0
108 ; SYMS-NEXT: ParameterHashIndex: 0x0
109 ; SYMS-NEXT: TypeChkSectNum: 0x0
110 ; SYMS-NEXT: SymbolAlignmentLog2: 0
111 ; SYMS-NEXT: SymbolType: XTY_ER (0x0)
112 ; SYMS-NEXT: StorageMappingClass: XMC_UL (0x15)
113 ; SYMS-NEXT: StabInfoIndex: 0x0
114 ; SYMS-NEXT: StabSectNum: 0x0
118 ; SYMS-NEXT: Symbol {
119 ; SYMS-NEXT: Index: [[#INDX+4]]
120 ; SYMS-NEXT: Name: .text
121 ; SYMS-NEXT: Value (RelocatableAddress): 0x0
122 ; SYMS-NEXT: Section: .text
123 ; SYMS-NEXT: Type: 0x0
124 ; SYMS-NEXT: StorageClass: C_HIDEXT (0x6B)
125 ; SYMS-NEXT: NumberOfAuxEntries: 1
126 ; SYMS-NEXT: CSECT Auxiliary Entry {
127 ; SYMS-NEXT: Index: [[#INDX+5]]
128 ; SYMS-NEXT: SectionLen: 0
129 ; SYMS-NEXT: ParameterHashIndex: 0x0
130 ; SYMS-NEXT: TypeChkSectNum: 0x0
131 ; SYMS-NEXT: SymbolAlignmentLog2: 5
132 ; SYMS-NEXT: SymbolType: XTY_SD (0x1)
133 ; SYMS-NEXT: StorageMappingClass: XMC_PR (0x0)
134 ; SYMS-NEXT: StabInfoIndex: 0x0
135 ; SYMS-NEXT: StabSectNum: 0x0
139 ; SYMS-NODATASECT: Symbol {
140 ; SYMS-NODATASECT-NEXT: Index: [[#INDX+6]]
141 ; SYMS-NODATASECT-NEXT: Name: .rodata
142 ; SYMS-NODATASECT-NEXT: Value (RelocatableAddress): 0x0
143 ; SYMS-NODATASECT-NEXT: Section: .text
144 ; SYMS-NODATASECT-NEXT: Type: 0x0
145 ; SYMS-NODATASECT-NEXT: StorageClass: C_HIDEXT (0x6B)
146 ; SYMS-NODATASECT-NEXT: NumberOfAuxEntries: 1
147 ; SYMS-NODATASECT-NEXT: CSECT Auxiliary Entry {
148 ; SYMS-NODATASECT-NEXT: Index: [[#INDX+7]]
149 ; SYMS-NODATASECT-NEXT: SectionLen: 4
150 ; SYMS-NODATASECT-NEXT: ParameterHashIndex: 0x0
151 ; SYMS-NODATASECT-NEXT: TypeChkSectNum: 0x0
152 ; SYMS-NODATASECT-NEXT: SymbolAlignmentLog2: 2
153 ; SYMS-NODATASECT-NEXT: SymbolType: XTY_SD (0x1)
154 ; SYMS-NODATASECT-NEXT: StorageMappingClass: XMC_RO (0x1)
155 ; SYMS-NODATASECT-NEXT: StabInfoIndex: 0x0
156 ; SYMS-NODATASECT-NEXT: StabSectNum: 0x0
157 ; SYMS-NODATASECT-NEXT: }
158 ; SYMS-NODATASECT-NEXT: }
161 ; SYMS-DATASECT: Index: [[#INDX+6]]
162 ; SYMS-NODATASECT: Index: [[#INDX+8]]
163 ; SYMS-NEXT: Name: const_ivar
164 ; SYMS-NEXT: Value (RelocatableAddress): 0x0
165 ; SYMS-NEXT: Section: .text
166 ; SYMS-NEXT: Type: 0x0
167 ; SYMS-NEXT: StorageClass: C_EXT (0x2)
168 ; SYMS-NEXT: NumberOfAuxEntries: 1
169 ; SYMS-NEXT: CSECT Auxiliary Entry {
170 ; SYMS-DATASECT: Index: [[#INDX+7]]
171 ; SYMS-DATASECT-NEXT: SectionLen: 4
172 ; SYMS-NODATASECT: Index: [[#INDX+9]]
173 ; SYMS-NODATASECT-NEXT: ContainingCsectSymbolIndex: [[#INDX+6]]
174 ; SYMS: ParameterHashIndex: 0x0
175 ; SYMS-NEXT: TypeChkSectNum: 0x0
176 ; SYMS-DATASECT: SymbolAlignmentLog2: 2
177 ; SYMS-DATASECT-NEXT: SymbolType: XTY_SD (0x1)
178 ; SYMS-NODATASECT: SymbolAlignmentLog2: 0
179 ; SYMS-NODATASECT-NEXT: SymbolType: XTY_LD (0x2)
180 ; SYMS: StorageMappingClass: XMC_RO (0x1)
181 ; SYMS-NEXT: StabInfoIndex: 0x0
182 ; SYMS-NEXT: StabSectNum: 0x0
186 ; SYMS-NODATASECT: Symbol {
187 ; SYMS-NODATASECT-NEXT: Index: [[#INDX+10]]
188 ; SYMS-NODATASECT-NEXT: Name: .tdata
189 ; SYMS-NODATASECT-NEXT: Value (RelocatableAddress): 0x0
190 ; SYMS-NODATASECT-NEXT: Section: .tdata
191 ; SYMS-NODATASECT-NEXT: Type: 0x0
192 ; SYMS-NODATASECT-NEXT: StorageClass: C_HIDEXT (0x6B)
193 ; SYMS-NODATASECT-NEXT: NumberOfAuxEntries: 1
194 ; SYMS-NODATASECT-NEXT: CSECT Auxiliary Entry {
195 ; SYMS-NODATASECT-NEXT: Index: [[#INDX+11]]
196 ; SYMS-NODATASECT-NEXT: SectionLen: 48
197 ; SYMS-NODATASECT-NEXT: ParameterHashIndex: 0x0
198 ; SYMS-NODATASECT-NEXT: TypeChkSectNum: 0x0
199 ; SYMS-NODATASECT-NEXT: SymbolAlignmentLog2: 3
200 ; SYMS-NODATASECT-NEXT: SymbolType: XTY_SD (0x1)
201 ; SYMS-NODATASECT-NEXT: StorageMappingClass: XMC_TL (0x14)
202 ; SYMS-NODATASECT-NEXT: StabInfoIndex: 0x0
203 ; SYMS-NODATASECT-NEXT: StabSectNum: 0x0
204 ; SYMS-NODATASECT-NEXT: }
205 ; SYMS-NODATASECT-NEXT: }
208 ; SYMS-DATASECT: Index: [[#INDX+8]]
209 ; SYMS-NODATASECT: Index: [[#INDX+12]]
210 ; SYMS: Name: tls_global_int_external_val_initialized
211 ; SYMS-NEXT: Value (RelocatableAddress): 0x0
212 ; SYMS-NEXT: Section: .tdata
213 ; SYMS-NEXT: Type: 0x0
214 ; SYMS-NEXT: StorageClass: C_EXT (0x2)
215 ; SYMS-NEXT: NumberOfAuxEntries: 1
216 ; SYMS-NEXT: CSECT Auxiliary Entry {
217 ; SYMS-DATASECT: Index: [[#INDX+9]]
218 ; SYMS-DATASECT-NEXT: SectionLen: 4
219 ; SYMS-NODATASECT: Index: [[#INDX+13]]
220 ; SYMS-NODATASECT-NEXT: ContainingCsectSymbolIndex: [[#INDX+10]]
221 ; SYMS: ParameterHashIndex: 0x0
222 ; SYMS-NEXT: TypeChkSectNum: 0x0
223 ; SYMS-DATASECT: SymbolAlignmentLog2: 2
224 ; SYMS-DATASECT-NEXT: SymbolType: XTY_SD (0x1)
225 ; SYMS-NODATASECT: SymbolAlignmentLog2: 0
226 ; SYMS-NODATASECT-NEXT: SymbolType: XTY_LD (0x2)
227 ; SYMS: StorageMappingClass: XMC_TL (0x14)
228 ; SYMS-NEXT: StabInfoIndex: 0x0
229 ; SYMS-NEXT: StabSectNum: 0x0
234 ; SYMS-DATASECT: Index: [[#INDX+10]]
235 ; SYMS-NODATASECT: Index: [[#INDX+14]]
236 ; SYMS: Name: tls_global_alias_int_external_val_initialized
237 ; SYMS-NEXT: Value (RelocatableAddress): 0x0
238 ; SYMS-NEXT: Section: .tdata
239 ; SYMS-NEXT: Type: 0x0
240 ; SYMS-NEXT: StorageClass: C_EXT (0x2)
241 ; SYMS-NEXT: NumberOfAuxEntries: 1
242 ; SYMS-NEXT: CSECT Auxiliary Entry {
243 ; SYMS-DATASECT: Index: [[#INDX+11]]
244 ; SYMS-DATASECT-NEXT: ContainingCsectSymbolIndex: [[#INDX+8]]
245 ; SYMS-NODATASECT: Index: [[#INDX+15]]
246 ; SYMS-NODATASECT-NEXT: ContainingCsectSymbolIndex: [[#INDX+10]]
247 ; SYMS: ParameterHashIndex: 0x0
248 ; SYMS-NEXT: TypeChkSectNum: 0x0
249 ; SYMS-NEXT: SymbolAlignmentLog2: 0
250 ; SYMS-NEXT: SymbolType: XTY_LD (0x2)
251 ; SYMS-NEXT: StorageMappingClass: XMC_TL (0x14)
252 ; SYMS-NEXT: StabInfoIndex: 0x0
253 ; SYMS-NEXT: StabSectNum: 0x0
258 ; SYMS-DATASECT: Index: [[#INDX+12]]
259 ; SYMS-NODATASECT: Index: [[#INDX+16]]
260 ; SYMS: Name: tls_global_int_external_zero_initialized
261 ; SYMS-NEXT: Value (RelocatableAddress): 0x4
262 ; SYMS-NEXT: Section: .tdata
263 ; SYMS-NEXT: Type: 0x0
264 ; SYMS-NEXT: StorageClass: C_EXT (0x2)
265 ; SYMS-NEXT: NumberOfAuxEntries: 1
266 ; SYMS-NEXT: CSECT Auxiliary Entry {
267 ; SYMS-DATASECT: Index: [[#INDX+13]]
268 ; SYMS-DATASECT-NEXT: SectionLen: 4
269 ; SYMS-NODATASECT: Index: [[#INDX+17]]
270 ; SYMS-NODATASECT-NEXT: ContainingCsectSymbolIndex: [[#INDX+10]]
271 ; SYMS: ParameterHashIndex: 0x0
272 ; SYMS-NEXT: TypeChkSectNum: 0x0
273 ; SYMS-DATASECT: SymbolAlignmentLog2: 2
274 ; SYMS-DATASECT-NEXT: SymbolType: XTY_SD (0x1)
275 ; SYMS-NODATASECT: SymbolAlignmentLog2: 0
276 ; SYMS-NODATASECT-NEXT: SymbolType: XTY_LD (0x2)
277 ; SYMS: StorageMappingClass: XMC_TL (0x14)
278 ; SYMS-NEXT: StabInfoIndex: 0x0
279 ; SYMS-NEXT: StabSectNum: 0x0
284 ; SYMS-DATASECT: Index: [[#INDX+14]]
285 ; SYMS-NODATASECT: Index: [[#INDX+18]]
286 ; SYMS: Name: tls_global_int_local_val_initialized
287 ; SYMS-NEXT: Value (RelocatableAddress): 0x8
288 ; SYMS-NEXT: Section: .tdata
289 ; SYMS-NEXT: Type: 0x0
290 ; SYMS-NEXT: StorageClass: C_HIDEXT (0x6B)
291 ; SYMS-NEXT: NumberOfAuxEntries: 1
292 ; SYMS-NEXT: CSECT Auxiliary Entry {
293 ; SYMS-DATASECT: Index: [[#INDX+15]]
294 ; SYMS-DATASECT-NEXT: SectionLen: 4
295 ; SYMS-NODATASECT: Index: [[#INDX+19]]
296 ; SYMS-NODATASECT-NEXT: ContainingCsectSymbolIndex: [[#INDX+10]]
297 ; SYMS: ParameterHashIndex: 0x0
298 ; SYMS-NEXT: TypeChkSectNum: 0x0
299 ; SYMS-DATASECT: SymbolAlignmentLog2: 2
300 ; SYMS-DATASECT-NEXT: SymbolType: XTY_SD (0x1)
301 ; SYMS-NODATASECT: SymbolAlignmentLog2: 0
302 ; SYMS-NODATASECT-NEXT: SymbolType: XTY_LD (0x2)
303 ; SYMS: StorageMappingClass: XMC_TL (0x14)
304 ; SYMS-NEXT: StabInfoIndex: 0x0
305 ; SYMS-NEXT: StabSectNum: 0x0
310 ; SYMS-DATASECT: Index: [[#INDX+16]]
311 ; SYMS-NODATASECT: Index: [[#INDX+20]]
312 ; SYMS: Name: tls_global_int_weak_zero_initialized
313 ; SYMS-NEXT: Value (RelocatableAddress): 0xC
314 ; SYMS-NEXT: Section: .tdata
315 ; SYMS-NEXT: Type: 0x0
316 ; SYMS-NEXT: StorageClass: C_WEAKEXT (0x6F)
317 ; SYMS-NEXT: NumberOfAuxEntries: 1
318 ; SYMS-NEXT: CSECT Auxiliary Entry {
319 ; SYMS-DATASECT: Index: [[#INDX+17]]
320 ; SYMS-DATASECT-NEXT: SectionLen: 4
321 ; SYMS-NODATASECT: Index: [[#INDX+21]]
322 ; SYMS-NODATASECT-NEXT: ContainingCsectSymbolIndex: [[#INDX+10]]
323 ; SYMS: ParameterHashIndex: 0x0
324 ; SYMS-NEXT: TypeChkSectNum: 0x0
325 ; SYMS-DATASECT: SymbolAlignmentLog2: 2
326 ; SYMS-DATASECT-NEXT: SymbolType: XTY_SD (0x1)
327 ; SYMS-NODATASECT: SymbolAlignmentLog2: 0
328 ; SYMS-NODATASECT-NEXT: SymbolType: XTY_LD (0x2)
329 ; SYMS: StorageMappingClass: XMC_TL (0x14)
330 ; SYMS-NEXT: StabInfoIndex: 0x0
331 ; SYMS-NEXT: StabSectNum: 0x0
336 ; SYMS-DATASECT: Index: [[#INDX+18]]
337 ; SYMS-NODATASECT: Index: [[#INDX+22]]
338 ; SYMS: Name: tls_global_int_weak_val_initialized
339 ; SYMS-NEXT: Value (RelocatableAddress): 0x10
340 ; SYMS-NEXT: Section: .tdata
341 ; SYMS-NEXT: Type: 0x0
342 ; SYMS-NEXT: StorageClass: C_WEAKEXT (0x6F)
343 ; SYMS-NEXT: NumberOfAuxEntries: 1
344 ; SYMS-NEXT: CSECT Auxiliary Entry {
345 ; SYMS-DATASECT: Index: [[#INDX+19]]
346 ; SYMS-DATASECT-NEXT: SectionLen: 4
347 ; SYMS-NODATASECT: Index: [[#INDX+23]]
348 ; SYMS-NODATASECT-NEXT: ContainingCsectSymbolIndex: [[#INDX+10]]
349 ; SYMS: ParameterHashIndex: 0x0
350 ; SYMS-NEXT: TypeChkSectNum: 0x0
351 ; SYMS-DATASECT: SymbolAlignmentLog2: 2
352 ; SYMS-DATASECT-NEXT: SymbolType: XTY_SD (0x1)
353 ; SYMS-NODATASECT: SymbolAlignmentLog2: 0
354 ; SYMS-NODATASECT-NEXT: SymbolType: XTY_LD (0x2)
355 ; SYMS: StorageMappingClass: XMC_TL (0x14)
356 ; SYMS-NEXT: StabInfoIndex: 0x0
357 ; SYMS-NEXT: StabSectNum: 0x0
362 ; SYMS-DATASECT: Index: [[#INDX+20]]
363 ; SYMS-NODATASECT: Index: [[#INDX+24]]
364 ; SYMS: Name: tls_global_long_long_internal_val_initialized
365 ; SYMS-NEXT: Value (RelocatableAddress): 0x18
366 ; SYMS-NEXT: Section: .tdata
367 ; SYMS-NEXT: Type: 0x0
368 ; SYMS-NEXT: StorageClass: C_HIDEXT (0x6B)
369 ; SYMS-NEXT: NumberOfAuxEntries: 1
370 ; SYMS-NEXT: CSECT Auxiliary Entry {
371 ; SYMS-DATASECT: Index: [[#INDX+21]]
372 ; SYMS-DATASECT-NEXT: SectionLen: 8
373 ; SYMS-NODATASECT: Index: [[#INDX+25]]
374 ; SYMS-NODATASECT-NEXT: ContainingCsectSymbolIndex: [[#INDX+10]]
375 ; SYMS: ParameterHashIndex: 0x0
376 ; SYMS-NEXT: TypeChkSectNum: 0x0
377 ; SYMS-DATASECT: SymbolAlignmentLog2: 3
378 ; SYMS-DATASECT-NEXT: SymbolType: XTY_SD (0x1)
379 ; SYMS-NODATASECT: SymbolAlignmentLog2: 0
380 ; SYMS-NODATASECT-NEXT: SymbolType: XTY_LD (0x2)
381 ; SYMS: StorageMappingClass: XMC_TL (0x14)
382 ; SYMS-NEXT: StabInfoIndex: 0x0
383 ; SYMS-NEXT: StabSectNum: 0x0
388 ; SYMS-DATASECT: Index: [[#INDX+22]]
389 ; SYMS-NODATASECT: Index: [[#INDX+26]]
390 ; SYMS: Name: tls_global_long_long_weak_val_initialized
391 ; SYMS-NEXT: Value (RelocatableAddress): 0x20
392 ; SYMS-NEXT: Section: .tdata
393 ; SYMS-NEXT: Type: 0x0
394 ; SYMS-NEXT: StorageClass: C_WEAKEXT (0x6F)
395 ; SYMS-NEXT: NumberOfAuxEntries: 1
396 ; SYMS-NEXT: CSECT Auxiliary Entry {
397 ; SYMS-DATASECT: Index: [[#INDX+23]]
398 ; SYMS-DATASECT-NEXT: SectionLen: 8
399 ; SYMS-NODATASECT: Index: [[#INDX+27]]
400 ; SYMS-NODATASECT-NEXT: ContainingCsectSymbolIndex: [[#INDX+10]]
401 ; SYMS: ParameterHashIndex: 0x0
402 ; SYMS-NEXT: TypeChkSectNum: 0x0
403 ; SYMS-DATASECT: SymbolAlignmentLog2: 3
404 ; SYMS-DATASECT-NEXT: SymbolType: XTY_SD (0x1)
405 ; SYMS-NODATASECT: SymbolAlignmentLog2: 0
406 ; SYMS-NODATASECT-NEXT: SymbolType: XTY_LD (0x2)
407 ; SYMS: StorageMappingClass: XMC_TL (0x14)
408 ; SYMS-NEXT: StabInfoIndex: 0x0
409 ; SYMS-NEXT: StabSectNum: 0x0
414 ; SYMS-DATASECT: Index: [[#INDX+24]]
415 ; SYMS-NODATASECT: Index: [[#INDX+28]]
416 ; SYMS: Name: tls_global_long_long_weak_zero_initialized
417 ; SYMS-NEXT: Value (RelocatableAddress): 0x28
418 ; SYMS-NEXT: Section: .tdata
419 ; SYMS-NEXT: Type: 0x0
420 ; SYMS-NEXT: StorageClass: C_WEAKEXT (0x6F)
421 ; SYMS-NEXT: NumberOfAuxEntries: 1
422 ; SYMS-NEXT: CSECT Auxiliary Entry {
423 ; SYMS-DATASECT: Index: [[#INDX+25]]
424 ; SYMS-DATASECT-NEXT: SectionLen: 8
425 ; SYMS-NODATASECT: Index: [[#INDX+29]]
426 ; SYMS-NODATASECT-NEXT: ContainingCsectSymbolIndex: [[#INDX+10]]
427 ; SYMS: ParameterHashIndex: 0x0
428 ; SYMS-NEXT: TypeChkSectNum: 0x0
429 ; SYMS-DATASECT: SymbolAlignmentLog2: 3
430 ; SYMS-DATASECT-NEXT: SymbolType: XTY_SD (0x1)
431 ; SYMS-NODATASECT: SymbolAlignmentLog2: 0
432 ; SYMS-NODATASECT-NEXT: SymbolType: XTY_LD (0x2)
433 ; SYMS: StorageMappingClass: XMC_TL (0x14)
434 ; SYMS-NEXT: StabInfoIndex: 0x0
435 ; SYMS-NEXT: StabSectNum: 0x0
440 ; SYMS-DATASECT: Index: [[#INDX+26]]
441 ; SYMS-NODATASECT: Index: [[#INDX+30]]
442 ; SYMS: Name: tls_global_int_local_zero_initialized
443 ; SYMS-NEXT: Value (RelocatableAddress): 0x30
444 ; SYMS-NEXT: Section: .tbss
445 ; SYMS-NEXT: Type: 0x0
446 ; SYMS-NEXT: StorageClass: C_HIDEXT (0x6B)
447 ; SYMS-NEXT: NumberOfAuxEntries: 1
448 ; SYMS-NEXT: CSECT Auxiliary Entry {
449 ; SYMS-DATASECT: Index: [[#INDX+27]]
450 ; SYMS-NODATASECT: Index: [[#INDX+31]]
451 ; SYMS: SectionLen: 4
452 ; SYMS-NEXT: ParameterHashIndex: 0x0
453 ; SYMS-NEXT: TypeChkSectNum: 0x0
454 ; SYMS-NEXT: SymbolAlignmentLog2: 2
455 ; SYMS-NEXT: SymbolType: XTY_CM (0x3)
456 ; SYMS-NEXT: StorageMappingClass: XMC_UL (0x15)
457 ; SYMS-NEXT: StabInfoIndex: 0x0
458 ; SYMS-NEXT: StabSectNum: 0x0
463 ; SYMS-DATASECT: Index: [[#INDX+28]]
464 ; SYMS-NODATASECT: Index: [[#INDX+32]]
465 ; SYMS: Name: tls_global_int_common_zero_initialized
466 ; SYMS-NEXT: Value (RelocatableAddress): 0x34
467 ; SYMS-NEXT: Section: .tbss
468 ; SYMS-NEXT: Type: 0x0
469 ; SYMS-NEXT: StorageClass: C_EXT (0x2)
470 ; SYMS-NEXT: NumberOfAuxEntries: 1
471 ; SYMS-NEXT: CSECT Auxiliary Entry {
472 ; SYMS-DATASECT: Index: [[#INDX+29]]
473 ; SYMS-NODATASECT: Index: [[#INDX+33]]
474 ; SYMS: SectionLen: 4
475 ; SYMS-NEXT: ParameterHashIndex: 0x0
476 ; SYMS-NEXT: TypeChkSectNum: 0x0
477 ; SYMS-NEXT: SymbolAlignmentLog2: 2
478 ; SYMS-NEXT: SymbolType: XTY_CM (0x3)
479 ; SYMS-NEXT: StorageMappingClass: XMC_UL (0x15)
480 ; SYMS-NEXT: StabInfoIndex: 0x0
481 ; SYMS-NEXT: StabSectNum: 0x0
486 ; SYMS-DATASECT: Index: [[#INDX+30]]
487 ; SYMS-NODATASECT: Index: [[#INDX+34]]
488 ; SYMS: Name: tls_global_double_common_zero_initialized
489 ; SYMS-NEXT: Value (RelocatableAddress): 0x38
490 ; SYMS-NEXT: Section: .tbss
491 ; SYMS-NEXT: Type: 0x0
492 ; SYMS-NEXT: StorageClass: C_EXT (0x2)
493 ; SYMS-NEXT: NumberOfAuxEntries: 1
494 ; SYMS-NEXT: CSECT Auxiliary Entry {
495 ; SYMS-DATASECT: Index: [[#INDX+31]]
496 ; SYMS-NODATASECT: Index: [[#INDX+35]]
497 ; SYMS: SectionLen: 8
498 ; SYMS-NEXT: ParameterHashIndex: 0x0
499 ; SYMS-NEXT: TypeChkSectNum: 0x0
500 ; SYMS-NEXT: SymbolAlignmentLog2: 3
501 ; SYMS-NEXT: SymbolType: XTY_CM (0x3)
502 ; SYMS-NEXT: StorageMappingClass: XMC_UL (0x15)
503 ; SYMS-NEXT: StabInfoIndex: 0x0
504 ; SYMS-NEXT: StabSectNum: 0x0
509 ; SYMS-DATASECT: Index: [[#INDX+32]]
510 ; SYMS-NODATASECT: Index: [[#INDX+36]]
511 ; SYMS: Name: tls_global_long_long_internal_zero_initialized
512 ; SYMS-NEXT: Value (RelocatableAddress): 0x40
513 ; SYMS-NEXT: Section: .tbss
514 ; SYMS-NEXT: Type: 0x0
515 ; SYMS-NEXT: StorageClass: C_HIDEXT (0x6B)
516 ; SYMS-NEXT: NumberOfAuxEntries: 1
517 ; SYMS-NEXT: CSECT Auxiliary Entry {
518 ; SYMS-DATASECT: Index: [[#INDX+33]]
519 ; SYMS-NODATASECT: Index: [[#INDX+37]]
520 ; SYMS: SectionLen: 8
521 ; SYMS-NEXT: ParameterHashIndex: 0x0
522 ; SYMS-NEXT: TypeChkSectNum: 0x0
523 ; SYMS-NEXT: SymbolAlignmentLog2: 3
524 ; SYMS-NEXT: SymbolType: XTY_CM (0x3)
525 ; SYMS-NEXT: StorageMappingClass: XMC_UL (0x15)
526 ; SYMS-NEXT: StabInfoIndex: 0x0
527 ; SYMS-NEXT: StabSectNum: 0x0
532 ; OBJDUMP-DATASECT: Disassembly of section .text:
533 ; OBJDUMP-DATASECT-EMPTY:
534 ; OBJDUMP-DATASECT-NEXT: 00000000 (idx: 7) const_ivar[RO]:
535 ; OBJDUMP-DATASECT-NEXT: 0: 00 00 00 06 <unknown>
536 ; OBJDUMP-DATASECT-EMPTY:
537 ; OBJDUMP-DATASECT-NEXT: Disassembly of section .tdata:
538 ; OBJDUMP-DATASECT-EMPTY:
539 ; OBJDUMP-DATASECT-NEXT: 00000000 (idx: 11) tls_global_alias_int_external_val_initialized:
540 ; OBJDUMP-DATASECT-NEXT: 0: 00 00 00 01 <unknown>
541 ; OBJDUMP-DATASECT-EMPTY:
542 ; OBJDUMP-DATASECT-NEXT: 00000004 (idx: 13) tls_global_int_external_zero_initialized[TL]:
543 ; OBJDUMP-DATASECT-NEXT: 4: 00 00 00 00 <unknown>
544 ; OBJDUMP-DATASECT-EMPTY:
545 ; OBJDUMP-DATASECT-NEXT: 00000008 (idx: 15) tls_global_int_local_val_initialized[TL]:
546 ; OBJDUMP-DATASECT-NEXT: 8: 00 00 00 02 <unknown>
547 ; OBJDUMP-DATASECT-EMPTY:
548 ; OBJDUMP-DATASECT-NEXT: 0000000c (idx: 17) tls_global_int_weak_zero_initialized[TL]:
549 ; OBJDUMP-DATASECT-NEXT: c: 00 00 00 00 <unknown>
550 ; OBJDUMP-DATASECT-EMPTY:
551 ; OBJDUMP-DATASECT-NEXT: 00000010 (idx: 19) tls_global_int_weak_val_initialized[TL]:
552 ; OBJDUMP-DATASECT-NEXT: 10: 00 00 00 01 <unknown>
553 ; OBJDUMP-DATASECT-NEXT: 14: 00 00 00 00 <unknown>
554 ; OBJDUMP-DATASECT-EMPTY:
555 ; OBJDUMP-DATASECT-NEXT: 00000018 (idx: 21) tls_global_long_long_internal_val_initialized[TL]:
556 ; OBJDUMP-DATASECT-NEXT: 18: 00 00 00 00 <unknown>
557 ; OBJDUMP-DATASECT-NEXT: 1c: 00 00 00 01 <unknown>
558 ; OBJDUMP-DATASECT-EMPTY:
559 ; OBJDUMP-DATASECT-NEXT: 00000020 (idx: 23) tls_global_long_long_weak_val_initialized[TL]:
560 ; OBJDUMP-DATASECT-NEXT: 20: 00 00 00 00 <unknown>
561 ; OBJDUMP-DATASECT-NEXT: 24: 00 00 00 01 <unknown>
562 ; OBJDUMP-DATASECT-EMPTY:
563 ; OBJDUMP-DATASECT-NEXT: 00000028 (idx: 25) tls_global_long_long_weak_zero_initialized[TL]:
564 ; OBJDUMP-DATASECT-NEXT: ...
565 ; OBJDUMP-DATASECT-EMPTY:
567 ; OBJDUMP-DATASECT-NEXT: Disassembly of section .tbss:
568 ; OBJDUMP-DATASECT-EMPTY:
569 ; OBJDUMP-DATASECT-NEXT: 00000030 (idx: 27) tls_global_int_local_zero_initialized[UL]:
570 ; OBJDUMP-DATASECT-NEXT: ...
571 ; OBJDUMP-DATASECT-EMPTY:
572 ; OBJDUMP-DATASECT-NEXT: 00000034 (idx: 29) tls_global_int_common_zero_initialized[UL]:
573 ; OBJDUMP-DATASECT-NEXT: ...
574 ; OBJDUMP-DATASECT-EMPTY:
575 ; OBJDUMP-DATASECT-NEXT: 00000038 (idx: 31) tls_global_double_common_zero_initialized[UL]
576 ; OBJDUMP-DATASECT-NEXT: ...
577 ; OBJDUMP-DATASECT-EMPTY:
578 ; OBJDUMP-DATASECT-NEXT: 00000040 (idx: 33) tls_global_long_long_internal_zero_initialized[UL]:
579 ; OBJDUMP-DATASECT-NEXT: ...
581 ; OBJDUMP-NODATASECT: Disassembly of section .text:
582 ; OBJDUMP-NODATASECT-EMPTY:
583 ; OBJDUMP-NODATASECT-NEXT: 00000000 (idx: 9) const_ivar:
584 ; OBJDUMP-NODATASECT-NEXT: 0: 00 00 00 06 <unknown>
585 ; OBJDUMP-NODATASECT-EMPTY:
586 ; OBJDUMP-NODATASECT-NEXT: Disassembly of section .tdata:
587 ; OBJDUMP-NODATASECT-EMPTY:
588 ; OBJDUMP-NODATASECT: 00000000 (idx: 13) tls_global_int_external_val_initialized:
589 ; OBJDUMP-NODATASECT-NEXT: 0: 00 00 00 01 <unknown>
590 ; OBJDUMP-NODATASECT-EMPTY:
591 ; OBJDUMP-NODATASECT-NEXT: 00000004 (idx: 17) tls_global_int_external_zero_initialized:
592 ; OBJDUMP-NODATASECT-NEXT: 4: 00 00 00 00 <unknown>
593 ; OBJDUMP-NODATASECT-EMPTY:
594 ; OBJDUMP-NODATASECT-NEXT: 00000008 (idx: 19) tls_global_int_local_val_initialized:
595 ; OBJDUMP-NODATASECT-NEXT: 8: 00 00 00 02 <unknown>
596 ; OBJDUMP-NODATASECT-EMPTY:
597 ; OBJDUMP-NODATASECT-NEXT: 0000000c (idx: 21) tls_global_int_weak_zero_initialized:
598 ; OBJDUMP-NODATASECT-NEXT: c: 00 00 00 00 <unknown>
599 ; OBJDUMP-NODATASECT-EMPTY:
600 ; OBJDUMP-NODATASECT-NEXT: 00000010 (idx: 23) tls_global_int_weak_val_initialized:
601 ; OBJDUMP-NODATASECT-NEXT: 10: 00 00 00 01 <unknown>
602 ; OBJDUMP-NODATASECT-NEXT: 14: 00 00 00 00 <unknown>
603 ; OBJDUMP-NODATASECT-EMPTY:
604 ; OBJDUMP-NODATASECT-NEXT: 00000018 (idx: 25) tls_global_long_long_internal_val_initialized:
605 ; OBJDUMP-NODATASECT-NEXT: 18: 00 00 00 00 <unknown>
606 ; OBJDUMP-NODATASECT-NEXT: 1c: 00 00 00 01 <unknown>
607 ; OBJDUMP-NODATASECT-EMPTY:
608 ; OBJDUMP-NODATASECT-NEXT: 00000020 (idx: 27) tls_global_long_long_weak_val_initialized:
609 ; OBJDUMP-NODATASECT-NEXT: 20: 00 00 00 00 <unknown>
610 ; OBJDUMP-NODATASECT-NEXT: 24: 00 00 00 01 <unknown>
611 ; OBJDUMP-NODATASECT-EMPTY:
612 ; OBJDUMP-NODATASECT-NEXT: 00000028 (idx: 29) tls_global_long_long_weak_zero_initialized:
613 ; OBJDUMP-NODATASECT-NEXT: ...
614 ; OBJDUMP-NODATASECT-EMPTY:
616 ; OBJDUMP-NODATASECT-NEXT: Disassembly of section .tbss:
617 ; OBJDUMP-NODATASECT-EMPTY:
618 ; OBJDUMP-NODATASECT-NEXT: 00000030 (idx: 31) tls_global_int_local_zero_initialized[UL]:
619 ; OBJDUMP-NODATASECT-NEXT: ...
620 ; OBJDUMP-NODATASECT-EMPTY:
621 ; OBJDUMP-NODATASECT-NEXT: 00000034 (idx: 33) tls_global_int_common_zero_initialized[UL]:
622 ; OBJDUMP-NODATASECT-NEXT: ...
623 ; OBJDUMP-NODATASECT-EMPTY:
624 ; OBJDUMP-NODATASECT-NEXT: 00000038 (idx: 35) tls_global_double_common_zero_initialized[UL]:
625 ; OBJDUMP-NODATASECT-NEXT: ...
626 ; OBJDUMP-NODATASECT-EMPTY:
627 ; OBJDUMP-NODATASECT-NEXT: 00000040 (idx: 37) tls_global_long_long_internal_zero_initialized[UL]:
628 ; OBJDUMP-NODATASECT-NEXT: ...
630 @tls_global_int_external_val_initialized = thread_local global i32 1, align 4
631 @tls_global_int_external_zero_initialized = thread_local global i32 0, align 4
632 @tls_global_int_local_val_initialized = internal thread_local global i32 2, align 4
633 @tls_global_int_local_zero_initialized = internal thread_local global i32 0, align 4
634 @tls_global_int_weak_zero_initialized = weak thread_local global i32 0, align 4
635 @tls_global_int_common_zero_initialized = common thread_local global i32 0, align 4
636 @tls_global_int_weak_val_initialized = weak thread_local global i32 1, align 4
637 @tls_global_int_external_uninitialized = external thread_local global i32, align 4
638 @tls_global_double_common_zero_initialized = common thread_local global double 0.000000e+00, align 8
639 @tls_global_double_external_uninitialized = external thread_local global i64, align 8
640 @tls_global_long_long_internal_val_initialized = internal thread_local global i64 1, align 8
641 @tls_global_long_long_internal_zero_initialized = internal thread_local global i64 0, align 8
642 @tls_global_long_long_weak_val_initialized = weak thread_local global i64 1, align 8
643 @tls_global_long_long_weak_zero_initialized = weak thread_local global i64 0, align 8
644 @tls_global_alias_int_external_val_initialized = thread_local alias i32, ptr @tls_global_int_external_val_initialized
645 @const_ivar = constant i32 6, align 4