[NFC][RemoveDIs] Prefer iterators over inst-pointers in InstCombine
[llvm-project.git] / llvm / test / CodeGen / PowerPC / aix-tls-xcoff-reloc-large.ll
blob2dae8ee96e20d19f94695023dbe5772e582b6750
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 {
13 entry:
14   store i64 %Val, ptr @TIInit, align 8
15   ret void
18 ; Function Attrs: norecurse nounwind readonly willreturn
19 define double @loadsTWInit() #1 {
20 entry:
21   %0 = load double, ptr @TWInit, align 8
22   %1 = load double, ptr @GInit, align 8
23   %add = fadd double %0, %1
24   ret double %add
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)
40 ; RELOC-NEXT:   }
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)
48 ; RELOC-NEXT:   }
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)
56 ; RELOC-NEXT:   }
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)
64 ; RELOC-NEXT:   }
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)
72 ; RELOC-NEXT:   }
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)
80 ; RELOC-NEXT:   }
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)
88 ; RELOC-NEXT:   }
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)
96 ; RELOC-NEXT:   }
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)
104 ; RELOC-NEXT:   }
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)
112 ; RELOC-NEXT:   }
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)
120 ; RELOC-NEXT:   }
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)
128 ; RELOC-NEXT:   }
129 ; RELOC-NEXT: }
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)
138 ; RELOC-NEXT: }
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)
146 ; RELOC-NEXT: }
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)
154 ; RELOC-NEXT: }
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)
162 ; RELOC-NEXT: }
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)
170 ; RELOC-NEXT: }
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)
178 ; RELOC-NEXT: }
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)
186 ; RELOC-NEXT: }
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)
194 ; RELOC-NEXT: }
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)
202 ; RELOC-NEXT: }
203 ; RELOC-NEXT: }
204 ; RELOC-NEXT: ]
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 [
211 ; SYM-NEXT:   Symbol {
212 ; SYM-NEXT:     Index: 0
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
220 ; SYM-NEXT:   }
221 ; SYM-NEXT:   Symbol {
222 ; SYM-NEXT:     Index: 1
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 {
230 ; SYM-NEXT:       Index: 2
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
239 ; SYM-NEXT:     }
240 ; SYM-NEXT:   }
241 ; SYM-NEXT:   Symbol {
242 ; SYM-NEXT:     Index: 3
243 ; SYM-NEXT:     Name:
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 {
250 ; SYM-NEXT:       Index: 4
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
259 ; SYM-NEXT:     }
260 ; SYM-NEXT:   }
261 ; SYM-NEXT:   Symbol {
262 ; SYM-NEXT:     Index: 5
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 {
270 ; SYM-NEXT:       Index: 6
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
279 ; SYM-NEXT:     }
280 ; SYM-NEXT:   }
281 ; SYM-NEXT:   Symbol {
282 ; SYM-NEXT:     Index: 7
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 {
290 ; SYM-NEXT:       Index: 8
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
299 ; SYM-NEXT:     }
300 ; SYM-NEXT:   }
301 ; SYM-NEXT:   Symbol {
302 ; SYM-NEXT:     Index: 9
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
319 ; SYM-NEXT:     }
320 ; SYM-NEXT:   }
321 ; SYM-NEXT:   Symbol {
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
339 ; SYM-NEXT:     }
340 ; SYM-NEXT:   }
341 ; SYM-NEXT:   Symbol {
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
359 ; SYM-NEXT:     }
360 ; SYM-NEXT:   }
361 ; SYM-NEXT:   Symbol {
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
379 ; SYM-NEXT:     }
380 ; SYM-NEXT:   }
381 ; SYM-NEXT:   Symbol {
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
399 ; SYM-NEXT:     }
400 ; SYM-NEXT:   }
401 ; SYM-NEXT:   Symbol {
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
419 ; SYM-NEXT:     }
420 ; SYM-NEXT:   }
421 ; SYM-NEXT:   Symbol {
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
439 ; SYM-NEXT:     }
440 ; SYM-NEXT:   }
441 ; SYM-NEXT:   Symbol {
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
459 ; SYM-NEXT:     }
460 ; SYM-NEXT:   }
461 ; SYM-NEXT:   Symbol {
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
479 ; SYM-NEXT:     }
480 ; SYM-NEXT:   }
481 ; SYM-NEXT:   Symbol {
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
499 ; SYM-NEXT:     }
500 ; SYM-NEXT:   }
501 ; SYM-NEXT:   Symbol {
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
519 ; SYM-NEXT:     }
520 ; SYM-NEXT:   }
521 ; SYM-NEXT: ]
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:
526 ; DIS-NEXT:                                       mflr 0
527 ; DIS-NEXT:                                       stwu 1, -32(1)
528 ; DIS-NEXT:                                       stw 0, 40(1)
529 ; DIS-NEXT:                                       mr 6, 4
530 ; DIS-NEXT:                                       mr 7, 3
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)
545 ; DIS-NEXT:                                       mtlr 0
546 ; DIS-NEXT:                                       blr
547 ; DIS:      00000040 (idx: 7) .loadsTWInit:
548 ; DIS-NEXT:                                       mflr 0
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)
570 ; DIS-NEXT:                                       mtlr 0
571 ; DIS-NEXT:                                       blr
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" }