Change the block representation (version bumped to 3.9.0.0)
[packages/hoopl.git] / testing / tests / ExpectedOutput
1 Test:tests/test1
2 f(a, b) {
3 L1:
4   r0 = 3
5   r1 = 4
6   r2 = r0 + r1
7   ret (r2)
8 }
9
10 f(a, b) {
11 L1:
12   ret (7)
13 }
14
15 Test:tests/test2
16 f(a, b) {
17 L1:
18   x = 5
19   y = 0
20   goto L2
21 L2:
22   if x > 0 then goto L3 else goto L4
23 L3:
24   y = y + x
25   x = x - 1
26   goto L2
27 L4:
28   ret (y)
29 }
30
31 f(a, b) {
32 L1:
33   x = 5
34   y = 0
35   goto L2
36 L2:
37   if x > 0 then goto L3 else goto L4
38 L3:
39   y = y + x
40   x = x - 1
41   goto L2
42 L4:
43   ret (y)
44 }
45
46 Test:tests/test3
47 f(x, y) {
48 L1:
49   goto L2
50 L2:
51   if x > 0 then goto L3 else goto L4
52 L3:
53   (z) = f(x - 1, y - 1) goto L5
54 L4:
55   ret (y)
56 L5:
57   y = y + z
58   x = x - 1
59   goto L2
60 }
61
62 f(x, y) {
63 L1:
64   goto L2
65 L2:
66   if x > 0 then goto L3 else goto L4
67 L3:
68   (z) = f(x - 1, y - 1) goto L5
69 L4:
70   ret (y)
71 L5:
72   y = y + z
73   x = x - 1
74   goto L2
75 }
76
77 Test:tests/test4
78 f(x) {
79 L1:
80   y = 5
81   goto L2
82 L2:
83   if y < 0 then goto L3 else goto L4
84 L3:
85   y = y - 1
86   goto L2
87 L4:
88   ret ((x + y) + 4)
89 }
90
91 f(x) {
92 L1:
93   goto L2
94 L2:
95   goto L4
96 L4:
97   ret ((x + 5) + 4)
98 }
99
100 Test:tests/if-test
101 f() {
102 L1:
103   x = 3 + 4
104   z = x > 5
105   if z then goto L2 else goto L3
106 L2:
107   ret (1)
108 L3:
109   ret (2)
110 }
111
112 f() {
113 L1:
114   goto L2
115 L2:
116   ret (1)
117 }
118
119 Test:tests/if-test2
120 f(a) {
121 L1:
122   x = 3 + 4
123   res = 0
124   goto L2
125 L2:
126   if a > 0 then goto L3 else goto L4
127 L3:
128   a = a - 1
129   res = res + x
130   if x > 5 then goto L5 else goto L6
131 L4:
132   ret (res)
133 L5:
134   goto L7
135 L6:
136   x = x - 1
137   goto L7
138 L7:
139   goto L2
140 }
141
142 f(a) {
143 L1:
144   res = 0
145   goto L2
146 L2:
147   if a > 0 then goto L3 else goto L4
148 L3:
149   a = a - 1
150   res = res + 7
151   goto L5
152 L4:
153   ret (res)
154 L5:
155   goto L7
156 L7:
157   goto L2
158 }
159
160 Test:tests/if-test3
161 f(x) {
162 L1:
163   if x > 5 then goto L2 else goto L3
164 L2:
165   z = 1
166   goto L4
167 L3:
168   z = 1
169   goto L4
170 L4:
171   ret (z)
172 }
173
174 f(x) {
175 L1:
176   if x > 5 then goto L2 else goto L3
177 L2:
178   goto L4
179 L3:
180   goto L4
181 L4:
182   ret (1)
183 }
184
185 Test:tests/if-test4
186 f(x) {
187 L1:
188   if x > 5 then goto L2 else goto L3
189 L2:
190   z = 1
191   goto L4
192 L3:
193   z = 2
194   goto L4
195 L4:
196   ret (z)
197 }
198
199 f(x) {
200 L1:
201   if x > 5 then goto L2 else goto L3
202 L2:
203   z = 1
204   goto L4
205 L3:
206   z = 2
207   goto L4
208 L4:
209   ret (z)
210 }
211