xref: /llvm-project/llvm/test/tools/llvm-debuginfo-analyzer/WebAssembly/Inputs/pr-44884-clang.s (revision b19cfb9175223d3e1bb3ef6d49ccd26d0104906c)
1	.text
2	.file	"pr-44884.cpp"
3	.globaltype	__stack_pointer, i32
4	.functype	_Z3barf (f32) -> (i32)
5	.functype	_Z3fooc (i32) -> (i32)
6	.section	.text._Z3barf,"",@
7	.hidden	_Z3barf                         # -- Begin function _Z3barf
8	.globl	_Z3barf
9	.type	_Z3barf,@function
10_Z3barf:                                # @_Z3barf
11.Lfunc_begin0:
12	.file	1 "/data/projects/scripts/regression-suite/input/general" "pr-44884.cpp"
13	.loc	1 1 0                           # pr-44884.cpp:1:0
14	.functype	_Z3barf (f32) -> (i32)
15	.local  	i32, i32, i32, f32, f32, f32, i32, i32, i32, i32, i32, i32
16# %bb.0:                                # %entry
17	global.get	__stack_pointer
18	local.set	1
19	i32.const	16
20	local.set	2
21	local.get	1
22	local.get	2
23	i32.sub
24	local.set	3
25	local.get	3
26	local.get	0
27	f32.store	12
28.Ltmp0:
29	.loc	1 1 36 prologue_end             # pr-44884.cpp:1:36
30	local.get	3
31	f32.load	12
32	local.set	4
33	local.get	4
34	f32.abs
35	local.set	5
36	f32.const	0x1p31
37	local.set	6
38	local.get	5
39	local.get	6
40	f32.lt
41	local.set	7
42	local.get	7
43	i32.eqz
44	local.set	8
45	block
46	block
47	local.get	8
48	br_if   	0                               # 0: down to label1
49# %bb.1:                                # %entry
50	local.get	4
51	i32.trunc_f32_s
52	local.set	9
53	local.get	9
54	local.set	10
55	br      	1                               # 1: down to label0
56.LBB0_2:                                # %entry
57	.loc	1 0 36 is_stmt 0                # pr-44884.cpp:0:36
58	end_block                               # label1:
59	.loc	1 1 36                          # pr-44884.cpp:1:36
60	i32.const	-2147483648
61	local.set	11
62	local.get	11
63	local.set	10
64.LBB0_3:                                # %entry
65	.loc	1 0 36                          # pr-44884.cpp:0:36
66	end_block                               # label0:
67	.loc	1 1 36                          # pr-44884.cpp:1:36
68	local.get	10
69	local.set	12
70	.loc	1 1 24                          # pr-44884.cpp:1:24
71	local.get	12
72	return
73	end_function
74.Ltmp1:
75.Lfunc_end0:
76                                        # -- End function
77	.section	.text._Z3fooc,"",@
78	.hidden	_Z3fooc                         # -- Begin function _Z3fooc
79	.globl	_Z3fooc
80	.type	_Z3fooc,@function
81_Z3fooc:                                # @_Z3fooc
82.Lfunc_begin1:
83	.loc	1 3 0 is_stmt 1                 # pr-44884.cpp:3:0
84	.functype	_Z3fooc (i32) -> (i32)
85	.local  	i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, f32, f32, i32, i32, i32, i32, i32, i32, i32, i32, i32
86# %bb.0:                                # %entry
87	global.get	__stack_pointer
88	local.set	1
89	i32.const	16
90	local.set	2
91	local.get	1
92	local.get	2
93	i32.sub
94	local.set	3
95	local.get	3
96	global.set	__stack_pointer
97	local.get	3
98	local.get	0
99	i32.store8	15
100.Ltmp2:
101	.loc	1 5 15 prologue_end             # pr-44884.cpp:5:15
102	local.get	3
103	i32.load8_u	15
104	local.set	4
105	i32.const	24
106	local.set	5
107	local.get	4
108	local.get	5
109	i32.shl
110	local.set	6
111	local.get	6
112	local.get	5
113	i32.shr_s
114	local.set	7
115	.loc	1 5 7 is_stmt 0                 # pr-44884.cpp:5:7
116	local.get	3
117	local.get	7
118	i32.store	8
119.Ltmp3:
120	.loc	1 9 21 is_stmt 1                # pr-44884.cpp:9:21
121	local.get	3
122	i32.load	8
123	local.set	8
124	.loc	1 9 29 is_stmt 0                # pr-44884.cpp:9:29
125	local.get	3
126	i32.load8_u	15
127	local.set	9
128	i32.const	24
129	local.set	10
130	local.get	9
131	local.get	10
132	i32.shl
133	local.set	11
134	local.get	11
135	local.get	10
136	i32.shr_s
137	local.set	12
138	.loc	1 9 27                          # pr-44884.cpp:9:27
139	local.get	8
140	local.get	12
141	i32.add
142	local.set	13
143	.loc	1 9 21                          # pr-44884.cpp:9:21
144	local.get	13
145	f32.convert_i32_s
146	local.set	14
147	.loc	1 9 13                          # pr-44884.cpp:9:13
148	local.get	3
149	local.get	14
150	f32.store	4
151	.loc	1 10 19 is_stmt 1               # pr-44884.cpp:10:19
152	local.get	3
153	f32.load	4
154	local.set	15
155	.loc	1 10 15 is_stmt 0               # pr-44884.cpp:10:15
156	local.get	15
157	call	_Z3barf
158	local.set	16
159	.loc	1 10 13                         # pr-44884.cpp:10:13
160	local.get	3
161	local.get	16
162	i32.store	8
163.Ltmp4:
164	.loc	1 13 10 is_stmt 1               # pr-44884.cpp:13:10
165	local.get	3
166	i32.load	8
167	local.set	17
168	.loc	1 13 18 is_stmt 0               # pr-44884.cpp:13:18
169	local.get	3
170	i32.load8_u	15
171	local.set	18
172	i32.const	24
173	local.set	19
174	local.get	18
175	local.get	19
176	i32.shl
177	local.set	20
178	local.get	20
179	local.get	19
180	i32.shr_s
181	local.set	21
182	.loc	1 13 16                         # pr-44884.cpp:13:16
183	local.get	17
184	local.get	21
185	i32.add
186	local.set	22
187	.loc	1 13 3                          # pr-44884.cpp:13:3
188	i32.const	16
189	local.set	23
190	local.get	3
191	local.get	23
192	i32.add
193	local.set	24
194	local.get	24
195	global.set	__stack_pointer
196	local.get	22
197	return
198	end_function
199.Ltmp5:
200.Lfunc_end1:
201                                        # -- End function
202	.section	.debug_abbrev,"",@
203	.int8	1                               # Abbreviation Code
204	.int8	17                              # DW_TAG_compile_unit
205	.int8	1                               # DW_CHILDREN_yes
206	.int8	37                              # DW_AT_producer
207	.int8	14                              # DW_FORM_strp
208	.int8	19                              # DW_AT_language
209	.int8	5                               # DW_FORM_data2
210	.int8	3                               # DW_AT_name
211	.int8	14                              # DW_FORM_strp
212	.int8	16                              # DW_AT_stmt_list
213	.int8	23                              # DW_FORM_sec_offset
214	.int8	27                              # DW_AT_comp_dir
215	.int8	14                              # DW_FORM_strp
216	.int8	17                              # DW_AT_low_pc
217	.int8	1                               # DW_FORM_addr
218	.int8	85                              # DW_AT_ranges
219	.int8	23                              # DW_FORM_sec_offset
220	.int8	0                               # EOM(1)
221	.int8	0                               # EOM(2)
222	.int8	2                               # Abbreviation Code
223	.int8	36                              # DW_TAG_base_type
224	.int8	0                               # DW_CHILDREN_no
225	.int8	3                               # DW_AT_name
226	.int8	14                              # DW_FORM_strp
227	.int8	62                              # DW_AT_encoding
228	.int8	11                              # DW_FORM_data1
229	.int8	11                              # DW_AT_byte_size
230	.int8	11                              # DW_FORM_data1
231	.int8	0                               # EOM(1)
232	.int8	0                               # EOM(2)
233	.int8	3                               # Abbreviation Code
234	.int8	46                              # DW_TAG_subprogram
235	.int8	1                               # DW_CHILDREN_yes
236	.int8	17                              # DW_AT_low_pc
237	.int8	1                               # DW_FORM_addr
238	.int8	18                              # DW_AT_high_pc
239	.int8	6                               # DW_FORM_data4
240	.int8	64                              # DW_AT_frame_base
241	.int8	24                              # DW_FORM_exprloc
242	.int8	110                             # DW_AT_linkage_name
243	.int8	14                              # DW_FORM_strp
244	.int8	3                               # DW_AT_name
245	.int8	14                              # DW_FORM_strp
246	.int8	58                              # DW_AT_decl_file
247	.int8	11                              # DW_FORM_data1
248	.int8	59                              # DW_AT_decl_line
249	.int8	11                              # DW_FORM_data1
250	.int8	73                              # DW_AT_type
251	.int8	19                              # DW_FORM_ref4
252	.int8	63                              # DW_AT_external
253	.int8	25                              # DW_FORM_flag_present
254	.int8	0                               # EOM(1)
255	.int8	0                               # EOM(2)
256	.int8	4                               # Abbreviation Code
257	.int8	5                               # DW_TAG_formal_parameter
258	.int8	0                               # DW_CHILDREN_no
259	.int8	2                               # DW_AT_location
260	.int8	24                              # DW_FORM_exprloc
261	.int8	3                               # DW_AT_name
262	.int8	14                              # DW_FORM_strp
263	.int8	58                              # DW_AT_decl_file
264	.int8	11                              # DW_FORM_data1
265	.int8	59                              # DW_AT_decl_line
266	.int8	11                              # DW_FORM_data1
267	.int8	73                              # DW_AT_type
268	.int8	19                              # DW_FORM_ref4
269	.int8	0                               # EOM(1)
270	.int8	0                               # EOM(2)
271	.int8	5                               # Abbreviation Code
272	.int8	52                              # DW_TAG_variable
273	.int8	0                               # DW_CHILDREN_no
274	.int8	2                               # DW_AT_location
275	.int8	24                              # DW_FORM_exprloc
276	.int8	3                               # DW_AT_name
277	.int8	14                              # DW_FORM_strp
278	.int8	58                              # DW_AT_decl_file
279	.int8	11                              # DW_FORM_data1
280	.int8	59                              # DW_AT_decl_line
281	.int8	11                              # DW_FORM_data1
282	.int8	73                              # DW_AT_type
283	.int8	19                              # DW_FORM_ref4
284	.int8	0                               # EOM(1)
285	.int8	0                               # EOM(2)
286	.int8	6                               # Abbreviation Code
287	.int8	11                              # DW_TAG_lexical_block
288	.int8	1                               # DW_CHILDREN_yes
289	.int8	17                              # DW_AT_low_pc
290	.int8	1                               # DW_FORM_addr
291	.int8	18                              # DW_AT_high_pc
292	.int8	6                               # DW_FORM_data4
293	.int8	0                               # EOM(1)
294	.int8	0                               # EOM(2)
295	.int8	7                               # Abbreviation Code
296	.int8	22                              # DW_TAG_typedef
297	.int8	0                               # DW_CHILDREN_no
298	.int8	73                              # DW_AT_type
299	.int8	19                              # DW_FORM_ref4
300	.int8	3                               # DW_AT_name
301	.int8	14                              # DW_FORM_strp
302	.int8	58                              # DW_AT_decl_file
303	.int8	11                              # DW_FORM_data1
304	.int8	59                              # DW_AT_decl_line
305	.int8	11                              # DW_FORM_data1
306	.int8	0                               # EOM(1)
307	.int8	0                               # EOM(2)
308	.int8	0                               # EOM(3)
309	.section	.debug_info,"",@
310.Lcu_begin0:
311	.int32	.Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
312.Ldebug_info_start0:
313	.int16	4                               # DWARF version number
314	.int32	.debug_abbrev0                  # Offset Into Abbrev. Section
315	.int8	4                               # Address Size (in bytes)
316	.int8	1                               # Abbrev [1] 0xb:0xca DW_TAG_compile_unit
317	.int32	.Linfo_string0                  # DW_AT_producer
318	.int16	33                              # DW_AT_language
319	.int32	.Linfo_string1                  # DW_AT_name
320	.int32	.Lline_table_start0             # DW_AT_stmt_list
321	.int32	.Linfo_string2                  # DW_AT_comp_dir
322	.int32	0                               # DW_AT_low_pc
323	.int32	.Ldebug_ranges0                 # DW_AT_ranges
324	.int8	2                               # Abbrev [2] 0x26:0x7 DW_TAG_base_type
325	.int32	.Linfo_string3                  # DW_AT_name
326	.int8	5                               # DW_AT_encoding
327	.int8	4                               # DW_AT_byte_size
328	.int8	3                               # Abbrev [3] 0x2d:0x2b DW_TAG_subprogram
329	.int32	.Lfunc_begin0                   # DW_AT_low_pc
330	.int32	.Lfunc_end0-.Lfunc_begin0       # DW_AT_high_pc
331	.int8	4                               # DW_AT_frame_base
332	.int8	237
333	.int8	0
334	.int8	3
335	.int8	159
336	.int32	.Linfo_string4                  # DW_AT_linkage_name
337	.int32	.Linfo_string5                  # DW_AT_name
338	.int8	1                               # DW_AT_decl_file
339	.int8	1                               # DW_AT_decl_line
340	.int32	38                              # DW_AT_type
341                                        # DW_AT_external
342	.int8	4                               # Abbrev [4] 0x49:0xe DW_TAG_formal_parameter
343	.int8	2                               # DW_AT_location
344	.int8	145
345	.int8	12
346	.int32	.Linfo_string9                  # DW_AT_name
347	.int8	1                               # DW_AT_decl_file
348	.int8	1                               # DW_AT_decl_line
349	.int32	198                             # DW_AT_type
350	.int8	0                               # End Of Children Mark
351	.int8	3                               # Abbrev [3] 0x58:0x67 DW_TAG_subprogram
352	.int32	.Lfunc_begin1                   # DW_AT_low_pc
353	.int32	.Lfunc_end1-.Lfunc_begin1       # DW_AT_high_pc
354	.int8	4                               # DW_AT_frame_base
355	.int8	237
356	.int8	0
357	.int8	3
358	.int8	159
359	.int32	.Linfo_string6                  # DW_AT_linkage_name
360	.int32	.Linfo_string7                  # DW_AT_name
361	.int8	1                               # DW_AT_decl_file
362	.int8	3                               # DW_AT_decl_line
363	.int32	191                             # DW_AT_type
364                                        # DW_AT_external
365	.int8	4                               # Abbrev [4] 0x74:0xe DW_TAG_formal_parameter
366	.int8	2                               # DW_AT_location
367	.int8	145
368	.int8	15
369	.int32	.Linfo_string11                 # DW_AT_name
370	.int8	1                               # DW_AT_decl_file
371	.int8	3                               # DW_AT_decl_line
372	.int32	205                             # DW_AT_type
373	.int8	5                               # Abbrev [5] 0x82:0xe DW_TAG_variable
374	.int8	2                               # DW_AT_location
375	.int8	145
376	.int8	8
377	.int32	.Linfo_string13                 # DW_AT_name
378	.int8	1                               # DW_AT_decl_file
379	.int8	5                               # DW_AT_decl_line
380	.int32	168                             # DW_AT_type
381	.int8	6                               # Abbrev [6] 0x90:0x18 DW_TAG_lexical_block
382	.int32	.Ltmp3                          # DW_AT_low_pc
383	.int32	.Ltmp4-.Ltmp3                   # DW_AT_high_pc
384	.int8	5                               # Abbrev [5] 0x99:0xe DW_TAG_variable
385	.int8	2                               # DW_AT_location
386	.int8	145
387	.int8	4
388	.int32	.Linfo_string15                 # DW_AT_name
389	.int8	1                               # DW_AT_decl_file
390	.int8	9                               # DW_AT_decl_line
391	.int32	179                             # DW_AT_type
392	.int8	0                               # End Of Children Mark
393	.int8	7                               # Abbrev [7] 0xa8:0xb DW_TAG_typedef
394	.int32	38                              # DW_AT_type
395	.int32	.Linfo_string14                 # DW_AT_name
396	.int8	1                               # DW_AT_decl_file
397	.int8	4                               # DW_AT_decl_line
398	.int8	7                               # Abbrev [7] 0xb3:0xb DW_TAG_typedef
399	.int32	198                             # DW_AT_type
400	.int32	.Linfo_string16                 # DW_AT_name
401	.int8	1                               # DW_AT_decl_file
402	.int8	7                               # DW_AT_decl_line
403	.int8	0                               # End Of Children Mark
404	.int8	2                               # Abbrev [2] 0xbf:0x7 DW_TAG_base_type
405	.int32	.Linfo_string8                  # DW_AT_name
406	.int8	7                               # DW_AT_encoding
407	.int8	4                               # DW_AT_byte_size
408	.int8	2                               # Abbrev [2] 0xc6:0x7 DW_TAG_base_type
409	.int32	.Linfo_string10                 # DW_AT_name
410	.int8	4                               # DW_AT_encoding
411	.int8	4                               # DW_AT_byte_size
412	.int8	2                               # Abbrev [2] 0xcd:0x7 DW_TAG_base_type
413	.int32	.Linfo_string12                 # DW_AT_name
414	.int8	6                               # DW_AT_encoding
415	.int8	1                               # DW_AT_byte_size
416	.int8	0                               # End Of Children Mark
417.Ldebug_info_end0:
418	.section	.debug_ranges,"",@
419.Ldebug_ranges0:
420	.int32	.Lfunc_begin0
421	.int32	.Lfunc_end0
422	.int32	.Lfunc_begin1
423	.int32	.Lfunc_end1
424	.int32	0
425	.int32	0
426	.section	.debug_str,"S",@
427.Linfo_string0:
428	.asciz	"clang version 19.0.0git (/data/projects/llvm-root/llvm-project/clang 2db6703f0c257d293df455e2dff8c1fb695c4100)" # string offset=0
429.Linfo_string1:
430	.asciz	"pr-44884.cpp"                  # string offset=111
431.Linfo_string2:
432	.asciz	"/data/projects/scripts/regression-suite/input/general" # string offset=124
433.Linfo_string3:
434	.asciz	"int"                           # string offset=178
435.Linfo_string4:
436	.asciz	"_Z3barf"                       # string offset=182
437.Linfo_string5:
438	.asciz	"bar"                           # string offset=190
439.Linfo_string6:
440	.asciz	"_Z3fooc"                       # string offset=194
441.Linfo_string7:
442	.asciz	"foo"                           # string offset=202
443.Linfo_string8:
444	.asciz	"unsigned int"                  # string offset=206
445.Linfo_string9:
446	.asciz	"Input"                         # string offset=219
447.Linfo_string10:
448	.asciz	"float"                         # string offset=225
449.Linfo_string11:
450	.asciz	"Param"                         # string offset=231
451.Linfo_string12:
452	.asciz	"char"                          # string offset=237
453.Linfo_string13:
454	.asciz	"Value"                         # string offset=242
455.Linfo_string14:
456	.asciz	"INT"                           # string offset=248
457.Linfo_string15:
458	.asciz	"Added"                         # string offset=252
459.Linfo_string16:
460	.asciz	"FLOAT"                         # string offset=258
461	.ident	"clang version 19.0.0git (/data/projects/llvm-root/llvm-project/clang 2db6703f0c257d293df455e2dff8c1fb695c4100)"
462	.section	.custom_section.producers,"",@
463	.int8	2
464	.int8	8
465	.ascii	"language"
466	.int8	1
467	.int8	14
468	.ascii	"C_plus_plus_14"
469	.int8	0
470	.int8	12
471	.ascii	"processed-by"
472	.int8	1
473	.int8	5
474	.ascii	"clang"
475	.int8	96
476	.ascii	"19.0.0git (/data/projects/llvm-root/llvm-project/clang 2db6703f0c257d293df455e2dff8c1fb695c4100)"
477	.section	.debug_str,"S",@
478	.section	.custom_section.target_features,"",@
479	.int8	2
480	.int8	43
481	.int8	15
482	.ascii	"mutable-globals"
483	.int8	43
484	.int8	8
485	.ascii	"sign-ext"
486	.section	.debug_str,"S",@
487	.section	.debug_line,"",@
488.Lline_table_start0:
489