2004-02-29 Andrew Cagney <cagney@redhat.com>
[deliverable/binutils-gdb.git] / sim / testsuite / sim / frv / cmqmulhu.cgs
CommitLineData
4a306116
DB
1# frv testcase for cmqmulhu $GRi,$GRj,$GRk,$CCi,$cond
2# mach: all
3
4 .include "testutils.inc"
5
6 start
7
8 .global cmqmulhu
9cmqmulhu:
10 set_spr_immed 0x1b1b,cccr
11
12 set_fr_iimmed 3,2,fr8 ; multiply small numbers
13 set_fr_iimmed 2,3,fr10
14 set_fr_iimmed 1,2,fr9 ; multiply by 1
15 set_fr_iimmed 2,1,fr11
16 cmqmulhu fr8,fr10,acc0,cc0,1
17 test_accg_immed 0,accg0
18 test_acc_immed 6,acc0
19 test_accg_immed 0,accg1
20 test_acc_immed 6,acc1
21 test_accg_immed 0,accg2
22 test_acc_immed 2,acc2
23 test_accg_immed 0,accg3
24 test_acc_immed 2,acc3
25
26 set_fr_iimmed 0,2,fr8 ; multiply by 0
27 set_fr_iimmed 2,0,fr10
28 set_fr_iimmed 0x3fff,2,fr9 ; 15 bit result
29 set_fr_iimmed 2,0x3fff,fr11
30 cmqmulhu fr8,fr10,acc0,cc0,1
31 test_accg_immed 0,accg0
32 test_acc_immed 0,acc0
33 test_accg_immed 0,accg1
34 test_acc_immed 0,acc1
35 test_accg_immed 0,accg2
36 test_acc_limmed 0x0000,0x7ffe,acc2
37 test_accg_immed 0,accg3
38 test_acc_limmed 0x0000,0x7ffe,acc3
39
40 set_fr_iimmed 0x4000,2,fr8 ; 16 bit result
41 set_fr_iimmed 2,0x4000,fr10
42 set_fr_iimmed 0x8000,2,fr9 ; 17 bit result
43 set_fr_iimmed 2,0x8000,fr11
44 cmqmulhu fr8,fr10,acc0,cc4,1
45 test_accg_immed 0,accg0
46 test_acc_limmed 0x0000,0x8000,acc0
47 test_accg_immed 0,accg1
48 test_acc_limmed 0x0000,0x8000,acc1
49 test_accg_immed 0,accg2
50 test_acc_immed 0x00010000,acc2
51 test_accg_immed 0,accg3
52 test_acc_immed 0x00010000,acc3
53
54 set_fr_iimmed 0x7fff,0x7fff,fr8 ; max positive result
55 set_fr_iimmed 0x7fff,0x7fff,fr10
56 set_fr_iimmed 0x8000,0x8000,fr9 ; max positive result
57 set_fr_iimmed 0x8000,0x8000,fr11
58 cmqmulhu fr8,fr10,acc0,cc4,1
59 test_accg_immed 0,accg0
60 test_acc_immed 0x3fff0001,acc0
61 test_accg_immed 0,accg1
62 test_acc_immed 0x3fff0001,acc1
63 test_accg_immed 0,accg2
64 test_acc_limmed 0x4000,0x0000,acc2
65 test_accg_immed 0,accg3
66 test_acc_limmed 0x4000,0x0000,acc3
67
68 set_fr_iimmed 0xffff,0xffff,fr8 ; max positive result
69 set_fr_iimmed 0xffff,0xffff,fr10
70 set_fr_iimmed 0xffff,0xffff,fr9 ; max positive result
71 set_fr_iimmed 0xffff,0xffff,fr11
72 cmqmulhu fr8,fr10,acc0,cc4,1
73 test_accg_immed 0,accg0
74 test_acc_limmed 0xfffe,0x0001,acc0
75 test_accg_immed 0,accg1
76 test_acc_limmed 0xfffe,0x0001,acc1
77 test_accg_immed 0,accg2
78 test_acc_limmed 0xfffe,0x0001,acc2
79 test_accg_immed 0,accg3
80 test_acc_limmed 0xfffe,0x0001,acc3
81
82 set_fr_iimmed 3,2,fr8 ; multiply small numbers
83 set_fr_iimmed 2,3,fr10
84 set_fr_iimmed 1,2,fr9 ; multiply by 1
85 set_fr_iimmed 2,1,fr11
86 cmqmulhu fr8,fr10,acc0,cc1,0
87 test_accg_immed 0,accg0
88 test_acc_immed 6,acc0
89 test_accg_immed 0,accg1
90 test_acc_immed 6,acc1
91 test_accg_immed 0,accg2
92 test_acc_immed 2,acc2
93 test_accg_immed 0,accg3
94 test_acc_immed 2,acc3
95
96 set_fr_iimmed 0,2,fr8 ; multiply by 0
97 set_fr_iimmed 2,0,fr10
98 set_fr_iimmed 0x3fff,2,fr9 ; 15 bit result
99 set_fr_iimmed 2,0x3fff,fr11
100 cmqmulhu fr8,fr10,acc0,cc1,0
101 test_accg_immed 0,accg0
102 test_acc_immed 0,acc0
103 test_accg_immed 0,accg1
104 test_acc_immed 0,acc1
105 test_accg_immed 0,accg2
106 test_acc_limmed 0x0000,0x7ffe,acc2
107 test_accg_immed 0,accg3
108 test_acc_limmed 0x0000,0x7ffe,acc3
109
110 set_fr_iimmed 0x4000,2,fr8 ; 16 bit result
111 set_fr_iimmed 2,0x4000,fr10
112 set_fr_iimmed 0x8000,2,fr9 ; 17 bit result
113 set_fr_iimmed 2,0x8000,fr11
114 cmqmulhu fr8,fr10,acc0,cc5,0
115 test_accg_immed 0,accg0
116 test_acc_limmed 0x0000,0x8000,acc0
117 test_accg_immed 0,accg1
118 test_acc_limmed 0x0000,0x8000,acc1
119 test_accg_immed 0,accg2
120 test_acc_immed 0x00010000,acc2
121 test_accg_immed 0,accg3
122 test_acc_immed 0x00010000,acc3
123
124 set_fr_iimmed 0x7fff,0x7fff,fr8 ; max positive result
125 set_fr_iimmed 0x7fff,0x7fff,fr10
126 set_fr_iimmed 0x8000,0x8000,fr9 ; max positive result
127 set_fr_iimmed 0x8000,0x8000,fr11
128 cmqmulhu fr8,fr10,acc0,cc5,0
129 test_accg_immed 0,accg0
130 test_acc_immed 0x3fff0001,acc0
131 test_accg_immed 0,accg1
132 test_acc_immed 0x3fff0001,acc1
133 test_accg_immed 0,accg2
134 test_acc_limmed 0x4000,0x0000,acc2
135 test_accg_immed 0,accg3
136 test_acc_limmed 0x4000,0x0000,acc3
137
138 set_fr_iimmed 0xffff,0xffff,fr8 ; max positive result
139 set_fr_iimmed 0xffff,0xffff,fr10
140 set_fr_iimmed 0xffff,0xffff,fr9 ; max positive result
141 set_fr_iimmed 0xffff,0xffff,fr11
142 cmqmulhu fr8,fr10,acc0,cc5,0
143 test_accg_immed 0,accg0
144 test_acc_limmed 0xfffe,0x0001,acc0
145 test_accg_immed 0,accg1
146 test_acc_limmed 0xfffe,0x0001,acc1
147 test_accg_immed 0,accg2
148 test_acc_limmed 0xfffe,0x0001,acc2
149 test_accg_immed 0,accg3
150 test_acc_limmed 0xfffe,0x0001,acc3
151
152 set_accg_immed 0x00000011,accg0
153 set_acc_immed 0x11111111,acc0
154 set_accg_immed 0x00000022,accg1
155 set_acc_immed 0x22222222,acc1
156 set_accg_immed 0x00000033,accg2
157 set_acc_immed 0x33333333,acc2
158 set_accg_immed 0x00000044,accg3
159 set_acc_immed 0x44444444,acc3
160 set_fr_iimmed 3,2,fr8 ; multiply small numbers
161 set_fr_iimmed 2,3,fr10
162 set_fr_iimmed 1,2,fr9 ; multiply by 1
163 set_fr_iimmed 2,1,fr11
164 cmqmulhu fr8,fr10,acc0,cc0,0
165 test_accg_immed 0x00000011,accg0
166 test_acc_immed 0x11111111,acc0
167 test_accg_immed 0x00000022,accg1
168 test_acc_immed 0x22222222,acc1
169 test_accg_immed 0x00000033,accg2
170 test_acc_immed 0x33333333,acc2
171 test_accg_immed 0x00000044,accg3
172 test_acc_immed 0x44444444,acc3
173
174 set_fr_iimmed 0,2,fr8 ; multiply by 0
175 set_fr_iimmed 2,0,fr10
176 set_fr_iimmed 0x3fff,2,fr9 ; 15 bit result
177 set_fr_iimmed 2,0x3fff,fr11
178 cmqmulhu fr8,fr10,acc0,cc0,0
179 test_accg_immed 0x00000011,accg0
180 test_acc_immed 0x11111111,acc0
181 test_accg_immed 0x00000022,accg1
182 test_acc_immed 0x22222222,acc1
183 test_accg_immed 0x00000033,accg2
184 test_acc_immed 0x33333333,acc2
185 test_accg_immed 0x00000044,accg3
186 test_acc_immed 0x44444444,acc3
187
188 set_fr_iimmed 0x4000,2,fr8 ; 16 bit result
189 set_fr_iimmed 2,0x4000,fr10
190 set_fr_iimmed 0x8000,2,fr9 ; 17 bit result
191 set_fr_iimmed 2,0x8000,fr11
192 cmqmulhu fr8,fr10,acc0,cc4,0
193 test_accg_immed 0x00000011,accg0
194 test_acc_immed 0x11111111,acc0
195 test_accg_immed 0x00000022,accg1
196 test_acc_immed 0x22222222,acc1
197 test_accg_immed 0x00000033,accg2
198 test_acc_immed 0x33333333,acc2
199 test_accg_immed 0x00000044,accg3
200 test_acc_immed 0x44444444,acc3
201
202 set_fr_iimmed 0x7fff,0x7fff,fr8 ; max positive result
203 set_fr_iimmed 0x7fff,0x7fff,fr10
204 set_fr_iimmed 0x8000,0x8000,fr9 ; max positive result
205 set_fr_iimmed 0x8000,0x8000,fr11
206 cmqmulhu fr8,fr10,acc0,cc4,0
207 test_accg_immed 0x00000011,accg0
208 test_acc_immed 0x11111111,acc0
209 test_accg_immed 0x00000022,accg1
210 test_acc_immed 0x22222222,acc1
211 test_accg_immed 0x00000033,accg2
212 test_acc_immed 0x33333333,acc2
213 test_accg_immed 0x00000044,accg3
214 test_acc_immed 0x44444444,acc3
215
216 set_fr_iimmed 0xffff,0xffff,fr8 ; max positive result
217 set_fr_iimmed 0xffff,0xffff,fr10
218 set_fr_iimmed 0xffff,0xffff,fr9 ; max positive result
219 set_fr_iimmed 0xffff,0xffff,fr11
220 cmqmulhu fr8,fr10,acc0,cc4,0
221 test_accg_immed 0x00000011,accg0
222 test_acc_immed 0x11111111,acc0
223 test_accg_immed 0x00000022,accg1
224 test_acc_immed 0x22222222,acc1
225 test_accg_immed 0x00000033,accg2
226 test_acc_immed 0x33333333,acc2
227 test_accg_immed 0x00000044,accg3
228 test_acc_immed 0x44444444,acc3
229
230 set_accg_immed 0x00000011,accg0
231 set_acc_immed 0x11111111,acc0
232 set_accg_immed 0x00000022,accg1
233 set_acc_immed 0x22222222,acc1
234 set_accg_immed 0x00000033,accg2
235 set_acc_immed 0x33333333,acc2
236 set_accg_immed 0x00000044,accg3
237 set_acc_immed 0x44444444,acc3
238 set_fr_iimmed 3,2,fr8 ; multiply small numbers
239 set_fr_iimmed 2,3,fr10
240 set_fr_iimmed 1,2,fr9 ; multiply by 1
241 set_fr_iimmed 2,1,fr11
242 cmqmulhu fr8,fr10,acc0,cc1,1
243 test_accg_immed 0x00000011,accg0
244 test_acc_immed 0x11111111,acc0
245 test_accg_immed 0x00000022,accg1
246 test_acc_immed 0x22222222,acc1
247 test_accg_immed 0x00000033,accg2
248 test_acc_immed 0x33333333,acc2
249 test_accg_immed 0x00000044,accg3
250 test_acc_immed 0x44444444,acc3
251
252 set_fr_iimmed 0,2,fr8 ; multiply by 0
253 set_fr_iimmed 2,0,fr10
254 set_fr_iimmed 0x3fff,2,fr9 ; 15 bit result
255 set_fr_iimmed 2,0x3fff,fr11
256 cmqmulhu fr8,fr10,acc0,cc1,1
257 test_accg_immed 0x00000011,accg0
258 test_acc_immed 0x11111111,acc0
259 test_accg_immed 0x00000022,accg1
260 test_acc_immed 0x22222222,acc1
261 test_accg_immed 0x00000033,accg2
262 test_acc_immed 0x33333333,acc2
263 test_accg_immed 0x00000044,accg3
264 test_acc_immed 0x44444444,acc3
265
266 set_fr_iimmed 0x4000,2,fr8 ; 16 bit result
267 set_fr_iimmed 2,0x4000,fr10
268 set_fr_iimmed 0x8000,2,fr9 ; 17 bit result
269 set_fr_iimmed 2,0x8000,fr11
270 cmqmulhu fr8,fr10,acc0,cc5,1
271 test_accg_immed 0x00000011,accg0
272 test_acc_immed 0x11111111,acc0
273 test_accg_immed 0x00000022,accg1
274 test_acc_immed 0x22222222,acc1
275 test_accg_immed 0x00000033,accg2
276 test_acc_immed 0x33333333,acc2
277 test_accg_immed 0x00000044,accg3
278 test_acc_immed 0x44444444,acc3
279
280 set_fr_iimmed 0x7fff,0x7fff,fr8 ; max positive result
281 set_fr_iimmed 0x7fff,0x7fff,fr10
282 set_fr_iimmed 0x8000,0x8000,fr9 ; max positive result
283 set_fr_iimmed 0x8000,0x8000,fr11
284 cmqmulhu fr8,fr10,acc0,cc5,1
285 test_accg_immed 0x00000011,accg0
286 test_acc_immed 0x11111111,acc0
287 test_accg_immed 0x00000022,accg1
288 test_acc_immed 0x22222222,acc1
289 test_accg_immed 0x00000033,accg2
290 test_acc_immed 0x33333333,acc2
291 test_accg_immed 0x00000044,accg3
292 test_acc_immed 0x44444444,acc3
293
294 set_fr_iimmed 0xffff,0xffff,fr8 ; max positive result
295 set_fr_iimmed 0xffff,0xffff,fr10
296 set_fr_iimmed 0xffff,0xffff,fr9 ; max positive result
297 set_fr_iimmed 0xffff,0xffff,fr11
298 cmqmulhu fr8,fr10,acc0,cc5,1
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_accg_immed 0x00000011,accg0
309 set_acc_immed 0x11111111,acc0
310 set_accg_immed 0x00000022,accg1
311 set_acc_immed 0x22222222,acc1
312 set_accg_immed 0x00000033,accg2
313 set_acc_immed 0x33333333,acc2
314 set_accg_immed 0x00000044,accg3
315 set_acc_immed 0x44444444,acc3
316 set_fr_iimmed 3,2,fr8 ; multiply small numbers
317 set_fr_iimmed 2,3,fr10
318 set_fr_iimmed 1,2,fr9 ; multiply by 1
319 set_fr_iimmed 2,1,fr11
320 cmqmulhu fr8,fr10,acc0,cc2,1
321 test_accg_immed 0x00000011,accg0
322 test_acc_immed 0x11111111,acc0
323 test_accg_immed 0x00000022,accg1
324 test_acc_immed 0x22222222,acc1
325 test_accg_immed 0x00000033,accg2
326 test_acc_immed 0x33333333,acc2
327 test_accg_immed 0x00000044,accg3
328 test_acc_immed 0x44444444,acc3
329
330 set_fr_iimmed 0,2,fr8 ; multiply by 0
331 set_fr_iimmed 2,0,fr10
332 set_fr_iimmed 0x3fff,2,fr9 ; 15 bit result
333 set_fr_iimmed 2,0x3fff,fr11
334 cmqmulhu fr8,fr10,acc0,cc2,0
335 test_accg_immed 0x00000011,accg0
336 test_acc_immed 0x11111111,acc0
337 test_accg_immed 0x00000022,accg1
338 test_acc_immed 0x22222222,acc1
339 test_accg_immed 0x00000033,accg2
340 test_acc_immed 0x33333333,acc2
341 test_accg_immed 0x00000044,accg3
342 test_acc_immed 0x44444444,acc3
343
344 set_fr_iimmed 0x4000,2,fr8 ; 16 bit result
345 set_fr_iimmed 2,0x4000,fr10
346 set_fr_iimmed 0x8000,2,fr9 ; 17 bit result
347 set_fr_iimmed 2,0x8000,fr11
348 cmqmulhu fr8,fr10,acc0,cc6,1
349 test_accg_immed 0x00000011,accg0
350 test_acc_immed 0x11111111,acc0
351 test_accg_immed 0x00000022,accg1
352 test_acc_immed 0x22222222,acc1
353 test_accg_immed 0x00000033,accg2
354 test_acc_immed 0x33333333,acc2
355 test_accg_immed 0x00000044,accg3
356 test_acc_immed 0x44444444,acc3
357
358 set_fr_iimmed 0x7fff,0x7fff,fr8 ; max positive result
359 set_fr_iimmed 0x7fff,0x7fff,fr10
360 set_fr_iimmed 0x8000,0x8000,fr9 ; max positive result
361 set_fr_iimmed 0x8000,0x8000,fr11
362 cmqmulhu fr8,fr10,acc0,cc6,0
363 test_accg_immed 0x00000011,accg0
364 test_acc_immed 0x11111111,acc0
365 test_accg_immed 0x00000022,accg1
366 test_acc_immed 0x22222222,acc1
367 test_accg_immed 0x00000033,accg2
368 test_acc_immed 0x33333333,acc2
369 test_accg_immed 0x00000044,accg3
370 test_acc_immed 0x44444444,acc3
371
372 set_fr_iimmed 0xffff,0xffff,fr8 ; max positive result
373 set_fr_iimmed 0xffff,0xffff,fr10
374 set_fr_iimmed 0xffff,0xffff,fr9 ; max positive result
375 set_fr_iimmed 0xffff,0xffff,fr11
376 cmqmulhu fr8,fr10,acc0,cc6,1
377 test_accg_immed 0x00000011,accg0
378 test_acc_immed 0x11111111,acc0
379 test_accg_immed 0x00000022,accg1
380 test_acc_immed 0x22222222,acc1
381 test_accg_immed 0x00000033,accg2
382 test_acc_immed 0x33333333,acc2
383 test_accg_immed 0x00000044,accg3
384 test_acc_immed 0x44444444,acc3
385;
386 set_accg_immed 0x00000011,accg0
387 set_acc_immed 0x11111111,acc0
388 set_accg_immed 0x00000022,accg1
389 set_acc_immed 0x22222222,acc1
390 set_accg_immed 0x00000033,accg2
391 set_acc_immed 0x33333333,acc2
392 set_accg_immed 0x00000044,accg3
393 set_acc_immed 0x44444444,acc3
394 set_fr_iimmed 3,2,fr8 ; multiply small numbers
395 set_fr_iimmed 2,3,fr10
396 set_fr_iimmed 1,2,fr9 ; multiply by 1
397 set_fr_iimmed 2,1,fr11
398 cmqmulhu fr8,fr10,acc0,cc3,1
399 test_accg_immed 0x00000011,accg0
400 test_acc_immed 0x11111111,acc0
401 test_accg_immed 0x00000022,accg1
402 test_acc_immed 0x22222222,acc1
403 test_accg_immed 0x00000033,accg2
404 test_acc_immed 0x33333333,acc2
405 test_accg_immed 0x00000044,accg3
406 test_acc_immed 0x44444444,acc3
407
408 set_fr_iimmed 0,2,fr8 ; multiply by 0
409 set_fr_iimmed 2,0,fr10
410 set_fr_iimmed 0x3fff,2,fr9 ; 15 bit result
411 set_fr_iimmed 2,0x3fff,fr11
412 cmqmulhu fr8,fr10,acc0,cc3,0
413 test_accg_immed 0x00000011,accg0
414 test_acc_immed 0x11111111,acc0
415 test_accg_immed 0x00000022,accg1
416 test_acc_immed 0x22222222,acc1
417 test_accg_immed 0x00000033,accg2
418 test_acc_immed 0x33333333,acc2
419 test_accg_immed 0x00000044,accg3
420 test_acc_immed 0x44444444,acc3
421
422 set_fr_iimmed 0x4000,2,fr8 ; 16 bit result
423 set_fr_iimmed 2,0x4000,fr10
424 set_fr_iimmed 0x8000,2,fr9 ; 17 bit result
425 set_fr_iimmed 2,0x8000,fr11
426 cmqmulhu fr8,fr10,acc0,cc7,1
427 test_accg_immed 0x00000011,accg0
428 test_acc_immed 0x11111111,acc0
429 test_accg_immed 0x00000022,accg1
430 test_acc_immed 0x22222222,acc1
431 test_accg_immed 0x00000033,accg2
432 test_acc_immed 0x33333333,acc2
433 test_accg_immed 0x00000044,accg3
434 test_acc_immed 0x44444444,acc3
435
436 set_fr_iimmed 0x7fff,0x7fff,fr8 ; max positive result
437 set_fr_iimmed 0x7fff,0x7fff,fr10
438 set_fr_iimmed 0x8000,0x8000,fr9 ; max positive result
439 set_fr_iimmed 0x8000,0x8000,fr11
440 cmqmulhu fr8,fr10,acc0,cc7,0
441 test_accg_immed 0x00000011,accg0
442 test_acc_immed 0x11111111,acc0
443 test_accg_immed 0x00000022,accg1
444 test_acc_immed 0x22222222,acc1
445 test_accg_immed 0x00000033,accg2
446 test_acc_immed 0x33333333,acc2
447 test_accg_immed 0x00000044,accg3
448 test_acc_immed 0x44444444,acc3
449
450 set_fr_iimmed 0xffff,0xffff,fr8 ; max positive result
451 set_fr_iimmed 0xffff,0xffff,fr10
452 set_fr_iimmed 0xffff,0xffff,fr9 ; max positive result
453 set_fr_iimmed 0xffff,0xffff,fr11
454 cmqmulhu fr8,fr10,acc0,cc7,1
455 test_accg_immed 0x00000011,accg0
456 test_acc_immed 0x11111111,acc0
457 test_accg_immed 0x00000022,accg1
458 test_acc_immed 0x22222222,acc1
459 test_accg_immed 0x00000033,accg2
460 test_acc_immed 0x33333333,acc2
461 test_accg_immed 0x00000044,accg3
462 test_acc_immed 0x44444444,acc3
463
464 pass
This page took 0.061411 seconds and 4 git commands to generate.