new hlt block terminator
[qbe.git] / test / vararg2.ssa
blobcecb20a5b9344a4d02548c34edd7ae97bd4da002
1 export function $qbeprint0(l %fmt, ...) {
2 @start
3         %fmtdbl =l alloc4 4
4         %fmtint =l alloc4 4
5         %emptys =l alloc4 4
6         storew 2122789, %fmtint
7         storew 2123557, %fmtdbl
8         storew 0, %emptys
9         %vp =l alloc8 32
10         %fmt1 =l add 1, %fmt
11         vastart %vp
12 @loop
13         %p =l phi @start %fmt1, @casef %p1, @cased %p1
14         %c =w loadsb %p
15         %p1 =l add 3, %p
16         jnz %c, @loop1, @end
17 @loop1
18         %isg =w ceqw %c, 103
19         jnz %isg, @casef, @cased
20 @casef
21         %dbl =d vaarg %vp
22         %r =w call $printf(l %fmtdbl, ..., d %dbl)
23         jmp @loop
24 @cased
25         %int =w vaarg %vp
26         %r =w call $printf(l %fmtint, ..., w %int)
27         jmp @loop
28 @end
29         %r =w call $puts(l %emptys)
30         ret
33 export function $qbecall0(l %fmt, ...) {
34 @start
35         %vp =l alloc8 32
36         vastart %vp
37         %r =w call $print(l %fmt, l %vp)
38         ret
41 export function $qbeprint1(w %argw0, l %fmt, ...) {
42 @start
43         %fmtdbl =l alloc4 4
44         %fmtint =l alloc4 4
45         %emptys =l alloc4 4
46         storew 2122789, %fmtint
47         storew 2123557, %fmtdbl
48         storew 0, %emptys
49         %vp =l alloc8 32
50         %fmt1 =l add 1, %fmt
51         vastart %vp
52 @loop
53         %p =l phi @start %fmt1, @casef %p1, @cased %p1
54         %c =w loadsb %p
55         %p1 =l add 3, %p
56         jnz %c, @loop1, @end
57 @loop1
58         %isg =w ceqw %c, 103
59         jnz %isg, @casef, @cased
60 @casef
61         %dbl =d vaarg %vp
62         %r =w call $printf(l %fmtdbl, ..., d %dbl)
63         jmp @loop
64 @cased
65         %int =w vaarg %vp
66         %r =w call $printf(l %fmtint, ..., w %int)
67         jmp @loop
68 @end
69         %r =w call $puts(l %emptys)
70         ret
73 export function $qbecall1(w %argw0, l %fmt, ...) {
74 @start
75         %vp =l alloc8 32
76         vastart %vp
77         %r =w call $print(l %fmt, l %vp)
78         ret
81 export function $qbeprint2(d %argd0, l %fmt, ...) {
82 @start
83         %fmtdbl =l alloc4 4
84         %fmtint =l alloc4 4
85         %emptys =l alloc4 4
86         storew 2122789, %fmtint
87         storew 2123557, %fmtdbl
88         storew 0, %emptys
89         %vp =l alloc8 32
90         %fmt1 =l add 1, %fmt
91         vastart %vp
92 @loop
93         %p =l phi @start %fmt1, @casef %p1, @cased %p1
94         %c =w loadsb %p
95         %p1 =l add 3, %p
96         jnz %c, @loop1, @end
97 @loop1
98         %isg =w ceqw %c, 103
99         jnz %isg, @casef, @cased
100 @casef
101         %dbl =d vaarg %vp
102         %r =w call $printf(l %fmtdbl, ..., d %dbl)
103         jmp @loop
104 @cased
105         %int =w vaarg %vp
106         %r =w call $printf(l %fmtint, ..., w %int)
107         jmp @loop
108 @end
109         %r =w call $puts(l %emptys)
110         ret
113 export function $qbecall2(d %argd0, l %fmt, ...) {
114 @start
115         %vp =l alloc8 32
116         vastart %vp
117         %r =w call $print(l %fmt, l %vp)
118         ret
121 export function $qbeprint3(w %argw0, w %argw1, w %argw2, w %argw3, l %fmt, ...) {
122 @start
123         %fmtdbl =l alloc4 4
124         %fmtint =l alloc4 4
125         %emptys =l alloc4 4
126         storew 2122789, %fmtint
127         storew 2123557, %fmtdbl
128         storew 0, %emptys
129         %vp =l alloc8 32
130         %fmt1 =l add 1, %fmt
131         vastart %vp
132 @loop
133         %p =l phi @start %fmt1, @casef %p1, @cased %p1
134         %c =w loadsb %p
135         %p1 =l add 3, %p
136         jnz %c, @loop1, @end
137 @loop1
138         %isg =w ceqw %c, 103
139         jnz %isg, @casef, @cased
140 @casef
141         %dbl =d vaarg %vp
142         %r =w call $printf(l %fmtdbl, ..., d %dbl)
143         jmp @loop
144 @cased
145         %int =w vaarg %vp
146         %r =w call $printf(l %fmtint, ..., w %int)
147         jmp @loop
148 @end
149         %r =w call $puts(l %emptys)
150         ret
153 export function $qbecall3(w %argw0, w %argw1, w %argw2, w %argw3, l %fmt, ...) {
154 @start
155         %vp =l alloc8 32
156         vastart %vp
157         %r =w call $print(l %fmt, l %vp)
158         ret
161 export function $qbeprint4(d %argd0, d %argd1, d %argd2, d %argd3, d %argd4, d %argd5, l %fmt, ...) {
162 @start
163         %fmtdbl =l alloc4 4
164         %fmtint =l alloc4 4
165         %emptys =l alloc4 4
166         storew 2122789, %fmtint
167         storew 2123557, %fmtdbl
168         storew 0, %emptys
169         %vp =l alloc8 32
170         %fmt1 =l add 1, %fmt
171         vastart %vp
172 @loop
173         %p =l phi @start %fmt1, @casef %p1, @cased %p1
174         %c =w loadsb %p
175         %p1 =l add 3, %p
176         jnz %c, @loop1, @end
177 @loop1
178         %isg =w ceqw %c, 103
179         jnz %isg, @casef, @cased
180 @casef
181         %dbl =d vaarg %vp
182         %r =w call $printf(l %fmtdbl, ..., d %dbl)
183         jmp @loop
184 @cased
185         %int =w vaarg %vp
186         %r =w call $printf(l %fmtint, ..., w %int)
187         jmp @loop
188 @end
189         %r =w call $puts(l %emptys)
190         ret
193 export function $qbecall4(d %argd0, d %argd1, d %argd2, d %argd3, d %argd4, d %argd5, l %fmt, ...) {
194 @start
195         %vp =l alloc8 32
196         vastart %vp
197         %r =w call $print(l %fmt, l %vp)
198         ret
201 export function $qbeprint5(w %argw0, w %argw1, w %argw2, w %argw3, w %argw4, d %argd0, d %argd1, d %argd2, d %argd3, d %argd4, d %argd5, d %argd6, l %fmt, ...) {
202 @start
203         %fmtdbl =l alloc4 4
204         %fmtint =l alloc4 4
205         %emptys =l alloc4 4
206         storew 2122789, %fmtint
207         storew 2123557, %fmtdbl
208         storew 0, %emptys
209         %vp =l alloc8 32
210         %fmt1 =l add 1, %fmt
211         vastart %vp
212 @loop
213         %p =l phi @start %fmt1, @casef %p1, @cased %p1
214         %c =w loadsb %p
215         %p1 =l add 3, %p
216         jnz %c, @loop1, @end
217 @loop1
218         %isg =w ceqw %c, 103
219         jnz %isg, @casef, @cased
220 @casef
221         %dbl =d vaarg %vp
222         %r =w call $printf(l %fmtdbl, ..., d %dbl)
223         jmp @loop
224 @cased
225         %int =w vaarg %vp
226         %r =w call $printf(l %fmtint, ..., w %int)
227         jmp @loop
228 @end
229         %r =w call $puts(l %emptys)
230         ret
233 export function $qbecall5(w %argw0, w %argw1, w %argw2, w %argw3, w %argw4, d %argd0, d %argd1, d %argd2, d %argd3, d %argd4, d %argd5, d %argd6, l %fmt, ...) {
234 @start
235         %vp =l alloc8 32
236         vastart %vp
237         %r =w call $print(l %fmt, l %vp)
238         ret
241 export function $qbeprint6(w %argw0, w %argw1, w %argw2, w %argw3, w %argw4, w %argw5, w %argw6, w %argw7, w %argw8, w %argw9, d %argd0, d %argd1, d %argd2, d %argd3, d %argd4, d %argd5, d %argd6, d %argd7, d %argd8, d %argd9, l %fmt, ...) {
242 @start
243         %fmtdbl =l alloc4 4
244         %fmtint =l alloc4 4
245         %emptys =l alloc4 4
246         storew 2122789, %fmtint
247         storew 2123557, %fmtdbl
248         storew 0, %emptys
249         %vp =l alloc8 32
250         %fmt1 =l add 1, %fmt
251         vastart %vp
252 @loop
253         %p =l phi @start %fmt1, @casef %p1, @cased %p1
254         %c =w loadsb %p
255         %p1 =l add 3, %p
256         jnz %c, @loop1, @end
257 @loop1
258         %isg =w ceqw %c, 103
259         jnz %isg, @casef, @cased
260 @casef
261         %dbl =d vaarg %vp
262         %r =w call $printf(l %fmtdbl, ..., d %dbl)
263         jmp @loop
264 @cased
265         %int =w vaarg %vp
266         %r =w call $printf(l %fmtint, ..., w %int)
267         jmp @loop
268 @end
269         %r =w call $puts(l %emptys)
270         ret
273 export function $qbecall6(w %argw0, w %argw1, w %argw2, w %argw3, w %argw4, w %argw5, w %argw6, w %argw7, w %argw8, w %argw9, d %argd0, d %argd1, d %argd2, d %argd3, d %argd4, d %argd5, d %argd6, d %argd7, d %argd8, d %argd9, l %fmt, ...) {
274 @start
275         %vp =l alloc8 32
276         vastart %vp
277         %r =w call $print(l %fmt, l %vp)
278         ret
281 export function $qbeprint7(w %argw0, w %argw1, w %argw2, w %argw3, w %argw4, w %argw5, w %argw6, w %argw7, w %argw8, l %fmt, ...) {
282 @start
283         %fmtdbl =l alloc4 4
284         %fmtint =l alloc4 4
285         %emptys =l alloc4 4
286         storew 2122789, %fmtint
287         storew 2123557, %fmtdbl
288         storew 0, %emptys
289         %vp =l alloc8 32
290         %fmt1 =l add 1, %fmt
291         vastart %vp
292 @loop
293         %p =l phi @start %fmt1, @casef %p1, @cased %p1
294         %c =w loadsb %p
295         %p1 =l add 3, %p
296         jnz %c, @loop1, @end
297 @loop1
298         %isg =w ceqw %c, 103
299         jnz %isg, @casef, @cased
300 @casef
301         %dbl =d vaarg %vp
302         %r =w call $printf(l %fmtdbl, ..., d %dbl)
303         jmp @loop
304 @cased
305         %int =w vaarg %vp
306         %r =w call $printf(l %fmtint, ..., w %int)
307         jmp @loop
308 @end
309         %r =w call $puts(l %emptys)
310         ret
313 export function $qbecall7(w %argw0, w %argw1, w %argw2, w %argw3, w %argw4, w %argw5, w %argw6, w %argw7, w %argw8, l %fmt, ...) {
314 @start
315         %vp =l alloc8 32
316         vastart %vp
317         %r =w call $print(l %fmt, l %vp)
318         ret
321 # >>> driver
322 # #include <stdarg.h>
323 # #include <stdio.h>
324 # extern void qbeprint0(char *, ...);
325 # extern void qbecall0(char *, ...);
326 # extern void qbeprint1(int argw0, char *, ...);
327 # extern void qbecall1(int argw0, char *, ...);
328 # extern void qbeprint2(double argd0, char *, ...);
329 # extern void qbecall2(double argd0, char *, ...);
330 # extern void qbeprint3(int argw0, int argw1, int argw2, int argw3, char *, ...);
331 # extern void qbecall3(int argw0, int argw1, int argw2, int argw3, char *, ...);
332 # extern void qbeprint4(double argd0, double argd1, double argd2, double argd3, double argd4, double argd5, char *, ...);
333 # extern void qbecall4(double argd0, double argd1, double argd2, double argd3, double argd4, double argd5, char *, ...);
334 # extern void qbeprint5(int argw0, int argw1, int argw2, int argw3, int argw4, double argd0, double argd1, double argd2, double argd3, double argd4, double argd5, double argd6, char *, ...);
335 # extern void qbecall5(int argw0, int argw1, int argw2, int argw3, int argw4, double argd0, double argd1, double argd2, double argd3, double argd4, double argd5, double argd6, char *, ...);
336 # extern void qbeprint6(int argw0, int argw1, int argw2, int argw3, int argw4, int argw5, int argw6, int argw7, int argw8, int argw9, double argd0, double argd1, double argd2, double argd3, double argd4, double argd5, double argd6, double argd7, double argd8, double argd9, char *, ...);
337 # extern void qbecall6(int argw0, int argw1, int argw2, int argw3, int argw4, int argw5, int argw6, int argw7, int argw8, int argw9, double argd0, double argd1, double argd2, double argd3, double argd4, double argd5, double argd6, double argd7, double argd8, double argd9, char *, ...);
338 # extern void qbeprint7(int argw0, int argw1, int argw2, int argw3, int argw4, int argw5, int argw6, int argw7, int argw8, char *, ...);
339 # extern void qbecall7(int argw0, int argw1, int argw2, int argw3, int argw4, int argw5, int argw6, int argw7, int argw8, char *, ...);
340 # int print(char *fmt, va_list *ap) {
341 #    return vprintf(fmt, *ap);
342 # }
343 # int main() {
344 #       puts("# (0 int, 0 double)");
345 #       qbeprint0("%d \n", 3);
346 #       qbecall0("%d \n", 3);
347 #       qbeprint0("%g \n", -9.5);
348 #       qbecall0("%g \n", -9.5);
349 #       qbeprint0("%d %g \n", -5, -5.536);
350 #       qbecall0("%d %g \n", -5, -5.536);
351 #       qbeprint0("%g %g \n", 4.729, 3.534);
352 #       qbecall0("%g %g \n", 4.729, 3.534);
353 #       qbeprint0("%d %d %d %d \n", 8, -9, -2, -10);
354 #       qbecall0("%d %d %d %d \n", 8, -9, -2, -10);
355 #       qbeprint0("%g %g %g %g \n", -5.627, 0.1071, -9.469, -6.023);
356 #       qbecall0("%g %g %g %g \n", -5.627, 0.1071, -9.469, -6.023);
357 #       qbeprint0("%d %g %d %g \n", 3, 0.8988, -6, 1.785);
358 #       qbecall0("%d %g %d %g \n", 3, 0.8988, -6, 1.785);
359 #       qbeprint0("%g %g %d %d \n", 6.189, -9.87, 6, 4);
360 #       qbecall0("%g %g %d %d \n", 6.189, -9.87, 6, 4);
361 #       qbeprint0("%d %d %g %g \n", -3, -7, 9.144, -3.268);
362 #       qbecall0("%d %d %g %g \n", -3, -7, 9.144, -3.268);
363 #       qbeprint0("\n");
364 #       qbecall0("\n");
365 #       puts("# (1 int, 0 double)");
366 #       qbeprint1(0, "%d \n", -9);
367 #       qbecall1(0, "%d \n", -9);
368 #       qbeprint1(0, "%g \n", -8.066);
369 #       qbecall1(0, "%g \n", -8.066);
370 #       qbeprint1(0, "%d %g \n", 7, 2.075);
371 #       qbecall1(0, "%d %g \n", 7, 2.075);
372 #       qbeprint1(0, "%g %g \n", 6.143, 4.595);
373 #       qbecall1(0, "%g %g \n", 6.143, 4.595);
374 #       qbeprint1(0, "%d %d %d %d \n", 1, 10, -3, 1);
375 #       qbecall1(0, "%d %d %d %d \n", 1, 10, -3, 1);
376 #       qbeprint1(0, "%g %g %g %g \n", 6.588, 2.37, 7.234, 1.547);
377 #       qbecall1(0, "%g %g %g %g \n", 6.588, 2.37, 7.234, 1.547);
378 #       qbeprint1(0, "%d %g %d %g \n", 4, -9.084, -6, -4.212);
379 #       qbecall1(0, "%d %g %d %g \n", 4, -9.084, -6, -4.212);
380 #       qbeprint1(0, "%g %g %d %d \n", -8.404, -5.344, -8, -5);
381 #       qbecall1(0, "%g %g %d %d \n", -8.404, -5.344, -8, -5);
382 #       qbeprint1(0, "%d %d %g %g \n", 3, -3, -2.596, -5.81);
383 #       qbecall1(0, "%d %d %g %g \n", 3, -3, -2.596, -5.81);
384 #       qbeprint1(0, "\n");
385 #       qbecall1(0, "\n");
386 #       puts("# (0 int, 1 double)");
387 #       qbeprint2(0, "%d \n", -5);
388 #       qbecall2(0, "%d \n", -5);
389 #       qbeprint2(0, "%g \n", 8.733);
390 #       qbecall2(0, "%g \n", 8.733);
391 #       qbeprint2(0, "%d %g \n", 3, 2.183);
392 #       qbecall2(0, "%d %g \n", 3, 2.183);
393 #       qbeprint2(0, "%g %g \n", -6.577, 4.583);
394 #       qbecall2(0, "%g %g \n", -6.577, 4.583);
395 #       qbeprint2(0, "%d %d %d %d \n", -7, -3, 10, 3);
396 #       qbecall2(0, "%d %d %d %d \n", -7, -3, 10, 3);
397 #       qbeprint2(0, "%g %g %g %g \n", 1.139, 3.692, 6.857, 5.52);
398 #       qbecall2(0, "%g %g %g %g \n", 1.139, 3.692, 6.857, 5.52);
399 #       qbeprint2(0, "%d %g %d %g \n", -6, -9.358, -4, -4.645);
400 #       qbecall2(0, "%d %g %d %g \n", -6, -9.358, -4, -4.645);
401 #       qbeprint2(0, "%g %g %d %d \n", -5.78, 8.858, 8, -4);
402 #       qbecall2(0, "%g %g %d %d \n", -5.78, 8.858, 8, -4);
403 #       qbeprint2(0, "%d %d %g %g \n", 3, -2, 8.291, -0.823);
404 #       qbecall2(0, "%d %d %g %g \n", 3, -2, 8.291, -0.823);
405 #       qbeprint2(0, "\n");
406 #       qbecall2(0, "\n");
407 #       puts("# (4 int, 0 double)");
408 #       qbeprint3(0, 0, 0, 0, "%d \n", -5);
409 #       qbecall3(0, 0, 0, 0, "%d \n", -5);
410 #       qbeprint3(0, 0, 0, 0, "%g \n", -5.067);
411 #       qbecall3(0, 0, 0, 0, "%g \n", -5.067);
412 #       qbeprint3(0, 0, 0, 0, "%d %g \n", 1, -4.745);
413 #       qbecall3(0, 0, 0, 0, "%d %g \n", 1, -4.745);
414 #       qbeprint3(0, 0, 0, 0, "%g %g \n", 1.692, 7.956);
415 #       qbecall3(0, 0, 0, 0, "%g %g \n", 1.692, 7.956);
416 #       qbeprint3(0, 0, 0, 0, "%d %d %d %d \n", -2, -6, 10, 0);
417 #       qbecall3(0, 0, 0, 0, "%d %d %d %d \n", -2, -6, 10, 0);
418 #       qbeprint3(0, 0, 0, 0, "%g %g %g %g \n", -8.182, -9.058, -7.807, 2.549);
419 #       qbecall3(0, 0, 0, 0, "%g %g %g %g \n", -8.182, -9.058, -7.807, 2.549);
420 #       qbeprint3(0, 0, 0, 0, "%d %g %d %g \n", 6, -1.557, -9, -2.368);
421 #       qbecall3(0, 0, 0, 0, "%d %g %d %g \n", 6, -1.557, -9, -2.368);
422 #       qbeprint3(0, 0, 0, 0, "%g %g %d %d \n", 9.922, 0.5823, 10, 8);
423 #       qbecall3(0, 0, 0, 0, "%g %g %d %d \n", 9.922, 0.5823, 10, 8);
424 #       qbeprint3(0, 0, 0, 0, "%d %d %g %g \n", -10, 5, 3.634, 0.7394);
425 #       qbecall3(0, 0, 0, 0, "%d %d %g %g \n", -10, 5, 3.634, 0.7394);
426 #       qbeprint3(0, 0, 0, 0, "\n");
427 #       qbecall3(0, 0, 0, 0, "\n");
428 #       puts("# (0 int, 6 double)");
429 #       qbeprint4(0, 0, 0, 0, 0, 0, "%d \n", -5);
430 #       qbecall4(0, 0, 0, 0, 0, 0, "%d \n", -5);
431 #       qbeprint4(0, 0, 0, 0, 0, 0, "%g \n", 2.819);
432 #       qbecall4(0, 0, 0, 0, 0, 0, "%g \n", 2.819);
433 #       qbeprint4(0, 0, 0, 0, 0, 0, "%d %g \n", -8, -1.305);
434 #       qbecall4(0, 0, 0, 0, 0, 0, "%d %g \n", -8, -1.305);
435 #       qbeprint4(0, 0, 0, 0, 0, 0, "%g %g \n", -0.9255, 9.076);
436 #       qbecall4(0, 0, 0, 0, 0, 0, "%g %g \n", -0.9255, 9.076);
437 #       qbeprint4(0, 0, 0, 0, 0, 0, "%d %d %d %d \n", 8, -5, 0, -7);
438 #       qbecall4(0, 0, 0, 0, 0, 0, "%d %d %d %d \n", 8, -5, 0, -7);
439 #       qbeprint4(0, 0, 0, 0, 0, 0, "%g %g %g %g \n", 8.253, 7.41, -4.031, 2.779);
440 #       qbecall4(0, 0, 0, 0, 0, 0, "%g %g %g %g \n", 8.253, 7.41, -4.031, 2.779);
441 #       qbeprint4(0, 0, 0, 0, 0, 0, "%d %g %d %g \n", 2, -6.943, 6, 0.7876);
442 #       qbecall4(0, 0, 0, 0, 0, 0, "%d %g %d %g \n", 2, -6.943, 6, 0.7876);
443 #       qbeprint4(0, 0, 0, 0, 0, 0, "%g %g %d %d \n", 5.573, 0.6071, -10, -4);
444 #       qbecall4(0, 0, 0, 0, 0, 0, "%g %g %d %d \n", 5.573, 0.6071, -10, -4);
445 #       qbeprint4(0, 0, 0, 0, 0, 0, "%d %d %g %g \n", -10, 9, 7.574, 6.633);
446 #       qbecall4(0, 0, 0, 0, 0, 0, "%d %d %g %g \n", -10, 9, 7.574, 6.633);
447 #       qbeprint4(0, 0, 0, 0, 0, 0, "\n");
448 #       qbecall4(0, 0, 0, 0, 0, 0, "\n");
449 #       puts("# (5 int, 7 double)");
450 #       qbeprint5(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%d \n", -4);
451 #       qbecall5(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%d \n", -4);
452 #       qbeprint5(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%g \n", -8.841);
453 #       qbecall5(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%g \n", -8.841);
454 #       qbeprint5(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %g \n", 8, 8.939);
455 #       qbecall5(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %g \n", 8, 8.939);
456 #       qbeprint5(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%g %g \n", -8.287, -0.2802);
457 #       qbecall5(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%g %g \n", -8.287, -0.2802);
458 #       qbeprint5(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %d %d %d \n", -9, 5, 6, -8);
459 #       qbecall5(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %d %d %d \n", -9, 5, 6, -8);
460 #       qbeprint5(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%g %g %g %g \n", -0.4944, 0.9961, -4.699, 7.449);
461 #       qbecall5(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%g %g %g %g \n", -0.4944, 0.9961, -4.699, 7.449);
462 #       qbeprint5(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %g %d %g \n", -2, -5.764, 1, 4.599);
463 #       qbecall5(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %g %d %g \n", -2, -5.764, 1, 4.599);
464 #       qbeprint5(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%g %g %d %d \n", -5.977, -3.766, 10, 3);
465 #       qbecall5(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%g %g %d %d \n", -5.977, -3.766, 10, 3);
466 #       qbeprint5(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %d %g %g \n", -1, 0, -7.58, -5.506);
467 #       qbecall5(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %d %g %g \n", -1, 0, -7.58, -5.506);
468 #       qbeprint5(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "\n");
469 #       qbecall5(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "\n");
470 #       puts("# (10 int, 10 double)");
471 #       qbeprint6(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%d \n", -3);
472 #       qbecall6(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%d \n", -3);
473 #       qbeprint6(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%g \n", 1.766);
474 #       qbecall6(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%g \n", 1.766);
475 #       qbeprint6(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %g \n", -6, -5.596);
476 #       qbecall6(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %g \n", -6, -5.596);
477 #       qbeprint6(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%g %g \n", -8.58, 2.622);
478 #       qbecall6(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%g %g \n", -8.58, 2.622);
479 #       qbeprint6(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %d %d %d \n", -6, 9, 8, -9);
480 #       qbecall6(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %d %d %d \n", -6, 9, 8, -9);
481 #       qbeprint6(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%g %g %g %g \n", -5.24, 3.38, -5.715, -7.354);
482 #       qbecall6(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%g %g %g %g \n", -5.24, 3.38, -5.715, -7.354);
483 #       qbeprint6(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %g %d %g \n", 9, 1.421, -1, 5.692);
484 #       qbecall6(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %g %d %g \n", 9, 1.421, -1, 5.692);
485 #       qbeprint6(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%g %g %d %d \n", 6.15, -6.192, -8, -1);
486 #       qbecall6(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%g %g %d %d \n", 6.15, -6.192, -8, -1);
487 #       qbeprint6(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %d %g %g \n", -2, -1, 4.582, 3.467);
488 #       qbecall6(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %d %g %g \n", -2, -1, 4.582, 3.467);
489 #       qbeprint6(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "\n");
490 #       qbecall6(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "\n");
491 #       puts("# (9 int, 0 double)");
492 #       qbeprint7(0, 0, 0, 0, 0, 0, 0, 0, 0, "%d \n", 10);
493 #       qbecall7(0, 0, 0, 0, 0, 0, 0, 0, 0, "%d \n", 10);
494 #       qbeprint7(0, 0, 0, 0, 0, 0, 0, 0, 0, "%g \n", -8.032);
495 #       qbecall7(0, 0, 0, 0, 0, 0, 0, 0, 0, "%g \n", -8.032);
496 #       qbeprint7(0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %g \n", -2, -3.214);
497 #       qbecall7(0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %g \n", -2, -3.214);
498 #       qbeprint7(0, 0, 0, 0, 0, 0, 0, 0, 0, "%g %g \n", 7.233, -5.027);
499 #       qbecall7(0, 0, 0, 0, 0, 0, 0, 0, 0, "%g %g \n", 7.233, -5.027);
500 #       qbeprint7(0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %d %d %d \n", -7, -1, -2, -5);
501 #       qbecall7(0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %d %d %d \n", -7, -1, -2, -5);
502 #       qbeprint7(0, 0, 0, 0, 0, 0, 0, 0, 0, "%g %g %g %g \n", -5.004, 8.465, -1.137, 7.227);
503 #       qbecall7(0, 0, 0, 0, 0, 0, 0, 0, 0, "%g %g %g %g \n", -5.004, 8.465, -1.137, 7.227);
504 #       qbeprint7(0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %g %d %g \n", 1, -8.988, 10, 6.721);
505 #       qbecall7(0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %g %d %g \n", 1, -8.988, 10, 6.721);
506 #       qbeprint7(0, 0, 0, 0, 0, 0, 0, 0, 0, "%g %g %d %d \n", 9.38, 8.527, 7, -7);
507 #       qbecall7(0, 0, 0, 0, 0, 0, 0, 0, 0, "%g %g %d %d \n", 9.38, 8.527, 7, -7);
508 #       qbeprint7(0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %d %g %g \n", 0, -6, -1.979, -8.827);
509 #       qbecall7(0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %d %g %g \n", 0, -6, -1.979, -8.827);
510 #       qbeprint7(0, 0, 0, 0, 0, 0, 0, 0, 0, "\n");
511 #       qbecall7(0, 0, 0, 0, 0, 0, 0, 0, 0, "\n");
512 # }
513 # <<<
515 # >>> output
516 # # (0 int, 0 double)
517 # 3 
518 # 3 
519 # -9.5 
520 # -9.5 
521 # -5 -5.536 
522 # -5 -5.536 
523 # 4.729 3.534 
524 # 4.729 3.534 
525 # 8 -9 -2 -10 
526 # 8 -9 -2 -10 
527 # -5.627 0.1071 -9.469 -6.023 
528 # -5.627 0.1071 -9.469 -6.023 
529 # 3 0.8988 -6 1.785 
530 # 3 0.8988 -6 1.785 
531 # 6.189 -9.87 6 4 
532 # 6.189 -9.87 6 4 
533 # -3 -7 9.144 -3.268 
534 # -3 -7 9.144 -3.268 
537 # # (1 int, 0 double)
538 # -9 
539 # -9 
540 # -8.066 
541 # -8.066 
542 # 7 2.075 
543 # 7 2.075 
544 # 6.143 4.595 
545 # 6.143 4.595 
546 # 1 10 -3 1 
547 # 1 10 -3 1 
548 # 6.588 2.37 7.234 1.547 
549 # 6.588 2.37 7.234 1.547 
550 # 4 -9.084 -6 -4.212 
551 # 4 -9.084 -6 -4.212 
552 # -8.404 -5.344 -8 -5 
553 # -8.404 -5.344 -8 -5 
554 # 3 -3 -2.596 -5.81 
555 # 3 -3 -2.596 -5.81 
558 # # (0 int, 1 double)
559 # -5 
560 # -5 
561 # 8.733 
562 # 8.733 
563 # 3 2.183 
564 # 3 2.183 
565 # -6.577 4.583 
566 # -6.577 4.583 
567 # -7 -3 10 3 
568 # -7 -3 10 3 
569 # 1.139 3.692 6.857 5.52 
570 # 1.139 3.692 6.857 5.52 
571 # -6 -9.358 -4 -4.645 
572 # -6 -9.358 -4 -4.645 
573 # -5.78 8.858 8 -4 
574 # -5.78 8.858 8 -4 
575 # 3 -2 8.291 -0.823 
576 # 3 -2 8.291 -0.823 
579 # # (4 int, 0 double)
580 # -5 
581 # -5 
582 # -5.067 
583 # -5.067 
584 # 1 -4.745 
585 # 1 -4.745 
586 # 1.692 7.956 
587 # 1.692 7.956 
588 # -2 -6 10 0 
589 # -2 -6 10 0 
590 # -8.182 -9.058 -7.807 2.549 
591 # -8.182 -9.058 -7.807 2.549 
592 # 6 -1.557 -9 -2.368 
593 # 6 -1.557 -9 -2.368 
594 # 9.922 0.5823 10 8 
595 # 9.922 0.5823 10 8 
596 # -10 5 3.634 0.7394 
597 # -10 5 3.634 0.7394 
600 # # (0 int, 6 double)
601 # -5 
602 # -5 
603 # 2.819 
604 # 2.819 
605 # -8 -1.305 
606 # -8 -1.305 
607 # -0.9255 9.076 
608 # -0.9255 9.076 
609 # 8 -5 0 -7 
610 # 8 -5 0 -7 
611 # 8.253 7.41 -4.031 2.779 
612 # 8.253 7.41 -4.031 2.779 
613 # 2 -6.943 6 0.7876 
614 # 2 -6.943 6 0.7876 
615 # 5.573 0.6071 -10 -4 
616 # 5.573 0.6071 -10 -4 
617 # -10 9 7.574 6.633 
618 # -10 9 7.574 6.633 
621 # # (5 int, 7 double)
622 # -4 
623 # -4 
624 # -8.841 
625 # -8.841 
626 # 8 8.939 
627 # 8 8.939 
628 # -8.287 -0.2802 
629 # -8.287 -0.2802 
630 # -9 5 6 -8 
631 # -9 5 6 -8 
632 # -0.4944 0.9961 -4.699 7.449 
633 # -0.4944 0.9961 -4.699 7.449 
634 # -2 -5.764 1 4.599 
635 # -2 -5.764 1 4.599 
636 # -5.977 -3.766 10 3 
637 # -5.977 -3.766 10 3 
638 # -1 0 -7.58 -5.506 
639 # -1 0 -7.58 -5.506 
642 # # (10 int, 10 double)
643 # -3 
644 # -3 
645 # 1.766 
646 # 1.766 
647 # -6 -5.596 
648 # -6 -5.596 
649 # -8.58 2.622 
650 # -8.58 2.622 
651 # -6 9 8 -9 
652 # -6 9 8 -9 
653 # -5.24 3.38 -5.715 -7.354 
654 # -5.24 3.38 -5.715 -7.354 
655 # 9 1.421 -1 5.692 
656 # 9 1.421 -1 5.692 
657 # 6.15 -6.192 -8 -1 
658 # 6.15 -6.192 -8 -1 
659 # -2 -1 4.582 3.467 
660 # -2 -1 4.582 3.467 
663 # # (9 int, 0 double)
664 # 10 
665 # 10 
666 # -8.032 
667 # -8.032 
668 # -2 -3.214 
669 # -2 -3.214 
670 # 7.233 -5.027 
671 # 7.233 -5.027 
672 # -7 -1 -2 -5 
673 # -7 -1 -2 -5 
674 # -5.004 8.465 -1.137 7.227 
675 # -5.004 8.465 -1.137 7.227 
676 # 1 -8.988 10 6.721 
677 # 1 -8.988 10 6.721 
678 # 9.38 8.527 7 -7 
679 # 9.38 8.527 7 -7 
680 # 0 -6 -1.979 -8.827 
681 # 0 -6 -1.979 -8.827 
684 # <<<