2004-02-29 Andrew Cagney <cagney@redhat.com>
[deliverable/binutils-gdb.git] / sim / testsuite / sim / frv / cmqmulhs.cgs
CommitLineData
4a306116
DB
1# frv testcase for cmqmulhs $GRi,$GRj,$ACCk,$CCi,$cond
2# mach: all
3
4 .include "testutils.inc"
5
6 start
7
8 .global cmqmulhs
9cmqmulhs:
10 set_spr_immed 0x1b1b,cccr
11
12 ; Positive operands
13 set_fr_iimmed 2,3,fr8 ; multiply small numbers
14 set_fr_iimmed 3,2,fr10
15 set_fr_iimmed 0,1,fr9 ; multiply by 0
16 set_fr_iimmed 2,0,fr11
17 cmqmulhs fr8,fr10,acc0,cc0,1
18 test_accg_immed 0,accg0
19 test_acc_immed 6,acc0
20 test_accg_immed 0,accg1
21 test_acc_immed 6,acc1
22 test_accg_immed 0,accg2
23 test_acc_immed 0,acc2
24 test_accg_immed 0,accg3
25 test_acc_immed 0,acc3
26
27 set_fr_iimmed 2,1,fr8 ; multiply by 1
28 set_fr_iimmed 1,2,fr10
29 set_fr_iimmed 0x3fff,2,fr9 ; 15 bit result
30 set_fr_iimmed 2,0x3fff,fr11
31 cmqmulhs fr8,fr10,acc0,cc0,1
32 test_accg_immed 0,accg0
33 test_acc_immed 2,acc0
34 test_accg_immed 0,accg1
35 test_acc_immed 2,acc1
36 test_accg_immed 0,accg2
37 test_acc_limmed 0,0x7ffe,acc2
38 test_accg_immed 0,accg3
39 test_acc_limmed 0,0x7ffe,acc3
40
41 set_fr_iimmed 0x4000,2,fr8 ; 16 bit result
42 set_fr_iimmed 2,0x4000,fr10
43 set_fr_iimmed 0x7fff,0x7fff,fr9 ; max positive result
44 set_fr_iimmed 0x7fff,0x7fff,fr11
45 cmqmulhs fr8,fr10,acc0,cc0,1
46 test_accg_immed 0,accg0
47 test_acc_limmed 0x0000,0x8000,acc0
48 test_accg_immed 0,accg1
49 test_acc_limmed 0x0000,0x8000,acc1
50 test_accg_immed 0,accg2
51 test_acc_limmed 0x3fff,0x0001,acc2
52 test_accg_immed 0,accg3
53 test_acc_limmed 0x3fff,0x0001,acc3
54
55 ; Mixed operands
56 set_fr_iimmed 2,0xfffd,fr8 ; multiply small numbers
57 set_fr_iimmed 0xfffd,2,fr10
58 set_fr_iimmed 0xfffe,1,fr9 ; multiply by 1
59 set_fr_iimmed 1,0xfffe,fr11
60 cmqmulhs fr8,fr10,acc0,cc0,1
61 test_accg_immed 0xff,accg0
62 test_acc_immed -6,acc0
63 test_accg_immed 0xff,accg1
64 test_acc_immed -6,acc1
65 test_accg_immed 0xff,accg2
66 test_acc_immed -2,acc2
67 test_accg_immed 0xff,accg3
68 test_acc_immed -2,acc3
69
70 set_fr_iimmed 0xfffe,0,fr8 ; multiply by 0
71 set_fr_iimmed 0,0xfffe,fr10
72 set_fr_iimmed 0x2001,0xfffe,fr9 ; 15 bit result
73 set_fr_iimmed 0xfffe,0x2001,fr11
74 cmqmulhs fr8,fr10,acc0,cc4,1
75 test_accg_immed 0,accg0
76 test_acc_immed 0,acc0
77 test_accg_immed 0,accg1
78 test_acc_immed 0,acc1
79 test_accg_immed 0xff,accg2
80 test_acc_limmed 0xffff,0xbffe,acc2
81 test_accg_immed 0xff,accg3
82 test_acc_limmed 0xffff,0xbffe,acc3
83
84 set_fr_iimmed 0x4000,0xfffe,fr8 ; 16 bit result
85 set_fr_iimmed 0xfffe,0x4000,fr10
86 set_fr_iimmed 0x7fff,0x8000,fr9 ; max negative result
87 set_fr_iimmed 0x8000,0x7fff,fr11
88 cmqmulhs fr8,fr10,acc0,cc4,1
89 test_accg_immed 0xff,accg0
90 test_acc_limmed 0xffff,0x8000,acc0
91 test_accg_immed 0xff,accg1
92 test_acc_limmed 0xffff,0x8000,acc1
93 test_accg_immed 0xff,accg2
94 test_acc_limmed 0xc000,0x8000,acc2
95 test_accg_immed 0xff,accg3
96 test_acc_limmed 0xc000,0x8000,acc3
97
98 ; Negative operands
99 set_fr_iimmed 0xfffe,0xfffd,fr8 ; multiply small numbers
100 set_fr_iimmed 0xfffd,0xfffe,fr10
101 set_fr_iimmed 0xffff,0xfffe,fr9 ; multiply by -1
102 set_fr_iimmed 0xfffe,0xffff,fr11
103 cmqmulhs fr8,fr10,acc0,cc4,1
104 test_accg_immed 0,accg0
105 test_acc_immed 6,acc0
106 test_accg_immed 0,accg1
107 test_acc_immed 6,acc1
108 test_accg_immed 0,accg2
109 test_acc_immed 2,acc2
110 test_accg_immed 0,accg3
111 test_acc_immed 2,acc3
112
113 set_fr_iimmed 0x8001,0x8001,fr8 ; almost max positive result
114 set_fr_iimmed 0x8001,0x8001,fr10
115 set_fr_iimmed 0x8000,0x8000,fr9 ; max positive result
116 set_fr_iimmed 0x8000,0x8000,fr11
117 cmqmulhs fr8,fr10,acc0,cc4,1
118 test_accg_immed 0,accg0
119 test_acc_immed 0x3fff0001,acc0
120 test_accg_immed 0,accg1
121 test_acc_immed 0x3fff0001,acc1
122 test_accg_immed 0,accg2
123 test_acc_immed 0x40000000,acc2
124 test_accg_immed 0,accg3
125 test_acc_immed 0x40000000,acc3
126
127 ; Positive operands
128 set_fr_iimmed 2,3,fr8 ; multiply small numbers
129 set_fr_iimmed 3,2,fr10
130 set_fr_iimmed 0,1,fr9 ; multiply by 0
131 set_fr_iimmed 2,0,fr11
132 cmqmulhs fr8,fr10,acc0,cc1,0
133 test_accg_immed 0,accg0
134 test_acc_immed 6,acc0
135 test_accg_immed 0,accg1
136 test_acc_immed 6,acc1
137 test_accg_immed 0,accg2
138 test_acc_immed 0,acc2
139 test_accg_immed 0,accg3
140 test_acc_immed 0,acc3
141
142 set_fr_iimmed 2,1,fr8 ; multiply by 1
143 set_fr_iimmed 1,2,fr10
144 set_fr_iimmed 0x3fff,2,fr9 ; 15 bit result
145 set_fr_iimmed 2,0x3fff,fr11
146 cmqmulhs fr8,fr10,acc0,cc1,0
147 test_accg_immed 0,accg0
148 test_acc_immed 2,acc0
149 test_accg_immed 0,accg1
150 test_acc_immed 2,acc1
151 test_accg_immed 0,accg2
152 test_acc_limmed 0,0x7ffe,acc2
153 test_accg_immed 0,accg3
154 test_acc_limmed 0,0x7ffe,acc3
155
156 set_fr_iimmed 0x4000,2,fr8 ; 16 bit result
157 set_fr_iimmed 2,0x4000,fr10
158 set_fr_iimmed 0x7fff,0x7fff,fr9 ; max positive result
159 set_fr_iimmed 0x7fff,0x7fff,fr11
160 cmqmulhs fr8,fr10,acc0,cc1,0
161 test_accg_immed 0,accg0
162 test_acc_limmed 0x0000,0x8000,acc0
163 test_accg_immed 0,accg1
164 test_acc_limmed 0x0000,0x8000,acc1
165 test_accg_immed 0,accg2
166 test_acc_limmed 0x3fff,0x0001,acc2
167 test_accg_immed 0,accg3
168 test_acc_limmed 0x3fff,0x0001,acc3
169
170 ; Mixed operands
171 set_fr_iimmed 2,0xfffd,fr8 ; multiply small numbers
172 set_fr_iimmed 0xfffd,2,fr10
173 set_fr_iimmed 0xfffe,1,fr9 ; multiply by 1
174 set_fr_iimmed 1,0xfffe,fr11
175 cmqmulhs fr8,fr10,acc0,cc1,0
176 test_accg_immed 0xff,accg0
177 test_acc_immed -6,acc0
178 test_accg_immed 0xff,accg1
179 test_acc_immed -6,acc1
180 test_accg_immed 0xff,accg2
181 test_acc_immed -2,acc2
182 test_accg_immed 0xff,accg3
183 test_acc_immed -2,acc3
184
185 set_fr_iimmed 0xfffe,0,fr8 ; multiply by 0
186 set_fr_iimmed 0,0xfffe,fr10
187 set_fr_iimmed 0x2001,0xfffe,fr9 ; 15 bit result
188 set_fr_iimmed 0xfffe,0x2001,fr11
189 cmqmulhs fr8,fr10,acc0,cc5,0
190 test_accg_immed 0,accg0
191 test_acc_immed 0,acc0
192 test_accg_immed 0,accg1
193 test_acc_immed 0,acc1
194 test_accg_immed 0xff,accg2
195 test_acc_limmed 0xffff,0xbffe,acc2
196 test_accg_immed 0xff,accg3
197 test_acc_limmed 0xffff,0xbffe,acc3
198
199 set_fr_iimmed 0x4000,0xfffe,fr8 ; 16 bit result
200 set_fr_iimmed 0xfffe,0x4000,fr10
201 set_fr_iimmed 0x7fff,0x8000,fr9 ; max negative result
202 set_fr_iimmed 0x8000,0x7fff,fr11
203 cmqmulhs fr8,fr10,acc0,cc5,0
204 test_accg_immed 0xff,accg0
205 test_acc_limmed 0xffff,0x8000,acc0
206 test_accg_immed 0xff,accg1
207 test_acc_limmed 0xffff,0x8000,acc1
208 test_accg_immed 0xff,accg2
209 test_acc_limmed 0xc000,0x8000,acc2
210 test_accg_immed 0xff,accg3
211 test_acc_limmed 0xc000,0x8000,acc3
212
213 ; Negative operands
214 set_fr_iimmed 0xfffe,0xfffd,fr8 ; multiply small numbers
215 set_fr_iimmed 0xfffd,0xfffe,fr10
216 set_fr_iimmed 0xffff,0xfffe,fr9 ; multiply by -1
217 set_fr_iimmed 0xfffe,0xffff,fr11
218 cmqmulhs fr8,fr10,acc0,cc5,0
219 test_accg_immed 0,accg0
220 test_acc_immed 6,acc0
221 test_accg_immed 0,accg1
222 test_acc_immed 6,acc1
223 test_accg_immed 0,accg2
224 test_acc_immed 2,acc2
225 test_accg_immed 0,accg3
226 test_acc_immed 2,acc3
227
228 set_fr_iimmed 0x8001,0x8001,fr8 ; almost max positive result
229 set_fr_iimmed 0x8001,0x8001,fr10
230 set_fr_iimmed 0x8000,0x8000,fr9 ; max positive result
231 set_fr_iimmed 0x8000,0x8000,fr11
232 cmqmulhs fr8,fr10,acc0,cc5,0
233 test_accg_immed 0,accg0
234 test_acc_immed 0x3fff0001,acc0
235 test_accg_immed 0,accg1
236 test_acc_immed 0x3fff0001,acc1
237 test_accg_immed 0,accg2
238 test_acc_immed 0x40000000,acc2
239 test_accg_immed 0,accg3
240 test_acc_immed 0x40000000,acc3
241
242 ; Positive operands
243 set_accg_immed 0x00000011,accg0
244 set_acc_immed 0x11111111,acc0
245 set_accg_immed 0x00000022,accg1
246 set_acc_immed 0x22222222,acc1
247 set_accg_immed 0x00000033,accg2
248 set_acc_immed 0x33333333,acc2
249 set_accg_immed 0x00000044,accg3
250 set_acc_immed 0x44444444,acc3
251 set_fr_iimmed 2,3,fr8 ; multiply small numbers
252 set_fr_iimmed 3,2,fr10
253 set_fr_iimmed 0,1,fr9 ; multiply by 0
254 set_fr_iimmed 2,0,fr11
255 cmqmulhs fr8,fr10,acc0,cc0,0
256 test_accg_immed 0x00000011,accg0
257 test_acc_immed 0x11111111,acc0
258 test_accg_immed 0x00000022,accg1
259 test_acc_immed 0x22222222,acc1
260 test_accg_immed 0x00000033,accg2
261 test_acc_immed 0x33333333,acc2
262 test_accg_immed 0x00000044,accg3
263 test_acc_immed 0x44444444,acc3
264
265 set_fr_iimmed 2,1,fr8 ; multiply by 1
266 set_fr_iimmed 1,2,fr10
267 set_fr_iimmed 0x3fff,2,fr9 ; 15 bit result
268 set_fr_iimmed 2,0x3fff,fr11
269 cmqmulhs fr8,fr10,acc0,cc0,0
270 test_accg_immed 0x00000011,accg0
271 test_acc_immed 0x11111111,acc0
272 test_accg_immed 0x00000022,accg1
273 test_acc_immed 0x22222222,acc1
274 test_accg_immed 0x00000033,accg2
275 test_acc_immed 0x33333333,acc2
276 test_accg_immed 0x00000044,accg3
277 test_acc_immed 0x44444444,acc3
278
279 set_fr_iimmed 0x4000,2,fr8 ; 16 bit result
280 set_fr_iimmed 2,0x4000,fr10
281 set_fr_iimmed 0x7fff,0x7fff,fr9 ; max positive result
282 set_fr_iimmed 0x7fff,0x7fff,fr11
283 cmqmulhs fr8,fr10,acc0,cc0,0
284 test_accg_immed 0x00000011,accg0
285 test_acc_immed 0x11111111,acc0
286 test_accg_immed 0x00000022,accg1
287 test_acc_immed 0x22222222,acc1
288 test_accg_immed 0x00000033,accg2
289 test_acc_immed 0x33333333,acc2
290 test_accg_immed 0x00000044,accg3
291 test_acc_immed 0x44444444,acc3
292
293 ; Mixed operands
294 set_fr_iimmed 2,0xfffd,fr8 ; multiply small numbers
295 set_fr_iimmed 0xfffd,2,fr10
296 set_fr_iimmed 0xfffe,1,fr9 ; multiply by 1
297 set_fr_iimmed 1,0xfffe,fr11
298 cmqmulhs fr8,fr10,acc0,cc0,0
299 test_accg_immed 0x00000011,accg0
300 test_acc_immed 0x11111111,acc0
301 test_accg_immed 0x00000022,accg1
302 test_acc_immed 0x22222222,acc1
303 test_accg_immed 0x00000033,accg2
304 test_acc_immed 0x33333333,acc2
305 test_accg_immed 0x00000044,accg3
306 test_acc_immed 0x44444444,acc3
307
308 set_fr_iimmed 0xfffe,0,fr8 ; multiply by 0
309 set_fr_iimmed 0,0xfffe,fr10
310 set_fr_iimmed 0x2001,0xfffe,fr9 ; 15 bit result
311 set_fr_iimmed 0xfffe,0x2001,fr11
312 cmqmulhs fr8,fr10,acc0,cc4,0
313 test_accg_immed 0x00000011,accg0
314 test_acc_immed 0x11111111,acc0
315 test_accg_immed 0x00000022,accg1
316 test_acc_immed 0x22222222,acc1
317 test_accg_immed 0x00000033,accg2
318 test_acc_immed 0x33333333,acc2
319 test_accg_immed 0x00000044,accg3
320 test_acc_immed 0x44444444,acc3
321
322 set_fr_iimmed 0x4000,0xfffe,fr8 ; 16 bit result
323 set_fr_iimmed 0xfffe,0x4000,fr10
324 set_fr_iimmed 0x7fff,0x8000,fr9 ; max negative result
325 set_fr_iimmed 0x8000,0x7fff,fr11
326 cmqmulhs fr8,fr10,acc0,cc4,0
327 test_accg_immed 0x00000011,accg0
328 test_acc_immed 0x11111111,acc0
329 test_accg_immed 0x00000022,accg1
330 test_acc_immed 0x22222222,acc1
331 test_accg_immed 0x00000033,accg2
332 test_acc_immed 0x33333333,acc2
333 test_accg_immed 0x00000044,accg3
334 test_acc_immed 0x44444444,acc3
335
336 ; Negative operands
337 set_fr_iimmed 0xfffe,0xfffd,fr8 ; multiply small numbers
338 set_fr_iimmed 0xfffd,0xfffe,fr10
339 set_fr_iimmed 0xffff,0xfffe,fr9 ; multiply by -1
340 set_fr_iimmed 0xfffe,0xffff,fr11
341 cmqmulhs fr8,fr10,acc0,cc4,0
342 test_accg_immed 0x00000011,accg0
343 test_acc_immed 0x11111111,acc0
344 test_accg_immed 0x00000022,accg1
345 test_acc_immed 0x22222222,acc1
346 test_accg_immed 0x00000033,accg2
347 test_acc_immed 0x33333333,acc2
348 test_accg_immed 0x00000044,accg3
349 test_acc_immed 0x44444444,acc3
350
351 set_fr_iimmed 0x8001,0x8001,fr8 ; almost max positive result
352 set_fr_iimmed 0x8001,0x8001,fr10
353 set_fr_iimmed 0x8000,0x8000,fr9 ; max positive result
354 set_fr_iimmed 0x8000,0x8000,fr11
355 cmqmulhs fr8,fr10,acc0,cc4,0
356 test_accg_immed 0x00000011,accg0
357 test_acc_immed 0x11111111,acc0
358 test_accg_immed 0x00000022,accg1
359 test_acc_immed 0x22222222,acc1
360 test_accg_immed 0x00000033,accg2
361 test_acc_immed 0x33333333,acc2
362 test_accg_immed 0x00000044,accg3
363 test_acc_immed 0x44444444,acc3
364
365 ; Positive operands
366 set_accg_immed 0x00000011,accg0
367 set_acc_immed 0x11111111,acc0
368 set_accg_immed 0x00000022,accg1
369 set_acc_immed 0x22222222,acc1
370 set_accg_immed 0x00000033,accg2
371 set_acc_immed 0x33333333,acc2
372 set_accg_immed 0x00000044,accg3
373 set_acc_immed 0x44444444,acc3
374 set_fr_iimmed 2,3,fr8 ; multiply small numbers
375 set_fr_iimmed 3,2,fr10
376 set_fr_iimmed 0,1,fr9 ; multiply by 0
377 set_fr_iimmed 2,0,fr11
378 cmqmulhs fr8,fr10,acc0,cc1,1
379 test_accg_immed 0x00000011,accg0
380 test_acc_immed 0x11111111,acc0
381 test_accg_immed 0x00000022,accg1
382 test_acc_immed 0x22222222,acc1
383 test_accg_immed 0x00000033,accg2
384 test_acc_immed 0x33333333,acc2
385 test_accg_immed 0x00000044,accg3
386 test_acc_immed 0x44444444,acc3
387
388 set_fr_iimmed 2,1,fr8 ; multiply by 1
389 set_fr_iimmed 1,2,fr10
390 set_fr_iimmed 0x3fff,2,fr9 ; 15 bit result
391 set_fr_iimmed 2,0x3fff,fr11
392 cmqmulhs fr8,fr10,acc0,cc1,1
393 test_accg_immed 0x00000011,accg0
394 test_acc_immed 0x11111111,acc0
395 test_accg_immed 0x00000022,accg1
396 test_acc_immed 0x22222222,acc1
397 test_accg_immed 0x00000033,accg2
398 test_acc_immed 0x33333333,acc2
399 test_accg_immed 0x00000044,accg3
400 test_acc_immed 0x44444444,acc3
401
402 set_fr_iimmed 0x4000,2,fr8 ; 16 bit result
403 set_fr_iimmed 2,0x4000,fr10
404 set_fr_iimmed 0x7fff,0x7fff,fr9 ; max positive result
405 set_fr_iimmed 0x7fff,0x7fff,fr11
406 cmqmulhs fr8,fr10,acc0,cc1,1
407 test_accg_immed 0x00000011,accg0
408 test_acc_immed 0x11111111,acc0
409 test_accg_immed 0x00000022,accg1
410 test_acc_immed 0x22222222,acc1
411 test_accg_immed 0x00000033,accg2
412 test_acc_immed 0x33333333,acc2
413 test_accg_immed 0x00000044,accg3
414 test_acc_immed 0x44444444,acc3
415
416 ; Mixed operands
417 set_fr_iimmed 2,0xfffd,fr8 ; multiply small numbers
418 set_fr_iimmed 0xfffd,2,fr10
419 set_fr_iimmed 0xfffe,1,fr9 ; multiply by 1
420 set_fr_iimmed 1,0xfffe,fr11
421 cmqmulhs fr8,fr10,acc0,cc1,1
422 test_accg_immed 0x00000011,accg0
423 test_acc_immed 0x11111111,acc0
424 test_accg_immed 0x00000022,accg1
425 test_acc_immed 0x22222222,acc1
426 test_accg_immed 0x00000033,accg2
427 test_acc_immed 0x33333333,acc2
428 test_accg_immed 0x00000044,accg3
429 test_acc_immed 0x44444444,acc3
430
431 set_fr_iimmed 0xfffe,0,fr8 ; multiply by 0
432 set_fr_iimmed 0,0xfffe,fr10
433 set_fr_iimmed 0x2001,0xfffe,fr9 ; 15 bit result
434 set_fr_iimmed 0xfffe,0x2001,fr11
435 cmqmulhs fr8,fr10,acc0,cc5,1
436 test_accg_immed 0x00000011,accg0
437 test_acc_immed 0x11111111,acc0
438 test_accg_immed 0x00000022,accg1
439 test_acc_immed 0x22222222,acc1
440 test_accg_immed 0x00000033,accg2
441 test_acc_immed 0x33333333,acc2
442 test_accg_immed 0x00000044,accg3
443 test_acc_immed 0x44444444,acc3
444
445 set_fr_iimmed 0x4000,0xfffe,fr8 ; 16 bit result
446 set_fr_iimmed 0xfffe,0x4000,fr10
447 set_fr_iimmed 0x7fff,0x8000,fr9 ; max negative result
448 set_fr_iimmed 0x8000,0x7fff,fr11
449 cmqmulhs fr8,fr10,acc0,cc5,1
450 test_accg_immed 0x00000011,accg0
451 test_acc_immed 0x11111111,acc0
452 test_accg_immed 0x00000022,accg1
453 test_acc_immed 0x22222222,acc1
454 test_accg_immed 0x00000033,accg2
455 test_acc_immed 0x33333333,acc2
456 test_accg_immed 0x00000044,accg3
457 test_acc_immed 0x44444444,acc3
458
459 ; Negative operands
460 set_fr_iimmed 0xfffe,0xfffd,fr8 ; multiply small numbers
461 set_fr_iimmed 0xfffd,0xfffe,fr10
462 set_fr_iimmed 0xffff,0xfffe,fr9 ; multiply by -1
463 set_fr_iimmed 0xfffe,0xffff,fr11
464 cmqmulhs fr8,fr10,acc0,cc5,1
465 test_accg_immed 0x00000011,accg0
466 test_acc_immed 0x11111111,acc0
467 test_accg_immed 0x00000022,accg1
468 test_acc_immed 0x22222222,acc1
469 test_accg_immed 0x00000033,accg2
470 test_acc_immed 0x33333333,acc2
471 test_accg_immed 0x00000044,accg3
472 test_acc_immed 0x44444444,acc3
473
474 set_fr_iimmed 0x8001,0x8001,fr8 ; almost max positive result
475 set_fr_iimmed 0x8001,0x8001,fr10
476 set_fr_iimmed 0x8000,0x8000,fr9 ; max positive result
477 set_fr_iimmed 0x8000,0x8000,fr11
478 cmqmulhs fr8,fr10,acc0,cc5,1
479 test_accg_immed 0x00000011,accg0
480 test_acc_immed 0x11111111,acc0
481 test_accg_immed 0x00000022,accg1
482 test_acc_immed 0x22222222,acc1
483 test_accg_immed 0x00000033,accg2
484 test_acc_immed 0x33333333,acc2
485 test_accg_immed 0x00000044,accg3
486 test_acc_immed 0x44444444,acc3
487
488 ; Positive operands
489 set_accg_immed 0x00000011,accg0
490 set_acc_immed 0x11111111,acc0
491 set_accg_immed 0x00000022,accg1
492 set_acc_immed 0x22222222,acc1
493 set_accg_immed 0x00000033,accg2
494 set_acc_immed 0x33333333,acc2
495 set_accg_immed 0x00000044,accg3
496 set_acc_immed 0x44444444,acc3
497 set_fr_iimmed 2,3,fr8 ; multiply small numbers
498 set_fr_iimmed 3,2,fr10
499 set_fr_iimmed 0,1,fr9 ; multiply by 0
500 set_fr_iimmed 2,0,fr11
501 cmqmulhs fr8,fr10,acc0,cc2,1
502 test_accg_immed 0x00000011,accg0
503 test_acc_immed 0x11111111,acc0
504 test_accg_immed 0x00000022,accg1
505 test_acc_immed 0x22222222,acc1
506 test_accg_immed 0x00000033,accg2
507 test_acc_immed 0x33333333,acc2
508 test_accg_immed 0x00000044,accg3
509 test_acc_immed 0x44444444,acc3
510
511 set_fr_iimmed 2,1,fr8 ; multiply by 1
512 set_fr_iimmed 1,2,fr10
513 set_fr_iimmed 0x3fff,2,fr9 ; 15 bit result
514 set_fr_iimmed 2,0x3fff,fr11
515 cmqmulhs fr8,fr10,acc0,cc2,0
516 test_accg_immed 0x00000011,accg0
517 test_acc_immed 0x11111111,acc0
518 test_accg_immed 0x00000022,accg1
519 test_acc_immed 0x22222222,acc1
520 test_accg_immed 0x00000033,accg2
521 test_acc_immed 0x33333333,acc2
522 test_accg_immed 0x00000044,accg3
523 test_acc_immed 0x44444444,acc3
524
525 set_fr_iimmed 0x4000,2,fr8 ; 16 bit result
526 set_fr_iimmed 2,0x4000,fr10
527 set_fr_iimmed 0x7fff,0x7fff,fr9 ; max positive result
528 set_fr_iimmed 0x7fff,0x7fff,fr11
529 cmqmulhs fr8,fr10,acc0,cc2,1
530 test_accg_immed 0x00000011,accg0
531 test_acc_immed 0x11111111,acc0
532 test_accg_immed 0x00000022,accg1
533 test_acc_immed 0x22222222,acc1
534 test_accg_immed 0x00000033,accg2
535 test_acc_immed 0x33333333,acc2
536 test_accg_immed 0x00000044,accg3
537 test_acc_immed 0x44444444,acc3
538
539 ; Mixed operands
540 set_fr_iimmed 2,0xfffd,fr8 ; multiply small numbers
541 set_fr_iimmed 0xfffd,2,fr10
542 set_fr_iimmed 0xfffe,1,fr9 ; multiply by 1
543 set_fr_iimmed 1,0xfffe,fr11
544 cmqmulhs fr8,fr10,acc0,cc2,0
545 test_accg_immed 0x00000011,accg0
546 test_acc_immed 0x11111111,acc0
547 test_accg_immed 0x00000022,accg1
548 test_acc_immed 0x22222222,acc1
549 test_accg_immed 0x00000033,accg2
550 test_acc_immed 0x33333333,acc2
551 test_accg_immed 0x00000044,accg3
552 test_acc_immed 0x44444444,acc3
553
554 set_fr_iimmed 0xfffe,0,fr8 ; multiply by 0
555 set_fr_iimmed 0,0xfffe,fr10
556 set_fr_iimmed 0x2001,0xfffe,fr9 ; 15 bit result
557 set_fr_iimmed 0xfffe,0x2001,fr11
558 cmqmulhs fr8,fr10,acc0,cc6,1
559 test_accg_immed 0x00000011,accg0
560 test_acc_immed 0x11111111,acc0
561 test_accg_immed 0x00000022,accg1
562 test_acc_immed 0x22222222,acc1
563 test_accg_immed 0x00000033,accg2
564 test_acc_immed 0x33333333,acc2
565 test_accg_immed 0x00000044,accg3
566 test_acc_immed 0x44444444,acc3
567
568 set_fr_iimmed 0x4000,0xfffe,fr8 ; 16 bit result
569 set_fr_iimmed 0xfffe,0x4000,fr10
570 set_fr_iimmed 0x7fff,0x8000,fr9 ; max negative result
571 set_fr_iimmed 0x8000,0x7fff,fr11
572 cmqmulhs fr8,fr10,acc0,cc6,0
573 test_accg_immed 0x00000011,accg0
574 test_acc_immed 0x11111111,acc0
575 test_accg_immed 0x00000022,accg1
576 test_acc_immed 0x22222222,acc1
577 test_accg_immed 0x00000033,accg2
578 test_acc_immed 0x33333333,acc2
579 test_accg_immed 0x00000044,accg3
580 test_acc_immed 0x44444444,acc3
581
582 ; Negative operands
583 set_fr_iimmed 0xfffe,0xfffd,fr8 ; multiply small numbers
584 set_fr_iimmed 0xfffd,0xfffe,fr10
585 set_fr_iimmed 0xffff,0xfffe,fr9 ; multiply by -1
586 set_fr_iimmed 0xfffe,0xffff,fr11
587 cmqmulhs fr8,fr10,acc0,cc6,1
588 test_accg_immed 0x00000011,accg0
589 test_acc_immed 0x11111111,acc0
590 test_accg_immed 0x00000022,accg1
591 test_acc_immed 0x22222222,acc1
592 test_accg_immed 0x00000033,accg2
593 test_acc_immed 0x33333333,acc2
594 test_accg_immed 0x00000044,accg3
595 test_acc_immed 0x44444444,acc3
596
597 set_fr_iimmed 0x8001,0x8001,fr8 ; almost max positive result
598 set_fr_iimmed 0x8001,0x8001,fr10
599 set_fr_iimmed 0x8000,0x8000,fr9 ; max positive result
600 set_fr_iimmed 0x8000,0x8000,fr11
601 cmqmulhs fr8,fr10,acc0,cc6,0
602 test_accg_immed 0x00000011,accg0
603 test_acc_immed 0x11111111,acc0
604 test_accg_immed 0x00000022,accg1
605 test_acc_immed 0x22222222,acc1
606 test_accg_immed 0x00000033,accg2
607 test_acc_immed 0x33333333,acc2
608 test_accg_immed 0x00000044,accg3
609 test_acc_immed 0x44444444,acc3
610;
611 ; Positive operands
612 set_accg_immed 0x00000011,accg0
613 set_acc_immed 0x11111111,acc0
614 set_accg_immed 0x00000022,accg1
615 set_acc_immed 0x22222222,acc1
616 set_accg_immed 0x00000033,accg2
617 set_acc_immed 0x33333333,acc2
618 set_accg_immed 0x00000044,accg3
619 set_acc_immed 0x44444444,acc3
620 set_fr_iimmed 2,3,fr8 ; multiply small numbers
621 set_fr_iimmed 3,2,fr10
622 set_fr_iimmed 0,1,fr9 ; multiply by 0
623 set_fr_iimmed 2,0,fr11
624 cmqmulhs fr8,fr10,acc0,cc3,1
625 test_accg_immed 0x00000011,accg0
626 test_acc_immed 0x11111111,acc0
627 test_accg_immed 0x00000022,accg1
628 test_acc_immed 0x22222222,acc1
629 test_accg_immed 0x00000033,accg2
630 test_acc_immed 0x33333333,acc2
631 test_accg_immed 0x00000044,accg3
632 test_acc_immed 0x44444444,acc3
633
634 set_fr_iimmed 2,1,fr8 ; multiply by 1
635 set_fr_iimmed 1,2,fr10
636 set_fr_iimmed 0x3fff,2,fr9 ; 15 bit result
637 set_fr_iimmed 2,0x3fff,fr11
638 cmqmulhs fr8,fr10,acc0,cc3,0
639 test_accg_immed 0x00000011,accg0
640 test_acc_immed 0x11111111,acc0
641 test_accg_immed 0x00000022,accg1
642 test_acc_immed 0x22222222,acc1
643 test_accg_immed 0x00000033,accg2
644 test_acc_immed 0x33333333,acc2
645 test_accg_immed 0x00000044,accg3
646 test_acc_immed 0x44444444,acc3
647
648 set_fr_iimmed 0x4000,2,fr8 ; 16 bit result
649 set_fr_iimmed 2,0x4000,fr10
650 set_fr_iimmed 0x7fff,0x7fff,fr9 ; max positive result
651 set_fr_iimmed 0x7fff,0x7fff,fr11
652 cmqmulhs fr8,fr10,acc0,cc3,1
653 test_accg_immed 0x00000011,accg0
654 test_acc_immed 0x11111111,acc0
655 test_accg_immed 0x00000022,accg1
656 test_acc_immed 0x22222222,acc1
657 test_accg_immed 0x00000033,accg2
658 test_acc_immed 0x33333333,acc2
659 test_accg_immed 0x00000044,accg3
660 test_acc_immed 0x44444444,acc3
661
662 ; Mixed operands
663 set_fr_iimmed 2,0xfffd,fr8 ; multiply small numbers
664 set_fr_iimmed 0xfffd,2,fr10
665 set_fr_iimmed 0xfffe,1,fr9 ; multiply by 1
666 set_fr_iimmed 1,0xfffe,fr11
667 cmqmulhs fr8,fr10,acc0,cc3,0
668 test_accg_immed 0x00000011,accg0
669 test_acc_immed 0x11111111,acc0
670 test_accg_immed 0x00000022,accg1
671 test_acc_immed 0x22222222,acc1
672 test_accg_immed 0x00000033,accg2
673 test_acc_immed 0x33333333,acc2
674 test_accg_immed 0x00000044,accg3
675 test_acc_immed 0x44444444,acc3
676
677 set_fr_iimmed 0xfffe,0,fr8 ; multiply by 0
678 set_fr_iimmed 0,0xfffe,fr10
679 set_fr_iimmed 0x2001,0xfffe,fr9 ; 15 bit result
680 set_fr_iimmed 0xfffe,0x2001,fr11
681 cmqmulhs fr8,fr10,acc0,cc7,1
682 test_accg_immed 0x00000011,accg0
683 test_acc_immed 0x11111111,acc0
684 test_accg_immed 0x00000022,accg1
685 test_acc_immed 0x22222222,acc1
686 test_accg_immed 0x00000033,accg2
687 test_acc_immed 0x33333333,acc2
688 test_accg_immed 0x00000044,accg3
689 test_acc_immed 0x44444444,acc3
690
691 set_fr_iimmed 0x4000,0xfffe,fr8 ; 16 bit result
692 set_fr_iimmed 0xfffe,0x4000,fr10
693 set_fr_iimmed 0x7fff,0x8000,fr9 ; max negative result
694 set_fr_iimmed 0x8000,0x7fff,fr11
695 cmqmulhs fr8,fr10,acc0,cc7,0
696 test_accg_immed 0x00000011,accg0
697 test_acc_immed 0x11111111,acc0
698 test_accg_immed 0x00000022,accg1
699 test_acc_immed 0x22222222,acc1
700 test_accg_immed 0x00000033,accg2
701 test_acc_immed 0x33333333,acc2
702 test_accg_immed 0x00000044,accg3
703 test_acc_immed 0x44444444,acc3
704
705 ; Negative operands
706 set_fr_iimmed 0xfffe,0xfffd,fr8 ; multiply small numbers
707 set_fr_iimmed 0xfffd,0xfffe,fr10
708 set_fr_iimmed 0xffff,0xfffe,fr9 ; multiply by -1
709 set_fr_iimmed 0xfffe,0xffff,fr11
710 cmqmulhs fr8,fr10,acc0,cc7,1
711 test_accg_immed 0x00000011,accg0
712 test_acc_immed 0x11111111,acc0
713 test_accg_immed 0x00000022,accg1
714 test_acc_immed 0x22222222,acc1
715 test_accg_immed 0x00000033,accg2
716 test_acc_immed 0x33333333,acc2
717 test_accg_immed 0x00000044,accg3
718 test_acc_immed 0x44444444,acc3
719
720 set_fr_iimmed 0x8001,0x8001,fr8 ; almost max positive result
721 set_fr_iimmed 0x8001,0x8001,fr10
722 set_fr_iimmed 0x8000,0x8000,fr9 ; max positive result
723 set_fr_iimmed 0x8000,0x8000,fr11
724 cmqmulhs fr8,fr10,acc0,cc7,0
725 test_accg_immed 0x00000011,accg0
726 test_acc_immed 0x11111111,acc0
727 test_accg_immed 0x00000022,accg1
728 test_acc_immed 0x22222222,acc1
729 test_accg_immed 0x00000033,accg2
730 test_acc_immed 0x33333333,acc2
731 test_accg_immed 0x00000044,accg3
732 test_acc_immed 0x44444444,acc3
733
734 pass
This page took 0.122543 seconds and 4 git commands to generate.