[RISCV][VLOPT] Add vector narrowing integer right shift instructions to isSupportedIn...
[llvm-project.git] / llvm / test / CodeGen / PowerPC / aix-xcoff-rodata.ll
blob9b0a3fe0a716fba7aaa0d45495489c561f7880ff
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 \
7 ; RUN:   -filetype=obj -o %t.o < %s
8 ; RUN: llvm-readobj --section-headers --file-header %t.o | \
9 ; RUN:   FileCheck --check-prefixes=OBJ,OBJ32 %s
10 ; RUN: llvm-readobj --syms %t.o | FileCheck --check-prefixes=SYMS,SYMS32 %s
11 ; RUN: llvm-objdump -D %t.o | FileCheck --check-prefix=DIS %s
13 ; RUN: llc -verify-machineinstrs -mcpu=pwr7 -mtriple powerpc64-ibm-aix-xcoff -data-sections=false \
14 ; RUN:   -filetype=obj -o %t64.o < %s
15 ; RUN: llvm-readobj --section-headers --file-header %t64.o | \
16 ; RUN:   FileCheck --check-prefixes=OBJ,OBJ64 %s
17 ; RUN: llvm-readobj --syms %t64.o | FileCheck --check-prefixes=SYMS,SYMS64 %s
19 @const_ivar = constant i32 35, align 4
20 @const_llvar = constant i64 36, align 8
21 @const_svar = constant i16 37, align 2
22 @const_fvar = constant float 8.000000e+02, align 4
23 @const_dvar = constant double 9.000000e+02, align 8
24 @const_over_aligned = constant double 9.000000e+02, align 32
25 @const_chrarray = constant [4 x i8] c"abcd", align 1
26 @const_dblarr = constant [4 x double] [double 1.000000e+00, double 2.000000e+00, double 3.000000e+00, double 4.000000e+00], align 8
28 ; CHECK:               .csect .rodata[RO],5
29 ; CHECK-NEXT:          .globl  const_ivar
30 ; CHECK-NEXT:          .align  2
31 ; CHECK-NEXT:  const_ivar:
32 ; CHECK-NEXT:          .vbyte   4, 35
33 ; CHECK-NEXT:          .globl  const_llvar
34 ; CHECK-NEXT:          .align  3
35 ; CHECK-NEXT:  const_llvar:
36 ; CHECK32-NEXT:        .vbyte   4, 0
37 ; CHECK32-NEXT:        .vbyte   4, 36
38 ; CHECK64-NEXT:        .vbyte   8, 36
39 ; CHECK-NEXT:          .globl  const_svar
40 ; CHECK-NEXT:          .align  1
41 ; CHECK-NEXT:  const_svar:
42 ; CHECK-NEXT:          .vbyte   2, 37
43 ; CHECK-NEXT:          .globl  const_fvar
44 ; CHECK-NEXT:          .align  2
45 ; CHECK-NEXT:  const_fvar:
46 ; CHECK-NEXT:          .vbyte   4, 0x44480000
47 ; CHECK-NEXT:          .globl  const_dvar
48 ; CHECK-NEXT:          .align  3
49 ; CHECK-NEXT:  const_dvar:
50 ; CHECK32-NEXT:        .vbyte   4, 1082925056
51 ; CHECK32-NEXT:        .vbyte   4, 0
52 ; CHECK64-NEXT:        .vbyte   8, 0x408c200000000000
53 ; CHECK-NEXT:          .globl  const_over_aligned
54 ; CHECK-NEXT:          .align  5
55 ; CHECK-NEXT:  const_over_aligned:
56 ; CHECK32-NEXT:        .vbyte   4, 1082925056
57 ; CHECK32-NEXT:        .vbyte   4, 0
58 ; CHECK64-NEXT:        .vbyte   8, 0x408c200000000000
59 ; CHECK-NEXT:          .globl  const_chrarray
60 ; CHECK-NEXT:  const_chrarray:
61 ; CHECK-NEXT:          .byte   "abcd"
62 ; CHECK-NEXT:          .globl  const_dblarr
63 ; CHECK-NEXT:          .align  3
64 ; CHECK-NEXT:  const_dblarr:
65 ; CHECK32-NEXT:        .vbyte   4, 1072693248
66 ; CHECK32-NEXT:        .vbyte   4, 0
67 ; CHECK64-NEXT:        .vbyte   8, 0x3ff0000000000000
68 ; CHECK32-NEXT:        .vbyte   4, 1073741824
69 ; CHECK32-NEXT:        .vbyte   4, 0
70 ; CHECK64-NEXT:        .vbyte   8, 0x4000000000000000
71 ; CHECK32-NEXT:        .vbyte   4, 1074266112
72 ; CHECK32-NEXT:        .vbyte   4, 0
73 ; CHECK64-NEXT:        .vbyte   8, 0x4008000000000000
74 ; CHECK32-NEXT:        .vbyte   4, 1074790400
75 ; CHECK32-NEXT:        .vbyte   4, 0
76 ; CHECK64-NEXT:        .vbyte   8, 0x4010000000000000
78 ; OBJ:      FileHeader {
79 ; OBJ32-NEXT: Magic: 0x1DF
80 ; OBJ64-NEXT: Magic: 0x1F7
81 ; OBJ-NEXT:   NumberOfSections: 1
82 ; OBJ-NEXT:   TimeStamp: None (0x0)
83 ; OBJ32-NEXT: SymbolTableOffset: 0x8C
84 ; OBJ64-NEXT: SymbolTableOffset: 0xB0
85 ; OBJ-NEXT:   SymbolTableEntries: 23
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 ; OBJ32-NEXT:   Size: 0x50
97 ; OBJ32-NEXT:   RawDataOffset: 0x3C
98 ; OBJ64-NEXT:   Size: 0x50
99 ; OBJ64-NEXT:   RawDataOffset: 0x60
100 ; OBJ-NEXT:     RelocationPointer: 0x0
101 ; OBJ-NEXT:     LineNumberPointer: 0x0
102 ; OBJ-NEXT:     NumberOfRelocations: 0
103 ; OBJ-NEXT:     NumberOfLineNumbers: 0
104 ; OBJ-NEXT:     Type: STYP_TEXT (0x20)
105 ; OBJ-NEXT:   }
106 ; OBJ-NEXT: ]
108 ; SYMS:       Symbols [
109 ; SYMS:        Symbol {{[{][[:space:]] *}}Index: [[#INDX:]]{{[[:space:]] *}}Name: .rodata
110 ; SYMS-NEXT:     Value (RelocatableAddress): 0x0
111 ; SYMS-NEXT:     Section: .text
112 ; SYMS-NEXT:     Type: 0x0
113 ; SYMS-NEXT:     StorageClass: C_HIDEXT (0x6B)
114 ; SYMS-NEXT:     NumberOfAuxEntries: 1
115 ; SYMS-NEXT:     CSECT Auxiliary Entry {
116 ; SYMS-NEXT:       Index: [[#INDX+1]]
117 ; SYMS-NEXT:       SectionLen: 80
118 ; SYMS-NEXT:       ParameterHashIndex: 0x0
119 ; SYMS-NEXT:       TypeChkSectNum: 0x0
120 ; SYMS-NEXT:       SymbolAlignmentLog2: 5
121 ; SYMS-NEXT:       SymbolType: XTY_SD (0x1)
122 ; SYMS-NEXT:       StorageMappingClass: XMC_RO (0x1)
123 ; SYMS32-NEXT:     StabInfoIndex: 0x0
124 ; SYMS32-NEXT:     StabSectNum: 0x0
125 ; SYMS64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
126 ; SYMS-NEXT:     }
127 ; SYMS-NEXT:   }
129 ; SYMS:        Symbol {
130 ; SYMS-NEXT:     Index: [[#INDX+2]]
131 ; SYMS-NEXT:     Name: const_ivar
132 ; SYMS-NEXT:     Value (RelocatableAddress): 0x0
133 ; SYMS-NEXT:     Section: .text
134 ; SYMS-NEXT:     Type: 0x0
135 ; SYMS-NEXT:     StorageClass: C_EXT (0x2)
136 ; SYMS-NEXT:     NumberOfAuxEntries: 1
137 ; SYMS-NEXT:     CSECT Auxiliary Entry {
138 ; SYMS-NEXT:       Index: [[#INDX+3]]
139 ; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX]]
140 ; SYMS-NEXT:       ParameterHashIndex: 0x0
141 ; SYMS-NEXT:       TypeChkSectNum: 0x0
142 ; SYMS-NEXT:       SymbolAlignmentLog2: 0
143 ; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
144 ; SYMS-NEXT:       StorageMappingClass: XMC_RO (0x1)
145 ; SYMS32-NEXT:     StabInfoIndex: 0x0
146 ; SYMS32-NEXT:     StabSectNum: 0x0
147 ; SYMS64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
148 ; SYMS-NEXT:     }
149 ; SYMS-NEXT:   }
151 ; SYMS:        Symbol {
152 ; SYMS-NEXT:     Index: [[#INDX+4]]
153 ; SYMS-NEXT:     Name: const_llvar
154 ; SYMS-NEXT:     Value (RelocatableAddress): 0x8
155 ; SYMS-NEXT:     Section: .text
156 ; SYMS-NEXT:     Type: 0x0
157 ; SYMS-NEXT:     StorageClass: C_EXT (0x2)
158 ; SYMS-NEXT:     NumberOfAuxEntries: 1
159 ; SYMS-NEXT:     CSECT Auxiliary Entry {
160 ; SYMS-NEXT:       Index: [[#INDX+5]]
161 ; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX]]
162 ; SYMS-NEXT:       ParameterHashIndex: 0x0
163 ; SYMS-NEXT:       TypeChkSectNum: 0x0
164 ; SYMS-NEXT:       SymbolAlignmentLog2: 0
165 ; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
166 ; SYMS-NEXT:       StorageMappingClass: XMC_RO (0x1)
167 ; SYMS32-NEXT:     StabInfoIndex: 0x0
168 ; SYMS32-NEXT:     StabSectNum: 0x0
169 ; SYMS64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
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 ; SYMS32-NEXT:     StabInfoIndex: 0x0
190 ; SYMS32-NEXT:     StabSectNum: 0x0
191 ; SYMS64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
192 ; SYMS-NEXT:     }
193 ; SYMS-NEXT:   }
195 ; SYMS:        Symbol {
196 ; SYMS-NEXT:     Index: [[#INDX+8]]
197 ; SYMS-NEXT:     Name: const_fvar
198 ; SYMS-NEXT:     Value (RelocatableAddress): 0x14
199 ; SYMS-NEXT:     Section: .text
200 ; SYMS-NEXT:     Type: 0x0
201 ; SYMS-NEXT:     StorageClass: C_EXT (0x2)
202 ; SYMS-NEXT:     NumberOfAuxEntries: 1
203 ; SYMS-NEXT:     CSECT Auxiliary Entry {
204 ; SYMS-NEXT:       Index: [[#INDX+9]]
205 ; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX]]
206 ; SYMS-NEXT:       ParameterHashIndex: 0x0
207 ; SYMS-NEXT:       TypeChkSectNum: 0x0
208 ; SYMS-NEXT:       SymbolAlignmentLog2: 0
209 ; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
210 ; SYMS-NEXT:       StorageMappingClass: XMC_RO (0x1)
211 ; SYMS32-NEXT:     StabInfoIndex: 0x0
212 ; SYMS32-NEXT:     StabSectNum: 0x0
213 ; SYMS64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
214 ; SYMS-NEXT:     }
215 ; SYMS-NEXT:   }
217 ; SYMS:        Symbol {
218 ; SYMS-NEXT:     Index: [[#INDX+10]]
219 ; SYMS-NEXT:     Name: const_dvar
220 ; SYMS-NEXT:     Value (RelocatableAddress): 0x18
221 ; SYMS-NEXT:     Section: .text
222 ; SYMS-NEXT:     Type: 0x0
223 ; SYMS-NEXT:     StorageClass: C_EXT (0x2)
224 ; SYMS-NEXT:     NumberOfAuxEntries: 1
225 ; SYMS-NEXT:     CSECT Auxiliary Entry {
226 ; SYMS-NEXT:       Index: [[#INDX+11]]
227 ; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX]]
228 ; SYMS-NEXT:       ParameterHashIndex: 0x0
229 ; SYMS-NEXT:       TypeChkSectNum: 0x0
230 ; SYMS-NEXT:       SymbolAlignmentLog2: 0
231 ; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
232 ; SYMS-NEXT:       StorageMappingClass: XMC_RO (0x1)
233 ; SYMS32-NEXT:     StabInfoIndex: 0x0
234 ; SYMS32-NEXT:     StabSectNum: 0x0
235 ; SYMS64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
236 ; SYMS-NEXT:     }
237 ; SYMS-NEXT:   }
239 ; SYMS:        Symbol {
240 ; SYMS-NEXT:     Index: [[#INDX+12]]
241 ; SYMS-NEXT:     Name: const_over_aligned
242 ; SYMS-NEXT:     Value (RelocatableAddress): 0x20
243 ; SYMS-NEXT:     Section: .text
244 ; SYMS-NEXT:     Type: 0x0
245 ; SYMS-NEXT:     StorageClass: C_EXT (0x2)
246 ; SYMS-NEXT:     NumberOfAuxEntries: 1
247 ; SYMS-NEXT:     CSECT Auxiliary Entry {
248 ; SYMS-NEXT:       Index: [[#INDX+13]]
249 ; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX]]
250 ; SYMS-NEXT:       ParameterHashIndex: 0x0
251 ; SYMS-NEXT:       TypeChkSectNum: 0x0
252 ; SYMS-NEXT:       SymbolAlignmentLog2: 0
253 ; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
254 ; SYMS-NEXT:       StorageMappingClass: XMC_RO (0x1)
255 ; SYMS32-NEXT:     StabInfoIndex: 0x0
256 ; SYMS32-NEXT:     StabSectNum: 0x0
257 ; SYMS64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
258 ; SYMS-NEXT:     }
259 ; SYMS-NEXT:   }
261 ; SYMS:        Symbol {
262 ; SYMS-NEXT:     Index: [[#INDX+14]]
263 ; SYMS-NEXT:     Name: const_chrarray
264 ; SYMS-NEXT:     Value (RelocatableAddress): 0x28
265 ; SYMS-NEXT:     Section: .text
266 ; SYMS-NEXT:     Type: 0x0
267 ; SYMS-NEXT:     StorageClass: C_EXT (0x2)
268 ; SYMS-NEXT:     NumberOfAuxEntries: 1
269 ; SYMS-NEXT:     CSECT Auxiliary Entry {
270 ; SYMS-NEXT:       Index: [[#INDX+15]]
271 ; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX]]
272 ; SYMS-NEXT:       ParameterHashIndex: 0x0
273 ; SYMS-NEXT:       TypeChkSectNum: 0x0
274 ; SYMS-NEXT:       SymbolAlignmentLog2: 0
275 ; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
276 ; SYMS-NEXT:       StorageMappingClass: XMC_RO (0x1)
277 ; SYMS32-NEXT:     StabInfoIndex: 0x0
278 ; SYMS32-NEXT:     StabSectNum: 0x0
279 ; SYMS64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
280 ; SYMS-NEXT:     }
281 ; SYMS-NEXT:   }
283 ; SYMS:        Symbol {
284 ; SYMS-NEXT:     Index: [[#INDX+16]]
285 ; SYMS-NEXT:     Name: const_dblarr
286 ; SYMS-NEXT:     Value (RelocatableAddress): 0x30
287 ; SYMS-NEXT:     Section: .text
288 ; SYMS-NEXT:     Type: 0x0
289 ; SYMS-NEXT:     StorageClass: C_EXT (0x2)
290 ; SYMS-NEXT:     NumberOfAuxEntries: 1
291 ; SYMS-NEXT:     CSECT Auxiliary Entry {
292 ; SYMS-NEXT:       Index: [[#INDX+17]]
293 ; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX]]
294 ; SYMS-NEXT:       ParameterHashIndex: 0x0
295 ; SYMS-NEXT:       TypeChkSectNum: 0x0
296 ; SYMS-NEXT:       SymbolAlignmentLog2: 0
297 ; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
298 ; SYMS-NEXT:       StorageMappingClass: XMC_RO (0x1)
299 ; SYMS32-NEXT:     StabInfoIndex: 0x0
300 ; SYMS32-NEXT:     StabSectNum: 0x0
301 ; SYMS64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
302 ; SYMS-NEXT:     }
303 ; SYMS-NEXT:   }
304 ; SYMS:      ]
306 ; DIS: Disassembly of section .text:
307 ; DIS: 00000000 <const_ivar>:
308 ; DIS-NEXT:        0: 00 00 00 23
309 ; DIS-NEXT:        4: 00 00 00 00
311 ; DIS: 00000008 <const_llvar>:
312 ; DIS-NEXT:        8: 00 00 00 00
313 ; DIS-NEXT:        c: 00 00 00 24
315 ; DIS: 00000010 <const_svar>:
316 ; DIS-NEXT:       10: 00 25 00 00
318 ; DIS: 00000014 <const_fvar>:
319 ; DIS-NEXT:       14: 44 48 00 00
321 ; DIS: 00000018 <const_dvar>:
322 ; DIS-NEXT:       18: 40 8c 20 00
323 ; DIS-NEXT:       1c: 00 00 00 00
325 ; DIS: 00000020 <const_over_aligned>:
326 ; DIS-NEXT:       20: 40 8c 20 00
327 ; DIS-NEXT:       24: 00 00 00 00
329 ; DIS: 00000028 <const_chrarray>:
330 ; DIS-NEXT:       28: 61 62 63 64
331 ; DIS-NEXT:       2c: 00 00 00 00
333 ; DIS: 00000030 <const_dblarr>:
334 ; DIS-NEXT:       30: 3f f0 00 00
335 ; DIS-NEXT:       34: 00 00 00 00
336 ; DIS-NEXT:       38: 40 00 00 00
337 ; DIS-NEXT:       3c: 00 00 00 00
338 ; DIS-NEXT:       40: 40 08 00 00
339 ; DIS-NEXT:       44: 00 00 00 00
340 ; DIS-NEXT:       48: 40 10 00 00
341 ; DIS-NEXT:       4c: 00 00 00 00