1 ; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mattr=-altivec -mtriple powerpc-ibm-aix-xcoff \
2 ; RUN: -data-sections -xcoff-traceback-table=false < %s | \
3 ; RUN: FileCheck --check-prefixes=CHECK,CHECK32 %s
4 ; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mattr=-altivec -mtriple powerpc64-ibm-aix-xcoff -data-sections < %s | \
5 ; RUN: FileCheck --check-prefixes=CHECK,CHECK64 %s
6 ; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mattr=-altivec -mtriple powerpc-ibm-aix-xcoff \
7 ; RUN: -filetype=obj -data-sections -xcoff-traceback-table=false -o %t.o < %s
8 ; RUN: llvm-objdump -D --symbol-description %t.o | FileCheck -D#NFA=2 --check-prefix=CHECKOBJ %s
9 ; RUN: llvm-readobj -s %t.o | FileCheck --check-prefix=CHECKSYM %s
11 ;; Test to see if the default is correct for -data-sections on AIX.
12 ; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mattr=-altivec -mtriple powerpc-ibm-aix-xcoff \
13 ; RUN: -xcoff-traceback-table=false < %s | \
14 ; RUN: FileCheck --check-prefixes=CHECK,CHECK32 %s
15 ; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mattr=-altivec -mtriple powerpc64-ibm-aix-xcoff < %s | \
16 ; RUN: FileCheck --check-prefixes=CHECK,CHECK64 %s
17 ; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mattr=-altivec -mtriple powerpc-ibm-aix-xcoff \
18 ; RUN: -xcoff-traceback-table=false -filetype=obj -o %t.o < %s
19 ; RUN: llvm-objdump -D --symbol-description %t.o | FileCheck -D#NFA=2 --check-prefix=CHECKOBJ %s
20 ; RUN: llvm-readobj -s %t.o | FileCheck --check-prefix=CHECKSYM %s
22 ;; Test to see if the default is correct for -data-sections on AIX.
23 ; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mattr=-altivec -mtriple powerpc-ibm-aix-xcoff \
24 ; RUN: -xcoff-traceback-table=false < %s | \
25 ; RUN: FileCheck --check-prefixes=CHECK,CHECK32 %s
26 ; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mattr=-altivec -mtriple powerpc64-ibm-aix-xcoff \
27 ; RUN: -xcoff-traceback-table=false < %s | \
28 ; RUN: FileCheck --check-prefixes=CHECK,CHECK64 %s
29 ; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mattr=-altivec -mtriple powerpc-ibm-aix-xcoff \
30 ; RUN: -xcoff-traceback-table=false -filetype=obj -o %t.o < %s
31 ; RUN: llvm-objdump -D --symbol-description %t.o | FileCheck -D#NFA=2 --check-prefix=CHECKOBJ %s
32 ; RUN: llvm-readobj -s %t.o | FileCheck --check-prefix=CHECKSYM %s
34 @ivar = local_unnamed_addr global i32 35, align 4
35 @const_ivar = constant i32 35, align 4
37 @a = common global i32 0, align 4
38 @f = common local_unnamed_addr global i32 0, align 4
40 @.str = private unnamed_addr constant [9 x i8] c"abcdefgh\00", align 1
41 @p = global ptr @.str, align 4
45 %0 = load ptr, ptr @p, align 4
46 %1 = load i8, ptr %0, align 1
52 %0 = load i32, ptr @ivar, align 4
53 %1 = load i32, ptr @const_ivar, align 4
54 %add = add nsw i32 %0, %1
55 %2 = load i32, ptr @a, align 4
56 %add1 = add nsw i32 %add, %2
57 %3 = load i32, ptr @f, align 4
58 %add2 = add nsw i32 %add1, %3
63 ; CHECK: .csect ivar[RW],2
64 ; CHECK-NEXT: .globl ivar[RW]
65 ; CHECK-NEXT: .align 2
66 ; CHECK-NEXT: .vbyte 4, 35 # 0x23
67 ; CHECK-NEXT: .csect const_ivar[RO],2
68 ; CHECK-NEXT: .globl const_ivar[RO]
69 ; CHECK-NEXT: .align 2
70 ; CHECK-NEXT: .vbyte 4, 35 # 0x23
71 ; CHECK-NEXT: .comm a[RW],4,2
72 ; CHECK-NEXT: .comm f[RW],4,2
73 ; CHECK-NEXT: .csect L...str[RO],2
74 ; CHECK-NEXT: .string "abcdefgh"
75 ; CHECK32: .csect p[RW],2
76 ; CHECK32-NEXT: .globl p[RW]
77 ; CHECK32-NEXT: .align 2
78 ; CHECK32-NEXT: .vbyte 4, L...str[RO]
79 ; CHECK64: .csect p[RW],3
80 ; CHECK64-NEXT: .globl p[RW]
81 ; CHECK64-NEXT: .align 3
82 ; CHECK64-NEXT: .vbyte 8, L...str[RO]
85 ; CHECK-NEXT: .tc p[TC],p[RW]
87 ; CHECK-NEXT: .tc ivar[TC],ivar[RW]
89 ; CHECK-NEXT: .tc a[TC],a[RW]
91 ; CHECK-NEXT: .tc f[TC],f[RW]
93 ; CHECKOBJ: 00000038 (idx: [[#NFA+7]]) const_ivar[RO]:
94 ; CHECKOBJ-NEXT: 38: 00 00 00 23 <unknown>
96 ; CHECKOBJ-NEXT: 0000003c (idx: [[#NFA+9]]) L...str[RO]:
97 ; CHECKOBJ-NEXT: 3c: 61 62 63 64
98 ; CHECKOBJ-NEXT: 40: 65 66 67 68
99 ; CHECKOBJ-NEXT: 44: 00 00 00 00 <unknown>
101 ; CHECKOBJ-NEXT: Disassembly of section .data:
103 ; CHECKOBJ-NEXT: 00000048 (idx: [[#NFA+11]]) ivar[RW]:
104 ; CHECKOBJ-NEXT: 48: 00 00 00 23 <unknown>
106 ; CHECKOBJ-NEXT: 0000004c (idx: [[#NFA+13]]) p[RW]:
107 ; CHECKOBJ-NEXT: 4c: 00 00 00 3c <unknown>
109 ; CHECKOBJ-NEXT: 00000050 (idx: [[#NFA+15]]) foo[DS]:
110 ; CHECKOBJ-NEXT: 50: 00 00 00 00 <unknown>
111 ; CHECKOBJ-NEXT: 54: 00 00 00 68 <unknown>
112 ; CHECKOBJ-NEXT: 58: 00 00 00 00 <unknown>
114 ; CHECKOBJ-NEXT: 0000005c (idx: [[#NFA+17]]) bar[DS]:
115 ; CHECKOBJ-NEXT: 5c: 00 00 00 10 <unknown>
116 ; CHECKOBJ-NEXT: 60: 00 00 00 68 <unknown>
117 ; CHECKOBJ-NEXT: 64: 00 00 00 00 <unknown>
119 ; CHECKOBJ-NEXT: 00000068 (idx: [[#NFA+21]]) p[TC]:
120 ; CHECKOBJ-NEXT: 68: 00 00 00 4c <unknown>
122 ; CHECKOBJ-NEXT: 0000006c (idx: [[#NFA+23]]) ivar[TC]:
123 ; CHECKOBJ-NEXT: 6c: 00 00 00 48 <unknown>
125 ; CHECKOBJ-NEXT: 00000070 (idx: [[#NFA+25]]) a[TC]:
126 ; CHECKOBJ-NEXT: 70: 00 00 00 78 <unknown>
128 ; CHECKOBJ-NEXT: 00000074 (idx: [[#NFA+27]]) f[TC]:
129 ; CHECKOBJ-NEXT: 74: 00 00 00 7c <unknown>
131 ; CHECKOBJ-NEXT: Disassembly of section .bss:
133 ; CHECKOBJ-NEXT: 00000078 (idx: [[#NFA+29]]) a[RW]:
136 ; CHECKOBJ-NEXT: 0000007c (idx: [[#NFA+31]]) f[RW]:
141 ; CHECKSYM: Name: const_ivar
142 ; CHECKSYM: Value (RelocatableAddress): 0x38
143 ; CHECKSYM: Section: .text
144 ; CHECKSYM: Type: 0x0
145 ; CHECKSYM: StorageClass: C_EXT (0x2)
146 ; CHECKSYM: NumberOfAuxEntries: 1
147 ; CHECKSYM: CSECT Auxiliary Entry {
148 ; CHECKSYM: SectionLen: 4
149 ; CHECKSYM: ParameterHashIndex: 0x0
150 ; CHECKSYM: TypeChkSectNum: 0x0
151 ; CHECKSYM: SymbolAlignmentLog2: 2
152 ; CHECKSYM: SymbolType: XTY_SD (0x1)
153 ; CHECKSYM: StorageMappingClass: XMC_RO (0x1)
154 ; CHECKSYM: StabInfoIndex: 0x0
155 ; CHECKSYM: StabSectNum: 0x0
159 ; CHECKSYM: Name: L...str
160 ; CHECKSYM: Value (RelocatableAddress): 0x3C
161 ; CHECKSYM: Section: .text
162 ; CHECKSYM: Type: 0x0
163 ; CHECKSYM: StorageClass: C_HIDEXT (0x6B)
164 ; CHECKSYM: NumberOfAuxEntries: 1
165 ; CHECKSYM: CSECT Auxiliary Entry {
166 ; CHECKSYM: SectionLen: 9
167 ; CHECKSYM: ParameterHashIndex: 0x0
168 ; CHECKSYM: TypeChkSectNum: 0x0
169 ; CHECKSYM: SymbolAlignmentLog2: 2
170 ; CHECKSYM: SymbolType: XTY_SD (0x1)
171 ; CHECKSYM: StorageMappingClass: XMC_RO (0x1)
172 ; CHECKSYM: StabInfoIndex: 0x0
173 ; CHECKSYM: StabSectNum: 0x0
177 ; CHECKSYM: Name: ivar
178 ; CHECKSYM: Value (RelocatableAddress): 0x48
179 ; CHECKSYM: Section: .data
180 ; CHECKSYM: Type: 0x0
181 ; CHECKSYM: StorageClass: C_EXT (0x2)
182 ; CHECKSYM: NumberOfAuxEntries: 1
183 ; CHECKSYM: CSECT Auxiliary Entry {
184 ; CHECKSYM: SectionLen: 4
185 ; CHECKSYM: ParameterHashIndex: 0x0
186 ; CHECKSYM: TypeChkSectNum: 0x0
187 ; CHECKSYM: SymbolAlignmentLog2: 2
188 ; CHECKSYM: SymbolType: XTY_SD (0x1)
189 ; CHECKSYM: StorageMappingClass: XMC_RW (0x5)
190 ; CHECKSYM: StabInfoIndex: 0x0
191 ; CHECKSYM: StabSectNum: 0x0
196 ; CHECKSYM: Value (RelocatableAddress): 0x4C
197 ; CHECKSYM: Section: .data
198 ; CHECKSYM: Type: 0x0
199 ; CHECKSYM: StorageClass: C_EXT (0x2)
200 ; CHECKSYM: NumberOfAuxEntries: 1
201 ; CHECKSYM: CSECT Auxiliary Entry {
202 ; CHECKSYM: SectionLen: 4
203 ; CHECKSYM: ParameterHashIndex: 0x0
204 ; CHECKSYM: TypeChkSectNum: 0x0
205 ; CHECKSYM: SymbolAlignmentLog2: 2
206 ; CHECKSYM: SymbolType: XTY_SD (0x1)
207 ; CHECKSYM: StorageMappingClass: XMC_RW (0x5)
208 ; CHECKSYM: StabInfoIndex: 0x0
209 ; CHECKSYM: StabSectNum: 0x0
213 ; CHECKSYM: Name: TOC
214 ; CHECKSYM: Value (RelocatableAddress): 0x68
215 ; CHECKSYM: Section: .data
216 ; CHECKSYM: Type: 0x0
217 ; CHECKSYM: StorageClass: C_HIDEXT (0x6B)
218 ; CHECKSYM: NumberOfAuxEntries: 1
219 ; CHECKSYM: CSECT Auxiliary Entry {
220 ; CHECKSYM: SectionLen: 0
221 ; CHECKSYM: ParameterHashIndex: 0x0
222 ; CHECKSYM: TypeChkSectNum: 0x0
223 ; CHECKSYM: SymbolAlignmentLog2: 2
224 ; CHECKSYM: SymbolType: XTY_SD (0x1)
225 ; CHECKSYM: StorageMappingClass: XMC_TC0 (0xF)
226 ; CHECKSYM: StabInfoIndex: 0x0
227 ; CHECKSYM: StabSectNum: 0x0
232 ; CHECKSYM: Value (RelocatableAddress): 0x68
233 ; CHECKSYM: Section: .data
234 ; CHECKSYM: Type: 0x0
235 ; CHECKSYM: StorageClass: C_HIDEXT (0x6B)
236 ; CHECKSYM: NumberOfAuxEntries: 1
237 ; CHECKSYM: CSECT Auxiliary Entry {
238 ; CHECKSYM: SectionLen: 4
239 ; CHECKSYM: ParameterHashIndex: 0x0
240 ; CHECKSYM: TypeChkSectNum: 0x0
241 ; CHECKSYM: SymbolAlignmentLog2: 2
242 ; CHECKSYM: SymbolType: XTY_SD (0x1)
243 ; CHECKSYM: StorageMappingClass: XMC_TC (0x3)
244 ; CHECKSYM: StabInfoIndex: 0x0
245 ; CHECKSYM: StabSectNum: 0x0
249 ; CHECKSYM: Name: ivar
250 ; CHECKSYM: Value (RelocatableAddress): 0x6C
251 ; CHECKSYM: Section: .data
252 ; CHECKSYM: Type: 0x0
253 ; CHECKSYM: StorageClass: C_HIDEXT (0x6B)
254 ; CHECKSYM: NumberOfAuxEntries: 1
255 ; CHECKSYM: CSECT Auxiliary Entry {
256 ; CHECKSYM: SectionLen: 4
257 ; CHECKSYM: ParameterHashIndex: 0x0
258 ; CHECKSYM: TypeChkSectNum: 0x0
259 ; CHECKSYM: SymbolAlignmentLog2: 2
260 ; CHECKSYM: SymbolType: XTY_SD (0x1)
261 ; CHECKSYM: StorageMappingClass: XMC_TC (0x3)
262 ; CHECKSYM: StabInfoIndex: 0x0
263 ; CHECKSYM: StabSectNum: 0x0
268 ; CHECKSYM: Value (RelocatableAddress): 0x70
269 ; CHECKSYM: Section: .data
270 ; CHECKSYM: Type: 0x0
271 ; CHECKSYM: StorageClass: C_HIDEXT (0x6B)
272 ; CHECKSYM: NumberOfAuxEntries: 1
273 ; CHECKSYM: CSECT Auxiliary Entry {
274 ; CHECKSYM: SectionLen: 4
275 ; CHECKSYM: ParameterHashIndex: 0x0
276 ; CHECKSYM: TypeChkSectNum: 0x0
277 ; CHECKSYM: SymbolAlignmentLog2: 2
278 ; CHECKSYM: SymbolType: XTY_SD (0x1)
279 ; CHECKSYM: StorageMappingClass: XMC_TC (0x3)
280 ; CHECKSYM: StabInfoIndex: 0x0
281 ; CHECKSYM: StabSectNum: 0x0
286 ; CHECKSYM: Value (RelocatableAddress): 0x74
287 ; CHECKSYM: Section: .data
288 ; CHECKSYM: Type: 0x0
289 ; CHECKSYM: StorageClass: C_HIDEXT (0x6B)
290 ; CHECKSYM: NumberOfAuxEntries: 1
291 ; CHECKSYM: CSECT Auxiliary Entry {
292 ; CHECKSYM: SectionLen: 4
293 ; CHECKSYM: ParameterHashIndex: 0x0
294 ; CHECKSYM: TypeChkSectNum: 0x0
295 ; CHECKSYM: SymbolAlignmentLog2: 2
296 ; CHECKSYM: SymbolType: XTY_SD (0x1)
297 ; CHECKSYM: StorageMappingClass: XMC_TC (0x3)
298 ; CHECKSYM: StabInfoIndex: 0x0
299 ; CHECKSYM: StabSectNum: 0x0
304 ; CHECKSYM: Value (RelocatableAddress): 0x78
305 ; CHECKSYM: Section: .bss
306 ; CHECKSYM: Type: 0x0
307 ; CHECKSYM: StorageClass: C_EXT (0x2)
308 ; CHECKSYM: NumberOfAuxEntries: 1
309 ; CHECKSYM: CSECT Auxiliary Entry {
310 ; CHECKSYM: SectionLen: 4
311 ; CHECKSYM: ParameterHashIndex: 0x0
312 ; CHECKSYM: TypeChkSectNum: 0x0
313 ; CHECKSYM: SymbolAlignmentLog2: 2
314 ; CHECKSYM: SymbolType: XTY_CM (0x3)
315 ; CHECKSYM: StorageMappingClass: XMC_RW (0x5)
316 ; CHECKSYM: StabInfoIndex: 0x0
317 ; CHECKSYM: StabSectNum: 0x0
322 ; CHECKSYM: Value (RelocatableAddress): 0x7C
323 ; CHECKSYM: Section: .bss
324 ; CHECKSYM: Type: 0x0
325 ; CHECKSYM: StorageClass: C_EXT (0x2)
326 ; CHECKSYM: NumberOfAuxEntries: 1
327 ; CHECKSYM: CSECT Auxiliary Entry {
328 ; CHECKSYM: SectionLen: 4
329 ; CHECKSYM: ParameterHashIndex: 0x0
330 ; CHECKSYM: TypeChkSectNum: 0x0
331 ; CHECKSYM: SymbolAlignmentLog2: 2
332 ; CHECKSYM: SymbolType: XTY_CM (0x3)
333 ; CHECKSYM: StorageMappingClass: XMC_RW (0x5)
334 ; CHECKSYM: StabInfoIndex: 0x0
335 ; CHECKSYM: StabSectNum: 0x0