Merge pull request #750 from pcercuei/lightrec-update-20230826
[pcsx_rearmed.git] / deps / lightning / check / fma.tst
1 .data           32
2 ok:
3 .c              "ok"
4
5 .code
6         prolog
7
8         /* Simple encoding test for all different registers */
9         movi_f %f0 0.0
10         movi_f %f1 2.0
11         movi_f %f2 3.0
12         movi_f %f3 4.0
13         fmar_f %f0 %f1 %f2 %f3
14         beqi_f fa0 %f0 10.0
15         calli @abort
16 fa0:
17         movi_d %f0 0.0
18         movi_d %f1 4.0
19         movi_d %f2 5.0
20         movi_d %f3 6.0
21         fmar_d %f0 %f1 %f2 %f3
22         beqi_d da0 %f0 26.0
23         calli @abort
24 da0:
25         movi_f %f0 0.0
26         movi_f %f1 2.0
27         movi_f %f2 3.0
28         movi_f %f3 4.0
29         fmsr_f %f0 %f1 %f2 %f3
30         beqi_f fs0 %f0 2.0
31         calli @abort
32 fs0:
33         movi_d %f0 0.0
34         movi_d %f1 4.0
35         movi_d %f2 5.0
36         movi_d %f3 6.0
37         fmsr_d %f0 %f1 %f2 %f3
38         beqi_d ds0 %f0 14.0
39         calli @abort
40 ds0:
41
42         /* Simple encoding test for result also first argument */
43         movi_f %f1 2.0
44         movi_f %f2 3.0
45         movi_f %f3 4.0
46         fmar_f %f1 %f1 %f2 %f3
47         beqi_f fa1 %f1 10.0
48         calli @abort
49 fa1:
50         movi_d %f1 4.0
51         movi_d %f2 5.0
52         movi_d %f3 6.0
53         fmar_d %f1 %f1 %f2 %f3
54         beqi_d da1 %f1 26.0
55         calli @abort
56 da1:
57         movi_f %f1 2.0
58         movi_f %f2 3.0
59         movi_f %f3 4.0
60         fmsr_f %f1 %f1 %f2 %f3
61         beqi_f fs1 %f1 2.0
62         calli @abort
63 fs1:
64         movi_d %f1 4.0
65         movi_d %f2 5.0
66         movi_d %f3 6.0
67         fmsr_d %f1 %f1 %f2 %f3
68         beqi_d ds1 %f1 14.0
69         calli @abort
70 ds1:
71
72         /* Simple encoding test for result also second argument */
73         movi_f %f1 2.0
74         movi_f %f2 3.0
75         movi_f %f3 4.0
76         fmar_f %f2 %f1 %f2 %f3
77         beqi_f fa2 %f2 10.0
78         calli @abort
79 fa2:
80         movi_d %f1 4.0
81         movi_d %f2 5.0
82         movi_d %f3 6.0
83         fmar_d %f2 %f1 %f2 %f3
84         beqi_d da2 %f2 26.0
85         calli @abort
86 da2:
87         movi_f %f1 2.0
88         movi_f %f2 3.0
89         movi_f %f3 4.0
90         fmsr_f %f2 %f1 %f2 %f3
91         beqi_f fs2 %f2 2.0
92         calli @abort
93 fs2:
94         movi_d %f1 4.0
95         movi_d %f2 5.0
96         movi_d %f3 6.0
97         fmsr_d %f2 %f1 %f2 %f3
98         beqi_d ds2 %f2 14.0
99         calli @abort
100 ds2:
101
102         /* Simple encoding test for result also third argument */
103         movi_f %f1 2.0
104         movi_f %f2 3.0
105         movi_f %f3 4.0
106         fmar_f %f3 %f1 %f2 %f3
107         beqi_f fa3 %f3 10.0
108         calli @abort
109 fa3:
110         movi_d %f1 4.0
111         movi_d %f2 5.0
112         movi_d %f3 6.0
113         fmar_d %f3 %f1 %f2 %f3
114         beqi_d da3 %f3 26.0
115         calli @abort
116 da3:
117         movi_f %f1 2.0
118         movi_f %f2 3.0
119         movi_f %f3 4.0
120         fmsr_f %f3 %f1 %f2 %f3
121         beqi_f fs3 %f3 2.0
122         calli @abort
123 fs3:
124         movi_d %f1 4.0
125         movi_d %f2 5.0
126         movi_d %f3 6.0
127         fmsr_d %f3 %f1 %f2 %f3
128         beqi_d ds3 %f3 14.0
129         calli @abort
130 ds3:
131
132         /* Simple encoding test for all different registers */
133         movi_f %f0 0.0
134         movi_f %f1 2.0
135         movi_f %f2 3.0
136         fmai_f %f0 %f1 %f2 4.0
137         beqi_f fai0 %f0 10.0
138         calli @abort
139 fai0:
140         movi_d %f0 0.0
141         movi_d %f1 4.0
142         movi_d %f2 5.0
143         fmai_d %f0 %f1 %f2 6.0
144         beqi_d dai0 %f0 26.0
145         calli @abort
146 dai0:
147         movi_f %f0 0.0
148         movi_f %f1 2.0
149         movi_f %f2 3.0
150         fmsi_f %f0 %f1 %f2 4.0
151         beqi_f fsi0 %f0 2.0
152         calli @abort
153 fsi0:
154         movi_d %f0 0.0
155         movi_d %f1 4.0
156         movi_d %f2 5.0
157         fmsi_d %f0 %f1 %f2 6.0
158         beqi_d dsi0 %f0 14.0
159         calli @abort
160 dsi0:
161
162         /* Simple encoding test for result also first argument */
163         movi_f %f1 2.0
164         movi_f %f2 3.0
165         fmai_f %f1 %f1 %f2 4.0
166         beqi_f fai1 %f1 10.0
167         calli @abort
168 fai1:
169         movi_d %f1 4.0
170         movi_d %f2 5.0
171         fmai_d %f1 %f1 %f2 6.0
172         beqi_d dai1 %f1 26.0
173         calli @abort
174 dai1:
175         movi_f %f1 2.0
176         movi_f %f2 3.0
177         fmsi_f %f1 %f1 %f2 4.0
178         beqi_f fsi1 %f1 2.0
179         calli @abort
180 fsi1:
181         movi_d %f1 4.0
182         movi_d %f2 5.0
183         fmsi_d %f1 %f1 %f2 6.0
184         beqi_d dsi1 %f1 14.0
185         calli @abort
186 dsi1:
187
188         /* Simple encoding test for result also second argument */
189         movi_f %f1 2.0
190         movi_f %f2 3.0
191         fmai_f %f2 %f1 %f2 4.0
192         beqi_f fai2 %f2 10.0
193         calli @abort
194 fai2:
195         movi_d %f1 4.0
196         movi_d %f2 5.0
197         fmai_d %f2 %f1 %f2 6.0
198         beqi_d dai2 %f2 26.0
199         calli @abort
200 dai2:
201         movi_f %f1 2.0
202         movi_f %f2 3.0
203         fmsi_f %f2 %f1 %f2 4.0
204         beqi_f fsi2 %f2 2.0
205         calli @abort
206 fsi2:
207         movi_d %f1 4.0
208         movi_d %f2 5.0
209         fmsi_d %f2 %f1 %f2 6.0
210         beqi_d dsi2 %f2 14.0
211         calli @abort
212 dsi2:
213
214         /* Simple encoding test for all different registers */
215         movi_f %f0 0.0
216         movi_f %f1 2.0
217         movi_f %f2 3.0
218         movi_f %f3 4.0
219         fnmar_f %f0 %f1 %f2 %f3
220         beqi_f fna0 %f0 -10.0
221         calli @abort
222 fna0:
223         movi_d %f0 0.0
224         movi_d %f1 4.0
225         movi_d %f2 5.0
226         movi_d %f3 6.0
227         fnmar_d %f0 %f1 %f2 %f3
228         beqi_d dna0 %f0 -26.0
229         calli @abort
230 dna0:
231         movi_f %f0 0.0
232         movi_f %f1 2.0
233         movi_f %f2 3.0
234         movi_f %f3 4.0
235         fnmsr_f %f0 %f1 %f2 %f3
236         beqi_f fns0 %f0 -2.0
237         calli @abort
238 fns0:
239         movi_d %f0 0.0
240         movi_d %f1 4.0
241         movi_d %f2 5.0
242         movi_d %f3 6.0
243         fnmsr_d %f0 %f1 %f2 %f3
244         beqi_d dns0 %f0 -14.0
245         calli @abort
246 dns0:
247
248         /* Simple encoding test for result also first argument */
249         movi_f %f1 2.0
250         movi_f %f2 3.0
251         movi_f %f3 4.0
252         fnmar_f %f1 %f1 %f2 %f3
253         beqi_f fna1 %f1 -10.0
254         calli @abort
255 fna1:
256         movi_d %f1 4.0
257         movi_d %f2 5.0
258         movi_d %f3 6.0
259         fnmar_d %f1 %f1 %f2 %f3
260         beqi_d dna1 %f1 -26.0
261         calli @abort
262 dna1:
263         movi_f %f1 2.0
264         movi_f %f2 3.0
265         movi_f %f3 4.0
266         fnmsr_f %f1 %f1 %f2 %f3
267         beqi_f fns1 %f1 -2.0
268         calli @abort
269 fns1:
270         movi_d %f1 4.0
271         movi_d %f2 5.0
272         movi_d %f3 6.0
273         fnmsr_d %f1 %f1 %f2 %f3
274         beqi_d dns1 %f1 -14.0
275         calli @abort
276 dns1:
277
278         /* Simple encoding test for result also second argument */
279         movi_f %f1 2.0
280         movi_f %f2 3.0
281         movi_f %f3 4.0
282         fnmar_f %f2 %f1 %f2 %f3
283         beqi_f fna2 %f2 -10.0
284         calli @abort
285 fna2:
286         movi_d %f1 4.0
287         movi_d %f2 5.0
288         movi_d %f3 6.0
289         fnmar_d %f2 %f1 %f2 %f3
290         beqi_d dna2 %f2 -26.0
291         calli @abort
292 dna2:
293         movi_f %f1 2.0
294         movi_f %f2 3.0
295         movi_f %f3 4.0
296         fnmsr_f %f2 %f1 %f2 %f3
297         beqi_f fns2 %f2 -2.0
298         calli @abort
299 fns2:
300         movi_d %f1 4.0
301         movi_d %f2 5.0
302         movi_d %f3 6.0
303         fnmsr_d %f2 %f1 %f2 %f3
304         beqi_d dns2 %f2 -14.0
305         calli @abort
306 dns2:
307
308         /* Simple encoding test for result also third argument */
309         movi_f %f1 2.0
310         movi_f %f2 3.0
311         movi_f %f3 4.0
312         fnmsr_f %f3 %f1 %f2 %f3
313         beqi_f fns3 %f3 -2.0
314         calli @abort
315 fns3:
316         movi_d %f1 4.0
317         movi_d %f2 5.0
318         movi_d %f3 6.0
319         fnmsr_d %f3 %f1 %f2 %f3
320         beqi_d dns3 %f3 -14.0
321         calli @abort
322 dns3:
323         movi_f %f1 2.0
324         movi_f %f2 3.0
325         movi_f %f3 4.0
326         fnmar_f %f3 %f1 %f2 %f3
327         beqi_f fna3 %f3 -10.0
328         calli @abort
329 fna3:
330         movi_d %f1 4.0
331         movi_d %f2 5.0
332         movi_d %f3 6.0
333         fnmar_d %f3 %f1 %f2 %f3
334         beqi_d dna3 %f3 -26.0
335         calli @abort
336 dna3:
337
338         /* Simple encoding test for all different registers */
339         movi_f %f0 0.0
340         movi_f %f1 2.0
341         movi_f %f2 3.0
342         fnmai_f %f0 %f1 %f2 4.0
343         beqi_f fnai0 %f0 -10.0
344         calli @abort
345 fnai0:
346         movi_d %f0 0.0
347         movi_d %f1 4.0
348         movi_d %f2 5.0
349         fnmai_d %f0 %f1 %f2 6.0
350         beqi_d dnai0 %f0 -26.0
351         calli @abort
352 dnai0:
353         movi_f %f0 0.0
354         movi_f %f1 2.0
355         movi_f %f2 3.0
356         fnmsi_f %f0 %f1 %f2 4.0
357         beqi_f fnsi0 %f0 -2.0
358         calli @abort
359 fnsi0:
360         movi_d %f0 0.0
361         movi_d %f1 4.0
362         movi_d %f2 5.0
363         fnmsi_d %f0 %f1 %f2 6.0
364         beqi_d dnsi0 %f0 -14.0
365         calli @abort
366 dnsi0:
367
368         /* Simple encoding test for result also first argument */
369         movi_f %f1 2.0
370         movi_f %f2 3.0
371         fnmai_f %f1 %f1 %f2 4.0
372         beqi_f fnai1 %f1 -10.0
373         calli @abort
374 fnai1:
375         movi_d %f1 4.0
376         movi_d %f2 5.0
377         fnmai_d %f1 %f1 %f2 6.0
378         beqi_d dnai1 %f1 -26.0
379         calli @abort
380 dnai1:
381         movi_f %f1 2.0
382         movi_f %f2 3.0
383         fnmsi_f %f1 %f1 %f2 4.0
384         beqi_f fnsi1 %f1 -2.0
385         calli @abort
386 fnsi1:
387         movi_d %f1 4.0
388         movi_d %f2 5.0
389         fnmsi_d %f1 %f1 %f2 6.0
390         beqi_d dnsi1 %f1 -14.0
391         calli @abort
392 dnsi1:
393
394         /* Simple encoding test for result also second argument */
395         movi_f %f1 2.0
396         movi_f %f2 3.0
397         fnmai_f %f2 %f1 %f2 4.0
398         beqi_f fnai2 %f2 -10.0
399         calli @abort
400 fnai2:
401         movi_d %f1 4.0
402         movi_d %f2 5.0
403         fnmai_d %f2 %f1 %f2 6.0
404         beqi_d dnai2 %f2 -26.0
405         calli @abort
406 dnai2:
407         movi_f %f1 2.0
408         movi_f %f2 3.0
409         fnmsi_f %f2 %f1 %f2 4.0
410         beqi_f fnsi2 %f2 -2.0
411         calli @abort
412 fnsi2:
413         movi_d %f1 4.0
414         movi_d %f2 5.0
415         fnmsi_d %f2 %f1 %f2 6.0
416         beqi_d dnsi2 %f2 -14.0
417         calli @abort
418 dnsi2:
419
420         prepare
421                 pushargi ok
422         finishi @puts
423
424         ret
425         epilog