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