Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / CodeGen / PowerPC / aix-extern-weak.ll
blob173c58567e40b36030440aba546560030855143b
1 ; RUN: llc -verify-machineinstrs -mtriple powerpc-ibm-aix-xcoff -mcpu=pwr4 \
2 ; RUN:   -mattr=-altivec -data-sections=false -xcoff-traceback-table=false < %s | \
3 ; RUN:   FileCheck --check-prefixes=COMMON,BIT32 %s
5 ; RUN: llc -verify-machineinstrs -mtriple powerpc64-ibm-aix-xcoff -mcpu=pwr4 \
6 ; RUN:   -mattr=-altivec -data-sections=false -xcoff-traceback-table=false < %s | \
7 ; RUN:   FileCheck --check-prefixes=COMMON,BIT64 %s
9 ; RUN: llc -verify-machineinstrs -mtriple powerpc-ibm-aix-xcoff -mcpu=pwr4 \
10 ; RUN:   -mattr=-altivec -data-sections=false -xcoff-traceback-table=false \
11 ; RUN:   -filetype=obj -o %t.o < %s
12 ; RUN: llvm-readobj --symbols %t.o | FileCheck --check-prefixes=CHECKSYM,CHECKSYM32 %s
14 ; RUN: llc -verify-machineinstrs -mtriple powerpc64-ibm-aix-xcoff -mcpu=pwr4 \
15 ; RUN:   -mattr=-altivec -data-sections=false -xcoff-traceback-table=false \
16 ; RUN:   -filetype=obj -o %t64.o < %s
17 ; RUN: llvm-readobj --symbols %t64.o | FileCheck --check-prefixes=CHECKSYM,CHECKSYM64 %s
19 @foo_ext_weak_p = global ptr @foo_ext_weak_ref
20 @b_w = extern_weak global i32
22 declare extern_weak void @foo_ext_weak_ref()
24 define i32 @main() {
25 entry:
26   %0 = load ptr, ptr @foo_ext_weak_p
27   call void %0()
28   call void @foo_ext_weak(ptr @b_w)
29   ret i32 0
32 declare extern_weak void @foo_ext_weak(ptr)
34 ; COMMON:         .globl        main[DS]                # -- Begin function main
35 ; COMMON-NEXT:    .globl        .main
36 ; COMMON-NEXT:    .align        4
37 ; COMMON-NEXT:    .csect main[DS]
38 ; BIT32-NEXT:     .vbyte        4, .main                   # @main
39 ; BIT32-NEXT:     .vbyte        4, TOC[TC0]
40 ; BIT32-NEXT:     .vbyte        4, 0
41 ; BIT64-NEXT:     .vbyte        8, .main                   # @main
42 ; BIT64-NEXT:     .vbyte        8, TOC[TC0]
43 ; BIT64-NEXT:     .vbyte        8, 0
44 ; COMMON-NEXT:    .csect  ..text..[PR]
45 ; COMMON-NEXT:    .main:
47 ; COMMON:         .csect  .data[RW]
48 ; COMMON:         .globl  foo_ext_weak_p
49 ; BIT32-NEXT:     .align        2
50 ; BIT64-NEXT:     .align        3
51 ; COMMON-NEXT: foo_ext_weak_p:
52 ; BIT32-NEXT:     .vbyte        4, foo_ext_weak_ref[DS]
53 ; BIT64-NEXT:     .vbyte        8, foo_ext_weak_ref[DS]
54 ; COMMON-NEXT:    .weak   b_w[UA]
55 ; COMMON-NEXT:    .weak   .foo_ext_weak_ref[PR]
56 ; COMMON-NEXT:    .weak   foo_ext_weak_ref[DS]
57 ; COMMON-NEXT:    .weak   .foo_ext_weak[PR]
58 ; COMMON-NEXT:    .toc
59 ; COMMON-NEXT: L..C0:
60 ; COMMON-NEXT:    .tc foo_ext_weak_p[TC],foo_ext_weak_p
61 ; COMMON-NEXT: L..C1:
62 ; COMMON-NEXT:    .tc b_w[TC],b_w[UA]
64 ; CHECKSYM:      Symbols [
65 ; CHECKSYM-NEXT:   Symbol {
66 ; CHECKSYM-NEXT:     Index: 0
67 ; CHECKSYM-NEXT:     Name: .file
68 ; CHECKSYM-NEXT:     Value (SymbolTableIndex): 0x0
69 ; CHECKSYM-NEXT:     Section: N_DEBUG
70 ; CHECKSYM-NEXT:     Source Language ID: TB_CPLUSPLUS (0x9)
71 ; CHECKSYM32-NEXT:   CPU Version ID: TCPU_COM (0x3)
72 ; CHECKSYM64-NEXT:   CPU Version ID: TCPU_PPC64 (0x2)
73 ; CHECKSYM-NEXT:     StorageClass: C_FILE (0x67)
74 ; CHECKSYM-NEXT:     NumberOfAuxEntries: 2
75 ; CHECKSYM:        Symbol {
76 ; CHECKSYM-NEXT:     Index: [[#Index:]]
77 ; CHECKSYM-NEXT:     Name: .foo_ext_weak
78 ; CHECKSYM-NEXT:     Value (RelocatableAddress): 0x0
79 ; CHECKSYM-NEXT:     Section: N_UNDEF
80 ; CHECKSYM-NEXT:     Type: 0x0
81 ; CHECKSYM-NEXT:     StorageClass: C_WEAKEXT (0x6F)
82 ; CHECKSYM-NEXT:     NumberOfAuxEntries: 1
83 ; CHECKSYM-NEXT:     CSECT Auxiliary Entry {
84 ; CHECKSYM-NEXT:       Index: [[#Index+1]]
85 ; CHECKSYM-NEXT:       SectionLen: 0
86 ; CHECKSYM-NEXT:       ParameterHashIndex: 0x0
87 ; CHECKSYM-NEXT:       TypeChkSectNum: 0x0
88 ; CHECKSYM-NEXT:       SymbolAlignmentLog2: 0
89 ; CHECKSYM-NEXT:       SymbolType: XTY_ER (0x0)
90 ; CHECKSYM-NEXT:       StorageMappingClass: XMC_PR (0x0)
91 ; CHECKSYM32-NEXT:     StabInfoIndex: 0x0
92 ; CHECKSYM32-NEXT:     StabSectNum: 0x0
93 ; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
94 ; CHECKSYM-NEXT:     }
95 ; CHECKSYM-NEXT:   }
96 ; CHECKSYM-NEXT:   Symbol {
97 ; CHECKSYM-NEXT:     Index: [[#Index+2]]
98 ; CHECKSYM-NEXT:     Name: foo_ext_weak_ref
99 ; CHECKSYM-NEXT:     Value (RelocatableAddress): 0x0
100 ; CHECKSYM-NEXT:     Section: N_UNDEF
101 ; CHECKSYM-NEXT:     Type: 0x0
102 ; CHECKSYM-NEXT:     StorageClass: C_WEAKEXT (0x6F)
103 ; CHECKSYM-NEXT:     NumberOfAuxEntries: 1
104 ; CHECKSYM-NEXT:     CSECT Auxiliary Entry {
105 ; CHECKSYM-NEXT:       Index: [[#Index+3]]
106 ; CHECKSYM-NEXT:       SectionLen: 0
107 ; CHECKSYM-NEXT:       ParameterHashIndex: 0x0
108 ; CHECKSYM-NEXT:       TypeChkSectNum: 0x0
109 ; CHECKSYM-NEXT:       SymbolAlignmentLog2: 0
110 ; CHECKSYM-NEXT:       SymbolType: XTY_ER (0x0)
111 ; CHECKSYM-NEXT:       StorageMappingClass: XMC_DS (0xA)
112 ; CHECKSYM32-NEXT:     StabInfoIndex: 0x0
113 ; CHECKSYM32-NEXT:     StabSectNum: 0x0
114 ; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
115 ; CHECKSYM-NEXT:     }
116 ; CHECKSYM-NEXT:   }
117 ; CHECKSYM-NEXT:   Symbol {
118 ; CHECKSYM-NEXT:     Index: [[#Index+4]]
119 ; CHECKSYM-NEXT:     Name: b_w
120 ; CHECKSYM-NEXT:     Value (RelocatableAddress): 0x0
121 ; CHECKSYM-NEXT:     Section: N_UNDEF
122 ; CHECKSYM-NEXT:     Type: 0x0
123 ; CHECKSYM-NEXT:     StorageClass: C_WEAKEXT (0x6F)
124 ; CHECKSYM-NEXT:     NumberOfAuxEntries: 1
125 ; CHECKSYM-NEXT:     CSECT Auxiliary Entry {
126 ; CHECKSYM-NEXT:       Index: [[#Index+5]]
127 ; CHECKSYM-NEXT:       SectionLen: 0
128 ; CHECKSYM-NEXT:       ParameterHashIndex: 0x0
129 ; CHECKSYM-NEXT:       TypeChkSectNum: 0x0
130 ; CHECKSYM-NEXT:       SymbolAlignmentLog2: 0
131 ; CHECKSYM-NEXT:       SymbolType: XTY_ER (0x0)
132 ; CHECKSYM-NEXT:       StorageMappingClass: XMC_UA (0x4)
133 ; CHECKSYM32-NEXT:     StabInfoIndex: 0x0
134 ; CHECKSYM32-NEXT:     StabSectNum: 0x0
135 ; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
136 ; CHECKSYM-NEXT:     }
137 ; CHECKSYM-NEXT:   }
138 ; CHECKSYM-NEXT:   Symbol {
139 ; CHECKSYM-NEXT:     Index: [[#Index+6]]
140 ; CHECKSYM-NEXT:     Name: .foo_ext_weak_ref
141 ; CHECKSYM-NEXT:     Value (RelocatableAddress): 0x0
142 ; CHECKSYM-NEXT:     Section: N_UNDEF
143 ; CHECKSYM-NEXT:     Type: 0x0
144 ; CHECKSYM-NEXT:     StorageClass: C_WEAKEXT (0x6F)
145 ; CHECKSYM-NEXT:     NumberOfAuxEntries: 1
146 ; CHECKSYM-NEXT:     CSECT Auxiliary Entry {
147 ; CHECKSYM-NEXT:       Index: [[#Index+7]]
148 ; CHECKSYM-NEXT:       SectionLen: 0
149 ; CHECKSYM-NEXT:       ParameterHashIndex: 0x0
150 ; CHECKSYM-NEXT:       TypeChkSectNum: 0x0
151 ; CHECKSYM-NEXT:       SymbolAlignmentLog2: 0
152 ; CHECKSYM-NEXT:       SymbolType: XTY_ER (0x0)
153 ; CHECKSYM-NEXT:       StorageMappingClass: XMC_PR (0x0)
154 ; CHECKSYM32-NEXT:     StabInfoIndex: 0x0
155 ; CHECKSYM32-NEXT:     StabSectNum: 0x0
156 ; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
157 ; CHECKSYM-NEXT:     }
158 ; CHECKSYM-NEXT:   }
159 ; CHECKSYM-NEXT:   Symbol {
160 ; CHECKSYM-NEXT:     Index: [[#Index+8]]
161 ; CHECKSYM-NEXT:     Name:
162 ; CHECKSYM-NEXT:     Value (RelocatableAddress): 0x0
163 ; CHECKSYM-NEXT:     Section: .text
164 ; CHECKSYM-NEXT:     Type: 0x0
165 ; CHECKSYM-NEXT:     StorageClass: C_HIDEXT (0x6B)
166 ; CHECKSYM-NEXT:     NumberOfAuxEntries: 1
167 ; CHECKSYM-NEXT:     CSECT Auxiliary Entry {
168 ; CHECKSYM-NEXT:       Index: [[#Index+9]]
169 ; CHECKSYM-NEXT:       SectionLen: 80
170 ; CHECKSYM-NEXT:       ParameterHashIndex: 0x0
171 ; CHECKSYM-NEXT:       TypeChkSectNum: 0x0
172 ; CHECKSYM-NEXT:       SymbolAlignmentLog2: 5
173 ; CHECKSYM-NEXT:       SymbolType: XTY_SD (0x1)
174 ; CHECKSYM-NEXT:       StorageMappingClass: XMC_PR (0x0)
175 ; CHECKSYM32-NEXT:     StabInfoIndex: 0x0
176 ; CHECKSYM32-NEXT:     StabSectNum: 0x0
177 ; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
178 ; CHECKSYM-NEXT:     }
179 ; CHECKSYM-NEXT:   }
180 ; CHECKSYM-NEXT:   Symbol {
181 ; CHECKSYM-NEXT:     Index: [[#Index+10]]
182 ; CHECKSYM-NEXT:     Name: .main
183 ; CHECKSYM-NEXT:     Value (RelocatableAddress): 0x0
184 ; CHECKSYM-NEXT:     Section: .text
185 ; CHECKSYM-NEXT:     Type: 0x0
186 ; CHECKSYM-NEXT:     StorageClass: C_EXT (0x2)
187 ; CHECKSYM-NEXT:     NumberOfAuxEntries: 1
188 ; CHECKSYM-NEXT:     CSECT Auxiliary Entry {
189 ; CHECKSYM-NEXT:       Index: [[#Index+11]]
190 ; CHECKSYM-NEXT:       ContainingCsectSymbolIndex: [[#Index+8]]
191 ; CHECKSYM-NEXT:       ParameterHashIndex: 0x0
192 ; CHECKSYM-NEXT:       TypeChkSectNum: 0x0
193 ; CHECKSYM-NEXT:       SymbolAlignmentLog2: 0
194 ; CHECKSYM-NEXT:       SymbolType: XTY_LD (0x2)
195 ; CHECKSYM-NEXT:       StorageMappingClass: XMC_PR (0x0)
196 ; CHECKSYM32-NEXT:     StabInfoIndex: 0x0
197 ; CHECKSYM32-NEXT:     StabSectNum: 0x0
198 ; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
199 ; CHECKSYM-NEXT:     }
200 ; CHECKSYM-NEXT:   }
201 ; CHECKSYM-NEXT:   Symbol {
202 ; CHECKSYM-NEXT:     Index: [[#Index+12]]
203 ; CHECKSYM-NEXT:     Name: .data
204 ; CHECKSYM-NEXT:     Value (RelocatableAddress): 0x50
205 ; CHECKSYM-NEXT:     Section: .data
206 ; CHECKSYM-NEXT:     Type: 0x0
207 ; CHECKSYM-NEXT:     StorageClass: C_HIDEXT (0x6B)
208 ; CHECKSYM-NEXT:     NumberOfAuxEntries: 1
209 ; CHECKSYM-NEXT:     CSECT Auxiliary Entry {
210 ; CHECKSYM-NEXT:       Index: [[#Index+13]]
211 ; CHECKSYM32-NEXT:     SectionLen: 4
212 ; CHECKSYM64-NEXT:     SectionLen: 8
213 ; CHECKSYM-NEXT:       ParameterHashIndex: 0x0
214 ; CHECKSYM-NEXT:       TypeChkSectNum: 0x0
215 ; CHECKSYM32-NEXT:     SymbolAlignmentLog2: 2
216 ; CHECKSYM64-NEXT:     SymbolAlignmentLog2: 3
217 ; CHECKSYM-NEXT:       SymbolType: XTY_SD (0x1)
218 ; CHECKSYM-NEXT:       StorageMappingClass: XMC_RW (0x5)
219 ; CHECKSYM32-NEXT:     StabInfoIndex: 0x0
220 ; CHECKSYM32-NEXT:     StabSectNum: 0x0
221 ; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
222 ; CHECKSYM-NEXT:     }
223 ; CHECKSYM-NEXT:   }
224 ; CHECKSYM-NEXT:   Symbol {
225 ; CHECKSYM-NEXT:     Index: [[#Index+14]]
226 ; CHECKSYM-NEXT:     Name: foo_ext_weak_p
227 ; CHECKSYM-NEXT:     Value (RelocatableAddress): 0x50
228 ; CHECKSYM-NEXT:     Section: .data
229 ; CHECKSYM-NEXT:     Type: 0x0
230 ; CHECKSYM-NEXT:     StorageClass: C_EXT (0x2)
231 ; CHECKSYM-NEXT:     NumberOfAuxEntries: 1
232 ; CHECKSYM-NEXT:     CSECT Auxiliary Entry {
233 ; CHECKSYM-NEXT:       Index: [[#Index+15]]
234 ; CHECKSYM-NEXT:       ContainingCsectSymbolIndex: [[#Index+12]]
235 ; CHECKSYM-NEXT:       ParameterHashIndex: 0x0
236 ; CHECKSYM-NEXT:       TypeChkSectNum: 0x0
237 ; CHECKSYM-NEXT:       SymbolAlignmentLog2: 0
238 ; CHECKSYM-NEXT:       SymbolType: XTY_LD (0x2)
239 ; CHECKSYM-NEXT:       StorageMappingClass: XMC_RW (0x5)
240 ; CHECKSYM32-NEXT:     StabInfoIndex: 0x0
241 ; CHECKSYM32-NEXT:     StabSectNum: 0x0
242 ; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
243 ; CHECKSYM-NEXT:     }
244 ; CHECKSYM-NEXT:   }
245 ; CHECKSYM-NEXT:   Symbol {
246 ; CHECKSYM-NEXT:     Index: [[#Index+16]]
247 ; CHECKSYM-NEXT:     Name: main
248 ; CHECKSYM32-NEXT:   Value (RelocatableAddress): 0x54
249 ; CHECKSYM64-NEXT:   Value (RelocatableAddress): 0x58
250 ; CHECKSYM-NEXT:     Section: .data
251 ; CHECKSYM-NEXT:     Type: 0x0
252 ; CHECKSYM-NEXT:     StorageClass: C_EXT (0x2)
253 ; CHECKSYM-NEXT:     NumberOfAuxEntries: 1
254 ; CHECKSYM-NEXT:     CSECT Auxiliary Entry {
255 ; CHECKSYM-NEXT:       Index: [[#Index+17]]
256 ; CHECKSYM32-NEXT:     SectionLen: 12
257 ; CHECKSYM64-NEXT:     SectionLen: 24
258 ; CHECKSYM-NEXT:       ParameterHashIndex: 0x0
259 ; CHECKSYM-NEXT:       TypeChkSectNum: 0x0
260 ; CHECKSYM32-NEXT:     SymbolAlignmentLog2: 2
261 ; CHECKSYM64-NEXT:     SymbolAlignmentLog2: 3
262 ; CHECKSYM-NEXT:       SymbolType: XTY_SD (0x1)
263 ; CHECKSYM-NEXT:       StorageMappingClass: XMC_DS (0xA)
264 ; CHECKSYM32-NEXT:     StabInfoIndex: 0x0
265 ; CHECKSYM32-NEXT:     StabSectNum: 0x0
266 ; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
267 ; CHECKSYM-NEXT:     }
268 ; CHECKSYM-NEXT:   }
269 ; CHECKSYM-NEXT:   Symbol {
270 ; CHECKSYM-NEXT:     Index: [[#Index+18]]
271 ; CHECKSYM-NEXT:     Name: TOC
272 ; CHECKSYM32-NEXT:   Value (RelocatableAddress): 0x60
273 ; CHECKSYM64-NEXT:   Value (RelocatableAddress): 0x70
274 ; CHECKSYM-NEXT:     Section: .data
275 ; CHECKSYM-NEXT:     Type: 0x0
276 ; CHECKSYM-NEXT:     StorageClass: C_HIDEXT (0x6B)
277 ; CHECKSYM-NEXT:     NumberOfAuxEntries: 1
278 ; CHECKSYM-NEXT:     CSECT Auxiliary Entry {
279 ; CHECKSYM-NEXT:       Index: [[#Index+19]]
280 ; CHECKSYM-NEXT:       SectionLen: 0
281 ; CHECKSYM-NEXT:       ParameterHashIndex: 0x0
282 ; CHECKSYM-NEXT:       TypeChkSectNum: 0x0
283 ; CHECKSYM-NEXT:       SymbolAlignmentLog2: 2
284 ; CHECKSYM-NEXT:       SymbolType: XTY_SD (0x1)
285 ; CHECKSYM-NEXT:       StorageMappingClass: XMC_TC0 (0xF)
286 ; CHECKSYM32-NEXT:     StabInfoIndex: 0x0
287 ; CHECKSYM32-NEXT:     StabSectNum: 0x0
288 ; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
289 ; CHECKSYM-NEXT:     }
290 ; CHECKSYM-NEXT:   }
291 ; CHECKSYM-NEXT:   Symbol {
292 ; CHECKSYM-NEXT:     Index: [[#Index+20]]
293 ; CHECKSYM-NEXT:     Name: foo_ext_weak_p
294 ; CHECKSYM32-NEXT:   Value (RelocatableAddress): 0x60
295 ; CHECKSYM64-NEXT:   Value (RelocatableAddress): 0x70
296 ; CHECKSYM-NEXT:     Section: .data
297 ; CHECKSYM-NEXT:     Type: 0x0
298 ; CHECKSYM-NEXT:     StorageClass: C_HIDEXT (0x6B)
299 ; CHECKSYM-NEXT:     NumberOfAuxEntries: 1
300 ; CHECKSYM-NEXT:     CSECT Auxiliary Entry {
301 ; CHECKSYM-NEXT:       Index: [[#Index+21]]
302 ; CHECKSYM32-NEXT:     SectionLen: 4
303 ; CHECKSYM64-NEXT:     SectionLen: 8
304 ; CHECKSYM-NEXT:       ParameterHashIndex: 0x0
305 ; CHECKSYM-NEXT:       TypeChkSectNum: 0x0
306 ; CHECKSYM32-NEXT:     SymbolAlignmentLog2: 2
307 ; CHECKSYM64-NEXT:     SymbolAlignmentLog2: 3
308 ; CHECKSYM-NEXT:       SymbolType: XTY_SD (0x1)
309 ; CHECKSYM-NEXT:       StorageMappingClass: XMC_TC (0x3)
310 ; CHECKSYM32-NEXT:     StabInfoIndex: 0x0
311 ; CHECKSYM32-NEXT:     StabSectNum: 0x0
312 ; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
313 ; CHECKSYM-NEXT:     }
314 ; CHECKSYM-NEXT:   }
315 ; CHECKSYM-NEXT:   Symbol {
316 ; CHECKSYM-NEXT:     Index: [[#Index+22]]
317 ; CHECKSYM-NEXT:     Name: b_w
318 ; CHECKSYM32-NEXT:   Value (RelocatableAddress): 0x64
319 ; CHECKSYM64-NEXT:   Value (RelocatableAddress): 0x78
320 ; CHECKSYM-NEXT:     Section: .data
321 ; CHECKSYM-NEXT:     Type: 0x0
322 ; CHECKSYM-NEXT:     StorageClass: C_HIDEXT (0x6B)
323 ; CHECKSYM-NEXT:     NumberOfAuxEntries: 1
324 ; CHECKSYM-NEXT:     CSECT Auxiliary Entry {
325 ; CHECKSYM-NEXT:       Index: [[#Index+23]]
326 ; CHECKSYM32-NEXT:     SectionLen: 4
327 ; CHECKSYM64-NEXT:     SectionLen: 8
328 ; CHECKSYM-NEXT:       ParameterHashIndex: 0x0
329 ; CHECKSYM-NEXT:       TypeChkSectNum: 0x0
330 ; CHECKSYM32-NEXT:     SymbolAlignmentLog2: 2
331 ; CHECKSYM64-NEXT:     SymbolAlignmentLog2: 3
332 ; CHECKSYM-NEXT:       SymbolType: XTY_SD (0x1)
333 ; CHECKSYM-NEXT:       StorageMappingClass: XMC_TC (0x3)
334 ; CHECKSYM32-NEXT:     StabInfoIndex: 0x0
335 ; CHECKSYM32-NEXT:     StabSectNum: 0x0
336 ; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
337 ; CHECKSYM-NEXT:     }
338 ; CHECKSYM-NEXT:   }
339 ; CHECKSYM-NEXT: ]