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