1 ; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mattr=-altivec -mtriple powerpc-ibm-aix-xcoff \
2 ; RUN: -xcoff-traceback-table=false --code-model=large -filetype=obj -o %t.o < %s
3 ; RUN: llvm-readobj --relocs --expand-relocs %t.o | FileCheck --check-prefix=RELOC %s
4 ; RUN: llvm-readobj --syms %t.o | FileCheck --check-prefix=SYM %s
5 ; RUN: llvm-objdump -D -r --symbol-description %t.o | FileCheck --check-prefix=DIS %s
7 @GInit = global double 1.000000e+00, align 8
8 @TIInit = internal thread_local global i64 1, align 8
9 @TWInit = weak thread_local global double 1.000000e+00, align 8
11 ; Function Attrs: nofree norecurse nounwind willreturn writeonly
12 define void @storesTIInit(i64 %Val) #0 {
14 store i64 %Val, ptr @TIInit, align 8
18 ; Function Attrs: norecurse nounwind readonly willreturn
19 define double @loadsTWInit() #1 {
21 %0 = load double, ptr @TWInit, align 8
22 %1 = load double, ptr @GInit, align 8
23 %add = fadd double %0, %1
27 ; RELOC: File: {{.*}}aix-tls-xcoff-reloc-large.ll.tmp.o
28 ; RELOC-NEXT: Format: aixcoff-rs6000
29 ; RELOC-NEXT: Arch: powerpc
30 ; RELOC-NEXT: AddressSize: 32bit
31 ; RELOC-NEXT: Relocations [
32 ; RELOC-NEXT: Section (index: 1) .text {
33 ; RELOC-NEXT: Relocation {
34 ; RELOC-NEXT: Virtual Address: 0x16
35 ; RELOC-NEXT: Symbol: .TIInit (17)
36 ; RELOC-NEXT: IsSigned: No
37 ; RELOC-NEXT: FixupBitValue: 0
38 ; RELOC-NEXT: Length: 16
39 ; RELOC-NEXT: Type: R_TOCU (0x30)
41 ; RELOC-NEXT: Relocation {
42 ; RELOC-NEXT: Virtual Address: 0x1A
43 ; RELOC-NEXT: Symbol: TIInit (19)
44 ; RELOC-NEXT: IsSigned: No
45 ; RELOC-NEXT: FixupBitValue: 0
46 ; RELOC-NEXT: Length: 16
47 ; RELOC-NEXT: Type: R_TOCU (0x30)
49 ; RELOC-NEXT: Relocation {
50 ; RELOC-NEXT: Virtual Address: 0x1E
51 ; RELOC-NEXT: Symbol: .TIInit (17)
52 ; RELOC-NEXT: IsSigned: No
53 ; RELOC-NEXT: FixupBitValue: 0
54 ; RELOC-NEXT: Length: 16
55 ; RELOC-NEXT: Type: R_TOCL (0x31)
57 ; RELOC-NEXT: Relocation {
58 ; RELOC-NEXT: Virtual Address: 0x22
59 ; RELOC-NEXT: Symbol: TIInit (19)
60 ; RELOC-NEXT: IsSigned: No
61 ; RELOC-NEXT: FixupBitValue: 0
62 ; RELOC-NEXT: Length: 16
63 ; RELOC-NEXT: Type: R_TOCL (0x31)
65 ; RELOC-NEXT: Relocation {
66 ; RELOC-NEXT: Virtual Address: 0x24
67 ; RELOC-NEXT: Symbol: .__tls_get_addr (1)
68 ; RELOC-NEXT: IsSigned: No
69 ; RELOC-NEXT: FixupBitValue: 0
70 ; RELOC-NEXT: Length: 26
71 ; RELOC-NEXT: Type: R_RBA (0x18)
73 ; RELOC-NEXT: Relocation {
74 ; RELOC-NEXT: Virtual Address: 0x4E
75 ; RELOC-NEXT: Symbol: .TWInit (21)
76 ; RELOC-NEXT: IsSigned: No
77 ; RELOC-NEXT: FixupBitValue: 0
78 ; RELOC-NEXT: Length: 16
79 ; RELOC-NEXT: Type: R_TOCU (0x30)
81 ; RELOC-NEXT: Relocation {
82 ; RELOC-NEXT: Virtual Address: 0x52
83 ; RELOC-NEXT: Symbol: TWInit (23)
84 ; RELOC-NEXT: IsSigned: No
85 ; RELOC-NEXT: FixupBitValue: 0
86 ; RELOC-NEXT: Length: 16
87 ; RELOC-NEXT: Type: R_TOCU (0x30)
89 ; RELOC-NEXT: Relocation {
90 ; RELOC-NEXT: Virtual Address: 0x56
91 ; RELOC-NEXT: Symbol: .TWInit (21)
92 ; RELOC-NEXT: IsSigned: No
93 ; RELOC-NEXT: FixupBitValue: 0
94 ; RELOC-NEXT: Length: 16
95 ; RELOC-NEXT: Type: R_TOCL (0x31)
97 ; RELOC-NEXT: Relocation {
98 ; RELOC-NEXT: Virtual Address: 0x5A
99 ; RELOC-NEXT: Symbol: TWInit (23)
100 ; RELOC-NEXT: IsSigned: No
101 ; RELOC-NEXT: FixupBitValue: 0
102 ; RELOC-NEXT: Length: 16
103 ; RELOC-NEXT: Type: R_TOCL (0x31)
105 ; RELOC-NEXT: Relocation {
106 ; RELOC-NEXT: Virtual Address: 0x5C
107 ; RELOC-NEXT: Symbol: .__tls_get_addr (1)
108 ; RELOC-NEXT: IsSigned: No
109 ; RELOC-NEXT: FixupBitValue: 0
110 ; RELOC-NEXT: Length: 26
111 ; RELOC-NEXT: Type: R_RBA (0x18)
113 ; RELOC-NEXT: Relocation {
114 ; RELOC-NEXT: Virtual Address: 0x66
115 ; RELOC-NEXT: Symbol: GInit (25)
116 ; RELOC-NEXT: IsSigned: No
117 ; RELOC-NEXT: FixupBitValue: 0
118 ; RELOC-NEXT: Length: 16
119 ; RELOC-NEXT: Type: R_TOCU (0x30)
121 ; RELOC-NEXT: Relocation {
122 ; RELOC-NEXT: Virtual Address: 0x6A
123 ; RELOC-NEXT: Symbol: GInit (25)
124 ; RELOC-NEXT: IsSigned: No
125 ; RELOC-NEXT: FixupBitValue: 0
126 ; RELOC-NEXT: Length: 16
127 ; RELOC-NEXT: Type: R_TOCL (0x31)
130 ; RELOC-NEXT: Section (index: 2) .data {
131 ; RELOC-NEXT: Relocation {
132 ; RELOC-NEXT: Virtual Address: 0x90
133 ; RELOC-NEXT: Symbol: .storesTIInit (5)
134 ; RELOC-NEXT: IsSigned: No
135 ; RELOC-NEXT: FixupBitValue: 0
136 ; RELOC-NEXT: Length: 32
137 ; RELOC-NEXT: Type: R_POS (0x0)
139 ; RELOC-NEXT: Relocation {
140 ; RELOC-NEXT: Virtual Address: 0x94
141 ; RELOC-NEXT: Symbol: TOC (15)
142 ; RELOC-NEXT: IsSigned: No
143 ; RELOC-NEXT: FixupBitValue: 0
144 ; RELOC-NEXT: Length: 32
145 ; RELOC-NEXT: Type: R_POS (0x0)
147 ; RELOC-NEXT: Relocation {
148 ; RELOC-NEXT: Virtual Address: 0x9C
149 ; RELOC-NEXT: Symbol: .loadsTWInit (7)
150 ; RELOC-NEXT: IsSigned: No
151 ; RELOC-NEXT: FixupBitValue: 0
152 ; RELOC-NEXT: Length: 32
153 ; RELOC-NEXT: Type: R_POS (0x0)
155 ; RELOC-NEXT: Relocation {
156 ; RELOC-NEXT: Virtual Address: 0xA0
157 ; RELOC-NEXT: Symbol: TOC (15)
158 ; RELOC-NEXT: IsSigned: No
159 ; RELOC-NEXT: FixupBitValue: 0
160 ; RELOC-NEXT: Length: 32
161 ; RELOC-NEXT: Type: R_POS (0x0)
163 ; RELOC-NEXT: Relocation {
164 ; RELOC-NEXT: Virtual Address: 0xA8
165 ; RELOC-NEXT: Symbol: TIInit (27)
166 ; RELOC-NEXT: IsSigned: No
167 ; RELOC-NEXT: FixupBitValue: 0
168 ; RELOC-NEXT: Length: 32
169 ; RELOC-NEXT: Type: R_TLSM (0x24)
171 ; RELOC-NEXT: Relocation {
172 ; RELOC-NEXT: Virtual Address: 0xAC
173 ; RELOC-NEXT: Symbol: TIInit (27)
174 ; RELOC-NEXT: IsSigned: No
175 ; RELOC-NEXT: FixupBitValue: 0
176 ; RELOC-NEXT: Length: 32
177 ; RELOC-NEXT: Type: R_TLS (0x20)
179 ; RELOC-NEXT: Relocation {
180 ; RELOC-NEXT: Virtual Address: 0xB0
181 ; RELOC-NEXT: Symbol: TWInit (29)
182 ; RELOC-NEXT: IsSigned: No
183 ; RELOC-NEXT: FixupBitValue: 0
184 ; RELOC-NEXT: Length: 32
185 ; RELOC-NEXT: Type: R_TLSM (0x24)
187 ; RELOC-NEXT: Relocation {
188 ; RELOC-NEXT: Virtual Address: 0xB4
189 ; RELOC-NEXT: Symbol: TWInit (29)
190 ; RELOC-NEXT: IsSigned: No
191 ; RELOC-NEXT: FixupBitValue: 0
192 ; RELOC-NEXT: Length: 32
193 ; RELOC-NEXT: Type: R_TLS (0x20)
195 ; RELOC-NEXT: Relocation {
196 ; RELOC-NEXT: Virtual Address: 0xB8
197 ; RELOC-NEXT: Symbol: GInit (9)
198 ; RELOC-NEXT: IsSigned: No
199 ; RELOC-NEXT: FixupBitValue: 0
200 ; RELOC-NEXT: Length: 32
201 ; RELOC-NEXT: Type: R_POS (0x0)
206 ; SYM: File: {{.*}}aix-tls-xcoff-reloc-large.ll.tmp.o
207 ; SYM-NEXT: Format: aixcoff-rs6000
208 ; SYM-NEXT: Arch: powerpc
209 ; SYM-NEXT: AddressSize: 32bit
210 ; SYM-NEXT: Symbols [
213 ; SYM-NEXT: Name: <stdin>
214 ; SYM-NEXT: Value (SymbolTableIndex): 0x0
215 ; SYM-NEXT: Section: N_DEBUG
216 ; SYM-NEXT: Source Language ID: TB_CPLUSPLUS (0x9)
217 ; SYM-NEXT: CPU Version ID: TCPU_COM (0x3)
218 ; SYM-NEXT: StorageClass: C_FILE (0x67)
219 ; SYM-NEXT: NumberOfAuxEntries: 0
223 ; SYM-NEXT: Name: .__tls_get_addr
224 ; SYM-NEXT: Value (RelocatableAddress): 0x0
225 ; SYM-NEXT: Section: N_UNDEF
226 ; SYM-NEXT: Type: 0x0
227 ; SYM-NEXT: StorageClass: C_EXT (0x2)
228 ; SYM-NEXT: NumberOfAuxEntries: 1
229 ; SYM-NEXT: CSECT Auxiliary Entry {
231 ; SYM-NEXT: SectionLen: 0
232 ; SYM-NEXT: ParameterHashIndex: 0x0
233 ; SYM-NEXT: TypeChkSectNum: 0x0
234 ; SYM-NEXT: SymbolAlignmentLog2: 0
235 ; SYM-NEXT: SymbolType: XTY_ER (0x0)
236 ; SYM-NEXT: StorageMappingClass: XMC_PR (0x0)
237 ; SYM-NEXT: StabInfoIndex: 0x0
238 ; SYM-NEXT: StabSectNum: 0x0
244 ; SYM-NEXT: Value (RelocatableAddress): 0x0
245 ; SYM-NEXT: Section: .text
246 ; SYM-NEXT: Type: 0x0
247 ; SYM-NEXT: StorageClass: C_HIDEXT (0x6B)
248 ; SYM-NEXT: NumberOfAuxEntries: 1
249 ; SYM-NEXT: CSECT Auxiliary Entry {
251 ; SYM-NEXT: SectionLen: 132
252 ; SYM-NEXT: ParameterHashIndex: 0x0
253 ; SYM-NEXT: TypeChkSectNum: 0x0
254 ; SYM-NEXT: SymbolAlignmentLog2: 5
255 ; SYM-NEXT: SymbolType: XTY_SD (0x1)
256 ; SYM-NEXT: StorageMappingClass: XMC_PR (0x0)
257 ; SYM-NEXT: StabInfoIndex: 0x0
258 ; SYM-NEXT: StabSectNum: 0x0
263 ; SYM-NEXT: Name: .storesTIInit
264 ; SYM-NEXT: Value (RelocatableAddress): 0x0
265 ; SYM-NEXT: Section: .text
266 ; SYM-NEXT: Type: 0x0
267 ; SYM-NEXT: StorageClass: C_EXT (0x2)
268 ; SYM-NEXT: NumberOfAuxEntries: 1
269 ; SYM-NEXT: CSECT Auxiliary Entry {
271 ; SYM-NEXT: ContainingCsectSymbolIndex: 3
272 ; SYM-NEXT: ParameterHashIndex: 0x0
273 ; SYM-NEXT: TypeChkSectNum: 0x0
274 ; SYM-NEXT: SymbolAlignmentLog2: 0
275 ; SYM-NEXT: SymbolType: XTY_LD (0x2)
276 ; SYM-NEXT: StorageMappingClass: XMC_PR (0x0)
277 ; SYM-NEXT: StabInfoIndex: 0x0
278 ; SYM-NEXT: StabSectNum: 0x0
283 ; SYM-NEXT: Name: .loadsTWInit
284 ; SYM-NEXT: Value (RelocatableAddress): 0x40
285 ; SYM-NEXT: Section: .text
286 ; SYM-NEXT: Type: 0x0
287 ; SYM-NEXT: StorageClass: C_EXT (0x2)
288 ; SYM-NEXT: NumberOfAuxEntries: 1
289 ; SYM-NEXT: CSECT Auxiliary Entry {
291 ; SYM-NEXT: ContainingCsectSymbolIndex: 3
292 ; SYM-NEXT: ParameterHashIndex: 0x0
293 ; SYM-NEXT: TypeChkSectNum: 0x0
294 ; SYM-NEXT: SymbolAlignmentLog2: 0
295 ; SYM-NEXT: SymbolType: XTY_LD (0x2)
296 ; SYM-NEXT: StorageMappingClass: XMC_PR (0x0)
297 ; SYM-NEXT: StabInfoIndex: 0x0
298 ; SYM-NEXT: StabSectNum: 0x0
303 ; SYM-NEXT: Name: GInit
304 ; SYM-NEXT: Value (RelocatableAddress): 0x88
305 ; SYM-NEXT: Section: .data
306 ; SYM-NEXT: Type: 0x0
307 ; SYM-NEXT: StorageClass: C_EXT (0x2)
308 ; SYM-NEXT: NumberOfAuxEntries: 1
309 ; SYM-NEXT: CSECT Auxiliary Entry {
310 ; SYM-NEXT: Index: 10
311 ; SYM-NEXT: SectionLen: 8
312 ; SYM-NEXT: ParameterHashIndex: 0x0
313 ; SYM-NEXT: TypeChkSectNum: 0x0
314 ; SYM-NEXT: SymbolAlignmentLog2: 3
315 ; SYM-NEXT: SymbolType: XTY_SD (0x1)
316 ; SYM-NEXT: StorageMappingClass: XMC_RW (0x5)
317 ; SYM-NEXT: StabInfoIndex: 0x0
318 ; SYM-NEXT: StabSectNum: 0x0
322 ; SYM-NEXT: Index: 11
323 ; SYM-NEXT: Name: storesTIInit
324 ; SYM-NEXT: Value (RelocatableAddress): 0x90
325 ; SYM-NEXT: Section: .data
326 ; SYM-NEXT: Type: 0x0
327 ; SYM-NEXT: StorageClass: C_EXT (0x2)
328 ; SYM-NEXT: NumberOfAuxEntries: 1
329 ; SYM-NEXT: CSECT Auxiliary Entry {
330 ; SYM-NEXT: Index: 12
331 ; SYM-NEXT: SectionLen: 12
332 ; SYM-NEXT: ParameterHashIndex: 0x0
333 ; SYM-NEXT: TypeChkSectNum: 0x0
334 ; SYM-NEXT: SymbolAlignmentLog2: 2
335 ; SYM-NEXT: SymbolType: XTY_SD (0x1)
336 ; SYM-NEXT: StorageMappingClass: XMC_DS (0xA)
337 ; SYM-NEXT: StabInfoIndex: 0x0
338 ; SYM-NEXT: StabSectNum: 0x0
342 ; SYM-NEXT: Index: 13
343 ; SYM-NEXT: Name: loadsTWInit
344 ; SYM-NEXT: Value (RelocatableAddress): 0x9C
345 ; SYM-NEXT: Section: .data
346 ; SYM-NEXT: Type: 0x0
347 ; SYM-NEXT: StorageClass: C_EXT (0x2)
348 ; SYM-NEXT: NumberOfAuxEntries: 1
349 ; SYM-NEXT: CSECT Auxiliary Entry {
350 ; SYM-NEXT: Index: 14
351 ; SYM-NEXT: SectionLen: 12
352 ; SYM-NEXT: ParameterHashIndex: 0x0
353 ; SYM-NEXT: TypeChkSectNum: 0x0
354 ; SYM-NEXT: SymbolAlignmentLog2: 2
355 ; SYM-NEXT: SymbolType: XTY_SD (0x1)
356 ; SYM-NEXT: StorageMappingClass: XMC_DS (0xA)
357 ; SYM-NEXT: StabInfoIndex: 0x0
358 ; SYM-NEXT: StabSectNum: 0x0
362 ; SYM-NEXT: Index: 15
363 ; SYM-NEXT: Name: TOC
364 ; SYM-NEXT: Value (RelocatableAddress): 0xA8
365 ; SYM-NEXT: Section: .data
366 ; SYM-NEXT: Type: 0x0
367 ; SYM-NEXT: StorageClass: C_HIDEXT (0x6B)
368 ; SYM-NEXT: NumberOfAuxEntries: 1
369 ; SYM-NEXT: CSECT Auxiliary Entry {
370 ; SYM-NEXT: Index: 16
371 ; SYM-NEXT: SectionLen: 0
372 ; SYM-NEXT: ParameterHashIndex: 0x0
373 ; SYM-NEXT: TypeChkSectNum: 0x0
374 ; SYM-NEXT: SymbolAlignmentLog2: 2
375 ; SYM-NEXT: SymbolType: XTY_SD (0x1)
376 ; SYM-NEXT: StorageMappingClass: XMC_TC0 (0xF)
377 ; SYM-NEXT: StabInfoIndex: 0x0
378 ; SYM-NEXT: StabSectNum: 0x0
382 ; SYM-NEXT: Index: 17
383 ; SYM-NEXT: Name: .TIInit
384 ; SYM-NEXT: Value (RelocatableAddress): 0xA8
385 ; SYM-NEXT: Section: .data
386 ; SYM-NEXT: Type: 0x0
387 ; SYM-NEXT: StorageClass: C_HIDEXT (0x6B)
388 ; SYM-NEXT: NumberOfAuxEntries: 1
389 ; SYM-NEXT: CSECT Auxiliary Entry {
390 ; SYM-NEXT: Index: 18
391 ; SYM-NEXT: SectionLen: 4
392 ; SYM-NEXT: ParameterHashIndex: 0x0
393 ; SYM-NEXT: TypeChkSectNum: 0x0
394 ; SYM-NEXT: SymbolAlignmentLog2: 2
395 ; SYM-NEXT: SymbolType: XTY_SD (0x1)
396 ; SYM-NEXT: StorageMappingClass: XMC_TE (0x16)
397 ; SYM-NEXT: StabInfoIndex: 0x0
398 ; SYM-NEXT: StabSectNum: 0x0
402 ; SYM-NEXT: Index: 19
403 ; SYM-NEXT: Name: TIInit
404 ; SYM-NEXT: Value (RelocatableAddress): 0xAC
405 ; SYM-NEXT: Section: .data
406 ; SYM-NEXT: Type: 0x0
407 ; SYM-NEXT: StorageClass: C_HIDEXT (0x6B)
408 ; SYM-NEXT: NumberOfAuxEntries: 1
409 ; SYM-NEXT: CSECT Auxiliary Entry {
410 ; SYM-NEXT: Index: 20
411 ; SYM-NEXT: SectionLen: 4
412 ; SYM-NEXT: ParameterHashIndex: 0x0
413 ; SYM-NEXT: TypeChkSectNum: 0x0
414 ; SYM-NEXT: SymbolAlignmentLog2: 2
415 ; SYM-NEXT: SymbolType: XTY_SD (0x1)
416 ; SYM-NEXT: StorageMappingClass: XMC_TE (0x16)
417 ; SYM-NEXT: StabInfoIndex: 0x0
418 ; SYM-NEXT: StabSectNum: 0x0
422 ; SYM-NEXT: Index: 21
423 ; SYM-NEXT: Name: .TWInit
424 ; SYM-NEXT: Value (RelocatableAddress): 0xB0
425 ; SYM-NEXT: Section: .data
426 ; SYM-NEXT: Type: 0x0
427 ; SYM-NEXT: StorageClass: C_HIDEXT (0x6B)
428 ; SYM-NEXT: NumberOfAuxEntries: 1
429 ; SYM-NEXT: CSECT Auxiliary Entry {
430 ; SYM-NEXT: Index: 22
431 ; SYM-NEXT: SectionLen: 4
432 ; SYM-NEXT: ParameterHashIndex: 0x0
433 ; SYM-NEXT: TypeChkSectNum: 0x0
434 ; SYM-NEXT: SymbolAlignmentLog2: 2
435 ; SYM-NEXT: SymbolType: XTY_SD (0x1)
436 ; SYM-NEXT: StorageMappingClass: XMC_TE (0x16)
437 ; SYM-NEXT: StabInfoIndex: 0x0
438 ; SYM-NEXT: StabSectNum: 0x0
442 ; SYM-NEXT: Index: 23
443 ; SYM-NEXT: Name: TWInit
444 ; SYM-NEXT: Value (RelocatableAddress): 0xB4
445 ; SYM-NEXT: Section: .data
446 ; SYM-NEXT: Type: 0x0
447 ; SYM-NEXT: StorageClass: C_HIDEXT (0x6B)
448 ; SYM-NEXT: NumberOfAuxEntries: 1
449 ; SYM-NEXT: CSECT Auxiliary Entry {
450 ; SYM-NEXT: Index: 24
451 ; SYM-NEXT: SectionLen: 4
452 ; SYM-NEXT: ParameterHashIndex: 0x0
453 ; SYM-NEXT: TypeChkSectNum: 0x0
454 ; SYM-NEXT: SymbolAlignmentLog2: 2
455 ; SYM-NEXT: SymbolType: XTY_SD (0x1)
456 ; SYM-NEXT: StorageMappingClass: XMC_TE (0x16)
457 ; SYM-NEXT: StabInfoIndex: 0x0
458 ; SYM-NEXT: StabSectNum: 0x0
462 ; SYM-NEXT: Index: 25
463 ; SYM-NEXT: Name: GInit
464 ; SYM-NEXT: Value (RelocatableAddress): 0xB8
465 ; SYM-NEXT: Section: .data
466 ; SYM-NEXT: Type: 0x0
467 ; SYM-NEXT: StorageClass: C_HIDEXT (0x6B)
468 ; SYM-NEXT: NumberOfAuxEntries: 1
469 ; SYM-NEXT: CSECT Auxiliary Entry {
470 ; SYM-NEXT: Index: 26
471 ; SYM-NEXT: SectionLen: 4
472 ; SYM-NEXT: ParameterHashIndex: 0x0
473 ; SYM-NEXT: TypeChkSectNum: 0x0
474 ; SYM-NEXT: SymbolAlignmentLog2: 2
475 ; SYM-NEXT: SymbolType: XTY_SD (0x1)
476 ; SYM-NEXT: StorageMappingClass: XMC_TE (0x16)
477 ; SYM-NEXT: StabInfoIndex: 0x0
478 ; SYM-NEXT: StabSectNum: 0x0
482 ; SYM-NEXT: Index: 27
483 ; SYM-NEXT: Name: TIInit
484 ; SYM-NEXT: Value (RelocatableAddress): 0x0
485 ; SYM-NEXT: Section: .tdata
486 ; SYM-NEXT: Type: 0x0
487 ; SYM-NEXT: StorageClass: C_HIDEXT (0x6B)
488 ; SYM-NEXT: NumberOfAuxEntries: 1
489 ; SYM-NEXT: CSECT Auxiliary Entry {
490 ; SYM-NEXT: Index: 28
491 ; SYM-NEXT: SectionLen: 8
492 ; SYM-NEXT: ParameterHashIndex: 0x0
493 ; SYM-NEXT: TypeChkSectNum: 0x0
494 ; SYM-NEXT: SymbolAlignmentLog2: 3
495 ; SYM-NEXT: SymbolType: XTY_SD (0x1)
496 ; SYM-NEXT: StorageMappingClass: XMC_TL (0x14)
497 ; SYM-NEXT: StabInfoIndex: 0x0
498 ; SYM-NEXT: StabSectNum: 0x0
502 ; SYM-NEXT: Index: 29
503 ; SYM-NEXT: Name: TWInit
504 ; SYM-NEXT: Value (RelocatableAddress): 0x8
505 ; SYM-NEXT: Section: .tdata
506 ; SYM-NEXT: Type: 0x0
507 ; SYM-NEXT: StorageClass: C_WEAKEXT (0x6F)
508 ; SYM-NEXT: NumberOfAuxEntries: 1
509 ; SYM-NEXT: CSECT Auxiliary Entry {
510 ; SYM-NEXT: Index: 30
511 ; SYM-NEXT: SectionLen: 8
512 ; SYM-NEXT: ParameterHashIndex: 0x0
513 ; SYM-NEXT: TypeChkSectNum: 0x0
514 ; SYM-NEXT: SymbolAlignmentLog2: 3
515 ; SYM-NEXT: SymbolType: XTY_SD (0x1)
516 ; SYM-NEXT: StorageMappingClass: XMC_TL (0x14)
517 ; SYM-NEXT: StabInfoIndex: 0x0
518 ; SYM-NEXT: StabSectNum: 0x0
523 ; DIS: {{.*}}aix-tls-xcoff-reloc-large.ll.tmp.o: file format aixcoff-rs6000
524 ; DIS: Disassembly of section .text:
525 ; DIS: 00000000 (idx: 5) .storesTIInit:
527 ; DIS-NEXT: stwu 1, -32(1)
528 ; DIS-NEXT: stw 0, 40(1)
531 ; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} addis 3, 2, 0
532 ; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCU (idx: 17) .TIInit[TE]
533 ; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} addis 4, 2, 0
534 ; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCU (idx: 19) TIInit[TE]
535 ; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} lwz 3, 0(3)
536 ; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCL (idx: 17) .TIInit[TE]
537 ; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} lwz 4, 4(4)
538 ; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCL (idx: 19) TIInit[TE]
539 ; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} bla 0
540 ; DIS-NEXT: {{0*}}[[#ADDR]]: R_RBA (idx: 1) .__tls_get_addr[PR]
541 ; DIS-NEXT: stw 6, 4(3)
542 ; DIS-NEXT: stw 7, 0(3)
543 ; DIS-NEXT: addi 1, 1, 32
544 ; DIS-NEXT: lwz 0, 8(1)
547 ; DIS: 00000040 (idx: 7) .loadsTWInit:
549 ; DIS-NEXT: stwu 1, -32(1)
550 ; DIS-NEXT: stw 0, 40(1)
551 ; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} addis 3, 2, 0
552 ; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCU (idx: 21) .TWInit[TE]
553 ; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} addis 4, 2, 0
554 ; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCU (idx: 23) TWInit[TE]
555 ; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} lwz 3, 8(3)
556 ; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCL (idx: 21) .TWInit[TE]
557 ; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} lwz 4, 12(4)
558 ; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCL (idx: 23) TWInit[TE]
559 ; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} bla 0
560 ; DIS-NEXT: {{0*}}[[#ADDR]]: R_RBA (idx: 1) .__tls_get_addr[PR]
561 ; DIS-NEXT: lfd 0, 0(3)
562 ; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} addis 3, 2, 0
563 ; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCU (idx: 25) GInit[TE]
564 ; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} lwz 3, 16(3)
565 ; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCL (idx: 25) GInit[TE]
566 ; DIS-NEXT: lfd 1, 0(3)
567 ; DIS-NEXT: fadd 1, 0, 1
568 ; DIS-NEXT: addi 1, 1, 32
569 ; DIS-NEXT: lwz 0, 8(1)
573 ; DIS: Disassembly of section .data:
574 ; DIS: 00000088 (idx: 9) GInit[RW]:
575 ; DIS-NEXT: 88: 3f f0 00 00
576 ; DIS-NEXT: 8c: 00 00 00 00
577 ; DIS: 00000090 (idx: 11) storesTIInit[DS]:
578 ; DIS-NEXT: 90: 00 00 00 00
579 ; DIS-NEXT: 00000090: R_POS (idx: 5) .storesTIInit
580 ; DIS-NEXT: 94: 00 00 00 a8
581 ; DIS-NEXT: 00000094: R_POS (idx: 15) TOC[TC0]
582 ; DIS-NEXT: 98: 00 00 00 00
583 ; DIS: 0000009c (idx: 13) loadsTWInit[DS]:
584 ; DIS-NEXT: 9c: 00 00 00 40
585 ; DIS-NEXT: 0000009c: R_POS (idx: 7) .loadsTWInit
586 ; DIS-NEXT: a0: 00 00 00 a8
587 ; DIS-NEXT: 000000a0: R_POS (idx: 15) TOC[TC0]
588 ; DIS-NEXT: a4: 00 00 00 00
589 ; DIS: 000000a8 (idx: 17) .TIInit[TE]:
590 ; DIS-NEXT: a8: 00 00 00 00
591 ; DIS-NEXT: 000000a8: R_TLSM (idx: 27) TIInit[TL]
592 ; DIS: 000000ac (idx: 19) TIInit[TE]:
593 ; DIS-NEXT: ac: 00 00 00 00
594 ; DIS-NEXT: 000000ac: R_TLS (idx: 27) TIInit[TL]
595 ; DIS: 000000b0 (idx: 21) .TWInit[TE]:
596 ; DIS-NEXT: b0: 00 00 00 00
597 ; DIS-NEXT: 000000b0: R_TLSM (idx: 29) TWInit[TL]
598 ; DIS: 000000b4 (idx: 23) TWInit[TE]:
599 ; DIS-NEXT: b4: 00 00 00 08
600 ; DIS-NEXT: 000000b4: R_TLS (idx: 29) TWInit[TL]
601 ; DIS: 000000b8 (idx: 25) GInit[TE]:
602 ; DIS-NEXT: b8: 00 00 00 88
603 ; DIS-NEXT: 000000b8: R_POS (idx: 9) GInit[RW]
605 ; DIS: Disassembly of section .tdata:
606 ; DIS: 00000000 (idx: 27) TIInit[TL]:
607 ; DIS-NEXT: 0: 00 00 00 00
608 ; DIS-NEXT: 4: 00 00 00 01
609 ; DIS: 00000008 (idx: 29) TWInit[TL]:
610 ; DIS-NEXT: 8: 3f f0 00 00
611 ; DIS-NEXT: c: 00 00 00 00
613 attributes #0 = { nofree norecurse nounwind willreturn writeonly "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="pwr4" "target-features"="-altivec,-bpermd,-crypto,-direct-move,-extdiv,-float128,-htm,-mma,-paired-vector-memops,-power10-vector,-power8-vector,-power9-vector,-spe,-vsx" }
614 attributes #1 = { norecurse nounwind readonly willreturn "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="pwr4" "target-features"="-altivec,-bpermd,-crypto,-direct-move,-extdiv,-float128,-htm,-mma,-paired-vector-memops,-power10-vector,-power8-vector,-power9-vector,-spe,-vsx" }