[ORC] Add std::tuple support to SimplePackedSerialization.
[llvm-project.git] / llvm / test / CodeGen / PowerPC / aix-xcoff-rodata.ll
blob3f8290ddee6ee44a579ffd294869b5787895d9e2
1 ; RUN: llc -verify-machineinstrs -mcpu=pwr7 -mtriple powerpc-ibm-aix-xcoff -data-sections=false < %s | \
2 ; RUN:   FileCheck --check-prefixes=CHECK,CHECK32 %s
3 ; RUN: llc -verify-machineinstrs -mcpu=pwr7 -mtriple powerpc64-ibm-aix-xcoff -data-sections=false < %s | \
4 ; RUN:   FileCheck --check-prefixes=CHECK,CHECK64 %s
6 ; RUN: llc -verify-machineinstrs -mcpu=pwr7 -mtriple powerpc-ibm-aix-xcoff -data-sections=false -filetype=obj -o %t.o < %s
7 ; RUN: llvm-readobj --section-headers --file-header %t.o | \
8 ; RUN: FileCheck --check-prefix=OBJ %s
9 ; RUN: llvm-readobj --syms %t.o | FileCheck --check-prefix=SYMS %s
10 ; RUN: llvm-objdump -D %t.o | FileCheck --check-prefix=DIS %s
12 ; RUN: not --crash llc -verify-machineinstrs -mcpu=pwr7 -mtriple powerpc64-ibm-aix-xcoff -data-sections=false -filetype=obj < %s 2>&1 | \
13 ; RUN: FileCheck --check-prefix=XCOFF64 %s
14 ; XCOFF64: LLVM ERROR: 64-bit XCOFF object files are not supported yet.
16 @const_ivar = constant i32 35, align 4
17 @const_llvar = constant i64 36, align 8
18 @const_svar = constant i16 37, align 2
19 @const_fvar = constant float 8.000000e+02, align 4
20 @const_dvar = constant double 9.000000e+02, align 8
21 @const_over_aligned = constant double 9.000000e+02, align 32
22 @const_chrarray = constant [4 x i8] c"abcd", align 1
23 @const_dblarr = constant [4 x double] [double 1.000000e+00, double 2.000000e+00, double 3.000000e+00, double 4.000000e+00], align 8
25 ; CHECK:               .csect .rodata[RO],5
26 ; CHECK-NEXT:          .globl  const_ivar
27 ; CHECK-NEXT:          .align  2
28 ; CHECK-NEXT:  const_ivar:
29 ; CHECK-NEXT:          .vbyte   4, 35
30 ; CHECK-NEXT:          .globl  const_llvar
31 ; CHECK-NEXT:          .align  3
32 ; CHECK-NEXT:  const_llvar:
33 ; CHECK32-NEXT:        .vbyte   4, 0
34 ; CHECK32-NEXT:        .vbyte   4, 36
35 ; CHECK64-NEXT:        .vbyte   8, 36
36 ; CHECK-NEXT:          .globl  const_svar
37 ; CHECK-NEXT:          .align  1
38 ; CHECK-NEXT:  const_svar:
39 ; CHECK-NEXT:          .vbyte   2, 37
40 ; CHECK-NEXT:          .globl  const_fvar
41 ; CHECK-NEXT:          .align  2
42 ; CHECK-NEXT:  const_fvar:
43 ; CHECK-NEXT:          .vbyte   4, 0x44480000
44 ; CHECK-NEXT:          .globl  const_dvar
45 ; CHECK-NEXT:          .align  3
46 ; CHECK-NEXT:  const_dvar:
47 ; CHECK32-NEXT:        .vbyte   4, 1082925056
48 ; CHECK32-NEXT:        .vbyte   4, 0
49 ; CHECK64-NEXT:        .vbyte   8, 0x408c200000000000
50 ; CHECK-NEXT:          .globl  const_over_aligned
51 ; CHECK-NEXT:          .align  5
52 ; CHECK-NEXT:  const_over_aligned:
53 ; CHECK32-NEXT:        .vbyte   4, 1082925056
54 ; CHECK32-NEXT:        .vbyte   4, 0
55 ; CHECK64-NEXT:        .vbyte   8, 0x408c200000000000
56 ; CHECK-NEXT:          .globl  const_chrarray
57 ; CHECK-NEXT:  const_chrarray:
58 ; CHECK-NEXT:          .byte   "abcd"
59 ; CHECK-NEXT:          .globl  const_dblarr
60 ; CHECK-NEXT:          .align  3
61 ; CHECK-NEXT:  const_dblarr:
62 ; CHECK32-NEXT:        .vbyte   4, 1072693248
63 ; CHECK32-NEXT:        .vbyte   4, 0
64 ; CHECK64-NEXT:        .vbyte   8, 0x3ff0000000000000
65 ; CHECK32-NEXT:        .vbyte   4, 1073741824
66 ; CHECK32-NEXT:        .vbyte   4, 0
67 ; CHECK64-NEXT:        .vbyte   8, 0x4000000000000000
68 ; CHECK32-NEXT:        .vbyte   4, 1074266112
69 ; CHECK32-NEXT:        .vbyte   4, 0
70 ; CHECK64-NEXT:        .vbyte   8, 0x4008000000000000
71 ; CHECK32-NEXT:        .vbyte   4, 1074790400
72 ; CHECK32-NEXT:        .vbyte   4, 0
73 ; CHECK64-NEXT:        .vbyte   8, 0x4010000000000000
76 ; OBJ:      File: {{.*}}aix-xcoff-rodata.ll.tmp.o
77 ; OBJ-NEXT: Format: aixcoff-rs6000
78 ; OBJ-NEXT: Arch: powerpc
79 ; OBJ-NEXT: AddressSize: 32bit
80 ; OBJ-NEXT: FileHeader {
81 ; OBJ-NEXT:   Magic: 0x1DF
82 ; OBJ-NEXT:   NumberOfSections: 1
83 ; OBJ-NEXT:   TimeStamp: None (0x0)
84 ; OBJ-NEXT:   SymbolTableOffset: 0x8C
85 ; OBJ-NEXT:   SymbolTableEntries: 21
86 ; OBJ-NEXT:   OptionalHeaderSize: 0x0
87 ; OBJ-NEXT:   Flags: 0x0
88 ; OBJ-NEXT: }
90 ; OBJ:      Sections [
91 ; OBJ:        Section {
92 ; OBJ-NEXT:     Index: 1
93 ; OBJ-NEXT:     Name: .text
94 ; OBJ-NEXT:     PhysicalAddress: 0x0
95 ; OBJ-NEXT:     VirtualAddress: 0x0
96 ; OBJ-NEXT:     Size: 0x50
97 ; OBJ-NEXT:     RawDataOffset: 0x3C
98 ; OBJ-NEXT:     RelocationPointer: 0x0
99 ; OBJ-NEXT:     LineNumberPointer: 0x0
100 ; OBJ-NEXT:     NumberOfRelocations: 0
101 ; OBJ-NEXT:     NumberOfLineNumbers: 0
102 ; OBJ-NEXT:     Type: STYP_TEXT (0x20)
103 ; OBJ-NEXT:   }
104 ; OBJ-NEXT: ]
107 ; SYMS:       File: {{.*}}aix-xcoff-rodata.ll.tmp.o
108 ; SYMS-NEXT:  Format: aixcoff-rs6000
109 ; SYMS-NEXT:  Arch: powerpc
110 ; SYMS-NEXT:  AddressSize: 32bit
111 ; SYMS:       Symbols [
112 ; SYMS:        Symbol {{[{][[:space:]] *}}Index: [[#INDX:]]{{[[:space:]] *}}Name: .rodata
113 ; SYMS-NEXT:     Value (RelocatableAddress): 0x0
114 ; SYMS-NEXT:     Section: .text
115 ; SYMS-NEXT:     Type: 0x0
116 ; SYMS-NEXT:     StorageClass: C_HIDEXT (0x6B)
117 ; SYMS-NEXT:     NumberOfAuxEntries: 1
118 ; SYMS-NEXT:     CSECT Auxiliary Entry {
119 ; SYMS-NEXT:       Index: [[#INDX+1]]
120 ; SYMS-NEXT:       SectionLen: 80
121 ; SYMS-NEXT:       ParameterHashIndex: 0x0
122 ; SYMS-NEXT:       TypeChkSectNum: 0x0
123 ; SYMS-NEXT:       SymbolAlignmentLog2: 5
124 ; SYMS-NEXT:       SymbolType: XTY_SD (0x1)
125 ; SYMS-NEXT:       StorageMappingClass: XMC_RO (0x1)
126 ; SYMS-NEXT:       StabInfoIndex: 0x0
127 ; SYMS-NEXT:       StabSectNum: 0x0
128 ; SYMS-NEXT:     }
129 ; SYMS-NEXT:   }
131 ; SYMS:        Symbol {
132 ; SYMS-NEXT:     Index: [[#INDX+2]]
133 ; SYMS-NEXT:     Name: const_ivar
134 ; SYMS-NEXT:     Value (RelocatableAddress): 0x0
135 ; SYMS-NEXT:     Section: .text
136 ; SYMS-NEXT:     Type: 0x0
137 ; SYMS-NEXT:     StorageClass: C_EXT (0x2)
138 ; SYMS-NEXT:     NumberOfAuxEntries: 1
139 ; SYMS-NEXT:     CSECT Auxiliary Entry {
140 ; SYMS-NEXT:       Index: [[#INDX+3]]
141 ; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX]]
142 ; SYMS-NEXT:       ParameterHashIndex: 0x0
143 ; SYMS-NEXT:       TypeChkSectNum: 0x0
144 ; SYMS-NEXT:       SymbolAlignmentLog2: 0
145 ; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
146 ; SYMS-NEXT:       StorageMappingClass: XMC_RO (0x1)
147 ; SYMS-NEXT:       StabInfoIndex: 0x0
148 ; SYMS-NEXT:       StabSectNum: 0x0
149 ; SYMS-NEXT:     }
150 ; SYMS-NEXT:   }
152 ; SYMS:        Symbol {
153 ; SYMS-NEXT:     Index: [[#INDX+4]]
154 ; SYMS-NEXT:     Name: const_llvar
155 ; SYMS-NEXT:     Value (RelocatableAddress): 0x8
156 ; SYMS-NEXT:     Section: .text
157 ; SYMS-NEXT:     Type: 0x0
158 ; SYMS-NEXT:     StorageClass: C_EXT (0x2)
159 ; SYMS-NEXT:     NumberOfAuxEntries: 1
160 ; SYMS-NEXT:     CSECT Auxiliary Entry {
161 ; SYMS-NEXT:       Index: [[#INDX+5]]
162 ; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX]]
163 ; SYMS-NEXT:       ParameterHashIndex: 0x0
164 ; SYMS-NEXT:       TypeChkSectNum: 0x0
165 ; SYMS-NEXT:       SymbolAlignmentLog2: 0
166 ; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
167 ; SYMS-NEXT:       StorageMappingClass: XMC_RO (0x1)
168 ; SYMS-NEXT:       StabInfoIndex: 0x0
169 ; SYMS-NEXT:       StabSectNum: 0x0
170 ; SYMS-NEXT:     }
171 ; SYMS-NEXT:   }
173 ; SYMS:        Symbol {
174 ; SYMS-NEXT:     Index: [[#INDX+6]]
175 ; SYMS-NEXT:     Name: const_svar
176 ; SYMS-NEXT:     Value (RelocatableAddress): 0x10
177 ; SYMS-NEXT:     Section: .text
178 ; SYMS-NEXT:     Type: 0x0
179 ; SYMS-NEXT:     StorageClass: C_EXT (0x2)
180 ; SYMS-NEXT:     NumberOfAuxEntries: 1
181 ; SYMS-NEXT:     CSECT Auxiliary Entry {
182 ; SYMS-NEXT:       Index: [[#INDX+7]]
183 ; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX]]
184 ; SYMS-NEXT:       ParameterHashIndex: 0x0
185 ; SYMS-NEXT:       TypeChkSectNum: 0x0
186 ; SYMS-NEXT:       SymbolAlignmentLog2: 0
187 ; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
188 ; SYMS-NEXT:       StorageMappingClass: XMC_RO (0x1)
189 ; SYMS-NEXT:       StabInfoIndex: 0x0
190 ; SYMS-NEXT:       StabSectNum: 0x0
191 ; SYMS-NEXT:     }
192 ; SYMS-NEXT:   }
194 ; SYMS:        Symbol {
195 ; SYMS-NEXT:     Index: [[#INDX+8]]
196 ; SYMS-NEXT:     Name: const_fvar
197 ; SYMS-NEXT:     Value (RelocatableAddress): 0x14
198 ; SYMS-NEXT:     Section: .text
199 ; SYMS-NEXT:     Type: 0x0
200 ; SYMS-NEXT:     StorageClass: C_EXT (0x2)
201 ; SYMS-NEXT:     NumberOfAuxEntries: 1
202 ; SYMS-NEXT:     CSECT Auxiliary Entry {
203 ; SYMS-NEXT:       Index: [[#INDX+9]]
204 ; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX]]
205 ; SYMS-NEXT:       ParameterHashIndex: 0x0
206 ; SYMS-NEXT:       TypeChkSectNum: 0x0
207 ; SYMS-NEXT:       SymbolAlignmentLog2: 0
208 ; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
209 ; SYMS-NEXT:       StorageMappingClass: XMC_RO (0x1)
210 ; SYMS-NEXT:       StabInfoIndex: 0x0
211 ; SYMS-NEXT:       StabSectNum: 0x0
212 ; SYMS-NEXT:     }
213 ; SYMS-NEXT:   }
215 ; SYMS:        Symbol {
216 ; SYMS-NEXT:     Index: [[#INDX+10]]
217 ; SYMS-NEXT:     Name: const_dvar
218 ; SYMS-NEXT:     Value (RelocatableAddress): 0x18
219 ; SYMS-NEXT:     Section: .text
220 ; SYMS-NEXT:     Type: 0x0
221 ; SYMS-NEXT:     StorageClass: C_EXT (0x2)
222 ; SYMS-NEXT:     NumberOfAuxEntries: 1
223 ; SYMS-NEXT:     CSECT Auxiliary Entry {
224 ; SYMS-NEXT:       Index: [[#INDX+11]]
225 ; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX]]
226 ; SYMS-NEXT:       ParameterHashIndex: 0x0
227 ; SYMS-NEXT:       TypeChkSectNum: 0x0
228 ; SYMS-NEXT:       SymbolAlignmentLog2: 0
229 ; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
230 ; SYMS-NEXT:       StorageMappingClass: XMC_RO (0x1)
231 ; SYMS-NEXT:       StabInfoIndex: 0x0
232 ; SYMS-NEXT:       StabSectNum: 0x0
233 ; SYMS-NEXT:     }
234 ; SYMS-NEXT:   }
236 ; SYMS:        Symbol {
237 ; SYMS-NEXT:     Index: [[#INDX+12]]
238 ; SYMS-NEXT:     Name: const_over_aligned
239 ; SYMS-NEXT:     Value (RelocatableAddress): 0x20
240 ; SYMS-NEXT:     Section: .text
241 ; SYMS-NEXT:     Type: 0x0
242 ; SYMS-NEXT:     StorageClass: C_EXT (0x2)
243 ; SYMS-NEXT:     NumberOfAuxEntries: 1
244 ; SYMS-NEXT:     CSECT Auxiliary Entry {
245 ; SYMS-NEXT:       Index: [[#INDX+13]]
246 ; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX]]
247 ; SYMS-NEXT:       ParameterHashIndex: 0x0
248 ; SYMS-NEXT:       TypeChkSectNum: 0x0
249 ; SYMS-NEXT:       SymbolAlignmentLog2: 0
250 ; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
251 ; SYMS-NEXT:       StorageMappingClass: XMC_RO (0x1)
252 ; SYMS-NEXT:       StabInfoIndex: 0x0
253 ; SYMS-NEXT:       StabSectNum: 0x0
254 ; SYMS-NEXT:     }
255 ; SYMS-NEXT:   }
257 ; SYMS:        Symbol {
258 ; SYMS-NEXT:     Index: [[#INDX+14]]
259 ; SYMS-NEXT:     Name: const_chrarray
260 ; SYMS-NEXT:     Value (RelocatableAddress): 0x28
261 ; SYMS-NEXT:     Section: .text
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-NEXT:       Index: [[#INDX+15]]
267 ; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX]]
268 ; SYMS-NEXT:       ParameterHashIndex: 0x0
269 ; SYMS-NEXT:       TypeChkSectNum: 0x0
270 ; SYMS-NEXT:       SymbolAlignmentLog2: 0
271 ; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
272 ; SYMS-NEXT:       StorageMappingClass: XMC_RO (0x1)
273 ; SYMS-NEXT:       StabInfoIndex: 0x0
274 ; SYMS-NEXT:       StabSectNum: 0x0
275 ; SYMS-NEXT:     }
276 ; SYMS-NEXT:   }
278 ; SYMS:        Symbol {
279 ; SYMS-NEXT:     Index: [[#INDX+16]]
280 ; SYMS-NEXT:     Name: const_dblarr
281 ; SYMS-NEXT:     Value (RelocatableAddress): 0x30
282 ; SYMS-NEXT:     Section: .text
283 ; SYMS-NEXT:     Type: 0x0
284 ; SYMS-NEXT:     StorageClass: C_EXT (0x2)
285 ; SYMS-NEXT:     NumberOfAuxEntries: 1
286 ; SYMS-NEXT:     CSECT Auxiliary Entry {
287 ; SYMS-NEXT:       Index: [[#INDX+17]]
288 ; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX]]
289 ; SYMS-NEXT:       ParameterHashIndex: 0x0
290 ; SYMS-NEXT:       TypeChkSectNum: 0x0
291 ; SYMS-NEXT:       SymbolAlignmentLog2: 0
292 ; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
293 ; SYMS-NEXT:       StorageMappingClass: XMC_RO (0x1)
294 ; SYMS-NEXT:       StabInfoIndex: 0x0
295 ; SYMS-NEXT:       StabSectNum: 0x0
296 ; SYMS-NEXT:     }
297 ; SYMS-NEXT:   }
298 ; SYMS:      ]
300 ; DIS: Disassembly of section .text:
301 ; DIS: 00000000 <const_ivar>:
302 ; DIS-NEXT:        0: 00 00 00 23
303 ; DIS-NEXT:        4: 00 00 00 00
305 ; DIS: 00000008 <const_llvar>:
306 ; DIS-NEXT:        8: 00 00 00 00
307 ; DIS-NEXT:        c: 00 00 00 24
309 ; DIS: 00000010 <const_svar>:
310 ; DIS-NEXT:       10: 00 25 00 00
312 ; DIS: 00000014 <const_fvar>:
313 ; DIS-NEXT:       14: 44 48 00 00
315 ; DIS: 00000018 <const_dvar>:
316 ; DIS-NEXT:       18: 40 8c 20 00
317 ; DIS-NEXT:       1c: 00 00 00 00
319 ; DIS: 00000020 <const_over_aligned>:
320 ; DIS-NEXT:       20: 40 8c 20 00
321 ; DIS-NEXT:       24: 00 00 00 00
323 ; DIS: 00000028 <const_chrarray>:
324 ; DIS-NEXT:       28: 61 62 63 64
325 ; DIS-NEXT:       2c: 00 00 00 00
327 ; DIS: 00000030 <const_dblarr>:
328 ; DIS-NEXT:       30: 3f f0 00 00
329 ; DIS-NEXT:       34: 00 00 00 00
330 ; DIS-NEXT:       38: 40 00 00 00
331 ; DIS-NEXT:       3c: 00 00 00 00
332 ; DIS-NEXT:       40: 40 08 00 00
333 ; DIS-NEXT:       44: 00 00 00 00
334 ; DIS-NEXT:       48: 40 10 00 00
335 ; DIS-NEXT:       4c: 00 00 00 00