]> git.proxmox.com Git - rustc.git/blob - src/binaryen/test/torture-s/980707-1.c.s
New upstream version 1.23.0+dfsg1
[rustc.git] / src / binaryen / test / torture-s / 980707-1.c.s
1 .text
2 .file "980707-1.c"
3 .section .text.buildargv,"ax",@progbits
4 .hidden buildargv # -- Begin function buildargv
5 .globl buildargv
6 .type buildargv,@function
7 buildargv: # @buildargv
8 .param i32
9 .result i32
10 .local i32, i32, i32
11 # BB#0: # %entry
12 i32.const $3=, 0
13 .LBB0_1: # %while.cond1
14 # =>This Loop Header: Depth=1
15 # Child Loop BB0_5 Depth 2
16 loop # label0:
17 block
18 i32.load8_u $push16=, 0($0)
19 tee_local $push15=, $2=, $pop16
20 i32.const $push14=, 32
21 i32.ne $push1=, $pop15, $pop14
22 br_if 0, $pop1 # 0: down to label1
23 # BB#2: # %while.body3
24 # in Loop: Header=BB0_1 Depth=1
25 i32.const $push13=, 1
26 i32.add $0=, $0, $pop13
27 br 1 # 1: up to label0
28 .LBB0_3: # %while.cond1
29 # in Loop: Header=BB0_1 Depth=1
30 end_block # label1:
31 block
32 i32.eqz $push30=, $2
33 br_if 0, $pop30 # 0: down to label2
34 # BB#4: # %if.end
35 # in Loop: Header=BB0_1 Depth=1
36 i32.const $push18=, 2
37 i32.shl $push2=, $3, $pop18
38 i32.const $push17=, buildargv.arglist
39 i32.add $push3=, $pop2, $pop17
40 i32.store 0($pop3), $0
41 .LBB0_5: # %while.cond7
42 # Parent Loop BB0_1 Depth=1
43 # => This Inner Loop Header: Depth=2
44 loop # label3:
45 i32.load8_u $2=, 0($0)
46 i32.const $push24=, 1
47 i32.add $push23=, $0, $pop24
48 tee_local $push22=, $1=, $pop23
49 copy_local $0=, $pop22
50 i32.const $push21=, 32
51 i32.or $push4=, $2, $pop21
52 i32.const $push20=, 255
53 i32.and $push5=, $pop4, $pop20
54 i32.const $push19=, 32
55 i32.ne $push6=, $pop5, $pop19
56 br_if 0, $pop6 # 0: up to label3
57 # BB#6: # %while.end16
58 # in Loop: Header=BB0_1 Depth=1
59 end_loop
60 i32.const $push26=, 1
61 i32.add $3=, $3, $pop26
62 i32.const $push25=, 255
63 i32.and $push7=, $2, $pop25
64 i32.eqz $push31=, $pop7
65 br_if 0, $pop31 # 0: down to label2
66 # BB#7: # %if.end21
67 # in Loop: Header=BB0_1 Depth=1
68 i32.const $push28=, -1
69 i32.add $push0=, $1, $pop28
70 i32.const $push27=, 0
71 i32.store8 0($pop0), $pop27
72 copy_local $0=, $1
73 br 1 # 1: up to label0
74 .LBB0_8: # %while.end23
75 end_block # label2:
76 end_loop
77 i32.const $push8=, 2
78 i32.shl $push9=, $3, $pop8
79 i32.const $push10=, buildargv.arglist
80 i32.add $push11=, $pop9, $pop10
81 i32.const $push12=, 0
82 i32.store 0($pop11), $pop12
83 i32.const $push29=, buildargv.arglist
84 # fallthrough-return: $pop29
85 .endfunc
86 .Lfunc_end0:
87 .size buildargv, .Lfunc_end0-buildargv
88 # -- End function
89 .section .text.main,"ax",@progbits
90 .hidden main # -- Begin function main
91 .globl main
92 .type main,@function
93 main: # @main
94 .result i32
95 .local i32, i32, i32, i32
96 # BB#0: # %entry
97 i32.const $push24=, 0
98 i32.const $push22=, 0
99 i32.load $push21=, __stack_pointer($pop22)
100 i32.const $push23=, 256
101 i32.sub $push28=, $pop21, $pop23
102 tee_local $push27=, $3=, $pop28
103 i32.store __stack_pointer($pop24), $pop27
104 i32.const $push26=, 0
105 i32.load8_u $push1=, .L.str+4($pop26)
106 i32.store8 4($3), $pop1
107 i32.const $push25=, 0
108 i32.load $push2=, .L.str($pop25):p2align=0
109 i32.store 0($3), $pop2
110 copy_local $3=, $3
111 i32.const $2=, 0
112 .LBB1_1: # %while.cond1.i
113 # =>This Loop Header: Depth=1
114 # Child Loop BB1_4 Depth 2
115 block
116 loop # label5:
117 block
118 i32.load8_u $push33=, 0($3)
119 tee_local $push32=, $0=, $pop33
120 i32.const $push31=, 32
121 i32.eq $push3=, $pop32, $pop31
122 br_if 0, $pop3 # 0: down to label6
123 # BB#2: # %while.cond1.i
124 # in Loop: Header=BB1_1 Depth=1
125 i32.eqz $push50=, $0
126 br_if 2, $pop50 # 2: down to label4
127 # BB#3: # %if.end.i
128 # in Loop: Header=BB1_1 Depth=1
129 i32.const $push35=, 2
130 i32.shl $push4=, $2, $pop35
131 i32.const $push34=, buildargv.arglist
132 i32.add $push5=, $pop4, $pop34
133 i32.store 0($pop5), $3
134 .LBB1_4: # %while.cond7.i
135 # Parent Loop BB1_1 Depth=1
136 # => This Inner Loop Header: Depth=2
137 loop # label7:
138 i32.load8_u $0=, 0($3)
139 i32.const $push41=, 1
140 i32.add $push40=, $3, $pop41
141 tee_local $push39=, $1=, $pop40
142 copy_local $3=, $pop39
143 i32.const $push38=, 32
144 i32.or $push6=, $0, $pop38
145 i32.const $push37=, 255
146 i32.and $push7=, $pop6, $pop37
147 i32.const $push36=, 32
148 i32.ne $push8=, $pop7, $pop36
149 br_if 0, $pop8 # 0: up to label7
150 # BB#5: # %while.end16.i
151 # in Loop: Header=BB1_1 Depth=1
152 end_loop
153 i32.const $push43=, 1
154 i32.add $2=, $2, $pop43
155 i32.const $push42=, 255
156 i32.and $push9=, $0, $pop42
157 i32.eqz $push51=, $pop9
158 br_if 2, $pop51 # 2: down to label4
159 # BB#6: # %if.end21.i
160 # in Loop: Header=BB1_1 Depth=1
161 i32.const $push30=, -1
162 i32.add $push0=, $1, $pop30
163 i32.const $push29=, 0
164 i32.store8 0($pop0), $pop29
165 copy_local $3=, $1
166 br 1 # 1: up to label5
167 .LBB1_7: # %while.body3.i
168 # in Loop: Header=BB1_1 Depth=1
169 end_block # label6:
170 i32.const $push44=, 1
171 i32.add $3=, $3, $pop44
172 br 0 # 0: up to label5
173 .LBB1_8: # %buildargv.exit
174 end_loop
175 end_block # label4:
176 i32.const $push10=, 2
177 i32.shl $push11=, $2, $pop10
178 i32.const $push12=, buildargv.arglist
179 i32.add $push13=, $pop11, $pop12
180 i32.const $push46=, 0
181 i32.store 0($pop13), $pop46
182 block
183 i32.const $push45=, 0
184 i32.load $push14=, buildargv.arglist($pop45)
185 i32.const $push15=, .L.str.1
186 i32.call $push16=, strcmp@FUNCTION, $pop14, $pop15
187 br_if 0, $pop16 # 0: down to label8
188 # BB#9: # %if.end
189 i32.const $push47=, 0
190 i32.load $push17=, buildargv.arglist+4($pop47)
191 i32.const $push18=, .L.str.2
192 i32.call $push19=, strcmp@FUNCTION, $pop17, $pop18
193 br_if 0, $pop19 # 0: down to label8
194 # BB#10: # %if.end8
195 i32.const $push48=, 0
196 i32.load $push20=, buildargv.arglist+8($pop48)
197 br_if 0, $pop20 # 0: down to label8
198 # BB#11: # %if.end11
199 i32.const $push49=, 0
200 call exit@FUNCTION, $pop49
201 unreachable
202 .LBB1_12: # %if.then
203 end_block # label8:
204 call abort@FUNCTION
205 unreachable
206 .endfunc
207 .Lfunc_end1:
208 .size main, .Lfunc_end1-main
209 # -- End function
210 .type buildargv.arglist,@object # @buildargv.arglist
211 .section .bss.buildargv.arglist,"aw",@nobits
212 .p2align 4
213 buildargv.arglist:
214 .skip 1024
215 .size buildargv.arglist, 1024
216
217 .type .L.str,@object # @.str
218 .section .rodata.str1.1,"aMS",@progbits,1
219 .L.str:
220 .asciz " a b"
221 .size .L.str, 5
222
223 .type .L.str.1,@object # @.str.1
224 .L.str.1:
225 .asciz "a"
226 .size .L.str.1, 2
227
228 .type .L.str.2,@object # @.str.2
229 .L.str.2:
230 .asciz "b"
231 .size .L.str.2, 2
232
233
234 .ident "clang version 6.0.0 (https://llvm.googlesource.com/clang.git a1774cccdccfa673c057f93ccf23bc2d8cb04932) (https://llvm.googlesource.com/llvm.git fc50e1c6121255333bc42d6faf2b524c074eae25)"
235 .functype strcmp, i32, i32, i32
236 .functype abort, void
237 .functype exit, void, i32