xref: /llvm-project/llvm/test/CodeGen/PowerPC/aix-weak.ll (revision f31099ce581d33fdb64e35fee4b56d0a1145cab1)
1; RUN: llc -verify-machineinstrs -mtriple powerpc-ibm-aix-xcoff -xcoff-traceback-table=false -mcpu=pwr4 \
2; RUN:   -mattr=-altivec -data-sections=false < %s | FileCheck --check-prefixes=COMMON,BIT32 %s
3
4; RUN: llc -verify-machineinstrs -mtriple powerpc64-ibm-aix-xcoff -xcoff-traceback-table=false -mcpu=pwr4 \
5; RUN:   -mattr=-altivec -data-sections=false < %s | FileCheck --check-prefixes=COMMON,BIT64 %s
6
7; RUN: llc -verify-machineinstrs -mtriple powerpc-ibm-aix-xcoff -xcoff-traceback-table=false -mcpu=pwr4 \
8; RUN:   -mattr=-altivec -data-sections=false -filetype=obj -o %t.o < %s
9; RUN: llvm-readobj --symbols %t.o | FileCheck --check-prefixes=CHECKSYM,CHECKSYM32 %s
10
11; RUN: llc -verify-machineinstrs -mtriple powerpc64-ibm-aix-xcoff -xcoff-traceback-table=false -mcpu=pwr4 \
12; RUN:   -mattr=-altivec -data-sections=false -filetype=obj -o %t64.o < %s
13; RUN: llvm-readobj --symbols %t64.o | FileCheck --check-prefixes=CHECKSYM,CHECKSYM64 %s
14
15@foo_weak_p = global ptr @foo_ref_weak, align 4
16@b = weak global i32 0, align 4
17
18define weak void @foo_weak(ptr %p)  {
19entry:
20  %p.addr = alloca ptr, align 4
21  store ptr %p, ptr %p.addr, align 4
22  %0 = load ptr, ptr %p.addr, align 4
23  %1 = load i32, ptr %0, align 4
24  %inc = add nsw i32 %1, 1
25  store i32 %inc, ptr %0, align 4
26  ret void
27}
28
29define weak void @foo_ref_weak()  {
30entry:
31  ret void
32}
33
34define i32 @main()  {
35entry:
36  %0 = load ptr, ptr @foo_weak_p, align 4
37  call void %0()
38  call void @foo_weak(ptr @b)
39  call void @foo_ref_weak()
40  ret i32 0
41}
42
43; COMMON:               .weak	foo_weak[DS]            # -- Begin function foo_weak
44; COMMON-NEXT:          .weak	.foo_weak
45; COMMON-NEXT:          .align	4
46; COMMON-NEXT:          .csect foo_weak[DS]
47; BIT32-NEXT:           .vbyte	4, .foo_weak               # @foo_weak
48; BIT32-NEXT:           .vbyte	4, TOC[TC0]
49; BIT32-NEXT:           .vbyte	4, 0
50; BIT64-NEXT:           .vbyte	8, .foo_weak               # @foo_weak
51; BIT64-NEXT:           .vbyte	8, TOC[TC0]
52; BIT64-NEXT:           .vbyte	8, 0
53; COMMON-NEXT:          .csect ..text..[PR]
54; COMMON-NEXT:  .foo_weak:
55
56; COMMON:               .weak   foo_ref_weak[DS]        # -- Begin function foo_ref_weak
57; COMMON-NEXT:          .weak	.foo_ref_weak
58; COMMON-NEXT:          .align	4
59; COMMON-NEXT:          .csect foo_ref_weak[DS]
60; BIT32-NEXT:           .vbyte	4, .foo_ref_weak           # @foo_ref_weak
61; BIT32-NEXT:           .vbyte	4, TOC[TC0]
62; BIT32-NEXT:           .vbyte	4, 0
63; BIT64-NEXT:           .vbyte	8, .foo_ref_weak           # @foo_ref_weak
64; BIT64-NEXT:           .vbyte	8, TOC[TC0]
65; BIT64-NEXT:           .vbyte	8, 0
66; COMMON-NEXT:          .csect ..text..[PR]
67; COMMON-NEXT:  .foo_ref_weak:
68
69; COMMON:               .globl  main[DS]                # -- Begin function main
70; COMMON-NEXT:          .globl  .main
71; COMMON-NEXT:          .align	4
72; COMMON-NEXT:          .csect main[DS]
73; BIT32-NEXT:           .vbyte	4, .main                   # @main
74; BIT32-NEXT:           .vbyte	4, TOC[TC0]
75; BIT32-NEXT:           .vbyte	4, 0
76; BIT64-NEXT:           .vbyte	8, .main                   # @main
77; BIT64-NEXT:           .vbyte	8, TOC[TC0]
78; BIT64-NEXT:           .vbyte	8, 0
79; COMMON-NEXT:          .csect ..text..[PR]
80; COMMON-NEXT:  .main:
81
82; COMMON:     	        .csect .data[RW]
83; COMMON-NEXT:          .globl	foo_weak_p
84; BIT32-NEXT:           .align	2
85; BIT64-NEXT:           .align	3
86; COMMON-NEXT:  foo_weak_p:
87; BIT32-NEXT:           .vbyte	4, foo_ref_weak[DS]
88; BIT64-NEXT:           .vbyte	8, foo_ref_weak[DS]
89; COMMON-NEXT:          .weak	b
90; COMMON-NEXT:          .align	2
91; COMMON-NEXT:  b:
92; COMMON-NEXT:          .vbyte	4, 0                       # 0x0
93; COMMON-NEXT:          .toc
94; COMMON-NEXT:  L..C0:
95; COMMON-NEXT:          .tc foo_weak_p[TC],foo_weak_p
96; COMMON-NEXT:  L..C1:
97; COMMON-NEXT:          .tc b[TC],b
98
99
100; CHECKSYM:      Symbols [
101; CHECKSYM-NEXT:   Symbol {
102; CHECKSYM-NEXT:     Index: 0
103; CHECKSYM-NEXT:     Name: .file
104; CHECKSYM-NEXT:     Value (SymbolTableIndex): 0x0
105; CHECKSYM-NEXT:     Section: N_DEBUG
106; CHECKSYM-NEXT:     Source Language ID: TB_CPLUSPLUS (0x9)
107; CHECKSYM-NEXT:     CPU Version ID: TCPU_COM (0x3)
108; CHECKSYM-NEXT:     StorageClass: C_FILE (0x67)
109; CHECKSYM-NEXT:     NumberOfAuxEntries: 2
110; CHECKSYM:        Symbol {
111; CHECKSYM-NEXT:     Index: [[#Index:]]
112; CHECKSYM-NEXT:     Name:
113; CHECKSYM-NEXT:     Value (RelocatableAddress): 0x0
114; CHECKSYM-NEXT:     Section: .text
115; CHECKSYM-NEXT:     Type: 0x0
116; CHECKSYM-NEXT:     StorageClass: C_HIDEXT (0x6B)
117; CHECKSYM-NEXT:     NumberOfAuxEntries: 1
118; CHECKSYM-NEXT:     CSECT Auxiliary Entry {
119; CHECKSYM-NEXT:       Index: [[#Index+1]]
120; CHECKSYM-NEXT:       SectionLen: 136
121; CHECKSYM-NEXT:       ParameterHashIndex: 0x0
122; CHECKSYM-NEXT:       TypeChkSectNum: 0x0
123; CHECKSYM-NEXT:       SymbolAlignmentLog2: 5
124; CHECKSYM-NEXT:       SymbolType: XTY_SD (0x1)
125; CHECKSYM-NEXT:       StorageMappingClass: XMC_PR (0x0)
126; CHECKSYM32-NEXT:     StabInfoIndex: 0x0
127; CHECKSYM32-NEXT:     StabSectNum: 0x0
128; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
129; CHECKSYM-NEXT:     }
130; CHECKSYM-NEXT:   }
131; CHECKSYM-NEXT:   Symbol {
132; CHECKSYM-NEXT:     Index: [[#Index+2]]
133; CHECKSYM-NEXT:     Name: .foo_weak
134; CHECKSYM-NEXT:     Value (RelocatableAddress): 0x0
135; CHECKSYM-NEXT:     Section: .text
136; CHECKSYM-NEXT:     Type: 0x0
137; CHECKSYM-NEXT:     StorageClass: C_WEAKEXT (0x6F)
138; CHECKSYM-NEXT:     NumberOfAuxEntries: 1
139; CHECKSYM-NEXT:     CSECT Auxiliary Entry {
140; CHECKSYM-NEXT:       Index: [[#Index+3]]
141; CHECKSYM-NEXT:       ContainingCsectSymbolIndex: [[#Index]]
142; CHECKSYM-NEXT:       ParameterHashIndex: 0x0
143; CHECKSYM-NEXT:       TypeChkSectNum: 0x0
144; CHECKSYM-NEXT:       SymbolAlignmentLog2: 0
145; CHECKSYM-NEXT:       SymbolType: XTY_LD (0x2)
146; CHECKSYM-NEXT:       StorageMappingClass: XMC_PR (0x0)
147; CHECKSYM32-NEXT:     StabInfoIndex: 0x0
148; CHECKSYM32-NEXT:     StabSectNum: 0x0
149; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
150; CHECKSYM-NEXT:     }
151; CHECKSYM-NEXT:   }
152; CHECKSYM-NEXT:   Symbol {
153; CHECKSYM-NEXT:     Index: [[#Index+4]]
154; CHECKSYM-NEXT:     Name: .foo_ref_weak
155; CHECKSYM-NEXT:     Value (RelocatableAddress): 0x20
156; CHECKSYM-NEXT:     Section: .text
157; CHECKSYM-NEXT:     Type: 0x0
158; CHECKSYM-NEXT:     StorageClass: C_WEAKEXT (0x6F)
159; CHECKSYM-NEXT:     NumberOfAuxEntries: 1
160; CHECKSYM-NEXT:     CSECT Auxiliary Entry {
161; CHECKSYM-NEXT:       Index: [[#Index+5]]
162; CHECKSYM-NEXT:       ContainingCsectSymbolIndex: [[#Index]]
163; CHECKSYM-NEXT:       ParameterHashIndex: 0x0
164; CHECKSYM-NEXT:       TypeChkSectNum: 0x0
165; CHECKSYM-NEXT:       SymbolAlignmentLog2: 0
166; CHECKSYM-NEXT:       SymbolType: XTY_LD (0x2)
167; CHECKSYM-NEXT:       StorageMappingClass: XMC_PR (0x0)
168; CHECKSYM32-NEXT:     StabInfoIndex: 0x0
169; CHECKSYM32-NEXT:     StabSectNum: 0x0
170; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
171; CHECKSYM-NEXT:     }
172; CHECKSYM-NEXT:   }
173; CHECKSYM-NEXT:   Symbol {
174; CHECKSYM-NEXT:     Index: [[#Index+6]]
175; CHECKSYM-NEXT:     Name: .main
176; CHECKSYM-NEXT:     Value (RelocatableAddress): 0x30
177; CHECKSYM-NEXT:     Section: .text
178; CHECKSYM-NEXT:     Type: 0x0
179; CHECKSYM-NEXT:     StorageClass: C_EXT (0x2)
180; CHECKSYM-NEXT:     NumberOfAuxEntries: 1
181; CHECKSYM-NEXT:     CSECT Auxiliary Entry {
182; CHECKSYM-NEXT:       Index: [[#Index+7]]
183; CHECKSYM-NEXT:       ContainingCsectSymbolIndex: [[#Index]]
184; CHECKSYM-NEXT:       ParameterHashIndex: 0x0
185; CHECKSYM-NEXT:       TypeChkSectNum: 0x0
186; CHECKSYM-NEXT:       SymbolAlignmentLog2: 0
187; CHECKSYM-NEXT:       SymbolType: XTY_LD (0x2)
188; CHECKSYM-NEXT:       StorageMappingClass: XMC_PR (0x0)
189; CHECKSYM32-NEXT:     StabInfoIndex: 0x0
190; CHECKSYM32-NEXT:     StabSectNum: 0x0
191; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
192; CHECKSYM-NEXT:     }
193; CHECKSYM-NEXT:   }
194; CHECKSYM-NEXT:   Symbol {
195; CHECKSYM-NEXT:     Index: [[#Index+8]]
196; CHECKSYM-NEXT:     Name: .data
197; CHECKSYM-NEXT:     Value (RelocatableAddress): 0x88
198; CHECKSYM-NEXT:     Section: .data
199; CHECKSYM-NEXT:     Type: 0x0
200; CHECKSYM-NEXT:     StorageClass: C_HIDEXT (0x6B)
201; CHECKSYM-NEXT:     NumberOfAuxEntries: 1
202; CHECKSYM-NEXT:     CSECT Auxiliary Entry {
203; CHECKSYM-NEXT:       Index: [[#Index+9]]
204; CHECKSYM32-NEXT:     SectionLen: 8
205; CHECKSYM64-NEXT:     SectionLen: 12
206; CHECKSYM-NEXT:       ParameterHashIndex: 0x0
207; CHECKSYM-NEXT:       TypeChkSectNum: 0x0
208; CHECKSYM32-NEXT:     SymbolAlignmentLog2: 2
209; CHECKSYM64-NEXT:     SymbolAlignmentLog2: 3
210; CHECKSYM-NEXT:       SymbolType: XTY_SD (0x1)
211; CHECKSYM-NEXT:       StorageMappingClass: XMC_RW (0x5)
212; CHECKSYM32-NEXT:     StabInfoIndex: 0x0
213; CHECKSYM32-NEXT:     StabSectNum: 0x0
214; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
215; CHECKSYM-NEXT:     }
216; CHECKSYM-NEXT:   }
217; CHECKSYM-NEXT:   Symbol {
218; CHECKSYM-NEXT:     Index: [[#Index+10]]
219; CHECKSYM-NEXT:     Name: foo_weak_p
220; CHECKSYM-NEXT:     Value (RelocatableAddress): 0x88
221; CHECKSYM-NEXT:     Section: .data
222; CHECKSYM-NEXT:     Type: 0x0
223; CHECKSYM-NEXT:     StorageClass: C_EXT (0x2)
224; CHECKSYM-NEXT:     NumberOfAuxEntries: 1
225; CHECKSYM-NEXT:     CSECT Auxiliary Entry {
226; CHECKSYM-NEXT:       Index: [[#Index+11]]
227; CHECKSYM-NEXT:       ContainingCsectSymbolIndex: [[#Index+8]]
228; CHECKSYM-NEXT:       ParameterHashIndex: 0x0
229; CHECKSYM-NEXT:       TypeChkSectNum: 0x0
230; CHECKSYM-NEXT:       SymbolAlignmentLog2: 0
231; CHECKSYM-NEXT:       SymbolType: XTY_LD (0x2)
232; CHECKSYM-NEXT:       StorageMappingClass: XMC_RW (0x5)
233; CHECKSYM32-NEXT:     StabInfoIndex: 0x0
234; CHECKSYM32-NEXT:     StabSectNum: 0x0
235; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
236; CHECKSYM-NEXT:     }
237; CHECKSYM-NEXT:   }
238; CHECKSYM-NEXT:   Symbol {
239; CHECKSYM-NEXT:     Index: [[#Index+12]]
240; CHECKSYM-NEXT:     Name: b
241; CHECKSYM32-NEXT:   Value (RelocatableAddress): 0x8C
242; CHECKSYM64-NEXT:   Value (RelocatableAddress): 0x90
243; CHECKSYM-NEXT:     Section: .data
244; CHECKSYM-NEXT:     Type: 0x0
245; CHECKSYM-NEXT:     StorageClass: C_WEAKEXT (0x6F)
246; CHECKSYM-NEXT:     NumberOfAuxEntries: 1
247; CHECKSYM-NEXT:     CSECT Auxiliary Entry {
248; CHECKSYM-NEXT:       Index: [[#Index+13]]
249; CHECKSYM-NEXT:       ContainingCsectSymbolIndex: [[#Index+8]]
250; CHECKSYM-NEXT:       ParameterHashIndex: 0x0
251; CHECKSYM-NEXT:       TypeChkSectNum: 0x0
252; CHECKSYM-NEXT:       SymbolAlignmentLog2: 0
253; CHECKSYM-NEXT:       SymbolType: XTY_LD (0x2)
254; CHECKSYM-NEXT:       StorageMappingClass: XMC_RW (0x5)
255; CHECKSYM32-NEXT:     StabInfoIndex: 0x0
256; CHECKSYM32-NEXT:     StabSectNum: 0x0
257; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
258; CHECKSYM-NEXT:     }
259; CHECKSYM-NEXT:   }
260; CHECKSYM-NEXT:   Symbol {
261; CHECKSYM-NEXT:     Index: [[#Index+14]]
262; CHECKSYM-NEXT:     Name: foo_weak
263; CHECKSYM32-NEXT:   Value (RelocatableAddress): 0x90
264; CHECKSYM64-NEXT:   Value (RelocatableAddress): 0x98
265; CHECKSYM-NEXT:     Section: .data
266; CHECKSYM-NEXT:     Type: 0x0
267; CHECKSYM-NEXT:     StorageClass: C_WEAKEXT (0x6F)
268; CHECKSYM-NEXT:     NumberOfAuxEntries: 1
269; CHECKSYM-NEXT:     CSECT Auxiliary Entry {
270; CHECKSYM-NEXT:       Index: [[#Index+15]]
271; CHECKSYM32-NEXT:     SectionLen: 12
272; CHECKSYM64-NEXT:     SectionLen: 24
273; CHECKSYM-NEXT:       ParameterHashIndex: 0x0
274; CHECKSYM-NEXT:       TypeChkSectNum: 0x0
275; CHECKSYM32-NEXT:     SymbolAlignmentLog2: 2
276; CHECKSYM64-NEXT:     SymbolAlignmentLog2: 3
277; CHECKSYM-NEXT:       SymbolType: XTY_SD (0x1)
278; CHECKSYM-NEXT:       StorageMappingClass: XMC_DS (0xA)
279; CHECKSYM32-NEXT:     StabInfoIndex: 0x0
280; CHECKSYM32-NEXT:     StabSectNum: 0x0
281; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
282; CHECKSYM-NEXT:     }
283; CHECKSYM-NEXT:   }
284; CHECKSYM-NEXT:   Symbol {
285; CHECKSYM-NEXT:     Index: [[#Index+16]]
286; CHECKSYM-NEXT:     Name: foo_ref_weak
287; CHECKSYM32-NEXT:   Value (RelocatableAddress): 0x9C
288; CHECKSYM64-NEXT:   Value (RelocatableAddress): 0xB0
289; CHECKSYM-NEXT:     Section: .data
290; CHECKSYM-NEXT:     Type: 0x0
291; CHECKSYM-NEXT:     StorageClass: C_WEAKEXT (0x6F)
292; CHECKSYM-NEXT:     NumberOfAuxEntries: 1
293; CHECKSYM-NEXT:     CSECT Auxiliary Entry {
294; CHECKSYM-NEXT:       Index: [[#Index+17]]
295; CHECKSYM32-NEXT:     SectionLen: 12
296; CHECKSYM64-NEXT:     SectionLen: 24
297; CHECKSYM-NEXT:       ParameterHashIndex: 0x0
298; CHECKSYM-NEXT:       TypeChkSectNum: 0x0
299; CHECKSYM32-NEXT:     SymbolAlignmentLog2: 2
300; CHECKSYM64-NEXT:     SymbolAlignmentLog2: 3
301; CHECKSYM-NEXT:       SymbolType: XTY_SD (0x1)
302; CHECKSYM-NEXT:       StorageMappingClass: XMC_DS (0xA)
303; CHECKSYM32-NEXT:     StabInfoIndex: 0x0
304; CHECKSYM32-NEXT:     StabSectNum: 0x0
305; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
306; CHECKSYM-NEXT:     }
307; CHECKSYM-NEXT:   }
308; CHECKSYM-NEXT:   Symbol {
309; CHECKSYM-NEXT:     Index: [[#Index+18]]
310; CHECKSYM-NEXT:     Name: main
311; CHECKSYM32-NEXT:   Value (RelocatableAddress): 0xA8
312; CHECKSYM64-NEXT:   Value (RelocatableAddress): 0xC8
313; CHECKSYM-NEXT:     Section: .data
314; CHECKSYM-NEXT:     Type: 0x0
315; CHECKSYM-NEXT:     StorageClass: C_EXT (0x2)
316; CHECKSYM-NEXT:     NumberOfAuxEntries: 1
317; CHECKSYM-NEXT:     CSECT Auxiliary Entry {
318; CHECKSYM-NEXT:       Index: [[#Index+19]]
319; CHECKSYM32-NEXT:     SectionLen: 12
320; CHECKSYM64-NEXT:     SectionLen: 24
321; CHECKSYM-NEXT:       ParameterHashIndex: 0x0
322; CHECKSYM-NEXT:       TypeChkSectNum: 0x0
323; CHECKSYM32-NEXT:     SymbolAlignmentLog2: 2
324; CHECKSYM64-NEXT:     SymbolAlignmentLog2: 3
325; CHECKSYM-NEXT:       SymbolType: XTY_SD (0x1)
326; CHECKSYM-NEXT:       StorageMappingClass: XMC_DS (0xA)
327; CHECKSYM32-NEXT:     StabInfoIndex: 0x0
328; CHECKSYM32-NEXT:     StabSectNum: 0x0
329; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
330; CHECKSYM-NEXT:     }
331; CHECKSYM-NEXT:   }
332; CHECKSYM-NEXT:   Symbol {
333; CHECKSYM-NEXT:     Index: [[#Index+20]]
334; CHECKSYM-NEXT:     Name: TOC
335; CHECKSYM32-NEXT:   Value (RelocatableAddress): 0xB4
336; CHECKSYM64-NEXT:   Value (RelocatableAddress): 0xE0
337; CHECKSYM-NEXT:     Section: .data
338; CHECKSYM-NEXT:     Type: 0x0
339; CHECKSYM-NEXT:     StorageClass: C_HIDEXT (0x6B)
340; CHECKSYM-NEXT:     NumberOfAuxEntries: 1
341; CHECKSYM-NEXT:     CSECT Auxiliary Entry {
342; CHECKSYM-NEXT:       Index: [[#Index+21]]
343; CHECKSYM-NEXT:       SectionLen: 0
344; CHECKSYM-NEXT:       ParameterHashIndex: 0x0
345; CHECKSYM-NEXT:       TypeChkSectNum: 0x0
346; CHECKSYM-NEXT:       SymbolAlignmentLog2: 2
347; CHECKSYM-NEXT:       SymbolType: XTY_SD (0x1)
348; CHECKSYM-NEXT:       StorageMappingClass: XMC_TC0 (0xF)
349; CHECKSYM32-NEXT:     StabInfoIndex: 0x0
350; CHECKSYM32-NEXT:     StabSectNum: 0x0
351; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
352; CHECKSYM-NEXT:     }
353; CHECKSYM-NEXT:   }
354; CHECKSYM-NEXT:   Symbol {
355; CHECKSYM-NEXT:     Index: [[#Index+22]]
356; CHECKSYM-NEXT:     Name: foo_weak_p
357; CHECKSYM32-NEXT:   Value (RelocatableAddress): 0xB4
358; CHECKSYM64-NEXT:   Value (RelocatableAddress): 0xE0
359; CHECKSYM-NEXT:     Section: .data
360; CHECKSYM-NEXT:     Type: 0x0
361; CHECKSYM-NEXT:     StorageClass: C_HIDEXT (0x6B)
362; CHECKSYM-NEXT:     NumberOfAuxEntries: 1
363; CHECKSYM-NEXT:     CSECT Auxiliary Entry {
364; CHECKSYM-NEXT:       Index: [[#Index+23]]
365; CHECKSYM32-NEXT:     SectionLen: 4
366; CHECKSYM64-NEXT:     SectionLen: 8
367; CHECKSYM-NEXT:       ParameterHashIndex: 0x0
368; CHECKSYM-NEXT:       TypeChkSectNum: 0x0
369; CHECKSYM32-NEXT:     SymbolAlignmentLog2: 2
370; CHECKSYM64-NEXT:     SymbolAlignmentLog2: 3
371; CHECKSYM-NEXT:       SymbolType: XTY_SD (0x1)
372; CHECKSYM-NEXT:       StorageMappingClass: XMC_TC (0x3)
373; CHECKSYM32-NEXT:     StabInfoIndex: 0x0
374; CHECKSYM32-NEXT:     StabSectNum: 0x0
375; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
376; CHECKSYM-NEXT:     }
377; CHECKSYM-NEXT:   }
378; CHECKSYM-NEXT:   Symbol {
379; CHECKSYM-NEXT:     Index: [[#Index+24]]
380; CHECKSYM-NEXT:     Name: b
381; CHECKSYM32-NEXT:   Value (RelocatableAddress): 0xB8
382; CHECKSYM64-NEXT:   Value (RelocatableAddress): 0xE8
383; CHECKSYM-NEXT:     Section: .data
384; CHECKSYM-NEXT:     Type: 0x0
385; CHECKSYM-NEXT:     StorageClass: C_HIDEXT (0x6B)
386; CHECKSYM-NEXT:     NumberOfAuxEntries: 1
387; CHECKSYM-NEXT:     CSECT Auxiliary Entry {
388; CHECKSYM-NEXT:       Index: [[#Index+25]]
389; CHECKSYM32-NEXT:     SectionLen: 4
390; CHECKSYM64-NEXT:     SectionLen: 8
391; CHECKSYM-NEXT:       ParameterHashIndex: 0x0
392; CHECKSYM-NEXT:       TypeChkSectNum: 0x0
393; CHECKSYM32-NEXT:     SymbolAlignmentLog2: 2
394; CHECKSYM64-NEXT:     SymbolAlignmentLog2: 3
395; CHECKSYM-NEXT:       SymbolType: XTY_SD (0x1)
396; CHECKSYM-NEXT:       StorageMappingClass: XMC_TC (0x3)
397; CHECKSYM32-NEXT:     StabInfoIndex: 0x0
398; CHECKSYM32-NEXT:     StabSectNum: 0x0
399; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
400; CHECKSYM-NEXT:     }
401; CHECKSYM-NEXT:   }
402; CHECKSYM-NEXT: ]
403