1; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc-ibm-aix-xcoff -mattr=-altivec \
2; RUN:     -xcoff-traceback-table=false -data-sections=false -filetype=obj -o %t.o < %s
3; RUN: llvm-readobj --section-headers --file-header %t.o | \
4; RUN: FileCheck --check-prefix=OBJ %s
5; RUN: llvm-readobj --relocs --expand-relocs %t.o | FileCheck --check-prefix=RELOC %s
6; RUN: llvm-readobj -t %t.o | FileCheck --check-prefix=SYM %s
7; RUN: llvm-objdump -D %t.o | FileCheck --check-prefix=DIS %s
8; RUN: llvm-objdump -r %t.o | FileCheck --check-prefix=DIS_REL %s
9
10; RUN: not --crash llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc64-ibm-aix-xcoff -mattr=-altivec -data-sections=false -filetype=obj < %s 2>&1 | \
11; RUN: FileCheck --check-prefix=XCOFF64 %s
12; XCOFF64: LLVM ERROR: 64-bit XCOFF object files are not supported yet.
13
14@globalA = global i32 1, align 4
15@globalB = global i32 2, align 4
16@arr = global <{ i32, [9 x i32] }> <{ i32 3, [9 x i32] zeroinitializer }>, align 4
17@p = global i32* bitcast (i8* getelementptr (i8, i8* bitcast (<{ i32, [9 x i32] }>* @arr to i8*), i64 16) to i32*), align 4
18
19define i32 @foo() {
20entry:
21  %call = call i32 @bar(i32 1)
22  %0 = load i32, i32* @globalA, align 4
23  %add = add nsw i32 %call, %0
24  %1 = load i32, i32* @globalB, align 4
25  %add1 = add nsw i32 %add, %1
26  ret i32 %add1
27}
28
29declare i32 @bar(i32)
30
31; OBJ:      File: {{.*}}aix-xcoff-reloc.ll.tmp.o
32; OBJ-NEXT: Format: aixcoff-rs6000
33; OBJ-NEXT: Arch: powerpc
34; OBJ-NEXT: AddressSize: 32bit
35; OBJ-NEXT: FileHeader {
36; OBJ-NEXT:   Magic: 0x1DF
37; OBJ-NEXT:   NumberOfSections: 2
38; OBJ-NEXT:   TimeStamp: None (0x0)
39; OBJ-NEXT:   SymbolTableOffset: 0x13C
40; OBJ-NEXT:   SymbolTableEntries: 26
41; OBJ-NEXT:   OptionalHeaderSize: 0x0
42; OBJ-NEXT:   Flags: 0x0
43; OBJ-NEXT: }
44; OBJ-NEXT: Sections [
45; OBJ-NEXT:   Section {
46; OBJ-NEXT:     Index: 1
47; OBJ-NEXT:     Name: .text
48; OBJ-NEXT:     PhysicalAddress: 0x0
49; OBJ-NEXT:     VirtualAddress: 0x0
50; OBJ-NEXT:     Size: 0x40
51; OBJ-NEXT:     RawDataOffset: 0x64
52; OBJ-NEXT:     RelocationPointer: 0xEC
53; OBJ-NEXT:     LineNumberPointer: 0x0
54; OBJ-NEXT:     NumberOfRelocations: 3
55; OBJ-NEXT:     NumberOfLineNumbers: 0
56; OBJ-NEXT:     Type: STYP_TEXT (0x20)
57; OBJ-NEXT:   }
58; OBJ-NEXT:   Section {
59; OBJ-NEXT:     Index: 2
60; OBJ-NEXT:     Name: .data
61; OBJ-NEXT:     PhysicalAddress: 0x40
62; OBJ-NEXT:     VirtualAddress: 0x40
63; OBJ-NEXT:     Size: 0x48
64; OBJ-NEXT:     RawDataOffset: 0xA4
65; OBJ-NEXT:     RelocationPointer: 0x10A
66; OBJ-NEXT:     LineNumberPointer: 0x0
67; OBJ-NEXT:     NumberOfRelocations: 5
68; OBJ-NEXT:     NumberOfLineNumbers: 0
69; OBJ-NEXT:     Type: STYP_DATA (0x40)
70; OBJ-NEXT:   }
71; OBJ-NEXT: ]
72
73
74; RELOC:      File: {{.*}}aix-xcoff-reloc.ll.tmp.o
75; RELOC-NEXT: Format: aixcoff-rs6000
76; RELOC-NEXT: Arch: powerpc
77; RELOC-NEXT: AddressSize: 32bit
78; RELOC-NEXT: Relocations [
79; RELOC-NEXT:   Section (index: 1) .text {
80; RELOC-NEXT:   Relocation {
81; RELOC-NEXT:     Virtual Address: 0x10
82; RELOC-NEXT:     Symbol: .bar (0)
83; RELOC-NEXT:     IsSigned: Yes
84; RELOC-NEXT:     FixupBitValue: 0
85; RELOC-NEXT:     Length: 26
86; RELOC-NEXT:     Type: R_RBR (0x1A)
87; RELOC-NEXT:   }
88; RELOC-NEXT:   Relocation {
89; RELOC-NEXT:     Virtual Address: 0x1A
90; RELOC-NEXT:     Symbol: globalA (22)
91; RELOC-NEXT:     IsSigned: No
92; RELOC-NEXT:     FixupBitValue: 0
93; RELOC-NEXT:     Length: 16
94; RELOC-NEXT:     Type: R_TOC (0x3)
95; RELOC-NEXT:   }
96; RELOC-NEXT:   Relocation {
97; RELOC-NEXT:     Virtual Address: 0x1E
98; RELOC-NEXT:     Symbol: globalB (24)
99; RELOC-NEXT:     IsSigned: No
100; RELOC-NEXT:     FixupBitValue: 0
101; RELOC-NEXT:     Length: 16
102; RELOC-NEXT:     Type: R_TOC (0x3)
103; RELOC-NEXT:   }
104; RELOC-NEXT: }
105; RELOC-NEXT: Section (index: 2) .data {
106; RELOC-NEXT: Relocation {
107; RELOC-NEXT:   Virtual Address: 0x70
108; RELOC-NEXT:   Symbol: arr (14)
109; RELOC-NEXT:   IsSigned: No
110; RELOC-NEXT:   FixupBitValue: 0
111; RELOC-NEXT:   Length: 32
112; RELOC-NEXT:   Type: R_POS (0x0)
113; RELOC-NEXT: }
114; RELOC-NEXT: Relocation {
115; RELOC-NEXT:   Virtual Address: 0x74
116; RELOC-NEXT:   Symbol: .foo (6)
117; RELOC-NEXT:   IsSigned: No
118; RELOC-NEXT:   FixupBitValue: 0
119; RELOC-NEXT:   Length: 32
120; RELOC-NEXT:   Type: R_POS (0x0)
121; RELOC-NEXT: }
122; RELOC-NEXT: Relocation {
123; RELOC-NEXT:   Virtual Address: 0x78
124; RELOC-NEXT:   Symbol: TOC (20)
125; RELOC-NEXT:   IsSigned: No
126; RELOC-NEXT:   FixupBitValue: 0
127; RELOC-NEXT:   Length: 32
128; RELOC-NEXT:   Type: R_POS (0x0)
129; RELOC-NEXT: }
130; RELOC-NEXT: Relocation {
131; RELOC-NEXT:   Virtual Address: 0x80
132; RELOC-NEXT:   Symbol: globalA (10)
133; RELOC-NEXT:   IsSigned: No
134; RELOC-NEXT:   FixupBitValue: 0
135; RELOC-NEXT:   Length: 32
136; RELOC-NEXT:   Type: R_POS (0x0)
137; RELOC-NEXT: }
138; RELOC-NEXT: Relocation {
139; RELOC-NEXT:   Virtual Address: 0x84
140; RELOC-NEXT:   Symbol: globalB (12)
141; RELOC-NEXT:   IsSigned: No
142; RELOC-NEXT:   FixupBitValue: 0
143; RELOC-NEXT:   Length: 32
144; RELOC-NEXT:   Type: R_POS (0x0)
145; RELOC-NEXT: }
146; RELOC-NEXT: }
147; RELOC-NEXT: ]
148
149; SYM:      Symbols [
150; SYM-NEXT:   Symbol {
151; SYM-NEXT:     Index: 0
152; SYM-NEXT:     Name: .bar
153; SYM-NEXT:     Value (RelocatableAddress): 0x0
154; SYM-NEXT:     Section: N_UNDEF
155; SYM-NEXT:     Type: 0x0
156; SYM-NEXT:     StorageClass: C_EXT (0x2)
157; SYM-NEXT:     NumberOfAuxEntries: 1
158; SYM-NEXT:     CSECT Auxiliary Entry {
159; SYM-NEXT:       Index: 1
160; SYM-NEXT:       SectionLen: 0
161; SYM-NEXT:       ParameterHashIndex: 0x0
162; SYM-NEXT:       TypeChkSectNum: 0x0
163; SYM-NEXT:       SymbolAlignmentLog2: 0
164; SYM-NEXT:       SymbolType: XTY_ER (0x0)
165; SYM-NEXT:       StorageMappingClass: XMC_PR (0x0)
166; SYM-NEXT:       StabInfoIndex: 0x0
167; SYM-NEXT:       StabSectNum: 0x0
168; SYM-NEXT:     }
169; SYM-NEXT:   }
170; SYM-NEXT:   Symbol {
171; SYM-NEXT:     Index: 2
172; SYM-NEXT:     Name: bar
173; SYM-NEXT:     Value (RelocatableAddress): 0x0
174; SYM-NEXT:     Section: N_UNDEF
175; SYM-NEXT:     Type: 0x0
176; SYM-NEXT:     StorageClass: C_EXT (0x2)
177; SYM-NEXT:     NumberOfAuxEntries: 1
178; SYM-NEXT:     CSECT Auxiliary Entry {
179; SYM-NEXT:       Index: 3
180; SYM-NEXT:       SectionLen: 0
181; SYM-NEXT:       ParameterHashIndex: 0x0
182; SYM-NEXT:       TypeChkSectNum: 0x0
183; SYM-NEXT:       SymbolAlignmentLog2: 0
184; SYM-NEXT:       SymbolType: XTY_ER (0x0)
185; SYM-NEXT:       StorageMappingClass: XMC_DS (0xA)
186; SYM-NEXT:       StabInfoIndex: 0x0
187; SYM-NEXT:       StabSectNum: 0x0
188; SYM-NEXT:     }
189; SYM-NEXT:   }
190; SYM-NEXT:   Symbol {
191; SYM-NEXT:     Index: 4
192; SYM-NEXT:     Name: .text
193; SYM-NEXT:     Value (RelocatableAddress): 0x0
194; SYM-NEXT:     Section: .text
195; SYM-NEXT:     Type: 0x0
196; SYM-NEXT:     StorageClass: C_HIDEXT (0x6B)
197; SYM-NEXT:     NumberOfAuxEntries: 1
198; SYM-NEXT:     CSECT Auxiliary Entry {
199; SYM-NEXT:       Index: 5
200; SYM-NEXT:       SectionLen: 64
201; SYM-NEXT:       ParameterHashIndex: 0x0
202; SYM-NEXT:       TypeChkSectNum: 0x0
203; SYM-NEXT:       SymbolAlignmentLog2: 4
204; SYM-NEXT:       SymbolType: XTY_SD (0x1)
205; SYM-NEXT:       StorageMappingClass: XMC_PR (0x0)
206; SYM-NEXT:       StabInfoIndex: 0x0
207; SYM-NEXT:       StabSectNum: 0x0
208; SYM-NEXT:     }
209; SYM-NEXT:   }
210; SYM-NEXT:   Symbol {
211; SYM-NEXT:     Index: 6
212; SYM-NEXT:     Name: .foo
213; SYM-NEXT:     Value (RelocatableAddress): 0x0
214; SYM-NEXT:     Section: .text
215; SYM-NEXT:     Type: 0x0
216; SYM-NEXT:     StorageClass: C_EXT (0x2)
217; SYM-NEXT:     NumberOfAuxEntries: 1
218; SYM-NEXT:     CSECT Auxiliary Entry {
219; SYM-NEXT:       Index: 7
220; SYM-NEXT:       ContainingCsectSymbolIndex: 4
221; SYM-NEXT:       ParameterHashIndex: 0x0
222; SYM-NEXT:       TypeChkSectNum: 0x0
223; SYM-NEXT:       SymbolAlignmentLog2: 0
224; SYM-NEXT:       SymbolType: XTY_LD (0x2)
225; SYM-NEXT:       StorageMappingClass: XMC_PR (0x0)
226; SYM-NEXT:       StabInfoIndex: 0x0
227; SYM-NEXT:       StabSectNum: 0x0
228; SYM-NEXT:     }
229; SYM-NEXT:   }
230; SYM-NEXT:   Symbol {
231; SYM-NEXT:     Index: 8
232; SYM-NEXT:     Name: .data
233; SYM-NEXT:     Value (RelocatableAddress): 0x40
234; SYM-NEXT:     Section: .data
235; SYM-NEXT:     Type: 0x0
236; SYM-NEXT:     StorageClass: C_HIDEXT (0x6B)
237; SYM-NEXT:     NumberOfAuxEntries: 1
238; SYM-NEXT:     CSECT Auxiliary Entry {
239; SYM-NEXT:       Index: 9
240; SYM-NEXT:       SectionLen: 52
241; SYM-NEXT:       ParameterHashIndex: 0x0
242; SYM-NEXT:       TypeChkSectNum: 0x0
243; SYM-NEXT:       SymbolAlignmentLog2: 2
244; SYM-NEXT:       SymbolType: XTY_SD (0x1)
245; SYM-NEXT:       StorageMappingClass: XMC_RW (0x5)
246; SYM-NEXT:       StabInfoIndex: 0x0
247; SYM-NEXT:       StabSectNum: 0x0
248; SYM-NEXT:     }
249; SYM-NEXT:   }
250; SYM-NEXT:   Symbol {
251; SYM-NEXT:     Index: 10
252; SYM-NEXT:     Name: globalA
253; SYM-NEXT:     Value (RelocatableAddress): 0x40
254; SYM-NEXT:     Section: .data
255; SYM-NEXT:     Type: 0x0
256; SYM-NEXT:     StorageClass: C_EXT (0x2)
257; SYM-NEXT:     NumberOfAuxEntries: 1
258; SYM-NEXT:     CSECT Auxiliary Entry {
259; SYM-NEXT:       Index: 11
260; SYM-NEXT:       ContainingCsectSymbolIndex: 8
261; SYM-NEXT:       ParameterHashIndex: 0x0
262; SYM-NEXT:       TypeChkSectNum: 0x0
263; SYM-NEXT:       SymbolAlignmentLog2: 0
264; SYM-NEXT:       SymbolType: XTY_LD (0x2)
265; SYM-NEXT:       StorageMappingClass: XMC_RW (0x5)
266; SYM-NEXT:       StabInfoIndex: 0x0
267; SYM-NEXT:       StabSectNum: 0x0
268; SYM-NEXT:     }
269; SYM-NEXT:   }
270; SYM-NEXT:   Symbol {
271; SYM-NEXT:     Index: 12
272; SYM-NEXT:     Name: globalB
273; SYM-NEXT:     Value (RelocatableAddress): 0x44
274; SYM-NEXT:     Section: .data
275; SYM-NEXT:     Type: 0x0
276; SYM-NEXT:     StorageClass: C_EXT (0x2)
277; SYM-NEXT:     NumberOfAuxEntries: 1
278; SYM-NEXT:     CSECT Auxiliary Entry {
279; SYM-NEXT:       Index: 13
280; SYM-NEXT:       ContainingCsectSymbolIndex: 8
281; SYM-NEXT:       ParameterHashIndex: 0x0
282; SYM-NEXT:       TypeChkSectNum: 0x0
283; SYM-NEXT:       SymbolAlignmentLog2: 0
284; SYM-NEXT:       SymbolType: XTY_LD (0x2)
285; SYM-NEXT:       StorageMappingClass: XMC_RW (0x5)
286; SYM-NEXT:       StabInfoIndex: 0x0
287; SYM-NEXT:       StabSectNum: 0x0
288; SYM-NEXT:     }
289; SYM-NEXT:   }
290; SYM-NEXT:   Symbol {
291; SYM-NEXT:     Index: 14
292; SYM-NEXT:     Name: arr
293; SYM-NEXT:     Value (RelocatableAddress): 0x48
294; SYM-NEXT:     Section: .data
295; SYM-NEXT:     Type: 0x0
296; SYM-NEXT:     StorageClass: C_EXT (0x2)
297; SYM-NEXT:     NumberOfAuxEntries: 1
298; SYM-NEXT:     CSECT Auxiliary Entry {
299; SYM-NEXT:       Index: 15
300; SYM-NEXT:       ContainingCsectSymbolIndex: 8
301; SYM-NEXT:       ParameterHashIndex: 0x0
302; SYM-NEXT:       TypeChkSectNum: 0x0
303; SYM-NEXT:       SymbolAlignmentLog2: 0
304; SYM-NEXT:       SymbolType: XTY_LD (0x2)
305; SYM-NEXT:       StorageMappingClass: XMC_RW (0x5)
306; SYM-NEXT:       StabInfoIndex: 0x0
307; SYM-NEXT:       StabSectNum: 0x0
308; SYM-NEXT:     }
309; SYM-NEXT:   }
310; SYM-NEXT:   Symbol {
311; SYM-NEXT:     Index: 16
312; SYM-NEXT:     Name: p
313; SYM-NEXT:     Value (RelocatableAddress): 0x70
314; SYM-NEXT:     Section: .data
315; SYM-NEXT:     Type: 0x0
316; SYM-NEXT:     StorageClass: C_EXT (0x2)
317; SYM-NEXT:     NumberOfAuxEntries: 1
318; SYM-NEXT:     CSECT Auxiliary Entry {
319; SYM-NEXT:       Index: 17
320; SYM-NEXT:       ContainingCsectSymbolIndex: 8
321; SYM-NEXT:       ParameterHashIndex: 0x0
322; SYM-NEXT:       TypeChkSectNum: 0x0
323; SYM-NEXT:       SymbolAlignmentLog2: 0
324; SYM-NEXT:       SymbolType: XTY_LD (0x2)
325; SYM-NEXT:       StorageMappingClass: XMC_RW (0x5)
326; SYM-NEXT:       StabInfoIndex: 0x0
327; SYM-NEXT:       StabSectNum: 0x0
328; SYM-NEXT:     }
329; SYM-NEXT:   }
330; SYM-NEXT:   Symbol {
331; SYM-NEXT:     Index: 18
332; SYM-NEXT:     Name: foo
333; SYM-NEXT:     Value (RelocatableAddress): 0x74
334; SYM-NEXT:     Section: .data
335; SYM-NEXT:     Type: 0x0
336; SYM-NEXT:     StorageClass: C_EXT (0x2)
337; SYM-NEXT:     NumberOfAuxEntries: 1
338; SYM-NEXT:     CSECT Auxiliary Entry {
339; SYM-NEXT:       Index: 19
340; SYM-NEXT:       SectionLen: 12
341; SYM-NEXT:       ParameterHashIndex: 0x0
342; SYM-NEXT:       TypeChkSectNum: 0x0
343; SYM-NEXT:       SymbolAlignmentLog2: 2
344; SYM-NEXT:       SymbolType: XTY_SD (0x1)
345; SYM-NEXT:       StorageMappingClass: XMC_DS (0xA)
346; SYM-NEXT:       StabInfoIndex: 0x0
347; SYM-NEXT:       StabSectNum: 0x0
348; SYM-NEXT:     }
349; SYM-NEXT:   }
350; SYM-NEXT:   Symbol {
351; SYM-NEXT:     Index: 20
352; SYM-NEXT:     Name: TOC
353; SYM-NEXT:     Value (RelocatableAddress): 0x80
354; SYM-NEXT:     Section: .data
355; SYM-NEXT:     Type: 0x0
356; SYM-NEXT:     StorageClass: C_HIDEXT (0x6B)
357; SYM-NEXT:     NumberOfAuxEntries: 1
358; SYM-NEXT:     CSECT Auxiliary Entry {
359; SYM-NEXT:       Index: 21
360; SYM-NEXT:       SectionLen: 0
361; SYM-NEXT:       ParameterHashIndex: 0x0
362; SYM-NEXT:       TypeChkSectNum: 0x0
363; SYM-NEXT:       SymbolAlignmentLog2: 2
364; SYM-NEXT:       SymbolType: XTY_SD (0x1)
365; SYM-NEXT:       StorageMappingClass: XMC_TC0 (0xF)
366; SYM-NEXT:       StabInfoIndex: 0x0
367; SYM-NEXT:       StabSectNum: 0x0
368; SYM-NEXT:     }
369; SYM-NEXT:   }
370; SYM-NEXT:   Symbol {
371; SYM-NEXT:     Index: 22
372; SYM-NEXT:     Name: globalA
373; SYM-NEXT:     Value (RelocatableAddress): 0x80
374; SYM-NEXT:     Section: .data
375; SYM-NEXT:     Type: 0x0
376; SYM-NEXT:     StorageClass: C_HIDEXT (0x6B)
377; SYM-NEXT:     NumberOfAuxEntries: 1
378; SYM-NEXT:     CSECT Auxiliary Entry {
379; SYM-NEXT:       Index: 23
380; SYM-NEXT:       SectionLen: 4
381; SYM-NEXT:       ParameterHashIndex: 0x0
382; SYM-NEXT:       TypeChkSectNum: 0x0
383; SYM-NEXT:       SymbolAlignmentLog2: 2
384; SYM-NEXT:       SymbolType: XTY_SD (0x1)
385; SYM-NEXT:       StorageMappingClass: XMC_TC (0x3)
386; SYM-NEXT:       StabInfoIndex: 0x0
387; SYM-NEXT:       StabSectNum: 0x0
388; SYM-NEXT:     }
389; SYM-NEXT:   }
390; SYM-NEXT:   Symbol {
391; SYM-NEXT:     Index: 24
392; SYM-NEXT:     Name: globalB
393; SYM-NEXT:     Value (RelocatableAddress): 0x84
394; SYM-NEXT:     Section: .data
395; SYM-NEXT:     Type: 0x0
396; SYM-NEXT:     StorageClass: C_HIDEXT (0x6B)
397; SYM-NEXT:     NumberOfAuxEntries: 1
398; SYM-NEXT:     CSECT Auxiliary Entry {
399; SYM-NEXT:       Index: 25
400; SYM-NEXT:       SectionLen: 4
401; SYM-NEXT:       ParameterHashIndex: 0x0
402; SYM-NEXT:       TypeChkSectNum: 0x0
403; SYM-NEXT:       SymbolAlignmentLog2: 2
404; SYM-NEXT:       SymbolType: XTY_SD (0x1)
405; SYM-NEXT:       StorageMappingClass: XMC_TC (0x3)
406; SYM-NEXT:       StabInfoIndex: 0x0
407; SYM-NEXT:       StabSectNum: 0x0
408; SYM-NEXT:     }
409; SYM-NEXT:   }
410; SYM-NEXT: ]
411
412
413; DIS:      {{.*}}aix-xcoff-reloc.ll.tmp.o:   file format aixcoff-rs6000
414; DIS:      Disassembly of section .text:
415; DIS:      00000000 <.text>:
416; DIS-NEXT:        0: 7c 08 02 a6                   mflr 0
417; DIS-NEXT:        4: 90 01 00 08                   stw 0, 8(1)
418; DIS-NEXT:        8: 94 21 ff c0                   stwu 1, -64(1)
419; DIS-NEXT:        c: 38 60 00 01                   li 3, 1
420; DIS-NEXT:       10: 4b ff ff f1                   bl 0x0
421; DIS-NEXT:       14: 60 00 00 00                   nop
422; DIS-NEXT:       18: 80 82 00 00                   lwz 4, 0(2)
423; DIS-NEXT:       1c: 80 a2 00 04                   lwz 5, 4(2)
424; DIS-NEXT:       20: 80 84 00 00                   lwz 4, 0(4)
425; DIS-NEXT:       24: 80 a5 00 00                   lwz 5, 0(5)
426; DIS-NEXT:       28: 7c 63 22 14                   add 3, 3, 4
427; DIS-NEXT:       2c: 7c 63 2a 14                   add 3, 3, 5
428; DIS-NEXT:       30: 38 21 00 40                   addi 1, 1, 64
429; DIS-NEXT:       34: 80 01 00 08                   lwz 0, 8(1)
430; DIS-NEXT:       38: 7c 08 03 a6                   mtlr 0
431; DIS-NEXT:       3c: 4e 80 00 20                   blr
432
433; DIS:      Disassembly of section .data:
434; DIS:      00000040 <globalA>:
435; DIS-NEXT:       40: 00 00 00 01                   <unknown>
436; DIS:      00000044 <globalB>:
437; DIS-NEXT:       44: 00 00 00 02                   <unknown>
438; DIS:      00000048 <arr>:
439; DIS-NEXT:       48: 00 00 00 03                   <unknown>
440; DIS-NEXT:                 ...
441; DIS:      00000070 <p>:
442; DIS-NEXT:       70: 00 00 00 58                   <unknown>
443; DIS:      00000074 <foo>:
444; DIS-NEXT:       74: 00 00 00 00                   <unknown>
445; DIS-NEXT:       78: 00 00 00 80                   <unknown>
446; DIS-NEXT:       7c: 00 00 00 00                   <unknown>
447; DIS:      00000080 <globalA>:
448; DIS-NEXT:       80: 00 00 00 40                   <unknown>
449; DIS:      00000084 <globalB>:
450; DIS-NEXT:       84: 00 00 00 44                   <unknown>
451
452; DIS_REL:       {{.*}}aix-xcoff-reloc.ll.tmp.o:   file format aixcoff-rs6000
453; DIS_REL:       RELOCATION RECORDS FOR [.text]:
454; DIS_REL-NEXT:  OFFSET   TYPE                     VALUE
455; DIS_REL-NEXT:  00000010 R_RBR                    .bar
456; DIS_REL-NEXT:  0000001a R_TOC                    globalA
457; DIS_REL-NEXT:  0000001e R_TOC                    globalB
458; DIS_REL:       RELOCATION RECORDS FOR [.data]:
459; DIS_REL-NEXT:  OFFSET   TYPE                     VALUE
460; DIS_REL-NEXT:  00000030 R_POS                    arr
461; DIS_REL-NEXT:  00000034 R_POS                    .foo
462; DIS_REL-NEXT:  00000038 R_POS                    TOC
463; DIS_REL-NEXT:  00000040 R_POS                    globalA
464; DIS_REL-NEXT:  00000044 R_POS                    globalB
465