1#include <stdio.h>
2/* Independent tests for each DSP instruction from MIPS32 DSP ASE instruction
3   set */
4
5unsigned int mem[] = {
6   0x121f1e1f, 0, 3, -1,
7   0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0x262d2d2a,
8   0x3f343f3e, 0x3e353d3c, 0x363a3c3b, 0x3b373b3a,
9   0x454f4e45, 0x4e464d46, 0x474d474c, 0x4a484a4c
10};
11
12void ppMem(unsigned int* _mem, int _len)
13{
14   int i;
15   printf("MEM:\n");
16   for (i = 0; i < _len; i=i+4)
17   {
18      printf("0x%08x, 0x%08x, 0x%08x, 0x%08x\n",
19            _mem[i], _mem[i+1], _mem[i+2], _mem[i+3]);
20   }
21   _mem[0] = 0x121f1e1f;
22   _mem[1] = 0;
23   _mem[2] = 3;
24   _mem[3] = -1;
25   _mem[4] = 0x232f2e2f;
26   _mem[5] = 0x242c2b2b;
27   _mem[6] = 0x252a2e2b;
28   _mem[7] = 0x262d2d2a;
29   _mem[8] = 0x3f343f3e;
30   _mem[9] = 0x3e353d3c;
31   _mem[10] = 0x363a3c3b;
32   _mem[11] = 0x3b373b3a;
33   _mem[12] = 0x454f4e45;
34   _mem[13] = 0x4e464d46;
35   _mem[14] = 0x474d474c;
36   _mem[15] = 0x4a484a4c;
37}
38
39#define TESTDSPINST_RD_RT_DSPC(instruction, RTval, RD, RT) \
40{                                                          \
41   int out = 0xdeadbeef;                                   \
42   int dspCtrl = 0x0;                                      \
43   __asm__ volatile(                                       \
44      ".set dsp; \n\t"                                     \
45      "li $" #RD ", 0 \n\t"                                \
46      "move $" #RT ", %2 \n\t"                             \
47      "wrdsp $zero, 0x3f \n\t"                             \
48      instruction " \n\t"                                  \
49      "move %0, $" #RD " \n\t"                             \
50      "rddsp %1, 0x3f \n\t"                                \
51      : "=&r" (out), "=&r" (dspCtrl)                       \
52      : "r" (RTval)                                        \
53      : #RT, #RD                                           \
54   );                                                      \
55   printf("%s :: rd 0x%08x rt 0x%08x DSPControl 0x%x\n",   \
56         instruction, out, RTval, dspCtrl);                \
57}
58
59#define TESTDSPINST_RD_RT_NODSPC(instruction, RTval, RD, RT) \
60{                                                            \
61   int out = 0xdeadbeef;                                     \
62   __asm__ volatile(                                         \
63      ".set dsp; \n\t"                                       \
64      "li $" #RD ", 0 \n\t"                                  \
65      "move $" #RT ", %1 \n\t"                               \
66      instruction " \n\t"                                    \
67      "move %0, $" #RD " \n\t"                               \
68      : "=&r" (out)                                          \
69      : "r" (RTval)                                          \
70      : #RT, #RD                                             \
71   );                                                        \
72   printf("%s :: rd 0x%08x rt 0x%08x \n",                    \
73         instruction, out, RTval);                           \
74}
75
76#define TESTDSPINST_RD_RS_RT_DSPC(instruction, RSval, RTval, RD, RS, RT) \
77{                                                                        \
78   int out = 0xdeadbeef;                                                 \
79   int dspCtrl = 0x0;                                                    \
80   __asm__ volatile(                                                     \
81      ".set dsp; \n\t"                                                   \
82      "li $" #RD ", 0 \n\t"                                              \
83      "wrdsp $zero, 0x3f \n\t"                                           \
84      "move $" #RS ", %2 \n\t"                                           \
85      "move $" #RT ", %3 \n\t"                                           \
86      instruction " \n\t"                                                \
87      "move %0, $" #RD " \n\t"                                           \
88      "rddsp %1, 0x3f \n\t"                                              \
89      : "=&r" (out), "=&r" (dspCtrl)                                     \
90      : "r" (RSval), "r"(RTval)                                          \
91      : #RD, #RS, #RT                                                    \
92   );                                                                    \
93   printf("%s :: rs 0x%08x rt 0x%08x out 0x%08x DSPCtrl 0x%08x\n",       \
94        instruction, RSval, RTval, out, dspCtrl);                        \
95}
96
97#define TESTDSPINST_BPOSGE32(instruction, RDval, POSval, RD, POSreg) \
98{                                                                    \
99   unsigned int out = 0;                                             \
100   __asm__ volatile(                                                 \
101      ".set dsp; \n\t"                                               \
102      "move $" #POSreg ", %1 \n\t"                                   \
103      "wrdsp $" #POSreg ", 0x3f \n\t"                                \
104      "move $" #RD ", %2 \n\t"                                       \
105      instruction" end"instruction#RDval" \n\t"                      \
106      "nop \n\t"                                                     \
107      "addi $" #RD ", $" #RD", 5 \n\t"                               \
108      "end"instruction#RDval": \n\t"                                 \
109      "addi $" #RD ", $" #RD", 1 \n\t"                               \
110      "move %0, $" #RD " \n\t"                                       \
111      : "=&r" (out)                                                  \
112      : "r" (POSval), "r" (RDval)                                    \
113      : #RD, #POSreg                                                 \
114      );                                                             \
115      printf(instruction" :: %d, POSval: %d\n",                      \
116        out, POSval);                                                \
117}
118
119#define TESTDSPINST_RS_RT_DSPC(instruction, RSval, RTval, RS, RT) \
120{                                                                 \
121   int dspCtrl = 0x0;                                             \
122   __asm__ volatile(                                              \
123      ".set dsp; \n\t"                                            \
124      "wrdsp $zero, 0x3f \n\t"                                    \
125      "move $" #RS ", %1 \n\t"                                    \
126      "move $" #RT ", %2 \n\t"                                    \
127      instruction " \n\t"                                         \
128      "rddsp %0, 0x3f \n\t"                                       \
129      : "=&r" (dspCtrl)                                           \
130      : "r" (RSval), "r"(RTval)                                   \
131      : #RS, #RT                                                  \
132   );                                                             \
133   printf("%s :: rs 0x%08x rt 0x%08x DSPCtrl 0x%08x \n",          \
134        instruction, RSval, RTval, dspCtrl);                      \
135}
136
137#define TESTDSPINST_RD_RS_RT_NODSPC(instruction, RSval, RTval, RD, RS, RT) \
138{                                                                          \
139   int out = 0xdeadbeef;                                                   \
140   __asm__ volatile(                                                       \
141      ".set dsp; \n\t"                                                     \
142      "li $" #RD ", 0 \n\t"                                                \
143      "move $" #RS ", %1 \n\t"                                             \
144      "move $" #RT ", %2 \n\t"                                             \
145      instruction " \n\t"                                                  \
146      "move %0, $" #RD " \n\t"                                             \
147      : "=&r" (out)                                                        \
148      : "r" (RSval), "r"(RTval)                                            \
149      : #RD, #RS, #RT                                                      \
150   );                                                                      \
151   printf("%s :: rs 0x%08x rt 0x%08x out 0x%08x\n",                        \
152        instruction, RSval, RTval, out);                                   \
153}
154
155#define TESTDSPINST_AC_RS_RT_DSPC(instruction, ac, RSval, RTval, HIval, LOval, \
156                                  RS, RT)                                      \
157{                                                                              \
158   int out_hi = 0xdeadbeef;                                                    \
159   int out_lo = 0xdeadbeef;                                                    \
160   int dspCtrl = 0x0;                                                          \
161   __asm__ volatile(                                                           \
162      ".set dsp; \n\t"                                                         \
163      "move $" #RS ", %5 \n\t"                                                 \
164      "move $" #RT ", %6 \n\t"                                                 \
165      "mthi $" #RS", $" ac " \n\t"                                             \
166      "mtlo $" #RT", $" ac " \n\t"                                             \
167      "move $" #RS ", %3 \n\t"                                                 \
168      "move $" #RT ", %4 \n\t"                                                 \
169      "wrdsp $zero, 0x3f \n\t"                                                 \
170      instruction "  \n\t"                                                     \
171      "rddsp %2, 0x3f \n\t"                                                    \
172      "mfhi %0, $" ac " \n\t"                                                  \
173      "mflo %1, $" ac " \n\t"                                                  \
174      : "=&r" (out_hi), "=&r" (out_lo), "=&r" (dspCtrl)                        \
175      : "r" (RSval), "r"(RTval), "r" (HIval), "r"(LOval)                       \
176      : #RS, #RT                                                               \
177   );                                                                          \
178   printf("%s :: rs 0x%08x rt 0x%08x inHI 0x%08x inLO 0x%08x outHI 0x%08x outLO\
179          0x%08x dspCtrl 0x%08x\n",instruction, RSval, RTval, HIval, LOval,    \
180          out_hi, out_lo, dspCtrl);                                            \
181}
182
183#define TESTDSPINST_AC_RS_RT_NODSPC(instruction, ac, RSval, RTval, HIval,      \
184                                    LOval, RS, RT)                             \
185{                                                                              \
186   int out_hi = 0xdeadbeef;                                                    \
187   int out_lo = 0xdeadbeef;                                                    \
188   __asm__ volatile(                                                           \
189      ".set dsp; \n\t"                                                         \
190      "move $" #RS ", %4 \n\t"                                                 \
191      "move $" #RT ", %5 \n\t"                                                 \
192      "mthi $" #RS", $" ac " \n\t"                                             \
193      "mtlo $" #RT", $" ac " \n\t"                                             \
194      "move $" #RS ", %2 \n\t"                                                 \
195      "move $" #RT ", %3 \n\t"                                                 \
196      instruction " \n\t"                                                      \
197      "mfhi %0, $" ac " \n\t"                                                  \
198      "mflo %1, $" ac " \n\t"                                                  \
199      : "=&r" (out_hi), "=&r" (out_lo)                                         \
200      : "r" (RSval), "r"(RTval), "r" (HIval), "r"(LOval)                       \
201      : #RS, #RT                                                               \
202   );                                                                          \
203   printf("%s :: rs 0x%08x rt 0x%08x inHI 0x%08x inLO 0x%08x outHI 0x%08x outLO\
204          0x%08x \n",instruction, RSval, RTval, HIval, LOval, out_hi, out_lo); \
205}
206
207#define TESTDSPINST_EXT(instruction, ac, RT, HIval, LOval, size, pos) \
208{                                                                     \
209   int out = 0xdeadbeef;                                              \
210   int dspCtrl = 0x0;                                                 \
211   __asm__ volatile(                                                  \
212      ".set dsp; \n\t"                                                \
213      "move $" #RT ", %2 \n\t"                                        \
214      "wrdsp $" #RT ", 0x3f \n\t"                                     \
215      "move $" #RT ", %3 \n\t"                                        \
216      "mthi $" #RT", $" ac " \n\t"                                    \
217      "move $" #RT ", %4 \n\t"                                        \
218      "mtlo $" #RT", $" ac " \n\t"                                    \
219      instruction " \n\t"                                             \
220      "rddsp %1, 0x3f \n\t"                                           \
221      "move %0, $" #RT " \n\t"                                        \
222      : "=&r" (out), "=&r" (dspCtrl)                                  \
223      : "r" (pos), "r" (HIval), "r" (LOval)                           \
224      : #RT                                                           \
225   );                                                                 \
226   printf("%s :: rt 0x%08x %s 0x%08x%08x size %2d DSPCtrl 0x%08x\n",  \
227       instruction, out, ac, HIval, LOval, size, dspCtrl);            \
228}
229
230#define TESTDSPINST_EXTV(instruction, ac, RT, HIval, LOval, RS, RSval, pos) \
231{                                                                           \
232   int out = 0xdeadbeef;                                                    \
233   int dspCtrl = 0x0;                                                       \
234   __asm__ volatile(                                                        \
235      ".set dsp; \n\t"                                                      \
236      "move $" #RS ", %5 \n\t"                                              \
237      "move $" #RT ", %2 \n\t"                                              \
238      "wrdsp $" #RT ", 0x3f \n\t"                                           \
239      "move $" #RT ", %3 \n\t"                                              \
240      "mthi $" #RT", $" ac " \n\t"                                          \
241      "move $" #RT ", %4 \n\t"                                              \
242      "mtlo $" #RT", $" ac " \n\t"                                          \
243      instruction " \n\t"                                                   \
244      "rddsp %1, 0x3f \n\t"                                                 \
245      "move %0, $" #RT " \n\t"                                              \
246      : "=&r" (out), "=&r" (dspCtrl)                                        \
247      : "r" (pos), "r" (HIval), "r" (LOval), "r" (RSval)                    \
248      : #RT, #RS                                                            \
249   );                                                                       \
250   printf("%s :: rt 0x%08x %s 0x%08x%08x rs 0x%08x DSPCtrl 0x%08x\n",       \
251          instruction, out, ac, HIval, LOval, RSval, dspCtrl);              \
252}
253
254#define TESTDSPINST_INSV(instruction, RTval, RSval, RT, RS, _pos, _size)       \
255{                                                                              \
256   unsigned int out;                                                           \
257   __asm__ volatile(                                                           \
258      ".set dsp; \n\t"                                                         \
259      "move $" #RS ", %3 \n\t"                                                 \
260      "wrdsp $" #RS ", 0x1 \n\t"                                               \
261      "move $" #RS ", %4 \n\t"                                                 \
262      "wrdsp $" #RS ", 0x2 \n\t"                                               \
263      "move $" #RS", %1 \n\t"                                                  \
264      "move $" #RT", %2 \n\t"                                                  \
265      "insv $" #RT ", $" #RS " \n\t"                                           \
266      "move %0, $" #RT " \n\t"                                                 \
267     : "=&r" (out)                                                             \
268     : "r" (RSval), "r" (RTval), "r" (_pos), "r" (_size)                       \
269     : #RS, #RT                                                                \
270   );                                                                          \
271   printf("insv :: out: 0x%08x rtIN 0x%08x rsIN 0x%08x posI %2d sizeI %2d \n", \
272         out, RTval, RSval, _pos, _size>>7); \
273}
274
275#define TESTDSPINST_LWX(index, RT, RS)                 \
276{                                                      \
277    unsigned int out;                                  \
278   __asm__ volatile(                                   \
279      ".set dsp; \n\t"                                 \
280     "move $" #RS", %1 \n\t"                           \
281     "move $" #RT", %2 \n\t"                           \
282     "lwx %0, $" #RT "($"#RS") \n\t"                   \
283    : "=&r" (out)                                      \
284    : "r" (mem), "r" (index)                           \
285    : #RT, #RS, "memory"                               \
286    );                                                 \
287   printf("lwx :: out: 0x%08x mem[%d]\n", out, index); \
288}
289
290#define TESTDSPINST_LHX(index, RT, RS)                 \
291{                                                      \
292    unsigned int out;                                  \
293   __asm__ volatile(                                   \
294      ".set dsp; \n\t"                                 \
295     "move $" #RS", %1 \n\t"                           \
296     "move $" #RT", %2 \n\t"                           \
297     "lhx %0, $" #RT "($"#RS") \n\t"                   \
298    : "=&r" (out)                                      \
299    : "r" (mem), "r" (index)                           \
300    : #RT, #RS, "memory"                               \
301    );                                                 \
302   printf("lhx :: out: 0x%08x mem[%d]\n", out, index); \
303}
304
305#define TESTDSPINST_LBUX(index, RT, RS)                 \
306{                                                       \
307    unsigned int out;                                   \
308   __asm__ volatile(                                    \
309      ".set dsp; \n\t"                                  \
310     "move $" #RS", %1 \n\t"                            \
311     "move $" #RT", %2 \n\t"                            \
312     "lbux %0, $" #RT "($"#RS") \n\t"                   \
313    : "=&r" (out)                                       \
314    : "r" (mem), "r" (index)                            \
315    : #RT, #RS, "memory"                                \
316    );                                                  \
317   printf("lbux :: out: 0x%08x mem[%d]\n", out, index); \
318}
319
320#define TESTDSPINST_HILO(ac, RSval_hi, RSval_lo)                             \
321{                                                                            \
322   unsigned int HI = 0xdeadbeef;                                             \
323   unsigned int LO = 0xdeadbeef;                                             \
324   __asm__ volatile(                                                         \
325      ".set dsp; \n\t"                                                       \
326      "move $t0, %2 \n\t"                                                    \
327      "move $t1, %3 \n\t"                                                    \
328      "mthi $t0, $" ac " \n\t"                                               \
329      "mtlo $t1, $" ac " \n\t"                                               \
330      "mfhi %0, $" ac " \n\t"                                                \
331      "mflo %1, $" ac " \n\t"                                                \
332     : "=&r" (HI), "=&r" (LO)                                                \
333     : "r" (RSval_hi), "r" (RSval_lo)                                        \
334     : "t0", "t1"                                                            \
335   );                                                                        \
336   printf("rs_hi: 0x%08x rs_lo: 0x%08x %s out HI: 0x%08x, out LO: 0x%08x\n", \
337          RSval_hi, RSval_lo, ac, HI, LO);                                   \
338}
339
340#define TESTDSPINST_MTHLIP(instruction, ac, HIval, LOval, RSval, RS, pos)      \
341{                                                                              \
342   unsigned int outHI;                                                         \
343   unsigned int outLO;                                                         \
344   unsigned int dspCtrl;                                                       \
345   __asm__ volatile(                                                           \
346      ".set dsp; \n\t"                                                         \
347      "move $" #RS ", %3\n\t"                                                  \
348      "mthi $" #RS", $" ac "\n\t"                                              \
349      "move $" #RS ", %4\n\t"                                                  \
350      "mtlo $" #RS", $" ac "\n\t"                                              \
351      "move $" #RS ", %5\n\t"                                                  \
352      "wrdsp $" #RS ", 0x1 \n\t"                                               \
353      "move $" #RS ", %6\n\t"                                                  \
354      instruction "\n\t"                                                       \
355      "mfhi %0, $" ac "\n\t"                                                   \
356      "mflo %1, $" ac "\n\t"                                                   \
357      "rddsp %2, 0x1 \n\t"                                                     \
358     : "=&r" (outHI), "=&r" (outLO), "=&r" (dspCtrl)                           \
359     : "r" (HIval), "r" (LOval), "r" (pos), "r" (RSval)                        \
360     : #RS                                                                     \
361   );                                                                          \
362   printf("mthlip :: acIn: 0x%08x%08x rsIn 0x%08x posIn 0x%08x acOut 0x%08x%08x\
363          posOut 0x%08x\n", HIval, LOval, RSval, pos, outHI, outLO, dspCtrl);  \
364}
365
366#define TESTDSPINST_PICK(instruction, instruction1, RSval, RTval, RD, RS, RT) \
367{                                                                             \
368   int out = 0xdeadbeef;                                                      \
369   int dspCtrl1 = 0x0;                                                        \
370   __asm__ volatile(                                                          \
371      ".set dsp; \n\t"                                                        \
372      "li $" #RD ", 0 \n\t"                                                   \
373      "wrdsp $zero, 0x1f \n\t"                                                \
374      "move $" #RS ", %2 \n\t"                                                \
375      "move $" #RT ", %3 \n\t"                                                \
376      instruction1 " \n\t"                                                    \
377      "rddsp %1, 0x1f \n\t"                                                   \
378      instruction " \n\t"                                                     \
379      "move %0, $" #RD " \n\t"                                                \
380      : "=&r" (out), "=&r" (dspCtrl1)                                         \
381      : "r" (RSval), "r"(RTval)                                               \
382      : #RD, #RS, #RT                                                         \
383   );                                                                         \
384   printf("%s :: %s rs 0x%08x rt 0x%08x out 0x%08x DSPCtrl1 0x%x\n",          \
385          instruction, instruction1, RSval, RTval, out, dspCtrl1);            \
386}
387
388#define TESTDSPINST_RADDU_W_QB(instruction, RSval, RD, RS)                    \
389{                                                                             \
390   int out = 0xdeadbeef;                                                      \
391   __asm__ volatile(                                                          \
392      ".set dsp; \n\t"                                                        \
393      "move $" #RS ", %1 \n\t"                                                \
394      instruction " \n\t"                                                     \
395      "move %0, $" #RD " \n\t"                                                \
396      : "=&r" (out)                                                           \
397      : "r" (RSval)                                                           \
398      : #RD, #RS                                                              \
399   );                                                                         \
400   printf("%s :: out 0x%08x rs 0x%08x\n",                                     \
401        instruction, out, RSval);                                             \
402}
403
404#define TESTDSPINST_RDDSPWRDSP(REGval, mask)                               \
405{                                                                          \
406   int out = 0xdeadbeef;                                                   \
407   __asm__ volatile(                                                       \
408      ".set dsp; \n\t"                                                     \
409      "move $t0, %1 \n\t"                                                  \
410      "wrdsp $t0, " #mask " \n\t"                                          \
411      "rddsp %0, " #mask " \n\t"                                           \
412      : "=&r" (out)                                                        \
413      : "r" (REGval)                                                       \
414      : "t0"                                                               \
415   );                                                                      \
416   printf("outVal 0x%08x inVal 0x%08x mask 0x%08x \n", out, REGval, mask); \
417}
418
419#define TESTDSPINST_RD_IMM_NODSPC(instruction, Imm, RD)           \
420{                                                                 \
421   int out = 0xdeadbeef;                                          \
422   __asm__ volatile(                                              \
423      ".set dsp; \n\t"                                            \
424      "li $" #RD ", 0 \n\t"                                       \
425      instruction " \n\t"                                         \
426      "move %0, $" #RD " \n\t"                                    \
427      : "=&r" (out)                                               \
428      :                                                           \
429      : #RD                                                       \
430   );                                                             \
431   printf("%s :: rd 0x%08x imm 0x%08x\n", instruction, out, Imm); \
432}
433
434#define TESTDSPINST_SHILO(ac, HIval, LOval, shift)                             \
435{                                                                              \
436   int outHI = 0xdeadbeef;                                                     \
437   int outLO = 0xdeadbeef;                                                     \
438   __asm__ volatile(                                                           \
439      ".set dsp; \n\t"                                                         \
440      "move $t0, %2 \n\t"                                                      \
441      "move $t1, %3 \n\t"                                                      \
442      "mthi $t0, $" ac " \n\t"                                                 \
443      "mtlo $t1, $" ac " \n\t"                                                 \
444      "shilo $" ac ", " #shift " \n\t"                                         \
445      "mfhi %0, $" ac " \n\t"                                                  \
446      "mflo %1, $" ac " \n\t"                                                  \
447      : "=&r" (outHI), "=&r" (outLO)                                           \
448      : "r" (HIval), "r" (LOval)                                               \
449      : "t0", "t1"                                                             \
450   );                                                                          \
451   printf("shilo %s, %3d inAcc = 0x%08x%08x outAcc = 0x%08x%08x\n", ac, shift, \
452          HIval, LOval, outHI, outLO);                                         \
453}
454
455#define TESTDSP_SHILOV(ac, HIval, LOval, RSval, RS)                            \
456{                                                                              \
457   int outHI = 0xdeadbeef;                                                     \
458   int outLO = 0xdeadbeef;                                                     \
459   __asm__ volatile(                                                           \
460      ".set dsp; \n\t"                                                         \
461      "move $" #RS ", %2 \n\t"                                                 \
462      "mthi $" #RS ", $" ac " \n\t"                                            \
463      "move $" #RS ", %3 \n\t"                                                 \
464      "mtlo $" #RS ", $" ac " \n\t"                                            \
465      "move $" #RS ", %4 \n\t"                                                 \
466      "shilov $" ac ", $" #RS " \n\t"                                          \
467      "mfhi %0, $" ac " \n\t"                                                  \
468      "mflo %1, $" ac " \n\t"                                                  \
469      : "=&r" (outHI), "=&r" (outLO)                                           \
470      : "r" (HIval), "r" (LOval), "r" (RSval)                                  \
471      : #RS                                                                    \
472   );                                                                          \
473   printf("shilov %s, rs 0x%08x inAcc = 0x%08x%08x outAcc = 0x%08x%08x\n", ac, \
474          RSval, HIval, LOval, outHI, outLO);                                  \
475}
476
477#define TESTDSPINST_RD_RT_SA_DSPC(instruction, RTval, SAval, RD, RT)        \
478{                                                                           \
479   int out = 0xdeadbeef;                                                    \
480   int dspCtrl = 0x0;                                                       \
481   __asm__ volatile(                                                        \
482      ".set dsp; \n\t"                                                      \
483      "li $" #RD ", 0 \n\t"                                                 \
484      "wrdsp $zero, 0x3f \n\t"                                              \
485      "move $" #RT ", %2 \n\t"                                              \
486      instruction " \n\t"                                                   \
487      "rddsp %1, 0x3f \n\t"                                                 \
488      "move %0, $" #RD " \n\t"                                              \
489      : "=&r" (out), "=&r" (dspCtrl)                                        \
490      : "r"(RTval)                                                          \
491      : #RD, #RT                                                            \
492   );                                                                       \
493   printf("%s :: rd 0x%08x rt 0x%08x sa %2d DSPCtrl 0x%08x\n", instruction, \
494          out, RTval, SAval, dspCtrl);                                      \
495}
496
497#define TESTDSPINST_RD_RT_SA_NODSPC(instruction, RTval, SAval, RD, RT)   \
498{                                                                        \
499   int out = 0xdeadbeef;                                                 \
500   __asm__ volatile(                                                     \
501      ".set dsp; \n\t"                                                   \
502      "li $" #RD ", 0 \n\t"                                              \
503      "move $" #RT ", %1 \n\t"                                           \
504      instruction " \n\t"                                                \
505      "move %0, $" #RD " \n\t"                                           \
506      : "=&r" (out)                                                      \
507      : "r"(RTval)                                                       \
508      : #RD, #RT                                                         \
509   );                                                                    \
510   printf("%s :: rd 0x%08x rt 0x%08x sa %2d\n", instruction, out, RTval, \
511          SAval);                                                        \
512}
513
514#define TESTDSPINST_RD_RT_RS_DSPC(instruction, RTval, RSval, RD, RT, RS)       \
515{                                                                              \
516   int out = 0xdeadbeef;                                                       \
517   int dspCtrl = 0x0;                                                          \
518   __asm__ volatile(                                                           \
519      ".set dsp; \n\t"                                                         \
520      "li $" #RD ", 0 \n\t"                                                    \
521      "wrdsp $zero, 0x3f \n\t"                                                 \
522      "move $" #RT ", %2 \n\t"                                                 \
523      "move $" #RS ", %3 \n\t"                                                 \
524      instruction " \n\t"                                                      \
525      "rddsp %1, 0x3f \n\t"                                                    \
526      "move %0, $" #RD " \n\t"                                                 \
527      : "=&r" (out), "=&r" (dspCtrl)                                           \
528      : "r"(RTval), "r"(RSval)                                                 \
529      : #RD, #RT, #RS                                                          \
530   );                                                                          \
531   printf("%s :: rd 0x%08x rt 0x%08x rs 0x%08x DSPCtrl 0x%08x\n", instruction, \
532          out, RTval, RSval, dspCtrl);                                         \
533}
534
535#define TESTDSPINST_RD_RT_RS_NODSPC(instruction, RTval, RSval, RD, RT, RS)  \
536{                                                                           \
537   int out = 0xdeadbeef;                                                    \
538   __asm__ volatile(                                                        \
539      ".set dsp; \n\t"                                                      \
540      "li $" #RD ", 0 \n\t"                                                 \
541      "move $" #RT ", %1 \n\t"                                              \
542      "move $" #RS ", %2 \n\t"                                              \
543      instruction " \n\t"                                                   \
544      "move %0, $" #RD " \n\t"                                              \
545      : "=&r" (out)                                                         \
546      : "r"(RTval), "r"(RSval)                                              \
547      : #RD, #RT, #RS                                                       \
548   );                                                                       \
549   printf("%s :: rd 0x%08x rt 0x%08x rs 0x%08x\n", instruction, out, RTval, \
550          RSval);                                                           \
551}
552
553int main(int argc, char **argv)
554{
555#if (__mips==32) && (__mips_isa_rev>=2)
556   printf("-------- ABSQ_S.PH --------\n");
557   TESTDSPINST_RD_RT_DSPC("absq_s.ph $t0, $t1", 0x00000000, t0, t1);
558   TESTDSPINST_RD_RT_DSPC("absq_s.ph $t2, $t3", 0x00000286, t2, t3);
559   TESTDSPINST_RD_RT_DSPC("absq_s.ph $t4, $t1", 0xfabc2435, t4, t1);
560   TESTDSPINST_RD_RT_DSPC("absq_s.ph $t6, $t7", 0x73468000, t6, t7);
561   TESTDSPINST_RD_RT_DSPC("absq_s.ph $t5, $t3", 0x80000000, t5, t3);
562   TESTDSPINST_RD_RT_DSPC("absq_s.ph $t2, $t4", 0xffffffff, t2, t4);
563   TESTDSPINST_RD_RT_DSPC("absq_s.ph $t0, $t8", 0xfff45fff, t0, t8);
564   TESTDSPINST_RD_RT_DSPC("absq_s.ph $t4, $t4", 0x00000555, t4, t4);
565   TESTDSPINST_RD_RT_DSPC("absq_s.ph $t0, $t1", 0x23534870, t0, t1);
566   TESTDSPINST_RD_RT_DSPC("absq_s.ph $t2, $t3", 0x0555adec, t2, t3);
567   TESTDSPINST_RD_RT_DSPC("absq_s.ph $t4, $t1", 0x980b7cde, t4, t1);
568   TESTDSPINST_RD_RT_DSPC("absq_s.ph $t6, $t7", 0xf973437b, t6, t7);
569   TESTDSPINST_RD_RT_DSPC("absq_s.ph $t5, $t3", 0x23c54b6e, t5, t3);
570   TESTDSPINST_RD_RT_DSPC("absq_s.ph $t2, $t4", 0x55555555, t2, t4);
571   TESTDSPINST_RD_RT_DSPC("absq_s.ph $t0, $t8", 0xc4dbfe20, t0, t8);
572   TESTDSPINST_RD_RT_DSPC("absq_s.ph $t4, $t4", 0x734680bc, t4, t4);
573   TESTDSPINST_RD_RT_DSPC("absq_s.ph $t0, $t1", 0x00354565, t0, t1);
574   TESTDSPINST_RD_RT_DSPC("absq_s.ph $t2, $t3", 0xbacabaca, t2, t3);
575   TESTDSPINST_RD_RT_DSPC("absq_s.ph $t4, $t1", 0xdba38ec9, t4, t1);
576   TESTDSPINST_RD_RT_DSPC("absq_s.ph $t6, $t7", 0x0b300286, t6, t7);
577   TESTDSPINST_RD_RT_DSPC("absq_s.ph $t5, $t3", 0xabababab, t5, t3);
578   TESTDSPINST_RD_RT_DSPC("absq_s.ph $t2, $t4", 0x00086755, t2, t4);
579   TESTDSPINST_RD_RT_DSPC("absq_s.ph $t0, $t8", 0x8f8f8f80, t0, t8);
580   TESTDSPINST_RD_RT_DSPC("absq_s.ph $t4, $t4", 0xeeeeeeee, t4, t4);
581   TESTDSPINST_RD_RT_DSPC("absq_s.ph $t0, $t1", 0x1bdbdbdb, t0, t1);
582   TESTDSPINST_RD_RT_DSPC("absq_s.ph $t2, $t3", 0xdecadeca, t2, t3);
583   TESTDSPINST_RD_RT_DSPC("absq_s.ph $t4, $t1", 0x93474bde, t4, t1);
584   TESTDSPINST_RD_RT_DSPC("absq_s.ph $t6, $t7", 0xfabfabfa, t6, t7);
585   TESTDSPINST_RD_RT_DSPC("absq_s.ph $t5, $t3", 0x083b3571, t5, t3);
586   TESTDSPINST_RD_RT_DSPC("absq_s.ph $t2, $t4", 0xb9743941, t2, t4);
587   TESTDSPINST_RD_RT_DSPC("absq_s.ph $t0, $t8", 0xbc80f924, t0, t8);
588   TESTDSPINST_RD_RT_DSPC("absq_s.ph $t4, $t4", 0xcc3c201c, t4, t4);
589   TESTDSPINST_RD_RT_DSPC("absq_s.ph $t0, $t1", 0x1ebaf88e, t0, t1);
590   TESTDSPINST_RD_RT_DSPC("absq_s.ph $t2, $t3", 0x722d5e20, t2, t3);
591   TESTDSPINST_RD_RT_DSPC("absq_s.ph $t4, $t1", 0xa1d6f791, t4, t1);
592   TESTDSPINST_RD_RT_DSPC("absq_s.ph $t6, $t7", 0x7b11bee7, t6, t7);
593   TESTDSPINST_RD_RT_DSPC("absq_s.ph $t5, $t3", 0xa5631488, t5, t3);
594   TESTDSPINST_RD_RT_DSPC("absq_s.ph $t2, $t4", 0xb10bcc65, t2, t4);
595   TESTDSPINST_RD_RT_DSPC("absq_s.ph $t0, $t8", 0x73f39fca, t0, t8);
596   TESTDSPINST_RD_RT_DSPC("absq_s.ph $t4, $t4", 0x80008000, t4, t4);
597   TESTDSPINST_RD_RT_DSPC("absq_s.ph $t0, $t1",     -23456, t0, t1);
598   TESTDSPINST_RD_RT_DSPC("absq_s.ph $t2, $t3",  123498746, t2, t3);
599   TESTDSPINST_RD_RT_DSPC("absq_s.ph $t4, $t1",        -13, t4, t1);
600   TESTDSPINST_RD_RT_DSPC("absq_s.ph $t6, $t7",       -237, t6, t7);
601
602   printf("-------- ABSQ_S.W --------\n");
603   TESTDSPINST_RD_RT_DSPC("absq_s.w $t0, $t1", 0x00000000, t0, t1);
604   TESTDSPINST_RD_RT_DSPC("absq_s.w $t2, $t3", 0x00000286, t2, t3);
605   TESTDSPINST_RD_RT_DSPC("absq_s.w $t4, $t1", 0xfabc2435, t4, t1);
606   TESTDSPINST_RD_RT_DSPC("absq_s.w $t6, $t7", 0x73468000, t6, t7);
607   TESTDSPINST_RD_RT_DSPC("absq_s.w $t5, $t3", 0x80000000, t5, t3);
608   TESTDSPINST_RD_RT_DSPC("absq_s.w $t2, $t4", 0xffffffff, t2, t4);
609   TESTDSPINST_RD_RT_DSPC("absq_s.w $t0, $t8", 0xfff45fff, t0, t8);
610   TESTDSPINST_RD_RT_DSPC("absq_s.w $t4, $t4", 0x00000555, t4, t4);
611   TESTDSPINST_RD_RT_DSPC("absq_s.w $t0, $t1", 0x23534870, t0, t1);
612   TESTDSPINST_RD_RT_DSPC("absq_s.w $t2, $t3", 0x0555adec, t2, t3);
613   TESTDSPINST_RD_RT_DSPC("absq_s.w $t4, $t1", 0x980b7cde, t4, t1);
614   TESTDSPINST_RD_RT_DSPC("absq_s.w $t6, $t7", 0xf973437b, t6, t7);
615   TESTDSPINST_RD_RT_DSPC("absq_s.w $t5, $t3", 0x23c54b6e, t5, t3);
616   TESTDSPINST_RD_RT_DSPC("absq_s.w $t2, $t4", 0x55555555, t2, t4);
617   TESTDSPINST_RD_RT_DSPC("absq_s.w $t0, $t8", 0xc4dbfe20, t0, t8);
618   TESTDSPINST_RD_RT_DSPC("absq_s.w $t4, $t4", 0x734680bc, t4, t4);
619   TESTDSPINST_RD_RT_DSPC("absq_s.w $t0, $t1", 0x00354565, t0, t1);
620   TESTDSPINST_RD_RT_DSPC("absq_s.w $t2, $t3", 0xbacabaca, t2, t3);
621   TESTDSPINST_RD_RT_DSPC("absq_s.w $t4, $t1", 0xdba38ec9, t4, t1);
622   TESTDSPINST_RD_RT_DSPC("absq_s.w $t6, $t7", 0x0b300286, t6, t7);
623   TESTDSPINST_RD_RT_DSPC("absq_s.w $t5, $t3", 0xabababab, t5, t3);
624   TESTDSPINST_RD_RT_DSPC("absq_s.w $t2, $t4", 0x00086755, t2, t4);
625   TESTDSPINST_RD_RT_DSPC("absq_s.w $t0, $t8", 0x8f8f8f80, t0, t8);
626   TESTDSPINST_RD_RT_DSPC("absq_s.w $t4, $t4", 0xeeeeeeee, t4, t4);
627   TESTDSPINST_RD_RT_DSPC("absq_s.w $t0, $t1", 0x1bdbdbdb, t0, t1);
628   TESTDSPINST_RD_RT_DSPC("absq_s.w $t2, $t3", 0xdecadeca, t2, t3);
629   TESTDSPINST_RD_RT_DSPC("absq_s.w $t4, $t1", 0x93474bde, t4, t1);
630   TESTDSPINST_RD_RT_DSPC("absq_s.w $t6, $t7", 0xfabfabfa, t6, t7);
631   TESTDSPINST_RD_RT_DSPC("absq_s.w $t5, $t3", 0x083b3571, t5, t3);
632   TESTDSPINST_RD_RT_DSPC("absq_s.w $t2, $t4", 0xb9743941, t2, t4);
633   TESTDSPINST_RD_RT_DSPC("absq_s.w $t0, $t8", 0xbc80f924, t0, t8);
634   TESTDSPINST_RD_RT_DSPC("absq_s.w $t4, $t4", 0xcc3c201c, t4, t4);
635   TESTDSPINST_RD_RT_DSPC("absq_s.w $t0, $t1", 0x1ebaf88e, t0, t1);
636   TESTDSPINST_RD_RT_DSPC("absq_s.w $t2, $t3", 0x722d5e20, t2, t3);
637   TESTDSPINST_RD_RT_DSPC("absq_s.w $t4, $t1", 0xa1d6f791, t4, t1);
638   TESTDSPINST_RD_RT_DSPC("absq_s.w $t6, $t7", 0x7b11bee7, t6, t7);
639   TESTDSPINST_RD_RT_DSPC("absq_s.w $t5, $t3", 0xa5631488, t5, t3);
640   TESTDSPINST_RD_RT_DSPC("absq_s.w $t2, $t4", 0xb10bcc65, t2, t4);
641   TESTDSPINST_RD_RT_DSPC("absq_s.w $t0, $t8", 0x73f39fca, t0, t8);
642   TESTDSPINST_RD_RT_DSPC("absq_s.w $t4, $t4", 0x80000000, t4, t4);
643   TESTDSPINST_RD_RT_DSPC("absq_s.w $t0, $t1",     -23456, t0, t1);
644   TESTDSPINST_RD_RT_DSPC("absq_s.w $t2, $t3",  123498746, t2, t3);
645   TESTDSPINST_RD_RT_DSPC("absq_s.w $t4, $t1",        -13, t4, t1);
646   TESTDSPINST_RD_RT_DSPC("absq_s.w $t6, $t7",       -237, t6, t7);
647
648   printf("-------- ADDQ.PH --------\n");
649   TESTDSPINST_RD_RS_RT_DSPC("addq.ph $t0, $t1, $t2", 0x00000000, 0x00000000,
650                             t0, t1, t2);
651   TESTDSPINST_RD_RS_RT_DSPC("addq.ph $t2, $t3, $t4", 0x00045fb2, 0x00000286,
652                             t2, t3, t4);
653   TESTDSPINST_RD_RS_RT_DSPC("addq.ph $t4, $t1, $t5", 0x00002435, 0xffff3421,
654                             t4, t1, t5);
655   TESTDSPINST_RD_RS_RT_DSPC("addq.ph $t6, $t7, $t3", 0x07654cb8, 0x734680bc,
656                             t6, t7, t3);
657   TESTDSPINST_RD_RS_RT_DSPC("addq.ph $t5, $t3, $t2", 0xf973437b, 0x80000000,
658                             t5, t3, t2);
659   TESTDSPINST_RD_RS_RT_DSPC("addq.ph $t2, $t4, $t8", 0x00010001, 0xfa3259ff,
660                             t2, t4, t8);
661   TESTDSPINST_RD_RS_RT_DSPC("addq.ph $t0, $t8, $t0", 0x7fff7322, 0x77ff7fff,
662                             t0, t8, t0);
663   TESTDSPINST_RD_RS_RT_DSPC("addq.ph $t4, $t6, $t1", 0x0034c420, 0x00000555,
664                             t4, t6, t1);
665   TESTDSPINST_RD_RS_RT_DSPC("addq.ph $t2, $t3, $t4", 0x00000004, 1073741824,
666                             t2, t3, t4);
667   TESTDSPINST_RD_RS_RT_DSPC("addq.ph $t4, $t1, $t5", 0x80002435, 0x80003421,
668                             t4, t1, t5);
669   TESTDSPINST_RD_RS_RT_DSPC("addq.ph $t6, $t7, $t3", 0x76548000, 0x73468000,
670                             t6, t7, t3);
671   TESTDSPINST_RD_RS_RT_DSPC("addq.ph $t5, $t3, $t2", 0x80000000, 0x80620020,
672                             t5, t3, t2);
673   TESTDSPINST_RD_RS_RT_DSPC("addq.ph $t2, $t4, $t8", 0x00010001, 0xffffffff,
674                             t2, t4, t8);
675   TESTDSPINST_RD_RS_RT_DSPC("addq.ph $t0, $t8, $t0", 0x7fff7fff, 0x7fff7fff,
676                             t0, t8, t0);
677   TESTDSPINST_RD_RS_RT_DSPC("addq.ph $t4, $t6, $t1", 0x0000c420, 0x00000555,
678                             t4, t6, t1);
679   TESTDSPINST_RD_RS_RT_DSPC("addq.ph $t0, $t1, $t2", 0x000a2300, 0x83bc1900,
680                             t0, t1, t2);
681   TESTDSPINST_RD_RS_RT_DSPC("addq.ph $t2, $t3, $t4", 0x80000000, 0x80000000,
682                             t2, t3, t4);
683   TESTDSPINST_RD_RS_RT_DSPC("addq.ph $t4, $t1, $t5", 0xaaaaaaaa, 0x55555555,
684                             t4, t1, t5);
685   TESTDSPINST_RD_RS_RT_DSPC("addq.ph $t6, $t7, $t3", 0x00000018, 0xffff2435,
686                             t6, t7, t3);
687   TESTDSPINST_RD_RS_RT_DSPC("addq.ph $t5, $t3, $t2", 0xbabababa, 0xabababab,
688                             t5, t3, t2);
689   TESTDSPINST_RD_RS_RT_DSPC("addq.ph $t2, $t4, $t8", 0xf0f0f0f0, 0xfc79b4d2,
690                             t2, t4, t8);
691   TESTDSPINST_RD_RS_RT_DSPC("addq.ph $t0, $t8, $t0", 0xfbde3976, 0x00000000,
692                             t0, t8, t0);
693   TESTDSPINST_RD_RS_RT_DSPC("addq.ph $t4, $t6, $t1", 0x23534870, 0x00354565,
694                             t4, t6, t1);
695   TESTDSPINST_RD_RS_RT_DSPC("addq.ph $t0, $t1, $t2", 0x980b7cde, 0x00086755,
696                             t0, t1, t2);
697   TESTDSPINST_RD_RS_RT_DSPC("addq.ph $t2, $t3, $t4", 0x00000018, 0x8f8f8f8f,
698                             t2, t3, t4);
699   TESTDSPINST_RD_RS_RT_DSPC("addq.ph $t4, $t1, $t5", 0x92784656, 0xeeeeeeee,
700                             t4, t1, t5);
701   TESTDSPINST_RD_RS_RT_DSPC("addq.ph $t6, $t7, $t3", 0xcacacaca, 0x1bdbdbdb,
702                             t6, t7, t3);
703   TESTDSPINST_RD_RS_RT_DSPC("addq.ph $t5, $t3, $t2", 0xbacabaca, 0xdecadeca,
704                             t5, t3, t2);
705   TESTDSPINST_RD_RS_RT_DSPC("addq.ph $t2, $t4, $t8", 0x12fadeb4, 0x93474bde,
706                             t2, t4, t8);
707   TESTDSPINST_RD_RS_RT_DSPC("addq.ph $t0, $t8, $t0", 0x7c000790, 0xfc0007ff,
708                             t0, t8, t0);
709   TESTDSPINST_RD_RS_RT_DSPC("addq.ph $t4, $t6, $t1", 0xffffffff, 0xffffffff,
710                             t4, t6, t1);
711   TESTDSPINST_RD_RS_RT_DSPC("addq.ph $t0, $t1, $t2", 0xf2f4df1f, 0xcb4ab48f,
712                             t0, t1, t2);
713   TESTDSPINST_RD_RS_RT_DSPC("addq.ph $t2, $t3, $t4", 0x435f909a, 0xaf8f7e18,
714                             t2, t3, t4);
715   TESTDSPINST_RD_RS_RT_DSPC("addq.ph $t4, $t1, $t5", 0x2106ba5f, 0x87df4510,
716                             t4, t1, t5);
717   TESTDSPINST_RD_RS_RT_DSPC("addq.ph $t6, $t7, $t3", 0x246a6376, 0xabf4e8e1,
718                             t6, t7, t3);
719   TESTDSPINST_RD_RS_RT_DSPC("addq.ph $t5, $t3, $t2", 0x1046a1a3, 0xf4c0eeac,
720                             t5, t3, t2);
721   TESTDSPINST_RD_RS_RT_DSPC("addq.ph $t2, $t4, $t8", 0x638ca515, 0x006a54f2,
722                             t2, t4, t8);
723   TESTDSPINST_RD_RS_RT_DSPC("addq.ph $t0, $t8, $t0", 0xf63e7a9d, 0x79f74493,
724                             t0, t8, t0);
725   TESTDSPINST_RD_RS_RT_DSPC("addq.ph $t4, $t6, $t1", 0xbd6845cd, 0x9c09e313,
726                             t4, t6, t1);
727
728   printf("-------- ADDQ_S.PH --------\n");
729   TESTDSPINST_RD_RS_RT_DSPC("addq_s.ph $t0, $t1, $t2", 0x00000000, 0x00000000,
730                             t0, t1, t2);
731   TESTDSPINST_RD_RS_RT_DSPC("addq_s.ph $t2, $t3, $t4", 0x00045fb2, 0x00000286,
732                             t2, t3, t4);
733   TESTDSPINST_RD_RS_RT_DSPC("addq_s.ph $t4, $t1, $t5", 0x00002435, 0xffff3421,
734                             t4, t1, t5);
735   TESTDSPINST_RD_RS_RT_DSPC("addq_s.ph $t6, $t7, $t3", 0x07654cb8, 0x734680bc,
736                             t6, t7, t3);
737   TESTDSPINST_RD_RS_RT_DSPC("addq_s.ph $t5, $t3, $t2", 0xf973437b, 0x80000000,
738                             t5, t3, t2);
739   TESTDSPINST_RD_RS_RT_DSPC("addq_s.ph $t0, $t1, $t2", 0x00010001, 0xfa3259ff,
740                             t0, t1, t2);
741   TESTDSPINST_RD_RS_RT_DSPC("addq_s.ph $t2, $t3, $t4", 0x7fff7322, 0x77ff7fff,
742                             t2, t3, t4);
743   TESTDSPINST_RD_RS_RT_DSPC("addq_s.ph $t4, $t1, $t5", 0x0034c420, 0x00000555,
744                             t4, t1, t5);
745   TESTDSPINST_RD_RS_RT_DSPC("addq_s.ph $t6, $t7, $t3", 0x00000004, 1073741824,
746                             t6, t7, t3);
747   TESTDSPINST_RD_RS_RT_DSPC("addq_s.ph $t5, $t3, $t2", 0x80002435, 0x80003421,
748                             t5, t3, t2);
749   TESTDSPINST_RD_RS_RT_DSPC("addq_s.ph $t2, $t4, $t8", 0x76548000, 0x73468000,
750                             t2, t4, t8);
751   TESTDSPINST_RD_RS_RT_DSPC("addq_s.ph $t0, $t8, $t0", 0x80000000, 0x80620020,
752                             t0, t8, t0);
753   TESTDSPINST_RD_RS_RT_DSPC("addq_s.ph $t4, $t6, $t1", 0x00010001, 0xffffffff,
754                             t4, t6, t1);
755   TESTDSPINST_RD_RS_RT_DSPC("addq_s.ph $t2, $t3, $t4", 0x7fff7fff, 0x7fff7fff,
756                             t2, t3, t4);
757   TESTDSPINST_RD_RS_RT_DSPC("addq_s.ph $t4, $t1, $t5", 0x0000c420, 0x00000555,
758                             t4, t1, t5);
759   TESTDSPINST_RD_RS_RT_DSPC("addq_s.ph $t6, $t7, $t3", 0x000a2300, 0x83bc1900,
760                             t6, t7, t3);
761   TESTDSPINST_RD_RS_RT_DSPC("addq_s.ph $t5, $t3, $t2", 0x80000000, 0x80000000,
762                             t5, t3, t2);
763   TESTDSPINST_RD_RS_RT_DSPC("addq_s.ph $t2, $t4, $t8", 0xaaaaaaaa, 0x55555555,
764                             t2, t4, t8);
765   TESTDSPINST_RD_RS_RT_DSPC("addq_s.ph $t0, $t8, $t0", 0x00000018, 0xffff2435,
766                             t0, t8, t0);
767   TESTDSPINST_RD_RS_RT_DSPC("addq_s.ph $t4, $t6, $t1", 0xbabababa, 0xabababab,
768                             t4, t6, t1);
769   TESTDSPINST_RD_RS_RT_DSPC("addq_s.ph $t0, $t1, $t2", 0xf0f0f0f0, 0xfc79b4d2,
770                             t0, t1, t2);
771   TESTDSPINST_RD_RS_RT_DSPC("addq_s.ph $t2, $t3, $t4", 0xfbde3976, 0x00000000,
772                             t2, t3, t4);
773   TESTDSPINST_RD_RS_RT_DSPC("addq_s.ph $t4, $t1, $t5", 0x23534870, 0x00354565,
774                             t4, t1, t5);
775   TESTDSPINST_RD_RS_RT_DSPC("addq_s.ph $t6, $t7, $t3", 0x980b7cde, 0x00086755,
776                             t6, t7, t3);
777   TESTDSPINST_RD_RS_RT_DSPC("addq_s.ph $t5, $t3, $t2", 0x00000018, 0x8f8f8f8f,
778                             t5, t3, t2);
779   TESTDSPINST_RD_RS_RT_DSPC("addq_s.ph $t2, $t4, $t8", 0x92784656, 0xeeeeeeee,
780                             t2, t4, t8);
781   TESTDSPINST_RD_RS_RT_DSPC("addq_s.ph $t0, $t8, $t0", 0xcacacaca, 0x1bdbdbdb,
782                             t0, t8, t0);
783   TESTDSPINST_RD_RS_RT_DSPC("addq_s.ph $t4, $t6, $t1", 0xbacabaca, 0xdecadeca,
784                             t4, t6, t1);
785   TESTDSPINST_RD_RS_RT_DSPC("addq_s.ph $t0, $t1, $t2", 0x12fadeb4, 0x93474bde,
786                             t0, t1, t2);
787   TESTDSPINST_RD_RS_RT_DSPC("addq_s.ph $t2, $t3, $t4", 0x7c000790, 0xfc0007ff,
788                             t2, t3, t4);
789   TESTDSPINST_RD_RS_RT_DSPC("addq_s.ph $t4, $t1, $t5", 0xffffffff, 0xffffffff,
790                             t4, t1, t5);
791   TESTDSPINST_RD_RS_RT_DSPC("addq_s.ph $t6, $t7, $t3", 0xf2f4df1f, 0xcb4ab48f,
792                             t6, t7, t3);
793   TESTDSPINST_RD_RS_RT_DSPC("addq_s.ph $t5, $t3, $t2", 0x435f909a, 0xaf8f7e18,
794                             t5, t3, t2);
795   TESTDSPINST_RD_RS_RT_DSPC("addq_s.ph $t2, $t4, $t8", 0x2106ba5f, 0x87df4510,
796                             t2, t4, t8);
797   TESTDSPINST_RD_RS_RT_DSPC("addq_s.ph $t0, $t8, $t0", 0x246a6376, 0xabf4e8e1,
798                             t0, t8, t0);
799   TESTDSPINST_RD_RS_RT_DSPC("addq_s.ph $t4, $t6, $t1", 0x1046a1a3, 0xf4c0eeac,
800                             t4, t6, t1);
801   TESTDSPINST_RD_RS_RT_DSPC("addq_s.ph $t0, $t1, $t2", 0x638ca515, 0x006a54f2,
802                             t0, t1, t2);
803   TESTDSPINST_RD_RS_RT_DSPC("addq_s.ph $t2, $t3, $t4", 0xf63e7a9d, 0x79f74493,
804                             t2, t3, t4);
805   TESTDSPINST_RD_RS_RT_DSPC("addq_s.ph $t4, $t1, $t5", 0xbd6845cd, 0x9c09e313,
806                             t4, t1, t5);
807   TESTDSPINST_RD_RS_RT_DSPC("addq_s.ph $t6, $t7, $t3", 0x234ba291, 0xbb64981c,
808                             t6, t7, t3);
809   TESTDSPINST_RD_RS_RT_DSPC("addq_s.ph $t5, $t3, $t2", 0x120934de, 0xad2c7601,
810                             t5, t3, t2);
811   TESTDSPINST_RD_RS_RT_DSPC("addq_s.ph $t2, $t4, $t8", 0xf5643908, 0xbaff3492,
812                             t2, t4, t8);
813   TESTDSPINST_RD_RS_RT_DSPC("addq_s.ph $t0, $t8, $t0", 0x88503331, 0xd60e34a2,
814                             t0, t8, t0);
815   TESTDSPINST_RD_RS_RT_DSPC("addq_s.ph $t4, $t6, $t1", 0x7b5309ac, 0xc5487201,
816                             t4, t6, t1);
817
818   printf("-------- ADDQ_S.W --------\n");
819   TESTDSPINST_RD_RS_RT_DSPC("addq_s.w $t0, $t1, $t2", 0x00000000, 0x00000000,
820                             t0, t1, t2);
821   TESTDSPINST_RD_RS_RT_DSPC("addq_s.w $t2, $t3, $t4", 0x00045fb2, 0x00000286,
822                             t2, t3, t4);
823   TESTDSPINST_RD_RS_RT_DSPC("addq_s.w $t4, $t1, $t5", 0x00002435, 0xffff3421,
824                             t4, t1, t5);
825   TESTDSPINST_RD_RS_RT_DSPC("addq_s.w $t6, $t7, $t3", 0x07654cb8, 0x734680bc,
826                             t6, t7, t3);
827   TESTDSPINST_RD_RS_RT_DSPC("addq_s.w $t5, $t3, $t2", 0xf973437b, 0x80000000,
828                             t5, t3, t2);
829   TESTDSPINST_RD_RS_RT_DSPC("addq_s.w $t2, $t4, $t8", 0x00010001, 0xfa3259ff,
830                             t2, t4, t8);
831   TESTDSPINST_RD_RS_RT_DSPC("addq_s.w $t0, $t8, $t0", 0x7fff7322, 0x77ff7fff,
832                             t0, t8, t0);
833   TESTDSPINST_RD_RS_RT_DSPC("addq_s.w $t4, $t6, $t1", 0x0034c420, 0x00000555,
834                             t4, t6, t1);
835   TESTDSPINST_RD_RS_RT_DSPC("addq_s.w $t2, $t3, $t4", 0x00000004, 1073741824,
836                             t2, t3, t4);
837   TESTDSPINST_RD_RS_RT_DSPC("addq_s.w $t4, $t1, $t5", 0x80002435, 0x80003421,
838                             t4, t1, t5);
839   TESTDSPINST_RD_RS_RT_DSPC("addq_s.w $t6, $t7, $t3", 0x76548000, 0x73468000,
840                             t6, t7, t3);
841   TESTDSPINST_RD_RS_RT_DSPC("addq_s.w $t5, $t3, $t2", 0x80000000, 0x80620020,
842                             t5, t3, t2);
843   TESTDSPINST_RD_RS_RT_DSPC("addq_s.w $t2, $t4, $t8", 0x00010001, 0xffffffff,
844                             t2, t4, t8);
845   TESTDSPINST_RD_RS_RT_DSPC("addq_s.w $t0, $t8, $t0", 0x7fff7fff, 0x7fff7fff,
846                             t0, t8, t0);
847   TESTDSPINST_RD_RS_RT_DSPC("addq_s.w $t4, $t6, $t1", 0x0000c420, 0x00000555,
848                             t4, t6, t1);
849   TESTDSPINST_RD_RS_RT_DSPC("addq_s.w $t0, $t1, $t2", 0x000a2300, 0x83bc1900,
850                             t0, t1, t2);
851   TESTDSPINST_RD_RS_RT_DSPC("addq_s.w $t2, $t3, $t4", 0x80000000, 0x80000000,
852                             t2, t3, t4);
853   TESTDSPINST_RD_RS_RT_DSPC("addq_s.w $t4, $t1, $t5", 0xaaaaaaaa, 0x55555555,
854                             t4, t1, t5);
855   TESTDSPINST_RD_RS_RT_DSPC("addq_s.w $t6, $t7, $t3", 0x00000018, 0xffff2435,
856                             t6, t7, t3);
857   TESTDSPINST_RD_RS_RT_DSPC("addq_s.w $t5, $t3, $t2", 0xbabababa, 0xabababab,
858                             t5, t3, t2);
859   TESTDSPINST_RD_RS_RT_DSPC("addq_s.w $t2, $t4, $t8", 0xf0f0f0f0, 0xfc79b4d2,
860                             t2, t4, t8);
861   TESTDSPINST_RD_RS_RT_DSPC("addq_s.w $t0, $t8, $t0", 0xfbde3976, 0x00000000,
862                             t0, t8, t0);
863   TESTDSPINST_RD_RS_RT_DSPC("addq_s.w $t4, $t6, $t1", 0x23534870, 0x00354565,
864                             t4, t6, t1);
865   TESTDSPINST_RD_RS_RT_DSPC("addq_s.w $t0, $t1, $t2", 0x980b7cde, 0x00086755,
866                             t0, t1, t2);
867   TESTDSPINST_RD_RS_RT_DSPC("addq_s.w $t2, $t3, $t4", 0x00000018, 0x8f8f8f8f,
868                             t2, t3, t4);
869   TESTDSPINST_RD_RS_RT_DSPC("addq_s.w $t4, $t1, $t5", 0x92784656, 0xeeeeeeee,
870                             t4, t1, t5);
871   TESTDSPINST_RD_RS_RT_DSPC("addq_s.w $t6, $t7, $t3", 0xcacacaca, 0x1bdbdbdb,
872                             t6, t7, t3);
873   TESTDSPINST_RD_RS_RT_DSPC("addq_s.w $t5, $t3, $t2", 0xbacabaca, 0xdecadeca,
874                             t5, t3, t2);
875   TESTDSPINST_RD_RS_RT_DSPC("addq_s.w $t2, $t4, $t8", 0x12fadeb4, 0x93474bde,
876                             t2, t4, t8);
877   TESTDSPINST_RD_RS_RT_DSPC("addq_s.w $t0, $t8, $t0", 0x7c000790, 0xfc0007ff,
878                             t0, t8, t0);
879   TESTDSPINST_RD_RS_RT_DSPC("addq_s.w $t4, $t6, $t1", 0xffffffff, 0xffffffff,
880                             t4, t6, t1);
881   TESTDSPINST_RD_RS_RT_DSPC("addq_s.w $t0, $t1, $t2", 0xf2f4df1f, 0xcb4ab48f,
882                             t0, t1, t2);
883   TESTDSPINST_RD_RS_RT_DSPC("addq_s.w $t2, $t3, $t4", 0x435f909a, 0xaf8f7e18,
884                             t2, t3, t4);
885   TESTDSPINST_RD_RS_RT_DSPC("addq_s.w $t4, $t1, $t5", 0x2106ba5f, 0x87df4510,
886                             t4, t1, t5);
887   TESTDSPINST_RD_RS_RT_DSPC("addq_s.w $t6, $t7, $t3", 0x246a6376, 0xabf4e8e1,
888                             t6, t7, t3);
889   TESTDSPINST_RD_RS_RT_DSPC("addq_s.w $t5, $t3, $t2", 0x1046a1a3, 0xf4c0eeac,
890                             t5, t3, t2);
891   TESTDSPINST_RD_RS_RT_DSPC("addq_s.w $t2, $t4, $t8", 0x638ca515, 0x006a54f2,
892                             t2, t4, t8);
893   TESTDSPINST_RD_RS_RT_DSPC("addq_s.w $t0, $t8, $t0", 0xf63e7a9d, 0x79f74493,
894                             t0, t8, t0);
895   TESTDSPINST_RD_RS_RT_DSPC("addq_s.w $t4, $t6, $t1", 0xbd6845cd, 0x9c09e313,
896                             t4, t6, t1);
897
898   printf("-------- ADDSC --------\n");
899   TESTDSPINST_RD_RS_RT_DSPC("addsc $t0, $t1, $t2", 0x00000000, 0x00000000,
900                             t0, t1, t2);
901   TESTDSPINST_RD_RS_RT_DSPC("addsc $t2, $t3, $t4", 0x00045fb2, 0x00000286,
902                             t2, t3, t4);
903   TESTDSPINST_RD_RS_RT_DSPC("addsc $t4, $t1, $t5", 0x00002435, 0xffff3421,
904                             t4, t1, t5);
905   TESTDSPINST_RD_RS_RT_DSPC("addsc $t6, $t7, $t3", 0x07654cb8, 0x734680bc,
906                             t6, t7, t3);
907   TESTDSPINST_RD_RS_RT_DSPC("addsc $t5, $t3, $t2", 0xf973437b, 0x80000000,
908                             t5, t3, t2);
909   TESTDSPINST_RD_RS_RT_DSPC("addsc $t2, $t4, $t8", 0x00010001, 0xfa3259ff,
910                             t2, t4, t8);
911   TESTDSPINST_RD_RS_RT_DSPC("addsc $t0, $t8, $t0", 0x7fff7322, 0x77ff7fff,
912                             t0, t8, t0);
913   TESTDSPINST_RD_RS_RT_DSPC("addsc $t4, $t6, $t1", 0x0034c420, 0x00000555,
914                             t4, t6, t1);
915   TESTDSPINST_RD_RS_RT_DSPC("addsc $t2, $t3, $t4", 0x00000004, 1073741824,
916                             t2, t3, t4);
917   TESTDSPINST_RD_RS_RT_DSPC("addsc $t4, $t1, $t5", 0x80002435, 0x80003421,
918                             t4, t1, t5);
919   TESTDSPINST_RD_RS_RT_DSPC("addsc $t6, $t7, $t3", 0x76548000, 0x73468000,
920                             t6, t7, t3);
921   TESTDSPINST_RD_RS_RT_DSPC("addsc $t5, $t3, $t2", 0x80000000, 0x80620020,
922                             t5, t3, t2);
923   TESTDSPINST_RD_RS_RT_DSPC("addsc $t2, $t4, $t8", 0x00010001, 0xffffffff,
924                             t2, t4, t8);
925   TESTDSPINST_RD_RS_RT_DSPC("addsc $t0, $t8, $t0", 0x7fff7fff, 0x7fff7fff,
926                             t0, t8, t0);
927   TESTDSPINST_RD_RS_RT_DSPC("addsc $t4, $t6, $t1", 0x0000c420, 0x00000555,
928                             t4, t6, t1);
929   TESTDSPINST_RD_RS_RT_DSPC("addsc $t0, $t1, $t2", 0x000a2300, 0x83bc1900,
930                             t0, t1, t2);
931   TESTDSPINST_RD_RS_RT_DSPC("addsc $t2, $t3, $t4", 0x80000000, 0x80000000,
932                             t2, t3, t4);
933   TESTDSPINST_RD_RS_RT_DSPC("addsc $t4, $t1, $t5", 0xaaaaaaaa, 0x55555555,
934                             t4, t1, t5);
935   TESTDSPINST_RD_RS_RT_DSPC("addsc $t6, $t7, $t3", 0x00000018, 0xffff2435,
936                             t6, t7, t3);
937   TESTDSPINST_RD_RS_RT_DSPC("addsc $t5, $t3, $t2", 0xbabababa, 0xabababab,
938                             t5, t3, t2);
939   TESTDSPINST_RD_RS_RT_DSPC("addsc $t2, $t4, $t8", 0xf0f0f0f0, 0xfc79b4d2,
940                             t2, t4, t8);
941   TESTDSPINST_RD_RS_RT_DSPC("addsc $t0, $t8, $t0", 0xfbde3976, 0x00000000,
942                             t0, t8, t0);
943   TESTDSPINST_RD_RS_RT_DSPC("addsc $t4, $t6, $t1", 0x23534870, 0x00354565,
944                             t4, t6, t1);
945   TESTDSPINST_RD_RS_RT_DSPC("addsc $t0, $t1, $t2", 0x980b7cde, 0x00086755,
946                             t0, t1, t2);
947   TESTDSPINST_RD_RS_RT_DSPC("addsc $t2, $t3, $t4", 0x00000018, 0x8f8f8f8f,
948                             t2, t3, t4);
949   TESTDSPINST_RD_RS_RT_DSPC("addsc $t4, $t1, $t5", 0x92784656, 0xeeeeeeee,
950                             t4, t1, t5);
951   TESTDSPINST_RD_RS_RT_DSPC("addsc $t6, $t7, $t3", 0xcacacaca, 0x1bdbdbdb,
952                             t6, t7, t3);
953   TESTDSPINST_RD_RS_RT_DSPC("addsc $t5, $t3, $t2", 0xbacabaca, 0xdecadeca,
954                             t5, t3, t2);
955   TESTDSPINST_RD_RS_RT_DSPC("addsc $t2, $t4, $t8", 0x12fadeb4, 0x93474bde,
956                             t2, t4, t8);
957   TESTDSPINST_RD_RS_RT_DSPC("addsc $t0, $t8, $t0", 0x7c000790, 0xfc0007ff,
958                             t0, t8, t0);
959   TESTDSPINST_RD_RS_RT_DSPC("addsc $t4, $t6, $t1", 0xffffffff, 0xffffffff,
960                             t4, t6, t1);
961   TESTDSPINST_RD_RS_RT_DSPC("addsc $t0, $t1, $t2", 0xf2f4df1f, 0xcb4ab48f,
962                             t0, t1, t2);
963   TESTDSPINST_RD_RS_RT_DSPC("addsc $t2, $t3, $t4", 0x435f909a, 0xaf8f7e18,
964                             t2, t3, t4);
965   TESTDSPINST_RD_RS_RT_DSPC("addsc $t4, $t1, $t5", 0x2106ba5f, 0x87df4510,
966                             t4, t1, t5);
967   TESTDSPINST_RD_RS_RT_DSPC("addsc $t6, $t7, $t3", 0x246a6376, 0xabf4e8e1,
968                             t6, t7, t3);
969   TESTDSPINST_RD_RS_RT_DSPC("addsc $t5, $t3, $t2", 0x1046a1a3, 0xf4c0eeac,
970                             t5, t3, t2);
971   TESTDSPINST_RD_RS_RT_DSPC("addsc $t2, $t4, $t8", 0x638ca515, 0x006a54f2,
972                             t2, t4, t8);
973   TESTDSPINST_RD_RS_RT_DSPC("addsc $t0, $t8, $t0", 0xf63e7a9d, 0x79f74493,
974                             t0, t8, t0);
975   TESTDSPINST_RD_RS_RT_DSPC("addsc $t4, $t6, $t1", 0xbd6845cd, 0x9c09e313,
976                             t4, t6, t1);
977
978   printf("-------- ADDU.QB --------\n");
979   TESTDSPINST_RD_RS_RT_DSPC("addu.qb $t0, $t1, $t2", 0x00000000, 0x00000000,
980                             t0, t1, t2);
981   TESTDSPINST_RD_RS_RT_DSPC("addu.qb $t2, $t3, $t4", 0x00045fb2, 0x00000286,
982                             t2, t3, t4);
983   TESTDSPINST_RD_RS_RT_DSPC("addu.qb $t4, $t1, $t5", 0x00002435, 0xffff3421,
984                             t4, t1, t5);
985   TESTDSPINST_RD_RS_RT_DSPC("addu.qb $t6, $t7, $t3", 0x07654cb8, 0x734680bc,
986                             t6, t7, t3);
987   TESTDSPINST_RD_RS_RT_DSPC("addu.qb $t5, $t3, $t2", 0xf973437b, 0x80000000,
988                             t5, t3, t2);
989   TESTDSPINST_RD_RS_RT_DSPC("addu.qb $t2, $t4, $t8", 0x00010001, 0xfa3259ff,
990                             t2, t4, t8);
991   TESTDSPINST_RD_RS_RT_DSPC("addu.qb $t0, $t8, $t0", 0x7fff7322, 0x77ff7fff,
992                             t0, t8, t0);
993   TESTDSPINST_RD_RS_RT_DSPC("addu.qb $t4, $t6, $t1", 0x0034c420, 0x00000555,
994                             t4, t6, t1);
995   TESTDSPINST_RD_RS_RT_DSPC("addu.qb $t2, $t3, $t4", 0x00000004, 1073741824,
996                             t2, t3, t4);
997   TESTDSPINST_RD_RS_RT_DSPC("addu.qb $t4, $t1, $t5", 0x80002435, 0x80003421,
998                             t4, t1, t5);
999   TESTDSPINST_RD_RS_RT_DSPC("addu.qb $t6, $t7, $t3", 0x76548000, 0x73468000,
1000                             t6, t7, t3);
1001   TESTDSPINST_RD_RS_RT_DSPC("addu.qb $t5, $t3, $t2", 0x80000000, 0x80620020,
1002                             t5, t3, t2);
1003   TESTDSPINST_RD_RS_RT_DSPC("addu.qb $t2, $t4, $t8", 0x00010001, 0xffffffff,
1004                             t2, t4, t8);
1005   TESTDSPINST_RD_RS_RT_DSPC("addu.qb $t0, $t8, $t0", 0x7fff7fff, 0x7fff7fff,
1006                             t0, t8, t0);
1007   TESTDSPINST_RD_RS_RT_DSPC("addu.qb $t4, $t6, $t1", 0x0000c420, 0x00000555,
1008                             t4, t6, t1);
1009   TESTDSPINST_RD_RS_RT_DSPC("addu.qb $t0, $t1, $t2", 0x000a2300, 0x83bc1900,
1010                             t0, t1, t2);
1011   TESTDSPINST_RD_RS_RT_DSPC("addu.qb $t2, $t3, $t4", 0x80000000, 0x80000000,
1012                             t2, t3, t4);
1013   TESTDSPINST_RD_RS_RT_DSPC("addu.qb $t4, $t1, $t5", 0xaaaaaaaa, 0x55555555,
1014                             t4, t1, t5);
1015   TESTDSPINST_RD_RS_RT_DSPC("addu.qb $t6, $t7, $t3", 0x00000018, 0xffff2435,
1016                             t6, t7, t3);
1017   TESTDSPINST_RD_RS_RT_DSPC("addu.qb $t5, $t3, $t2", 0xbabababa, 0xabababab,
1018                             t5, t3, t2);
1019   TESTDSPINST_RD_RS_RT_DSPC("addu.qb $t2, $t4, $t8", 0xf0f0f0f0, 0xfc79b4d2,
1020                             t2, t4, t8);
1021   TESTDSPINST_RD_RS_RT_DSPC("addu.qb $t0, $t8, $t0", 0xfbde3976, 0x00000000,
1022                             t0, t8, t0);
1023   TESTDSPINST_RD_RS_RT_DSPC("addu.qb $t4, $t6, $t1", 0x23534870, 0x00354565,
1024                             t4, t6, t1);
1025   TESTDSPINST_RD_RS_RT_DSPC("addu.qb $t0, $t1, $t2", 0x980b7cde, 0x00086755,
1026                             t0, t1, t2);
1027   TESTDSPINST_RD_RS_RT_DSPC("addu.qb $t2, $t3, $t4", 0x00000018, 0x8f8f8f8f,
1028                             t2, t3, t4);
1029   TESTDSPINST_RD_RS_RT_DSPC("addu.qb $t4, $t1, $t5", 0x92784656, 0xeeeeeeee,
1030                             t4, t1, t5);
1031   TESTDSPINST_RD_RS_RT_DSPC("addu.qb $t6, $t7, $t3", 0xcacacaca, 0x1bdbdbdb,
1032                             t6, t7, t3);
1033   TESTDSPINST_RD_RS_RT_DSPC("addu.qb $t5, $t3, $t2", 0xbacabaca, 0xdecadeca,
1034                             t5, t3, t2);
1035   TESTDSPINST_RD_RS_RT_DSPC("addu.qb $t2, $t4, $t8", 0x12fadeb4, 0x93474bde,
1036                             t2, t4, t8);
1037   TESTDSPINST_RD_RS_RT_DSPC("addu.qb $t0, $t8, $t0", 0x7c000790, 0xfc0007ff,
1038                             t0, t8, t0);
1039   TESTDSPINST_RD_RS_RT_DSPC("addu.qb $t4, $t6, $t1", 0xffffffff, 0xffffffff,
1040                             t4, t6, t1);
1041   TESTDSPINST_RD_RS_RT_DSPC("addu.qb $t0, $t1, $t2", 0xf2f4df1f, 0xcb4ab48f,
1042                             t0, t1, t2);
1043   TESTDSPINST_RD_RS_RT_DSPC("addu.qb $t2, $t3, $t4", 0x435f909a, 0xaf8f7e18,
1044                             t2, t3, t4);
1045   TESTDSPINST_RD_RS_RT_DSPC("addu.qb $t4, $t1, $t5", 0x2106ba5f, 0x87df4510,
1046                             t4, t1, t5);
1047   TESTDSPINST_RD_RS_RT_DSPC("addu.qb $t6, $t7, $t3", 0x246a6376, 0xabf4e8e1,
1048                             t6, t7, t3);
1049   TESTDSPINST_RD_RS_RT_DSPC("addu.qb $t5, $t3, $t2", 0x1046a1a3, 0xf4c0eeac,
1050                             t5, t3, t2);
1051   TESTDSPINST_RD_RS_RT_DSPC("addu.qb $t2, $t4, $t8", 0x638ca515, 0x006a54f2,
1052                             t2, t4, t8);
1053   TESTDSPINST_RD_RS_RT_DSPC("addu.qb $t0, $t8, $t0", 0xf63e7a9d, 0x79f74493,
1054                             t0, t8, t0);
1055   TESTDSPINST_RD_RS_RT_DSPC("addu.qb $t4, $t6, $t1", 0xbd6845cd, 0x9c09e313,
1056                             t4, t6, t1);
1057
1058   printf("-------- ADDU_S.QB --------\n");
1059   TESTDSPINST_RD_RS_RT_DSPC("addu_s.qb $t0, $t1, $t2", 0x00000000, 0x00000000,
1060                             t0, t1, t2);
1061   TESTDSPINST_RD_RS_RT_DSPC("addu_s.qb $t2, $t3, $t4", 0x00045fb2, 0x00000286,
1062                             t2, t3, t4);
1063   TESTDSPINST_RD_RS_RT_DSPC("addu_s.qb $t4, $t1, $t5", 0x00002435, 0xffff3421,
1064                             t4, t1, t5);
1065   TESTDSPINST_RD_RS_RT_DSPC("addu_s.qb $t6, $t7, $t3", 0x07654cb8, 0x734680bc,
1066                             t6, t7, t3);
1067   TESTDSPINST_RD_RS_RT_DSPC("addu_s.qb $t5, $t3, $t2", 0xf973437b, 0x80000000,
1068                             t5, t3, t2);
1069   TESTDSPINST_RD_RS_RT_DSPC("addu_s.qb $t2, $t4, $t8", 0x00010001, 0xfa3259ff,
1070                             t2, t4, t8);
1071   TESTDSPINST_RD_RS_RT_DSPC("addu_s.qb $t0, $t8, $t0", 0x7fff7322, 0x77ff7fff,
1072                             t0, t8, t0);
1073   TESTDSPINST_RD_RS_RT_DSPC("addu_s.qb $t4, $t6, $t1", 0x0034c420, 0x00000555,
1074                             t4, t6, t1);
1075   TESTDSPINST_RD_RS_RT_DSPC("addu_s.qb $t2, $t3, $t4", 0x00000004, 1073741824,
1076                             t2, t3, t4);
1077   TESTDSPINST_RD_RS_RT_DSPC("addu_s.qb $t4, $t1, $t5", 0x80002435, 0x80003421,
1078                             t4, t1, t5);
1079   TESTDSPINST_RD_RS_RT_DSPC("addu_s.qb $t6, $t7, $t3", 0x76548000, 0x73468000,
1080                             t6, t7, t3);
1081   TESTDSPINST_RD_RS_RT_DSPC("addu_s.qb $t5, $t3, $t2", 0x80000000, 0x80620020,
1082                             t5, t3, t2);
1083   TESTDSPINST_RD_RS_RT_DSPC("addu_s.qb $t2, $t4, $t8", 0x00010001, 0xffffffff,
1084                             t2, t4, t8);
1085   TESTDSPINST_RD_RS_RT_DSPC("addu_s.qb $t0, $t8, $t0", 0x7fff7fff, 0x7fff7fff,
1086                             t0, t8, t0);
1087   TESTDSPINST_RD_RS_RT_DSPC("addu_s.qb $t4, $t6, $t1", 0x0000c420, 0x00000555,
1088                             t4, t6, t1);
1089   TESTDSPINST_RD_RS_RT_DSPC("addu_s.qb $t0, $t1, $t2", 0x000a2300, 0x83bc1900,
1090                             t0, t1, t2);
1091   TESTDSPINST_RD_RS_RT_DSPC("addu_s.qb $t2, $t3, $t4", 0x80000000, 0x80000000,
1092                             t2, t3, t4);
1093   TESTDSPINST_RD_RS_RT_DSPC("addu_s.qb $t4, $t1, $t5", 0xaaaaaaaa, 0x55555555,
1094                             t4, t1, t5);
1095   TESTDSPINST_RD_RS_RT_DSPC("addu_s.qb $t6, $t7, $t3", 0x00000018, 0xffff2435,
1096                             t6, t7, t3);
1097   TESTDSPINST_RD_RS_RT_DSPC("addu_s.qb $t5, $t3, $t2", 0xbabababa, 0xabababab,
1098                             t5, t3, t2);
1099   TESTDSPINST_RD_RS_RT_DSPC("addu_s.qb $t2, $t4, $t8", 0xf0f0f0f0, 0xfc79b4d2,
1100                             t2, t4, t8);
1101   TESTDSPINST_RD_RS_RT_DSPC("addu_s.qb $t0, $t8, $t0", 0xfbde3976, 0x00000000,
1102                             t0, t8, t0);
1103   TESTDSPINST_RD_RS_RT_DSPC("addu_s.qb $t4, $t6, $t1", 0x23534870, 0x00354565,
1104                             t4, t6, t1);
1105   TESTDSPINST_RD_RS_RT_DSPC("addu_s.qb $t0, $t1, $t2", 0x980b7cde, 0x00086755,
1106                             t0, t1, t2);
1107   TESTDSPINST_RD_RS_RT_DSPC("addu_s.qb $t2, $t3, $t4", 0x00000018, 0x8f8f8f8f,
1108                             t2, t3, t4);
1109   TESTDSPINST_RD_RS_RT_DSPC("addu_s.qb $t4, $t1, $t5", 0x92784656, 0xeeeeeeee,
1110                             t4, t1, t5);
1111   TESTDSPINST_RD_RS_RT_DSPC("addu_s.qb $t6, $t7, $t3", 0xcacacaca, 0x1bdbdbdb,
1112                             t6, t7, t3);
1113   TESTDSPINST_RD_RS_RT_DSPC("addu_s.qb $t5, $t3, $t2", 0xbacabaca, 0xdecadeca,
1114                             t5, t3, t2);
1115   TESTDSPINST_RD_RS_RT_DSPC("addu_s.qb $t2, $t4, $t8", 0x12fadeb4, 0x93474bde,
1116                             t2, t4, t8);
1117   TESTDSPINST_RD_RS_RT_DSPC("addu_s.qb $t0, $t8, $t0", 0x7c000790, 0xfc0007ff,
1118                             t0, t8, t0);
1119   TESTDSPINST_RD_RS_RT_DSPC("addu_s.qb $t4, $t6, $t1", 0xffffffff, 0xffffffff,
1120                             t4, t6, t1);
1121   TESTDSPINST_RD_RS_RT_DSPC("addu_s.qb $t0, $t1, $t2", 0xf2f4df1f, 0xcb4ab48f,
1122                             t0, t1, t2);
1123   TESTDSPINST_RD_RS_RT_DSPC("addu_s.qb $t2, $t3, $t4", 0x435f909a, 0xaf8f7e18,
1124                             t2, t3, t4);
1125   TESTDSPINST_RD_RS_RT_DSPC("addu_s.qb $t4, $t1, $t5", 0x2106ba5f, 0x87df4510,
1126                             t4, t1, t5);
1127   TESTDSPINST_RD_RS_RT_DSPC("addu_s.qb $t6, $t7, $t3", 0x246a6376, 0xabf4e8e1,
1128                             t6, t7, t3);
1129   TESTDSPINST_RD_RS_RT_DSPC("addu_s.qb $t5, $t3, $t2", 0x1046a1a3, 0xf4c0eeac,
1130                             t5, t3, t2);
1131   TESTDSPINST_RD_RS_RT_DSPC("addu_s.qb $t2, $t4, $t8", 0x638ca515, 0x006a54f2,
1132                             t2, t4, t8);
1133   TESTDSPINST_RD_RS_RT_DSPC("addu_s.qb $t0, $t8, $t0", 0xf63e7a9d, 0x79f74493,
1134                             t0, t8, t0);
1135   TESTDSPINST_RD_RS_RT_DSPC("addu_s.qb $t4, $t6, $t1", 0xbd6845cd, 0x9c09e313,
1136                             t4, t6, t1);
1137
1138   printf("-------- ADDWC --------\n");
1139   TESTDSPINST_RD_RS_RT_DSPC("addwc $t0, $t1, $t2", 0x00000000, 0x00000000,
1140                             t0, t1, t2);
1141   TESTDSPINST_RD_RS_RT_DSPC("addwc $t2, $t3, $t4", 0x00045fb2, 0x00000286,
1142                             t2, t3, t4);
1143   TESTDSPINST_RD_RS_RT_DSPC("addwc $t4, $t1, $t5", 0x00002435, 0xffff3421,
1144                             t4, t1, t5);
1145   TESTDSPINST_RD_RS_RT_DSPC("addwc $t6, $t7, $t3", 0x07654cb8, 0x734680bc,
1146                             t6, t7, t3);
1147   TESTDSPINST_RD_RS_RT_DSPC("addwc $t5, $t3, $t2", 0xf973437b, 0x80000000,
1148                             t5, t3, t2);
1149   TESTDSPINST_RD_RS_RT_DSPC("addwc $t2, $t4, $t8", 0x00010001, 0xfa3259ff,
1150                             t2, t4, t8);
1151   TESTDSPINST_RD_RS_RT_DSPC("addwc $t0, $t8, $t0", 0x7fff7322, 0x77ff7fff,
1152                             t0, t8, t0);
1153   TESTDSPINST_RD_RS_RT_DSPC("addwc $t4, $t6, $t1", 0x0034c420, 0x00000555,
1154                             t4, t6, t1);
1155   TESTDSPINST_RD_RS_RT_DSPC("addwc $t2, $t3, $t4", 0x00000004, 1073741824,
1156                             t2, t3, t4);
1157   TESTDSPINST_RD_RS_RT_DSPC("addwc $t4, $t1, $t5", 0x80002435, 0x80003421,
1158                             t4, t1, t5);
1159   TESTDSPINST_RD_RS_RT_DSPC("addwc $t6, $t7, $t3", 0x76548000, 0x73468000,
1160                             t6, t7, t3);
1161   TESTDSPINST_RD_RS_RT_DSPC("addwc $t5, $t3, $t2", 0x80000000, 0x80620020,
1162                             t5, t3, t2);
1163   TESTDSPINST_RD_RS_RT_DSPC("addwc $t2, $t4, $t8", 0x00010001, 0xffffffff,
1164                             t2, t4, t8);
1165   TESTDSPINST_RD_RS_RT_DSPC("addwc $t0, $t8, $t0", 0x7fff7fff, 0x7fff7fff,
1166                             t0, t8, t0);
1167   TESTDSPINST_RD_RS_RT_DSPC("addwc $t4, $t6, $t1", 0x0000c420, 0x00000555,
1168                             t4, t6, t1);
1169   TESTDSPINST_RD_RS_RT_DSPC("addwc $t0, $t1, $t2", 0x000a2300, 0x83bc1900,
1170                             t0, t1, t2);
1171   TESTDSPINST_RD_RS_RT_DSPC("addwc $t2, $t3, $t4", 0x80000000, 0x80000000,
1172                             t2, t3, t4);
1173   TESTDSPINST_RD_RS_RT_DSPC("addwc $t4, $t1, $t5", 0xaaaaaaaa, 0x55555555,
1174                             t4, t1, t5);
1175   TESTDSPINST_RD_RS_RT_DSPC("addwc $t6, $t7, $t3", 0x00000018, 0xffff2435,
1176                             t6, t7, t3);
1177   TESTDSPINST_RD_RS_RT_DSPC("addwc $t5, $t3, $t2", 0xbabababa, 0xabababab,
1178                             t5, t3, t2);
1179   TESTDSPINST_RD_RS_RT_DSPC("addwc $t2, $t4, $t8", 0xf0f0f0f0, 0xfc79b4d2,
1180                             t2, t4, t8);
1181   TESTDSPINST_RD_RS_RT_DSPC("addwc $t0, $t8, $t0", 0xfbde3976, 0x00000000,
1182                             t0, t8, t0);
1183   TESTDSPINST_RD_RS_RT_DSPC("addwc $t4, $t6, $t1", 0x23534870, 0x00354565,
1184                             t4, t6, t1);
1185   TESTDSPINST_RD_RS_RT_DSPC("addwc $t0, $t1, $t2", 0x980b7cde, 0x00086755,
1186                             t0, t1, t2);
1187   TESTDSPINST_RD_RS_RT_DSPC("addwc $t2, $t3, $t4", 0x00000018, 0x8f8f8f8f,
1188                             t2, t3, t4);
1189   TESTDSPINST_RD_RS_RT_DSPC("addwc $t4, $t1, $t5", 0x92784656, 0xeeeeeeee,
1190                             t4, t1, t5);
1191   TESTDSPINST_RD_RS_RT_DSPC("addwc $t6, $t7, $t3", 0xcacacaca, 0x1bdbdbdb,
1192                             t6, t7, t3);
1193   TESTDSPINST_RD_RS_RT_DSPC("addwc $t5, $t3, $t2", 0xbacabaca, 0xdecadeca,
1194                             t5, t3, t2);
1195   TESTDSPINST_RD_RS_RT_DSPC("addwc $t2, $t4, $t8", 0x12fadeb4, 0x93474bde,
1196                             t2, t4, t8);
1197   TESTDSPINST_RD_RS_RT_DSPC("addwc $t0, $t8, $t0", 0x7c000790, 0xfc0007ff,
1198                             t0, t8, t0);
1199   TESTDSPINST_RD_RS_RT_DSPC("addwc $t4, $t6, $t1", 0xffffffff, 0xffffffff,
1200                             t4, t6, t1);
1201   TESTDSPINST_RD_RS_RT_DSPC("addwc $t0, $t1, $t2", 0xf2f4df1f, 0xcb4ab48f,
1202                             t0, t1, t2);
1203   TESTDSPINST_RD_RS_RT_DSPC("addwc $t2, $t3, $t4", 0x435f909a, 0xaf8f7e18,
1204                             t2, t3, t4);
1205   TESTDSPINST_RD_RS_RT_DSPC("addwc $t4, $t1, $t5", 0x2106ba5f, 0x87df4510,
1206                             t4, t1, t5);
1207   TESTDSPINST_RD_RS_RT_DSPC("addwc $t6, $t7, $t3", 0x246a6376, 0xabf4e8e1,
1208                             t6, t7, t3);
1209   TESTDSPINST_RD_RS_RT_DSPC("addwc $t5, $t3, $t2", 0x1046a1a3, 0xf4c0eeac,
1210                             t5, t3, t2);
1211   TESTDSPINST_RD_RS_RT_DSPC("addwc $t2, $t4, $t8", 0x638ca515, 0x006a54f2,
1212                             t2, t4, t8);
1213   TESTDSPINST_RD_RS_RT_DSPC("addwc $t0, $t8, $t0", 0xf63e7a9d, 0x79f74493,
1214                             t0, t8, t0);
1215   TESTDSPINST_RD_RS_RT_DSPC("addwc $t4, $t6, $t1", 0xbd6845cd, 0x9c09e313,
1216                             t4, t6, t1);
1217
1218   printf("-------- BITREV --------\n");
1219   TESTDSPINST_RD_RT_NODSPC("bitrev $t0, $t1", 0x09ba4800, t0, t1);
1220   TESTDSPINST_RD_RT_NODSPC("bitrev $t2, $t3", 0x80003286, t2, t3);
1221   TESTDSPINST_RD_RT_NODSPC("bitrev $t4, $t1", 0xfabc2435, t4, t1);
1222   TESTDSPINST_RD_RT_NODSPC("bitrev $t6, $t7", 0x73468000, t6, t7);
1223   TESTDSPINST_RD_RT_NODSPC("bitrev $t5, $t3", 0x803c6900, t5, t3);
1224   TESTDSPINST_RD_RT_NODSPC("bitrev $t2, $t4", 0xffad492f, t2, t4);
1225   TESTDSPINST_RD_RT_NODSPC("bitrev $t0, $t8", 0xfff45fff, t0, t8);
1226   TESTDSPINST_RD_RT_NODSPC("bitrev $t2, $t4", 0x00000555, t2, t4);
1227   TESTDSPINST_RD_RT_NODSPC("bitrev $t0, $t1", 0x0098f308, t0, t1);
1228   TESTDSPINST_RD_RT_NODSPC("bitrev $t2, $t3", 0x80000000, t2, t3);
1229   TESTDSPINST_RD_RT_NODSPC("bitrev $t4, $t1", 0x55555555, t4, t1);
1230   TESTDSPINST_RD_RT_NODSPC("bitrev $t6, $t7", 0xffff2435, t6, t7);
1231   TESTDSPINST_RD_RT_NODSPC("bitrev $t5, $t3", 0xabababab, t5, t3);
1232   TESTDSPINST_RD_RT_NODSPC("bitrev $t2, $t4", 0xfc79b4d2, t2, t4);
1233   TESTDSPINST_RD_RT_NODSPC("bitrev $t0, $t8", 0x00000000, t0, t8);
1234   TESTDSPINST_RD_RT_NODSPC("bitrev $t2, $t4", 0x00354565, t2, t4);
1235   TESTDSPINST_RD_RT_NODSPC("bitrev $t0, $t1", 0x00086755, t0, t1);
1236   TESTDSPINST_RD_RT_NODSPC("bitrev $t2, $t3", 0x8f8f8f8f, t2, t3);
1237   TESTDSPINST_RD_RT_NODSPC("bitrev $t4, $t1", 0xeeeeeeee, t4, t1);
1238   TESTDSPINST_RD_RT_NODSPC("bitrev $t6, $t7", 0x1bdbdbdb, t6, t7);
1239   TESTDSPINST_RD_RT_NODSPC("bitrev $t5, $t3", 0xdecadeca, t5, t3);
1240   TESTDSPINST_RD_RT_NODSPC("bitrev $t2, $t4", 0x93474bde, t2, t4);
1241   TESTDSPINST_RD_RT_NODSPC("bitrev $t0, $t8", 0xfc0007ff, t0, t8);
1242   TESTDSPINST_RD_RT_NODSPC("bitrev $t2, $t4", 0xffffffff, t2, t4);
1243   TESTDSPINST_RD_RT_NODSPC("bitrev $t0, $t1", 0xcb4ab48f, t0, t1);
1244   TESTDSPINST_RD_RT_NODSPC("bitrev $t2, $t3", 0xaf8f7e18, t2, t3);
1245   TESTDSPINST_RD_RT_NODSPC("bitrev $t4, $t1", 0x87df4510, t4, t1);
1246   TESTDSPINST_RD_RT_NODSPC("bitrev $t6, $t7", 0xabf4e8e1, t6, t7);
1247   TESTDSPINST_RD_RT_NODSPC("bitrev $t5, $t3", 0xf4c0eeac, t5, t3);
1248   TESTDSPINST_RD_RT_NODSPC("bitrev $t2, $t4", 0x006a54f2, t2, t4);
1249   TESTDSPINST_RD_RT_NODSPC("bitrev $t0, $t8", 0x79f74493, t0, t8);
1250   TESTDSPINST_RD_RT_NODSPC("bitrev $t2, $t4", 0x9c09e313, t2, t4);
1251
1252   printf("-------- BPOSGE32 --------\n");
1253   TESTDSPINST_BPOSGE32("bposge32", 0, 0, v0, t1);
1254   TESTDSPINST_BPOSGE32("bposge32", 1, 1, v1, t0);
1255   TESTDSPINST_BPOSGE32("bposge32", 2, 32, a0, t1);
1256   TESTDSPINST_BPOSGE32("bposge32", 3, 17, a1, t2);
1257   TESTDSPINST_BPOSGE32("bposge32", 4, 8, a2, t0);
1258   TESTDSPINST_BPOSGE32("bposge32", 5, 60, a3, t0);
1259   TESTDSPINST_BPOSGE32("bposge32", 6, 0x5, t0, t1);
1260   TESTDSPINST_BPOSGE32("bposge32", 7, -3, t1, t2);
1261   TESTDSPINST_BPOSGE32("bposge32", 8, 125, t2, t3);
1262   TESTDSPINST_BPOSGE32("bposge32", 9, 7, t3, t4);
1263   TESTDSPINST_BPOSGE32("bposge32", 10, 42, t4, t5);
1264   TESTDSPINST_BPOSGE32("bposge32", 11, 53, t5, t6);
1265   TESTDSPINST_BPOSGE32("bposge32", 12, 99, t6, t7);
1266   TESTDSPINST_BPOSGE32("bposge32", 13, 12, s0, t1);
1267   TESTDSPINST_BPOSGE32("bposge32", 14, 4, v0, t9);
1268   TESTDSPINST_BPOSGE32("bposge32", 15, 6, t9, t8);
1269
1270   printf("-------- CMP.EQ.PH --------\n");
1271   TESTDSPINST_RS_RT_DSPC("cmp.eq.ph $t0, $t1", 0x00000000, 0x0fffffff, t0, t1);
1272   TESTDSPINST_RS_RT_DSPC("cmp.eq.ph $t2, $t3", 0x00045fb2, 0x00000286, t2, t3);
1273   TESTDSPINST_RS_RT_DSPC("cmp.eq.ph $t4, $t1", 0xfabc2435, 0xfabc3421, t4, t1);
1274   TESTDSPINST_RS_RT_DSPC("cmp.eq.ph $t6, $t7", 0x07654cb8, 0x73464cb8, t6, t7);
1275   TESTDSPINST_RS_RT_DSPC("cmp.eq.ph $t5, $t3", 0xf973437b, 0x80000000, t5, t3);
1276   TESTDSPINST_RS_RT_DSPC("cmp.eq.ph $t2, $t4", 0x00010001, 0xffffffff, t2, t4);
1277   TESTDSPINST_RS_RT_DSPC("cmp.eq.ph $t0, $t8", 0x7fff7fff, 0x7fff7fff, t0, t8);
1278   TESTDSPINST_RS_RT_DSPC("cmp.eq.ph $t4, $t6", 0x0000c420, 0x00000555, t4, t6);
1279   TESTDSPINST_RS_RT_DSPC("cmp.eq.ph $t0, $t1", 0x00000000, 0x00000000, t0, t1);
1280   TESTDSPINST_RS_RT_DSPC("cmp.eq.ph $t2, $t3", 0x80000000, 0x80000000, t2, t3);
1281   TESTDSPINST_RS_RT_DSPC("cmp.eq.ph $t4, $t1", 0xaaaaaaaa, 0x55555555, t4, t1);
1282   TESTDSPINST_RS_RT_DSPC("cmp.eq.ph $t6, $t7", 0x00000018, 0xffff2435, t6, t7);
1283   TESTDSPINST_RS_RT_DSPC("cmp.eq.ph $t5, $t3", 0xbabababa, 0xabababab, t5, t3);
1284   TESTDSPINST_RS_RT_DSPC("cmp.eq.ph $t2, $t4", 0xf0f0f0f0, 0xfc79b4d2, t2, t4);
1285   TESTDSPINST_RS_RT_DSPC("cmp.eq.ph $t0, $t8", 0xfbde3976, 0x00000000, t0, t8);
1286   TESTDSPINST_RS_RT_DSPC("cmp.eq.ph $t4, $t6", 0x23534870, 0x00354565, t4, t6);
1287   TESTDSPINST_RS_RT_DSPC("cmp.eq.ph $t0, $t1", 0x980b7cde, 0x00086755, t0, t1);
1288   TESTDSPINST_RS_RT_DSPC("cmp.eq.ph $t2, $t3", 0x00000018, 0x8f8f8f8f, t2, t3);
1289   TESTDSPINST_RS_RT_DSPC("cmp.eq.ph $t4, $t1", 0x92784656, 0xeeeeeeee, t4, t1);
1290   TESTDSPINST_RS_RT_DSPC("cmp.eq.ph $t6, $t7", 0xcacacaca, 0x1bdbdbdb, t6, t7);
1291   TESTDSPINST_RS_RT_DSPC("cmp.eq.ph $t5, $t3", 0xbacabaca, 0xdecadeca, t5, t3);
1292   TESTDSPINST_RS_RT_DSPC("cmp.eq.ph $t2, $t4", 0x12fadeb4, 0x93474bde, t2, t4);
1293   TESTDSPINST_RS_RT_DSPC("cmp.eq.ph $t0, $t8", 0x7c000790, 0xfc0007ff, t0, t8);
1294   TESTDSPINST_RS_RT_DSPC("cmp.eq.ph $t4, $t6", 0xffffffff, 0xffffffff, t4, t6);
1295   TESTDSPINST_RS_RT_DSPC("cmp.eq.ph $t0, $t1", 0xf2f4df1f, 0xcb4ab48f, t0, t1);
1296   TESTDSPINST_RS_RT_DSPC("cmp.eq.ph $t2, $t3", 0x435f909a, 0xaf8f7e18, t2, t3);
1297   TESTDSPINST_RS_RT_DSPC("cmp.eq.ph $t4, $t1", 0x2106ba5f, 0x87df4510, t4, t1);
1298   TESTDSPINST_RS_RT_DSPC("cmp.eq.ph $t6, $t7", 0x246a6376, 0xabf4e8e1, t6, t7);
1299   TESTDSPINST_RS_RT_DSPC("cmp.eq.ph $t5, $t3", 0x1046a1a3, 0xf4c0eeac, t5, t3);
1300   TESTDSPINST_RS_RT_DSPC("cmp.eq.ph $t2, $t4", 0x638ca515, 0x006a54f2, t2, t4);
1301   TESTDSPINST_RS_RT_DSPC("cmp.eq.ph $t0, $t8", 0xf63e7a9d, 0x79f74493, t0, t8);
1302   TESTDSPINST_RS_RT_DSPC("cmp.eq.ph $t4, $t6", 0xbd6845cd, 0x9c09e313, t4, t6);
1303
1304   printf("-------- CMP.LT.PH --------\n");
1305   TESTDSPINST_RS_RT_DSPC("cmp.lt.ph $t0, $t1", 0x00000000, 0x0fffffff, t0, t1);
1306   TESTDSPINST_RS_RT_DSPC("cmp.lt.ph $t2, $t3", 0x00045fb2, 0x00000286, t2, t3);
1307   TESTDSPINST_RS_RT_DSPC("cmp.lt.ph $t4, $t1", 0xfabc2435, 0xfabc3421, t4, t1);
1308   TESTDSPINST_RS_RT_DSPC("cmp.lt.ph $t6, $t7", 0x07654cb8, 0x73464cb8, t6, t7);
1309   TESTDSPINST_RS_RT_DSPC("cmp.lt.ph $t5, $t3", 0xf973437b, 0x80000000, t5, t3);
1310   TESTDSPINST_RS_RT_DSPC("cmp.lt.ph $t2, $t4", 0x00010001, 0xffffffff, t2, t4);
1311   TESTDSPINST_RS_RT_DSPC("cmp.lt.ph $t0, $t8", 0x7fff7fff, 0x7fff7fff, t0, t8);
1312   TESTDSPINST_RS_RT_DSPC("cmp.lt.ph $t4, $t6", 0x0000c420, 0x00000555, t4, t6);
1313   TESTDSPINST_RS_RT_DSPC("cmp.lt.ph $t0, $t1", 0x00000000, 0x00000000, t0, t1);
1314   TESTDSPINST_RS_RT_DSPC("cmp.lt.ph $t2, $t3", 0x80000000, 0x80000000, t2, t3);
1315   TESTDSPINST_RS_RT_DSPC("cmp.lt.ph $t4, $t1", 0xaaaaaaaa, 0x55555555, t4, t1);
1316   TESTDSPINST_RS_RT_DSPC("cmp.lt.ph $t6, $t7", 0x00000018, 0xffff2435, t6, t7);
1317   TESTDSPINST_RS_RT_DSPC("cmp.lt.ph $t5, $t3", 0xbabababa, 0xabababab, t5, t3);
1318   TESTDSPINST_RS_RT_DSPC("cmp.lt.ph $t2, $t4", 0xf0f0f0f0, 0xfc79b4d2, t2, t4);
1319   TESTDSPINST_RS_RT_DSPC("cmp.lt.ph $t0, $t8", 0xfbde3976, 0x00000000, t0, t8);
1320   TESTDSPINST_RS_RT_DSPC("cmp.lt.ph $t4, $t6", 0x23534870, 0x00354565, t4, t6);
1321   TESTDSPINST_RS_RT_DSPC("cmp.lt.ph $t0, $t1", 0x980b7cde, 0x00086755, t0, t1);
1322   TESTDSPINST_RS_RT_DSPC("cmp.lt.ph $t2, $t3", 0x00000018, 0x8f8f8f8f, t2, t3);
1323   TESTDSPINST_RS_RT_DSPC("cmp.lt.ph $t4, $t1", 0x92784656, 0xeeeeeeee, t4, t1);
1324   TESTDSPINST_RS_RT_DSPC("cmp.lt.ph $t6, $t7", 0xcacacaca, 0x1bdbdbdb, t6, t7);
1325   TESTDSPINST_RS_RT_DSPC("cmp.lt.ph $t5, $t3", 0xbacabaca, 0xdecadeca, t5, t3);
1326   TESTDSPINST_RS_RT_DSPC("cmp.lt.ph $t2, $t4", 0x12fadeb4, 0x93474bde, t2, t4);
1327   TESTDSPINST_RS_RT_DSPC("cmp.lt.ph $t0, $t8", 0x7c000790, 0xfc0007ff, t0, t8);
1328   TESTDSPINST_RS_RT_DSPC("cmp.lt.ph $t4, $t6", 0xffffffff, 0xffffffff, t4, t6);
1329   TESTDSPINST_RS_RT_DSPC("cmp.lt.ph $t0, $t1", 0xf2f4df1f, 0xcb4ab48f, t0, t1);
1330   TESTDSPINST_RS_RT_DSPC("cmp.lt.ph $t2, $t3", 0x435f909a, 0xaf8f7e18, t2, t3);
1331   TESTDSPINST_RS_RT_DSPC("cmp.lt.ph $t4, $t1", 0x2106ba5f, 0x87df4510, t4, t1);
1332   TESTDSPINST_RS_RT_DSPC("cmp.lt.ph $t6, $t7", 0x246a6376, 0xabf4e8e1, t6, t7);
1333   TESTDSPINST_RS_RT_DSPC("cmp.lt.ph $t5, $t3", 0x1046a1a3, 0xf4c0eeac, t5, t3);
1334   TESTDSPINST_RS_RT_DSPC("cmp.lt.ph $t2, $t4", 0x638ca515, 0x006a54f2, t2, t4);
1335   TESTDSPINST_RS_RT_DSPC("cmp.lt.ph $t0, $t8", 0xf63e7a9d, 0x79f74493, t0, t8);
1336   TESTDSPINST_RS_RT_DSPC("cmp.lt.ph $t4, $t6", 0xbd6845cd, 0x9c09e313, t4, t6);
1337
1338   printf("-------- CMP.LE.PH --------\n");
1339   TESTDSPINST_RS_RT_DSPC("cmp.le.ph $t0, $t1", 0x00000000, 0x0fffffff, t0, t1);
1340   TESTDSPINST_RS_RT_DSPC("cmp.le.ph $t2, $t3", 0x00045fb2, 0x00000286, t2, t3);
1341   TESTDSPINST_RS_RT_DSPC("cmp.le.ph $t4, $t1", 0xfabc2435, 0xfabc3421, t4, t1);
1342   TESTDSPINST_RS_RT_DSPC("cmp.le.ph $t6, $t7", 0x07654cb8, 0x73464cb8, t6, t7);
1343   TESTDSPINST_RS_RT_DSPC("cmp.le.ph $t5, $t3", 0xf973437b, 0x80000000, t5, t3);
1344   TESTDSPINST_RS_RT_DSPC("cmp.le.ph $t2, $t4", 0x00010001, 0xffffffff, t2, t4);
1345   TESTDSPINST_RS_RT_DSPC("cmp.le.ph $t0, $t8", 0x7fff7fff, 0x7fff7fff, t0, t8);
1346   TESTDSPINST_RS_RT_DSPC("cmp.le.ph $t4, $t6", 0x0000c420, 0x00000555, t4, t6);
1347   TESTDSPINST_RS_RT_DSPC("cmp.le.ph $t0, $t1", 0x00000000, 0x00000000, t0, t1);
1348   TESTDSPINST_RS_RT_DSPC("cmp.le.ph $t2, $t3", 0x80000000, 0x80000000, t2, t3);
1349   TESTDSPINST_RS_RT_DSPC("cmp.le.ph $t4, $t1", 0xaaaaaaaa, 0x55555555, t4, t1);
1350   TESTDSPINST_RS_RT_DSPC("cmp.le.ph $t6, $t7", 0x00000018, 0xffff2435, t6, t7);
1351   TESTDSPINST_RS_RT_DSPC("cmp.le.ph $t5, $t3", 0xbabababa, 0xabababab, t5, t3);
1352   TESTDSPINST_RS_RT_DSPC("cmp.le.ph $t2, $t4", 0xf0f0f0f0, 0xfc79b4d2, t2, t4);
1353   TESTDSPINST_RS_RT_DSPC("cmp.le.ph $t0, $t8", 0xfbde3976, 0x00000000, t0, t8);
1354   TESTDSPINST_RS_RT_DSPC("cmp.le.ph $t4, $t6", 0x23534870, 0x00354565, t4, t6);
1355   TESTDSPINST_RS_RT_DSPC("cmp.le.ph $t0, $t1", 0x980b7cde, 0x00086755, t0, t1);
1356   TESTDSPINST_RS_RT_DSPC("cmp.le.ph $t2, $t3", 0x00000018, 0x8f8f8f8f, t2, t3);
1357   TESTDSPINST_RS_RT_DSPC("cmp.le.ph $t4, $t1", 0x92784656, 0xeeeeeeee, t4, t1);
1358   TESTDSPINST_RS_RT_DSPC("cmp.le.ph $t6, $t7", 0xcacacaca, 0x1bdbdbdb, t6, t7);
1359   TESTDSPINST_RS_RT_DSPC("cmp.le.ph $t5, $t3", 0xbacabaca, 0xdecadeca, t5, t3);
1360   TESTDSPINST_RS_RT_DSPC("cmp.le.ph $t2, $t4", 0x12fadeb4, 0x93474bde, t2, t4);
1361   TESTDSPINST_RS_RT_DSPC("cmp.le.ph $t0, $t8", 0x7c000790, 0xfc0007ff, t0, t8);
1362   TESTDSPINST_RS_RT_DSPC("cmp.le.ph $t4, $t6", 0xffffffff, 0xffffffff, t4, t6);
1363   TESTDSPINST_RS_RT_DSPC("cmp.le.ph $t0, $t1", 0xf2f4df1f, 0xcb4ab48f, t0, t1);
1364   TESTDSPINST_RS_RT_DSPC("cmp.le.ph $t2, $t3", 0x435f909a, 0xaf8f7e18, t2, t3);
1365   TESTDSPINST_RS_RT_DSPC("cmp.le.ph $t4, $t1", 0x2106ba5f, 0x87df4510, t4, t1);
1366   TESTDSPINST_RS_RT_DSPC("cmp.le.ph $t6, $t7", 0x246a6376, 0xabf4e8e1, t6, t7);
1367   TESTDSPINST_RS_RT_DSPC("cmp.le.ph $t5, $t3", 0x1046a1a3, 0xf4c0eeac, t5, t3);
1368   TESTDSPINST_RS_RT_DSPC("cmp.le.ph $t2, $t4", 0x638ca515, 0x006a54f2, t2, t4);
1369   TESTDSPINST_RS_RT_DSPC("cmp.le.ph $t0, $t8", 0xf63e7a9d, 0x79f74493, t0, t8);
1370   TESTDSPINST_RS_RT_DSPC("cmp.le.ph $t4, $t6", 0xbd6845cd, 0x9c09e313, t4, t6);
1371
1372   printf("-------- CMPGU.EQ.QB --------\n");
1373   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.eq.qb $t0, $t1, $t2", 0x00672300,
1374                               0x00000000, t0, t1, t2);
1375   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.eq.qb $t2, $t3, $t4", 0x00045fb2,
1376                               0x00000286, t2, t3, t4);
1377   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.eq.qb $t4, $t1, $t5", 0x00002435,
1378                               0xffff3421, t4, t1, t5);
1379   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.eq.qb $t6, $t7, $t3", 0x07654cb8,
1380                               0x734680bc, t6, t7, t3);
1381   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.eq.qb $t5, $t3, $t2", 0xf973437b,
1382                               0x80000000, t5, t3, t2);
1383   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.eq.qb $t2, $t4, $t8", 0x00010001,
1384                               0xf08b4631, t2, t4, t8);
1385   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.eq.qb $t0, $t8, $t0", 0x5cbd891a,
1386                               0x7fff7fff, t0, t8, t0);
1387   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.eq.qb $t4, $t6, $t1", 0x0000c420,
1388                               0x0ab64555, t4, t6, t1);
1389   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.eq.qb $t2, $t3, $t4", 0x00000004,
1390                               1073741824, t2, t3, t4);
1391   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.eq.qb $t4, $t1, $t5", 0x80002435,
1392                               0x80003421, t4, t1, t5);
1393   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.eq.qb $t6, $t7, $t3", 0x76548000,
1394                               0x73468000, t6, t7, t3);
1395   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.eq.qb $t5, $t3, $t2", 0x8007c560,
1396                               0x80000000, t5, t3, t2);
1397   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.eq.qb $t2, $t4, $t8", 0x00010001,
1398                               0xffffffff, t2, t4, t8);
1399   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.eq.qb $t0, $t8, $t0", 0x7fff7fff,
1400                               0x7fff7fff, t0, t8, t0);
1401   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.eq.qb $t4, $t6, $t1", 0x0000c420,
1402                               0x00000555, t4, t6, t1);
1403   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.eq.qb $t0, $t1, $t2", 0x00000000,
1404                               0x00000000, t0, t1, t2);
1405   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.eq.qb $t2, $t3, $t4", 0x80000000,
1406                               0x80000000, t2, t3, t4);
1407   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.eq.qb $t4, $t1, $t5", 0xaaaaaaaa,
1408                               0x55555555, t4, t1, t5);
1409   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.eq.qb $t6, $t7, $t3", 0x00000018,
1410                               0xffff2435, t6, t7, t3);
1411   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.eq.qb $t5, $t3, $t2", 0xbabababa,
1412                               0xabababab, t5, t3, t2);
1413   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.eq.qb $t2, $t4, $t8", 0xf0f0f0f0,
1414                               0xfc79b4d2, t2, t4, t8);
1415   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.eq.qb $t0, $t8, $t0", 0xfbde3976,
1416                               0x00000000, t0, t8, t0);
1417   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.eq.qb $t4, $t6, $t1", 0x23534870,
1418                               0x00354565, t4, t6, t1);
1419   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.eq.qb $t0, $t1, $t2", 0x980b7cde,
1420                               0x00086755, t0, t1, t2);
1421   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.eq.qb $t2, $t3, $t4", 0x00000018,
1422                               0x8f8f8f8f, t2, t3, t4);
1423   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.eq.qb $t4, $t1, $t5", 0x92784656,
1424                               0xeeeeeeee, t4, t1, t5);
1425   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.eq.qb $t6, $t7, $t3", 0xcacacaca,
1426                               0x1bdbdbdb, t6, t7, t3);
1427   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.eq.qb $t5, $t3, $t2", 0xbacabaca,
1428                               0xdecadeca, t5, t3, t2);
1429   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.eq.qb $t2, $t4, $t8", 0x12fadeb4,
1430                               0x93474bde, t2, t4, t8);
1431   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.eq.qb $t0, $t8, $t0", 0x7c000790,
1432                               0xfc0007ff, t0, t8, t0);
1433   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.eq.qb $t4, $t6, $t1", 0xffffffff,
1434                               0xffffffff, t4, t6, t1);
1435   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.eq.qb $t0, $t1, $t2", 0xf2f4df1f,
1436                               0xcb4ab48f, t0, t1, t2);
1437   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.eq.qb $t2, $t3, $t4", 0x435f909a,
1438                               0xaf8f7e18, t2, t3, t4);
1439   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.eq.qb $t4, $t1, $t5", 0x2106ba5f,
1440                               0x87df4510, t4, t1, t5);
1441   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.eq.qb $t6, $t7, $t3", 0x246a6376,
1442                               0xabf4e8e1, t6, t7, t3);
1443   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.eq.qb $t5, $t3, $t2", 0x1046a1a3,
1444                               0xf4c0eeac, t5, t3, t2);
1445   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.eq.qb $t2, $t4, $t8", 0x638ca515,
1446                               0x006a54f2, t2, t4, t8);
1447   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.eq.qb $t0, $t8, $t0", 0xf63e7a9d,
1448                               0x79f74493, t0, t8, t0);
1449   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.eq.qb $t4, $t6, $t1", 0xbd6845cd,
1450                               0x9c09e313, t4, t6, t1);
1451
1452   printf("-------- CMPGU.LT.QB --------\n");
1453   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.lt.qb $t0, $t1, $t2", 0x00672300,
1454                               0x00000000, t0, t1, t2);
1455   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.lt.qb $t2, $t3, $t4", 0x00045fb2,
1456                               0x00000286, t2, t3, t4);
1457   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.lt.qb $t4, $t1, $t5", 0x00002435,
1458                               0xffff3421, t4, t1, t5);
1459   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.lt.qb $t6, $t7, $t3", 0x07654cb8,
1460                               0x734680bc, t6, t7, t3);
1461   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.lt.qb $t5, $t3, $t2", 0xf973437b,
1462                               0x80000000, t5, t3, t2);
1463   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.lt.qb $t2, $t4, $t8", 0x00010001,
1464                               0xf08b4631, t2, t4, t8);
1465   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.lt.qb $t0, $t8, $t0", 0x5cbd891a,
1466                               0x7fff7fff, t0, t8, t0);
1467   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.lt.qb $t4, $t6, $t1", 0x0000c420,
1468                               0x0ab64555, t4, t6, t1);
1469   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.lt.qb $t2, $t3, $t4", 0x00000004,
1470                               1073741824, t2, t3, t4);
1471   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.lt.qb $t4, $t1, $t5", 0x80002435,
1472                               0x80003421, t4, t1, t5);
1473   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.lt.qb $t6, $t7, $t3", 0x76548000,
1474                               0x73468000, t6, t7, t3);
1475   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.lt.qb $t5, $t3, $t2", 0x8007c560,
1476                               0x80000000, t5, t3, t2);
1477   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.lt.qb $t2, $t4, $t8", 0x00010001,
1478                               0xffffffff, t2, t4, t8);
1479   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.lt.qb $t0, $t8, $t0", 0x7fff7fff,
1480                               0x7fff7fff, t0, t8, t0);
1481   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.lt.qb $t4, $t6, $t1", 0x0000c420,
1482                               0x00000555, t4, t6, t1);
1483   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.lt.qb $t0, $t1, $t2", 0x00000000,
1484                               0x00000000, t0, t1, t2);
1485   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.lt.qb $t2, $t3, $t4", 0x80000000,
1486                               0x80000000, t2, t3, t4);
1487   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.lt.qb $t4, $t1, $t5", 0xaaaaaaaa,
1488                               0x55555555, t4, t1, t5);
1489   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.lt.qb $t6, $t7, $t3", 0x00000018,
1490                               0xffff2435, t6, t7, t3);
1491   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.lt.qb $t5, $t3, $t2", 0xbabababa,
1492                               0xabababab, t5, t3, t2);
1493   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.lt.qb $t2, $t4, $t8", 0xf0f0f0f0,
1494                               0xfc79b4d2, t2, t4, t8);
1495   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.lt.qb $t0, $t8, $t0", 0xfbde3976,
1496                               0x00000000, t0, t8, t0);
1497   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.lt.qb $t4, $t6, $t1", 0x23534870,
1498                               0x00354565, t4, t6, t1);
1499   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.lt.qb $t0, $t1, $t2", 0x980b7cde,
1500                               0x00086755, t0, t1, t2);
1501   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.lt.qb $t2, $t3, $t4", 0x00000018,
1502                               0x8f8f8f8f, t2, t3, t4);
1503   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.lt.qb $t4, $t1, $t5", 0x92784656,
1504                               0xeeeeeeee, t4, t1, t5);
1505   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.lt.qb $t6, $t7, $t3", 0xcacacaca,
1506                               0x1bdbdbdb, t6, t7, t3);
1507   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.lt.qb $t5, $t3, $t2", 0xbacabaca,
1508                               0xdecadeca, t5, t3, t2);
1509   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.lt.qb $t2, $t4, $t8", 0x12fadeb4,
1510                               0x93474bde, t2, t4, t8);
1511   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.lt.qb $t0, $t8, $t0", 0x7c000790,
1512                               0xfc0007ff, t0, t8, t0);
1513   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.lt.qb $t4, $t6, $t1", 0xffffffff,
1514                               0xffffffff, t4, t6, t1);
1515   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.lt.qb $t0, $t1, $t2", 0xf2f4df1f,
1516                               0xcb4ab48f, t0, t1, t2);
1517   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.lt.qb $t2, $t3, $t4", 0x435f909a,
1518                               0xaf8f7e18, t2, t3, t4);
1519   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.lt.qb $t4, $t1, $t5", 0x2106ba5f,
1520                               0x87df4510, t4, t1, t5);
1521   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.lt.qb $t6, $t7, $t3", 0x246a6376,
1522                               0xabf4e8e1, t6, t7, t3);
1523   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.lt.qb $t5, $t3, $t2", 0x1046a1a3,
1524                               0xf4c0eeac, t5, t3, t2);
1525   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.lt.qb $t2, $t4, $t8", 0x638ca515,
1526                               0x006a54f2, t2, t4, t8);
1527   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.lt.qb $t0, $t8, $t0", 0xf63e7a9d,
1528                               0x79f74493, t0, t8, t0);
1529   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.lt.qb $t4, $t6, $t1", 0xbd6845cd,
1530                               0x9c09e313, t4, t6, t1);
1531
1532   printf("-------- CMPGU.LE.QB --------\n");
1533   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.le.qb $t0, $t1, $t2", 0x00672300,
1534                               0x00000000, t0, t1, t2);
1535   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.le.qb $t2, $t3, $t4", 0x00045fb2,
1536                               0x00000286, t2, t3, t4);
1537   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.le.qb $t4, $t1, $t5", 0x00002435,
1538                               0xffff3421, t4, t1, t5);
1539   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.le.qb $t6, $t7, $t3", 0x07654cb8,
1540                               0x734680bc, t6, t7, t3);
1541   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.le.qb $t5, $t3, $t2", 0xf973437b,
1542                               0x80000000, t5, t3, t2);
1543   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.le.qb $t2, $t4, $t8", 0x00010001,
1544                               0xf08b4631, t2, t4, t8);
1545   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.le.qb $t0, $t8, $t0", 0x5cbd891a,
1546                               0x7fff7fff, t0, t8, t0);
1547   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.le.qb $t4, $t6, $t1", 0x0000c420,
1548                               0x0ab64555, t4, t6, t1);
1549   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.le.qb $t2, $t3, $t4", 0x00000004,
1550                               1073741824, t2, t3, t4);
1551   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.le.qb $t4, $t1, $t5", 0x80002435,
1552                               0x80003421, t4, t1, t5);
1553   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.le.qb $t6, $t7, $t3", 0x76548000,
1554                               0x73468000, t6, t7, t3);
1555   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.le.qb $t5, $t3, $t2", 0x8007c560,
1556                               0x80000000, t5, t3, t2);
1557   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.le.qb $t2, $t4, $t8", 0x00010001,
1558                               0xffffffff, t2, t4, t8);
1559   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.le.qb $t0, $t8, $t0", 0x7fff7fff,
1560                               0x7fff7fff, t0, t8, t0);
1561   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.le.qb $t4, $t6, $t1", 0x0000c420,
1562                               0x00000555, t4, t6, t1);
1563   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.le.qb $t0, $t1, $t2", 0x00000000,
1564                               0x00000000, t0, t1, t2);
1565   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.le.qb $t2, $t3, $t4", 0x80000000,
1566                               0x80000000, t2, t3, t4);
1567   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.le.qb $t4, $t1, $t5", 0xaaaaaaaa,
1568                               0x55555555, t4, t1, t5);
1569   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.le.qb $t6, $t7, $t3", 0x00000018,
1570                               0xffff2435, t6, t7, t3);
1571   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.le.qb $t5, $t3, $t2", 0xbabababa,
1572                               0xabababab, t5, t3, t2);
1573   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.le.qb $t2, $t4, $t8", 0xf0f0f0f0,
1574                               0xfc79b4d2, t2, t4, t8);
1575   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.le.qb $t0, $t8, $t0", 0xfbde3976,
1576                               0x00000000, t0, t8, t0);
1577   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.le.qb $t4, $t6, $t1", 0x23534870,
1578                               0x00354565, t4, t6, t1);
1579   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.le.qb $t0, $t1, $t2", 0x980b7cde,
1580                               0x00086755, t0, t1, t2);
1581   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.le.qb $t2, $t3, $t4", 0x00000018,
1582                               0x8f8f8f8f, t2, t3, t4);
1583   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.le.qb $t4, $t1, $t5", 0x92784656,
1584                               0xeeeeeeee, t4, t1, t5);
1585   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.le.qb $t6, $t7, $t3", 0xcacacaca,
1586                               0x1bdbdbdb, t6, t7, t3);
1587   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.le.qb $t5, $t3, $t2", 0xbacabaca,
1588                               0xdecadeca, t5, t3, t2);
1589   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.le.qb $t2, $t4, $t8", 0x12fadeb4,
1590                               0x93474bde, t2, t4, t8);
1591   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.le.qb $t0, $t8, $t0", 0x7c000790,
1592                               0xfc0007ff, t0, t8, t0);
1593   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.le.qb $t4, $t6, $t1", 0xffffffff,
1594                               0xffffffff, t4, t6, t1);
1595   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.le.qb $t0, $t1, $t2", 0xf2f4df1f,
1596                               0xcb4ab48f, t0, t1, t2);
1597   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.le.qb $t2, $t3, $t4", 0x435f909a,
1598                               0xaf8f7e18, t2, t3, t4);
1599   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.le.qb $t4, $t1, $t5", 0x2106ba5f,
1600                               0x87df4510, t4, t1, t5);
1601   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.le.qb $t6, $t7, $t3", 0x246a6376,
1602                               0xabf4e8e1, t6, t7, t3);
1603   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.le.qb $t5, $t3, $t2", 0x1046a1a3,
1604                               0xf4c0eeac, t5, t3, t2);
1605   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.le.qb $t2, $t4, $t8", 0x638ca515,
1606                               0x006a54f2, t2, t4, t8);
1607   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.le.qb $t0, $t8, $t0", 0xf63e7a9d,
1608                               0x79f74493, t0, t8, t0);
1609   TESTDSPINST_RD_RS_RT_NODSPC("cmpgu.le.qb $t4, $t6, $t1", 0xbd6845cd,
1610                               0x9c09e313, t4, t6, t1);
1611
1612   printf("-------- CMPU.EQ.QB --------\n");
1613   TESTDSPINST_RS_RT_DSPC("cmpu.eq.qb $t0, $t1", 0x00000000, 0x0fffffff, t0,
1614                          t1);
1615   TESTDSPINST_RS_RT_DSPC("cmpu.eq.qb $t2, $t3", 0x00005fb2, 0x00000286, t2,
1616                          t3);
1617   TESTDSPINST_RS_RT_DSPC("cmpu.eq.qb $t4, $t1", 0xfabc2435, 0xfabc3421, t4,
1618                          t1);
1619   TESTDSPINST_RS_RT_DSPC("cmpu.eq.qb $t6, $t7", 0x07654cb8, 0x73464cb8, t6,
1620                          t7);
1621   TESTDSPINST_RS_RT_DSPC("cmpu.eq.qb $t5, $t3", 0xf973437b, 0x80734300, t5,
1622                          t3);
1623   TESTDSPINST_RS_RT_DSPC("cmpu.eq.qb $t2, $t4", 0x00010001, 0xffffffff, t2,
1624                          t4);
1625   TESTDSPINST_RS_RT_DSPC("cmpu.eq.qb $t0, $t8", 0x7fff7fff, 0x7fff7fff, t0,
1626                          t8);
1627   TESTDSPINST_RS_RT_DSPC("cmpu.eq.qb $t4, $t6", 0x0000c420, 0x0000c420, t4,
1628                          t6);
1629   TESTDSPINST_RS_RT_DSPC("cmpu.eq.qb $t0, $t1", 0x00000000, 0x00000000, t0,
1630                          t1);
1631   TESTDSPINST_RS_RT_DSPC("cmpu.eq.qb $t2, $t3", 0x80000000, 0x80000000, t2,
1632                          t3);
1633   TESTDSPINST_RS_RT_DSPC("cmpu.eq.qb $t4, $t1", 0xaaaaaaaa, 0x55555555, t4,
1634                          t1);
1635   TESTDSPINST_RS_RT_DSPC("cmpu.eq.qb $t6, $t7", 0x00000018, 0xffff2435, t6,
1636                          t7);
1637   TESTDSPINST_RS_RT_DSPC("cmpu.eq.qb $t5, $t3", 0xbabababa, 0xabababab, t5,
1638                          t3);
1639   TESTDSPINST_RS_RT_DSPC("cmpu.eq.qb $t2, $t4", 0xf0f0f0f0, 0xfc79b4d2, t2,
1640                          t4);
1641   TESTDSPINST_RS_RT_DSPC("cmpu.eq.qb $t0, $t8", 0xfbde3976, 0x00000000, t0,
1642                          t8);
1643   TESTDSPINST_RS_RT_DSPC("cmpu.eq.qb $t4, $t6", 0x23534870, 0x00354565, t4,
1644                          t6);
1645   TESTDSPINST_RS_RT_DSPC("cmpu.eq.qb $t0, $t1", 0x980b7cde, 0x00086755, t0,
1646                          t1);
1647   TESTDSPINST_RS_RT_DSPC("cmpu.eq.qb $t2, $t3", 0x00000018, 0x8f8f8f8f, t2,
1648                          t3);
1649   TESTDSPINST_RS_RT_DSPC("cmpu.eq.qb $t4, $t1", 0x92784656, 0xeeeeeeee, t4,
1650                          t1);
1651   TESTDSPINST_RS_RT_DSPC("cmpu.eq.qb $t6, $t7", 0xcacacaca, 0x1bdbdbdb, t6,
1652                          t7);
1653   TESTDSPINST_RS_RT_DSPC("cmpu.eq.qb $t5, $t3", 0xbacabaca, 0xdecadeca, t5,
1654                          t3);
1655   TESTDSPINST_RS_RT_DSPC("cmpu.eq.qb $t2, $t4", 0x12fadeb4, 0x93474bde, t2,
1656                          t4);
1657   TESTDSPINST_RS_RT_DSPC("cmpu.eq.qb $t0, $t8", 0x7c000790, 0xfc0007ff, t0,
1658                          t8);
1659   TESTDSPINST_RS_RT_DSPC("cmpu.eq.qb $t4, $t6", 0xffffffff, 0xffffffff, t4,
1660                          t6);
1661   TESTDSPINST_RS_RT_DSPC("cmpu.eq.qb $t0, $t1", 0xf2f4df1f, 0xcb4ab48f, t0,
1662                          t1);
1663   TESTDSPINST_RS_RT_DSPC("cmpu.eq.qb $t2, $t3", 0x435f909a, 0xaf8f7e18, t2,
1664                          t3);
1665   TESTDSPINST_RS_RT_DSPC("cmpu.eq.qb $t4, $t1", 0x2106ba5f, 0x87df4510, t4,
1666                          t1);
1667   TESTDSPINST_RS_RT_DSPC("cmpu.eq.qb $t6, $t7", 0x246a6376, 0xabf4e8e1, t6,
1668                          t7);
1669   TESTDSPINST_RS_RT_DSPC("cmpu.eq.qb $t5, $t3", 0x1046a1a3, 0xf4c0eeac, t5,
1670                          t3);
1671   TESTDSPINST_RS_RT_DSPC("cmpu.eq.qb $t2, $t4", 0x638ca515, 0x006a54f2, t2,
1672                          t4);
1673   TESTDSPINST_RS_RT_DSPC("cmpu.eq.qb $t0, $t8", 0xf63e7a9d, 0x79f74493, t0,
1674                          t8);
1675   TESTDSPINST_RS_RT_DSPC("cmpu.eq.qb $t4, $t6", 0xbd6845cd, 0x9c09e313, t4,
1676                          t6);
1677
1678   printf("-------- CMPU.LT.QB --------\n");
1679   TESTDSPINST_RS_RT_DSPC("cmpu.lt.qb $t0, $t1", 0x00000000, 0x0fffffff, t0,
1680                          t1);
1681   TESTDSPINST_RS_RT_DSPC("cmpu.lt.qb $t2, $t3", 0x00045fb2, 0x01080286, t2,
1682                          t3);
1683   TESTDSPINST_RS_RT_DSPC("cmpu.lt.qb $t4, $t1", 0xfabc2435, 0xfabc3421, t4,
1684                          t1);
1685   TESTDSPINST_RS_RT_DSPC("cmpu.lt.qb $t6, $t7", 0x07654cb8, 0x73464cb8, t6,
1686                          t7);
1687   TESTDSPINST_RS_RT_DSPC("cmpu.lt.qb $t5, $t3", 0xf973437b, 0x80000000, t5,
1688                          t3);
1689   TESTDSPINST_RS_RT_DSPC("cmpu.lt.qb $t2, $t4", 0xffffffff, 0x00010001, t2,
1690                          t4);
1691   TESTDSPINST_RS_RT_DSPC("cmpu.lt.qb $t0, $t8", 0x7fff7fff, 0x7fff7fff, t0,
1692                          t8);
1693   TESTDSPINST_RS_RT_DSPC("cmpu.lt.qb $t4, $t6", 0x0000c420, 0x00000555, t4,
1694                          t6);
1695   TESTDSPINST_RS_RT_DSPC("cmpu.lt.qb $t0, $t1", 0x00000000, 0x00000000, t0,
1696                          t1);
1697   TESTDSPINST_RS_RT_DSPC("cmpu.lt.qb $t2, $t3", 0x80000000, 0x80000000, t2,
1698                          t3);
1699   TESTDSPINST_RS_RT_DSPC("cmpu.lt.qb $t4, $t1", 0xaaaaaaaa, 0x55555555, t4,
1700                          t1);
1701   TESTDSPINST_RS_RT_DSPC("cmpu.lt.qb $t6, $t7", 0x00000018, 0xffff2435, t6,
1702                          t7);
1703   TESTDSPINST_RS_RT_DSPC("cmpu.lt.qb $t5, $t3", 0xbabababa, 0xabababab, t5,
1704                          t3);
1705   TESTDSPINST_RS_RT_DSPC("cmpu.lt.qb $t2, $t4", 0xf0f0f0f0, 0xfc79b4d2, t2,
1706                          t4);
1707   TESTDSPINST_RS_RT_DSPC("cmpu.lt.qb $t0, $t8", 0xfbde3976, 0x00000000, t0,
1708                          t8);
1709   TESTDSPINST_RS_RT_DSPC("cmpu.lt.qb $t4, $t6", 0x23534870, 0x00354565, t4,
1710                          t6);
1711   TESTDSPINST_RS_RT_DSPC("cmpu.lt.qb $t0, $t1", 0x980b7cde, 0x00086755, t0,
1712                          t1);
1713   TESTDSPINST_RS_RT_DSPC("cmpu.lt.qb $t2, $t3", 0x00000018, 0x8f8f8f8f, t2,
1714                          t3);
1715   TESTDSPINST_RS_RT_DSPC("cmpu.lt.qb $t4, $t1", 0x92784656, 0xeeeeeeee, t4,
1716                          t1);
1717   TESTDSPINST_RS_RT_DSPC("cmpu.lt.qb $t6, $t7", 0xcacacaca, 0x1bdbdbdb, t6,
1718                          t7);
1719   TESTDSPINST_RS_RT_DSPC("cmpu.lt.qb $t5, $t3", 0xbacabaca, 0xdecadeca, t5,
1720                          t3);
1721   TESTDSPINST_RS_RT_DSPC("cmpu.lt.qb $t2, $t4", 0x12fadeb4, 0x93474bde, t2,
1722                          t4);
1723   TESTDSPINST_RS_RT_DSPC("cmpu.lt.qb $t0, $t8", 0x7c000790, 0xfc0007ff, t0,
1724                          t8);
1725   TESTDSPINST_RS_RT_DSPC("cmpu.lt.qb $t4, $t6", 0xffffffff, 0xffffffff, t4,
1726                          t6);
1727   TESTDSPINST_RS_RT_DSPC("cmpu.lt.qb $t0, $t1", 0xf2f4df1f, 0xcb4ab48f, t0,
1728                          t1);
1729   TESTDSPINST_RS_RT_DSPC("cmpu.lt.qb $t2, $t3", 0x435f909a, 0xaf8f7e18, t2,
1730                          t3);
1731   TESTDSPINST_RS_RT_DSPC("cmpu.lt.qb $t4, $t1", 0x2106ba5f, 0x87df4510, t4,
1732                          t1);
1733   TESTDSPINST_RS_RT_DSPC("cmpu.lt.qb $t6, $t7", 0x246a6376, 0xabf4e8e1, t6,
1734                          t7);
1735   TESTDSPINST_RS_RT_DSPC("cmpu.lt.qb $t5, $t3", 0x1046a1a3, 0xf4c0eeac, t5,
1736                          t3);
1737   TESTDSPINST_RS_RT_DSPC("cmpu.lt.qb $t2, $t4", 0x638ca515, 0x006a54f2, t2,
1738                          t4);
1739   TESTDSPINST_RS_RT_DSPC("cmpu.lt.qb $t0, $t8", 0xf63e7a9d, 0x79f74493, t0,
1740                          t8);
1741   TESTDSPINST_RS_RT_DSPC("cmpu.lt.qb $t4, $t6", 0xbd6845cd, 0x9c09e313, t4,
1742                          t6);
1743
1744   printf("-------- CMPU.LE.QB --------\n");
1745   TESTDSPINST_RS_RT_DSPC("cmpu.le.qb $t0, $t1", 0x00000000, 0x0fffffff, t0,
1746                          t1);
1747   TESTDSPINST_RS_RT_DSPC("cmpu.le.qb $t2, $t3", 0x00045fb2, 0x01040286, t2,
1748                          t3);
1749   TESTDSPINST_RS_RT_DSPC("cmpu.le.qb $t4, $t1", 0xfabc2435, 0xfabc3421, t4,
1750                          t1);
1751   TESTDSPINST_RS_RT_DSPC("cmpu.le.qb $t6, $t7", 0x07654cb8, 0x73464cb8, t6,
1752                          t7);
1753   TESTDSPINST_RS_RT_DSPC("cmpu.le.qb $t5, $t3", 0xf973437b, 0x80000000, t5,
1754                          t3);
1755   TESTDSPINST_RS_RT_DSPC("cmpu.le.qb $t2, $t4", 0x00010001, 0xffffffff, t2,
1756                          t4);
1757   TESTDSPINST_RS_RT_DSPC("cmpu.le.qb $t0, $t8", 0x7fff7fff, 0x7fff7fff, t0,
1758                          t8);
1759   TESTDSPINST_RS_RT_DSPC("cmpu.le.qb $t4, $t6", 0x0000c420, 0x00000555, t4,
1760                          t6);
1761   TESTDSPINST_RS_RT_DSPC("cmpu.le.qb $t0, $t1", 0x00000000, 0x00000000, t0,
1762                          t1);
1763   TESTDSPINST_RS_RT_DSPC("cmpu.le.qb $t2, $t3", 0x80000000, 0x80000000, t2,
1764                          t3);
1765   TESTDSPINST_RS_RT_DSPC("cmpu.le.qb $t4, $t1", 0xaaaaaaaa, 0x55555555, t4,
1766                          t1);
1767   TESTDSPINST_RS_RT_DSPC("cmpu.le.qb $t6, $t7", 0x00000018, 0xffff2435, t6,
1768                          t7);
1769   TESTDSPINST_RS_RT_DSPC("cmpu.le.qb $t5, $t3", 0xbabababa, 0xabababab, t5,
1770                          t3);
1771   TESTDSPINST_RS_RT_DSPC("cmpu.le.qb $t2, $t4", 0xf0f0f0f0, 0xfc79b4d2, t2,
1772                          t4);
1773   TESTDSPINST_RS_RT_DSPC("cmpu.le.qb $t0, $t8", 0xfbde3976, 0x00000000, t0,
1774                          t8);
1775   TESTDSPINST_RS_RT_DSPC("cmpu.le.qb $t4, $t6", 0x23534870, 0x00354565, t4,
1776                          t6);
1777   TESTDSPINST_RS_RT_DSPC("cmpu.le.qb $t0, $t1", 0x980b7cde, 0x00086755, t0,
1778                          t1);
1779   TESTDSPINST_RS_RT_DSPC("cmpu.le.qb $t2, $t3", 0x00000018, 0x8f8f8f8f, t2,
1780                          t3);
1781   TESTDSPINST_RS_RT_DSPC("cmpu.le.qb $t4, $t1", 0x92784656, 0xeeeeeeee, t4,
1782                          t1);
1783   TESTDSPINST_RS_RT_DSPC("cmpu.le.qb $t6, $t7", 0xcacacaca, 0x1bdbdbdb, t6,
1784                          t7);
1785   TESTDSPINST_RS_RT_DSPC("cmpu.le.qb $t5, $t3", 0xbacabaca, 0xdecadeca, t5,
1786                          t3);
1787   TESTDSPINST_RS_RT_DSPC("cmpu.le.qb $t2, $t4", 0x12fadeb4, 0x93474bde, t2,
1788                          t4);
1789   TESTDSPINST_RS_RT_DSPC("cmpu.le.qb $t0, $t8", 0x7c000790, 0xfc0007ff, t0,
1790                          t8);
1791   TESTDSPINST_RS_RT_DSPC("cmpu.le.qb $t4, $t6", 0xffffffff, 0xffffffff, t4,
1792                          t6);
1793   TESTDSPINST_RS_RT_DSPC("cmpu.le.qb $t0, $t1", 0xf2f4df1f, 0xcb4ab48f, t0,
1794                          t1);
1795   TESTDSPINST_RS_RT_DSPC("cmpu.le.qb $t2, $t3", 0x435f909a, 0xaf8f7e18, t2,
1796                          t3);
1797   TESTDSPINST_RS_RT_DSPC("cmpu.le.qb $t4, $t1", 0x2106ba5f, 0x87df4510, t4,
1798                          t1);
1799   TESTDSPINST_RS_RT_DSPC("cmpu.le.qb $t6, $t7", 0x246a6376, 0xabf4e8e1, t6,
1800                          t7);
1801   TESTDSPINST_RS_RT_DSPC("cmpu.le.qb $t5, $t3", 0x1046a1a3, 0xf4c0eeac, t5,
1802                          t3);
1803   TESTDSPINST_RS_RT_DSPC("cmpu.le.qb $t2, $t4", 0x638ca515, 0x006a54f2, t2,
1804                          t4);
1805   TESTDSPINST_RS_RT_DSPC("cmpu.le.qb $t0, $t8", 0xf63e7a9d, 0x79f74493, t0,
1806                          t8);
1807   TESTDSPINST_RS_RT_DSPC("cmpu.le.qb $t4, $t6", 0xbd6845cd, 0x9c09e313, t4,
1808                          t6);
1809
1810   printf("-------- DPAQ_S.W.PH --------\n");
1811   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac3, $t4, $t5", "ac3", 0x00000000,
1812                             0x00000000, 0xffffffff, 0x80000000, t4, t5);
1813   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac0, $t0, $t1", "ac0", 0x00000004,
1814                             1073741824, 0x00000000, 0x00000006, t0, t1);
1815   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac1, $t2, $t3", "ac1", 0x80002435,
1816                             0x80003421, 0x00000000, 1073741824, t2, t3);
1817   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac3, $t6, $t7", "ac3", 0x76548000,
1818                             0x73468000, 0x00000000, 0x7fffffff, t6, t7);
1819   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac0, $t5, $t3", "ac0", 0x80000000,
1820                             0x80000000, 0x00000000, 0x00000001, t5, t3);
1821   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac1, $t2, $t4", "ac1", 0x00010001,
1822                             0xffffffff, 0xffffffff, 0xffffffff, t2, t4);
1823   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac2, $t0, $t8", "ac2", 0x7fff7fff,
1824                             0x7fff7fff, 0xffffffff, 0xffffffff, t0, t8);
1825   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac0, $t0, $t1", "ac0", 0x0000c420,
1826                             0x00000555, 0x00000000, 0x0fde3126, t0, t1);
1827   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac1, $t2, $t3", "ac1", 0x00000000,
1828                             0x00000000, 0x00000000, 0x55555555, t2, t3);
1829   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac2, $t4, $t1", "ac2", 0x80000000,
1830                             0x80000000, 0xffffffff, 0xffff2435, t4, t1);
1831   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac3, $t6, $t7", "ac3", 0xaaaaaaaa,
1832                             0x55555555, 0xffffffff, 0xabababab, t6, t7);
1833   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac0, $t5, $t3", "ac0", 0x00000018,
1834                             0xffff2435, 0xffffffff, 0xfc79b4d2, t5, t3);
1835   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac1, $t2, $t4", "ac1", 0xbabababa,
1836                             0xabababab, 0x00000000, 0x00000000, t2, t4);
1837   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac2, $t0, $t8", "ac2", 0xf0f0f0f0,
1838                             0xfc79b4d2, 0x00000000, 0x00000000, t0, t8);
1839   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac3, $t4, $t5", "ac3", 0xfbde3976,
1840                             0x00000000, 0x00000000, 0x12349876, t4, t5);
1841   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac0, $t0, $t1", "ac0", 0x23534870,
1842                             0x00354565, 0x00000000, 0x00354565, t0, t1);
1843   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac1, $t2, $t3", "ac1", 0x980b7cde,
1844                             0x00086755, 0x00000000, 0x00086755, t2, t3);
1845   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac2, $t4, $t1", "ac2", 0x00000018,
1846                             0x8f8f8f8f, 0xffffffff, 0x8f8f8f8f, t4, t1);
1847   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac3, $t6, $t7", "ac3", 0x92784656,
1848                             0xeeeeeeee, 0xffffffff, 0xeeeeeeee, t6, t7);
1849   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac0, $t5, $t3", "ac0", 0xcacacaca,
1850                             0x1bdbdbdb, 0x00000000, 0x1bdbdbdb, t5, t3);
1851   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac1, $t2, $t4", "ac1", 0xbacabaca,
1852                             0xdecadeca, 0xffffffff, 0xdecadeca, t2, t4);
1853   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac2, $t0, $t8", "ac2", 0x12fadeb4,
1854                             0x93474bde, 0xffffffff, 0x93474bde, t0, t8);
1855   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac3, $t4, $t5", "ac3", 0x7c000790,
1856                             0xfc0007ff, 0xffffffff, 0xfabfabfa, t4, t5);
1857   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac2, $t0, $t8", "ac2", 0xffffffff,
1858                             0xffffffff, 0x00000000, 0x083b3571, t0, t8);
1859   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac0, $t0, $t1", "ac0", 0x24a3291e,
1860                             0x5648e540, 0xffffffff, 0xb9743941, t0, t1);
1861   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac1, $t2, $t3", "ac1", 0xdd91eebf,
1862                             0xc54f79e6, 0xffffffff, 0xbce5f924, t2, t3);
1863   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac2, $t4, $t1", "ac2", 0xf7ce2ec6,
1864                             0x5fc92974, 0xffffffff, 0xcc3c201c, t4, t1);
1865   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac3, $t6, $t7", "ac3", 0xbc1083e8,
1866                             0x7e08184e, 0x00000000, 0x1ebaf88e, t6, t7);
1867   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac0, $t5, $t3", "ac0", 0xa617cc31,
1868                             0x71c8315f, 0x00000000, 0x722d5e20, t5, t3);
1869   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac1, $t2, $t4", "ac1", 0xdfe1e8f0,
1870                             0x9493110e, 0xffffffff, 0xa1d6f791, t2, t4);
1871   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac2, $t0, $t8", "ac2", 0x31458a23,
1872                             0xbb246228, 0x00000000, 0x7b11bee7, t0, t8);
1873   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac3, $t4, $t5", "ac3", 0x848af791,
1874                             0x339d8d88, 0xffffffff, 0xa5631488, t4, t5);
1875   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac0, $t0, $t1", "ac0", 0xda3bacdc,
1876                             0x70974249, 0xffffffff, 0xb10bcc65, t0, t1);
1877   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac1, $t2, $t3", "ac1", 0x649d5cbd,
1878                             0x8a8d4e7d, 0x00000000, 0x73f39fca, t2, t3);
1879   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac2, $t4, $t1", "ac2", 0xc0c8c881,
1880                             0xeb1b4335, 0x00000000, 0x5648e540, t4, t1);
1881   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac3, $t6, $t7", "ac3", 0x7dd81a20,
1882                             0x0cd6b508, 0xffffffff, 0xc54f79e6, t6, t7);
1883   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac0, $t5, $t3", "ac0", 0x7fff7fff,
1884                             0x6731e282, 0x00000000, 0x5fc92974, t5, t3);
1885   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac1, $t2, $t4", "ac1", 0x00000555,
1886                             0xb6edf28f, 0x00000000, 0x7e08184e, t2, t4);
1887   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac2, $t0, $t8", "ac2", 0x00000000,
1888                             0x4b4ec9ca, 0x00000000, 0x71c8315f, t0, t8);
1889   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac3, $t4, $t5", "ac3", 0x80000000,
1890                             0xc1037fa4, 0xffffffff, 0x9493110e, t4, t5);
1891   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac1, $t2, $t4", "ac1", 0x55555555,
1892                             0xcb4ab48f, 0xffffffff, 0xbb246228, t2, t4);
1893   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac2, $t0, $t8", "ac2", 0xffff8000,
1894                             0xaf8f8000, 0x00000000, 0x339d8d88, t0, t8);
1895   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac0, $t0, $t1", "ac0", 0xabababab,
1896                             0x87df4510, 0x00000000, 0x70974249, t0, t1);
1897   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac1, $t2, $t3", "ac1", 0xfc79b4d2,
1898                             0xabf4e8e1, 0xffffffff, 0x8a8d4e7d, t2, t3);
1899   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac2, $t4, $t1", "ac2", 0x00000000,
1900                             0xf4c0eeac, 0xffffffff, 0xeb1b4335, t4, t1);
1901   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac3, $t6, $t7", "ac3", 0x00354565,
1902                             0x006a54f2, 0x00000000, 0x0cd6b508, t6, t7);
1903   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac0, $t5, $t3", "ac0", 0x00086755,
1904                             0x79f74493, 0x00000000, 0x6731e282, t5, t3);
1905   TESTDSPINST_AC_RS_RT_DSPC("dpaq_s.w.ph $ac1, $t2, $t4", "ac1", 0xffff8000,
1906                             0x9c098000, 0xffffffff, 0xb6edf28f, t2, t4);
1907
1908
1909   printf("-------- DPAQ_SA.L.W -------- \n");
1910   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac3, $t4, $t5", "ac3", 0x00000000,
1911                             0x00000000, 0xffffffff, 0x80000000, t4, t5);
1912   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac0, $t0, $t1", "ac0", 0x00000004,
1913                             1073741824, 0x00000000, 0x00000006, t0, t1);
1914   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac1, $t2, $t3", "ac1", 0x80002435,
1915                             0x80003421, 0x00000000, 1073741824, t2, t3);
1916   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac3, $t6, $t7", "ac3", 0x76548000,
1917                             0x73468000, 0x00000000, 0x7fffffff, t6, t7);
1918   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac0, $t5, $t3", "ac0", 0x80000000,
1919                             0x80000000, 0x00000000, 0x00000001, t5, t3);
1920   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac1, $t2, $t4", "ac1", 0x00010001,
1921                             0xffffffff, 0xffffffff, 0xffffffff, t2, t4);
1922   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac2, $t0, $t8", "ac2", 0x7fff7fff,
1923                             0x7fff7fff, 0xffffffff, 0xffffffff, t0, t8);
1924   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac0, $t0, $t1", "ac0", 0x0000c420,
1925                             0x00000555, 0x00000000, 0x0fde3126, t0, t1);
1926   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac1, $t2, $t3", "ac1", 0x00000000,
1927                             0x00000000, 0x00000000, 0x55555555, t2, t3);
1928   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac2, $t4, $t1", "ac2", 0x80000000,
1929                             0x80000000, 0xffffffff, 0xffff2435, t4, t1);
1930   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac3, $t6, $t7", "ac3", 0xaaaaaaaa,
1931                             0x55555555, 0xffffffff, 0xabababab, t6, t7);
1932   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac0, $t5, $t3", "ac0", 0x00000018,
1933                             0xffff2435, 0xffffffff, 0xfc79b4d2, t5, t3);
1934   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac1, $t2, $t4", "ac1", 0xbabababa,
1935                             0xabababab, 0x00000000, 0x00000000, t2, t4);
1936   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac2, $t0, $t8", "ac2", 0xf0f0f0f0,
1937                             0xfc79b4d2, 0x00000000, 0x00000000, t0, t8);
1938   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac3, $t4, $t5", "ac3", 0xfbde3976,
1939                             0x00000000, 0x00000000, 0x12349876, t4, t5);
1940   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac0, $t0, $t1", "ac0", 0x23534870,
1941                             0x00354565, 0x00000000, 0x00354565, t0, t1);
1942   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac1, $t2, $t3", "ac1", 0x980b7cde,
1943                             0x00086755, 0x00000000, 0x00086755, t2, t3);
1944   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac2, $t4, $t1", "ac2", 0x00000018,
1945                             0x8f8f8f8f, 0xffffffff, 0x8f8f8f8f, t4, t1);
1946   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac3, $t6, $t7", "ac3", 0x92784656,
1947                             0xeeeeeeee, 0xffffffff, 0xeeeeeeee, t6, t7);
1948   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac0, $t5, $t3", "ac0", 0xcacacaca,
1949                             0x1bdbdbdb, 0x00000000, 0x1bdbdbdb, t5, t3);
1950   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac1, $t2, $t4", "ac1", 0xbacabaca,
1951                             0xdecadeca, 0xffffffff, 0xdecadeca, t2, t4);
1952   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac2, $t0, $t8", "ac2", 0x12fadeb4,
1953                             0x93474bde, 0xffffffff, 0x93474bde, t0, t8);
1954   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac3, $t4, $t5", "ac3", 0x7c000790,
1955                             0xfc0007ff, 0xffffffff, 0xfabfabfa, t4, t5);
1956   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac2, $t0, $t8", "ac2", 0xffffffff,
1957                             0xffffffff, 0x00000000, 0x083b3571, t0, t8);
1958   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac0, $t0, $t1", "ac0", 0x24a3291e,
1959                             0x5648e540, 0xffffffff, 0xb9743941, t0, t1);
1960   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac1, $t2, $t3", "ac1", 0xdd91eebf,
1961                             0xc54f79e6, 0xffffffff, 0xbce5f924, t2, t3);
1962   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac2, $t4, $t1", "ac2", 0xf7ce2ec6,
1963                             0x5fc92974, 0xffffffff, 0xcc3c201c, t4, t1);
1964   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac3, $t6, $t7", "ac3", 0xbc1083e8,
1965                             0x7e08184e, 0x00000000, 0x1ebaf88e, t6, t7);
1966   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac0, $t5, $t3", "ac0", 0xa617cc31,
1967                             0x71c8315f, 0x00000000, 0x722d5e20, t5, t3);
1968   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac1, $t2, $t4", "ac1", 0xdfe1e8f0,
1969                             0x9493110e, 0xffffffff, 0xa1d6f791, t2, t4);
1970   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac2, $t0, $t8", "ac2", 0x31458a23,
1971                             0xbb246228, 0x00000000, 0x7b11bee7, t0, t8);
1972   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac3, $t4, $t5", "ac3", 0x848af791,
1973                             0x339d8d88, 0xffffffff, 0xa5631488, t4, t5);
1974   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac0, $t0, $t1", "ac0", 0xda3bacdc,
1975                             0x70974249, 0xffffffff, 0xb10bcc65, t0, t1);
1976   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac1, $t2, $t3", "ac1", 0x649d5cbd,
1977                             0x8a8d4e7d, 0x00000000, 0x73f39fca, t2, t3);
1978   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac2, $t4, $t1", "ac2", 0xc0c8c881,
1979                             0xeb1b4335, 0x00000000, 0x5648e540, t4, t1);
1980   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac3, $t6, $t7", "ac3", 0x7dd81a20,
1981                             0x0cd6b508, 0xffffffff, 0xc54f79e6, t6, t7);
1982   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac0, $t5, $t3", "ac0", 0x7fff7fff,
1983                             0x6731e282, 0x00000000, 0x5fc92974, t5, t3);
1984   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac1, $t2, $t4", "ac1", 0x00000555,
1985                             0xb6edf28f, 0x00000000, 0x7e08184e, t2, t4);
1986   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac2, $t0, $t8", "ac2", 0x00000000,
1987                             0x4b4ec9ca, 0x00000000, 0x71c8315f, t0, t8);
1988   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac3, $t4, $t5", "ac3", 0x80000000,
1989                             0xc1037fa4, 0xffffffff, 0x9493110e, t4, t5);
1990   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac1, $t2, $t4", "ac1", 0x55555555,
1991                             0xcb4ab48f, 0xffffffff, 0xbb246228, t2, t4);
1992   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac2, $t0, $t8", "ac2", 0xffff8000,
1993                             0xaf8f8000, 0x00000000, 0x339d8d88, t0, t8);
1994   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac0, $t0, $t1", "ac0", 0xabababab,
1995                             0x87df4510, 0x00000000, 0x70974249, t0, t1);
1996   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac1, $t2, $t3", "ac1", 0xfc79b4d2,
1997                             0xabf4e8e1, 0xffffffff, 0x8a8d4e7d, t2, t3);
1998   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac2, $t4, $t1", "ac2", 0x00000000,
1999                             0xf4c0eeac, 0xffffffff, 0xeb1b4335, t4, t1);
2000   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac3, $t6, $t7", "ac3", 0x00354565,
2001                             0x006a54f2, 0x00000000, 0x0cd6b508, t6, t7);
2002   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac0, $t5, $t3", "ac0", 0x00086755,
2003                             0x79f74493, 0x00000000, 0x6731e282, t5, t3);
2004   TESTDSPINST_AC_RS_RT_DSPC("dpaq_sa.l.w $ac1, $t2, $t4", "ac1", 0xffff8000,
2005                             0x9c098000, 0xffffffff, 0xb6edf28f, t2, t4);
2006
2007
2008   printf("-------- DPAU.H.QBL --------\n");
2009   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac3, $t4, $t5", "ac3", 0x00000000,
2010                               0x00000000, 0xffffffff, 0x80000000, t4, t5);
2011   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac0, $t0, $t1", "ac0", 0x00000004,
2012                               1073741824, 0x00000000, 0x00000006, t0, t1);
2013   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac1, $t2, $t3", "ac1", 0x80002435,
2014                               0x80003421, 0x00000000, 1073741824, t2, t3);
2015   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac3, $t6, $t7", "ac3", 0x76548000,
2016                               0x73468000, 0x00000000, 0x7fffffff, t6, t7);
2017   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac0, $t5, $t3", "ac0", 0x80000000,
2018                               0x80000000, 0x00000000, 0x00000001, t5, t3);
2019   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac1, $t2, $t4", "ac1", 0x00010001,
2020                               0xffffffff, 0xffffffff, 0xffffffff, t2, t4);
2021   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac2, $t0, $t8", "ac2", 0x7fff7fff,
2022                               0x7fff7fff, 0xffffffff, 0xffffffff, t0, t8);
2023   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac0, $t0, $t1", "ac0", 0x0000c420,
2024                               0x00000555, 0x00000000, 0x0fde3126, t0, t1);
2025   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac1, $t2, $t3", "ac1", 0x00000000,
2026                               0x00000000, 0x00000000, 0x55555555, t2, t3);
2027   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac2, $t4, $t1", "ac2", 0x80000000,
2028                               0x80000000, 0xffffffff, 0xffff2435, t4, t1);
2029   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac3, $t6, $t7", "ac3", 0xaaaaaaaa,
2030                               0x55555555, 0xffffffff, 0xabababab, t6, t7);
2031   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac0, $t5, $t3", "ac0", 0x00000018,
2032                               0xffff2435, 0xffffffff, 0xfc79b4d2, t5, t3);
2033   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac1, $t2, $t4", "ac1", 0xbabababa,
2034                               0xabababab, 0x00000000, 0x00000000, t2, t4);
2035   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac2, $t0, $t8", "ac2", 0xf0f0f0f0,
2036                               0xfc79b4d2, 0x00000000, 0x00000000, t0, t8);
2037   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac3, $t4, $t5", "ac3", 0xfbde3976,
2038                               0x00000000, 0x00000000, 0x12349876, t4, t5);
2039   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac0, $t0, $t1", "ac0", 0x23534870,
2040                               0x00354565, 0x00000000, 0x00354565, t0, t1);
2041   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac1, $t2, $t3", "ac1", 0x980b7cde,
2042                               0x00086755, 0x00000000, 0x00086755, t2, t3);
2043   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac2, $t4, $t1", "ac2", 0x00000018,
2044                               0x8f8f8f8f, 0xffffffff, 0x8f8f8f8f, t4, t1);
2045   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac3, $t6, $t7", "ac3", 0x92784656,
2046                               0xeeeeeeee, 0xffffffff, 0xeeeeeeee, t6, t7);
2047   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac0, $t5, $t3", "ac0", 0xcacacaca,
2048                               0x1bdbdbdb, 0x00000000, 0x1bdbdbdb, t5, t3);
2049   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac1, $t2, $t4", "ac1", 0xbacabaca,
2050                               0xdecadeca, 0xffffffff, 0xdecadeca, t2, t4);
2051   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac2, $t0, $t8", "ac2", 0x12fadeb4,
2052                               0x93474bde, 0xffffffff, 0x93474bde, t0, t8);
2053   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac3, $t4, $t5", "ac3", 0x7c000790,
2054                               0xfc0007ff, 0xffffffff, 0xfabfabfa, t4, t5);
2055   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac2, $t0, $t8", "ac2", 0xffffffff,
2056                               0xffffffff, 0x00000000, 0x083b3571, t0, t8);
2057   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac0, $t0, $t1", "ac0", 0x24a3291e,
2058                               0x5648e540, 0xffffffff, 0xb9743941, t0, t1);
2059   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac1, $t2, $t3", "ac1", 0xdd91eebf,
2060                               0xc54f79e6, 0xffffffff, 0xbce5f924, t2, t3);
2061   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac2, $t4, $t1", "ac2", 0xf7ce2ec6,
2062                               0x5fc92974, 0xffffffff, 0xcc3c201c, t4, t1);
2063   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac3, $t6, $t7", "ac3", 0xbc1083e8,
2064                               0x7e08184e, 0x00000000, 0x1ebaf88e, t6, t7);
2065   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac0, $t5, $t3", "ac0", 0xa617cc31,
2066                               0x71c8315f, 0x00000000, 0x722d5e20, t5, t3);
2067   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac1, $t2, $t4", "ac1", 0xdfe1e8f0,
2068                               0x9493110e, 0xffffffff, 0xa1d6f791, t2, t4);
2069   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac2, $t0, $t8", "ac2", 0x31458a23,
2070                               0xbb246228, 0x00000000, 0x7b11bee7, t0, t8);
2071   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac3, $t4, $t5", "ac3", 0x848af791,
2072                               0x339d8d88, 0xffffffff, 0xa5631488, t4, t5);
2073   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac0, $t0, $t1", "ac0", 0xda3bacdc,
2074                               0x70974249, 0xffffffff, 0xb10bcc65, t0, t1);
2075   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac1, $t2, $t3", "ac1", 0x649d5cbd,
2076                               0x8a8d4e7d, 0x00000000, 0x73f39fca, t2, t3);
2077   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac2, $t4, $t1", "ac2", 0xc0c8c881,
2078                               0xeb1b4335, 0x00000000, 0x5648e540, t4, t1);
2079   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac3, $t6, $t7", "ac3", 0x7dd81a20,
2080                               0x0cd6b508, 0xffffffff, 0xc54f79e6, t6, t7);
2081   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac0, $t5, $t3", "ac0", 0x7fff7fff,
2082                               0x6731e282, 0x00000000, 0x5fc92974, t5, t3);
2083   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac1, $t2, $t4", "ac1", 0x00000555,
2084                               0xb6edf28f, 0x00000000, 0x7e08184e, t2, t4);
2085   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac2, $t0, $t8", "ac2", 0x00000000,
2086                               0x4b4ec9ca, 0x00000000, 0x71c8315f, t0, t8);
2087   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac3, $t4, $t5", "ac3", 0x80000000,
2088                               0xc1037fa4, 0xffffffff, 0x9493110e, t4, t5);
2089   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac1, $t2, $t4", "ac1", 0x55555555,
2090                               0xcb4ab48f, 0xffffffff, 0xbb246228, t2, t4);
2091   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac2, $t0, $t8", "ac2", 0xffff8000,
2092                               0xaf8f8000, 0x00000000, 0x339d8d88, t0, t8);
2093   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac0, $t0, $t1", "ac0", 0xabababab,
2094                               0x87df4510, 0x00000000, 0x70974249, t0, t1);
2095   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac1, $t2, $t3", "ac1", 0xfc79b4d2,
2096                               0xabf4e8e1, 0xffffffff, 0x8a8d4e7d, t2, t3);
2097   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac2, $t4, $t1", "ac2", 0x00000000,
2098                               0xf4c0eeac, 0xffffffff, 0xeb1b4335, t4, t1);
2099   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac3, $t6, $t7", "ac3", 0x00354565,
2100                               0x006a54f2, 0x00000000, 0x0cd6b508, t6, t7);
2101   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac0, $t5, $t3", "ac0", 0x00086755,
2102                               0x79f74493, 0x00000000, 0x6731e282, t5, t3);
2103   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbl $ac1, $t2, $t4", "ac1", 0xffff8000,
2104                               0x9c098000, 0xffffffff, 0xb6edf28f, t2, t4);
2105
2106   printf("-------- DPAU.H.QBR --------\n");
2107   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac3, $t4, $t5", "ac3", 0x00000000,
2108                               0x00000000, 0xffffffff, 0x80000000, t4, t5);
2109   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac0, $t0, $t1", "ac0", 0x00000004,
2110                               1073741824, 0x00000000, 0x00000006, t0, t1);
2111   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac1, $t2, $t3", "ac1", 0x80002435,
2112                               0x80003421, 0x00000000, 1073741824, t2, t3);
2113   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac3, $t6, $t7", "ac3", 0x76548000,
2114                               0x73468000, 0x00000000, 0x7fffffff, t6, t7);
2115   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac0, $t5, $t3", "ac0", 0x80000000,
2116                               0x80000000, 0x00000000, 0x00000001, t5, t3);
2117   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac1, $t2, $t4", "ac1", 0x00010001,
2118                               0xffffffff, 0xffffffff, 0xffffffff, t2, t4);
2119   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac2, $t0, $t8", "ac2", 0x7fff7fff,
2120                               0x7fff7fff, 0xffffffff, 0xffffffff, t0, t8);
2121   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac0, $t0, $t1", "ac0", 0x0000c420,
2122                               0x00000555, 0x00000000, 0x0fde3126, t0, t1);
2123   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac1, $t2, $t3", "ac1", 0x00000000,
2124                               0x00000000, 0x00000000, 0x55555555, t2, t3);
2125   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac2, $t4, $t1", "ac2", 0x80000000,
2126                               0x80000000, 0xffffffff, 0xffff2435, t4, t1);
2127   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac3, $t6, $t7", "ac3", 0xaaaaaaaa,
2128                               0x55555555, 0xffffffff, 0xabababab, t6, t7);
2129   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac0, $t5, $t3", "ac0", 0x00000018,
2130                               0xffff2435, 0xffffffff, 0xfc79b4d2, t5, t3);
2131   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac1, $t2, $t4", "ac1", 0xbabababa,
2132                               0xabababab, 0x00000000, 0x00000000, t2, t4);
2133   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac2, $t0, $t8", "ac2", 0xf0f0f0f0,
2134                               0xfc79b4d2, 0x00000000, 0x00000000, t0, t8);
2135   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac3, $t4, $t5", "ac3", 0xfbde3976,
2136                               0x00000000, 0x00000000, 0x12349876, t4, t5);
2137   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac0, $t0, $t1", "ac0", 0x23534870,
2138                               0x00354565, 0x00000000, 0x00354565, t0, t1);
2139   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac1, $t2, $t3", "ac1", 0x980b7cde,
2140                               0x00086755, 0x00000000, 0x00086755, t2, t3);
2141   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac2, $t4, $t1", "ac2", 0x00000018,
2142                               0x8f8f8f8f, 0xffffffff, 0x8f8f8f8f, t4, t1);
2143   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac3, $t6, $t7", "ac3", 0x92784656,
2144                               0xeeeeeeee, 0xffffffff, 0xeeeeeeee, t6, t7);
2145   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac0, $t5, $t3", "ac0", 0xcacacaca,
2146                               0x1bdbdbdb, 0x00000000, 0x1bdbdbdb, t5, t3);
2147   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac1, $t2, $t4", "ac1", 0xbacabaca,
2148                               0xdecadeca, 0xffffffff, 0xdecadeca, t2, t4);
2149   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac2, $t0, $t8", "ac2", 0x12fadeb4,
2150                               0x93474bde, 0xffffffff, 0x93474bde, t0, t8);
2151   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac3, $t4, $t5", "ac3", 0x7c000790,
2152                               0xfc0007ff, 0xffffffff, 0xfabfabfa, t4, t5);
2153   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac2, $t0, $t8", "ac2", 0xffffffff,
2154                               0xffffffff, 0x00000000, 0x083b3571, t0, t8);
2155   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac0, $t0, $t1", "ac0", 0x24a3291e,
2156                               0x5648e540, 0xffffffff, 0xb9743941, t0, t1);
2157   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac1, $t2, $t3", "ac1", 0xdd91eebf,
2158                               0xc54f79e6, 0xffffffff, 0xbce5f924, t2, t3);
2159   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac2, $t4, $t1", "ac2", 0xf7ce2ec6,
2160                               0x5fc92974, 0xffffffff, 0xcc3c201c, t4, t1);
2161   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac3, $t6, $t7", "ac3", 0xbc1083e8,
2162                               0x7e08184e, 0x00000000, 0x1ebaf88e, t6, t7);
2163   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac0, $t5, $t3", "ac0", 0xa617cc31,
2164                               0x71c8315f, 0x00000000, 0x722d5e20, t5, t3);
2165   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac1, $t2, $t4", "ac1", 0xdfe1e8f0,
2166                               0x9493110e, 0xffffffff, 0xa1d6f791, t2, t4);
2167   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac2, $t0, $t8", "ac2", 0x31458a23,
2168                               0xbb246228, 0x00000000, 0x7b11bee7, t0, t8);
2169   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac3, $t4, $t5", "ac3", 0x848af791,
2170                               0x339d8d88, 0xffffffff, 0xa5631488, t4, t5);
2171   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac0, $t0, $t1", "ac0", 0xda3bacdc,
2172                               0x70974249, 0xffffffff, 0xb10bcc65, t0, t1);
2173   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac1, $t2, $t3", "ac1", 0x649d5cbd,
2174                               0x8a8d4e7d, 0x00000000, 0x73f39fca, t2, t3);
2175   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac2, $t4, $t1", "ac2", 0xc0c8c881,
2176                               0xeb1b4335, 0x00000000, 0x5648e540, t4, t1);
2177   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac3, $t6, $t7", "ac3", 0x7dd81a20,
2178                               0x0cd6b508, 0xffffffff, 0xc54f79e6, t6, t7);
2179   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac0, $t5, $t3", "ac0", 0x7fff7fff,
2180                               0x6731e282, 0x00000000, 0x5fc92974, t5, t3);
2181   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac1, $t2, $t4", "ac1", 0x00000555,
2182                               0xb6edf28f, 0x00000000, 0x7e08184e, t2, t4);
2183   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac2, $t0, $t8", "ac2", 0x00000000,
2184                               0x4b4ec9ca, 0x00000000, 0x71c8315f, t0, t8);
2185   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac3, $t4, $t5", "ac3", 0x80000000,
2186                               0xc1037fa4, 0xffffffff, 0x9493110e, t4, t5);
2187   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac1, $t2, $t4", "ac1", 0x55555555,
2188                               0xcb4ab48f, 0xffffffff, 0xbb246228, t2, t4);
2189   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac2, $t0, $t8", "ac2", 0xffff8000,
2190                               0xaf8f8000, 0x00000000, 0x339d8d88, t0, t8);
2191   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac0, $t0, $t1", "ac0", 0xabababab,
2192                               0x87df4510, 0x00000000, 0x70974249, t0, t1);
2193   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac1, $t2, $t3", "ac1", 0xfc79b4d2,
2194                               0xabf4e8e1, 0xffffffff, 0x8a8d4e7d, t2, t3);
2195   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac2, $t4, $t1", "ac2", 0x00000000,
2196                               0xf4c0eeac, 0xffffffff, 0xeb1b4335, t4, t1);
2197   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac3, $t6, $t7", "ac3", 0x00354565,
2198                               0x006a54f2, 0x00000000, 0x0cd6b508, t6, t7);
2199   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac0, $t5, $t3", "ac0", 0x00086755,
2200                               0x79f74493, 0x00000000, 0x6731e282, t5, t3);
2201   TESTDSPINST_AC_RS_RT_NODSPC("dpau.h.qbr $ac1, $t2, $t4", "ac1", 0xffff8000,
2202                               0x9c098000, 0xffffffff, 0xb6edf28f, t2, t4);
2203
2204   printf("-------- DPSQ_S.W.PH --------\n");
2205   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac3, $t4, $t5", "ac3", 0x00000000,
2206                             0x00000000, 0xffffffff, 0x80000000, t4, t5);
2207   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac0, $t0, $t1", "ac0", 0x00000004,
2208                             1073741824, 0x00000000, 0x00000006, t0, t1);
2209   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac1, $t2, $t3", "ac1", 0x80002435,
2210                             0x80003421, 0x00000000, 1073741824, t2, t3);
2211   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac3, $t6, $t7", "ac3", 0x76548000,
2212                             0x73468000, 0x00000000, 0x7fffffff, t6, t7);
2213   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac0, $t5, $t3", "ac0", 0x80000000,
2214                             0x80000000, 0x00000000, 0x00000001, t5, t3);
2215   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac1, $t2, $t4", "ac1", 0x00010001,
2216                             0xffffffff, 0xffffffff, 0xffffffff, t2, t4);
2217   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac2, $t0, $t8", "ac2", 0x7fff7fff,
2218                             0x7fff7fff, 0xffffffff, 0xffffffff, t0, t8);
2219   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac0, $t0, $t1", "ac0", 0x0000c420,
2220                             0x00000555, 0x00000000, 0x0fde3126, t0, t1);
2221   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac1, $t2, $t3", "ac1", 0x00000000,
2222                             0x00000000, 0x00000000, 0x55555555, t2, t3);
2223   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac2, $t4, $t1", "ac2", 0x80000000,
2224                             0x80000000, 0xffffffff, 0xffff2435, t4, t1);
2225   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac3, $t6, $t7", "ac3", 0xaaaaaaaa,
2226                             0x55555555, 0xffffffff, 0xabababab, t6, t7);
2227   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac0, $t5, $t3", "ac0", 0x00000018,
2228                             0xffff2435, 0xffffffff, 0xfc79b4d2, t5, t3);
2229   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac1, $t2, $t4", "ac1", 0xbabababa,
2230                             0xabababab, 0x00000000, 0x00000000, t2, t4);
2231   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac2, $t0, $t8", "ac2", 0xf0f0f0f0,
2232                             0xfc79b4d2, 0x00000000, 0x00000000, t0, t8);
2233   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac3, $t4, $t5", "ac3", 0xfbde3976,
2234                             0x00000000, 0x00000000, 0x12349876, t4, t5);
2235   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac0, $t0, $t1", "ac0", 0x23534870,
2236                             0x00354565, 0x00000000, 0x00354565, t0, t1);
2237   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac1, $t2, $t3", "ac1", 0x980b7cde,
2238                             0x00086755, 0x00000000, 0x00086755, t2, t3);
2239   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac2, $t4, $t1", "ac2", 0x00000018,
2240                             0x8f8f8f8f, 0xffffffff, 0x8f8f8f8f, t4, t1);
2241   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac3, $t6, $t7", "ac3", 0x92784656,
2242                             0xeeeeeeee, 0xffffffff, 0xeeeeeeee, t6, t7);
2243   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac0, $t5, $t3", "ac0", 0xcacacaca,
2244                             0x1bdbdbdb, 0x00000000, 0x1bdbdbdb, t5, t3);
2245   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac1, $t2, $t4", "ac1", 0xbacabaca,
2246                             0xdecadeca, 0xffffffff, 0xdecadeca, t2, t4);
2247   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac2, $t0, $t8", "ac2", 0x12fadeb4,
2248                             0x93474bde, 0xffffffff, 0x93474bde, t0, t8);
2249   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac3, $t4, $t5", "ac3", 0x7c000790,
2250                             0xfc0007ff, 0xffffffff, 0xfabfabfa, t4, t5);
2251   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac2, $t0, $t8", "ac2", 0xffffffff,
2252                             0xffffffff, 0x00000000, 0x083b3571, t0, t8);
2253   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac0, $t0, $t1", "ac0", 0x24a3291e,
2254                             0x5648e540, 0xffffffff, 0xb9743941, t0, t1);
2255   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac1, $t2, $t3", "ac1", 0xdd91eebf,
2256                             0xc54f79e6, 0xffffffff, 0xbce5f924, t2, t3);
2257   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac2, $t4, $t1", "ac2", 0xf7ce2ec6,
2258                             0x5fc92974, 0xffffffff, 0xcc3c201c, t4, t1);
2259   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac3, $t6, $t7", "ac3", 0xbc1083e8,
2260                             0x7e08184e, 0x00000000, 0x1ebaf88e, t6, t7);
2261   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac0, $t5, $t3", "ac0", 0xa617cc31,
2262                             0x71c8315f, 0x00000000, 0x722d5e20, t5, t3);
2263   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac1, $t2, $t4", "ac1", 0xdfe1e8f0,
2264                             0x9493110e, 0xffffffff, 0xa1d6f791, t2, t4);
2265   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac2, $t0, $t8", "ac2", 0x31458a23,
2266                             0xbb246228, 0x00000000, 0x7b11bee7, t0, t8);
2267   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac3, $t4, $t5", "ac3", 0x848af791,
2268                             0x339d8d88, 0xffffffff, 0xa5631488, t4, t5);
2269   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac0, $t0, $t1", "ac0", 0xda3bacdc,
2270                             0x70974249, 0xffffffff, 0xb10bcc65, t0, t1);
2271   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac1, $t2, $t3", "ac1", 0x649d5cbd,
2272                             0x8a8d4e7d, 0x00000000, 0x73f39fca, t2, t3);
2273   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac2, $t4, $t1", "ac2", 0xc0c8c881,
2274                             0xeb1b4335, 0x00000000, 0x5648e540, t4, t1);
2275   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac3, $t6, $t7", "ac3", 0x7dd81a20,
2276                             0x0cd6b508, 0xffffffff, 0xc54f79e6, t6, t7);
2277   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac0, $t5, $t3", "ac0", 0x7fff7fff,
2278                             0x6731e282, 0x00000000, 0x5fc92974, t5, t3);
2279   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac1, $t2, $t4", "ac1", 0x00000555,
2280                             0xb6edf28f, 0x00000000, 0x7e08184e, t2, t4);
2281   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac2, $t0, $t8", "ac2", 0x00000000,
2282                             0x4b4ec9ca, 0x00000000, 0x71c8315f, t0, t8);
2283   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac3, $t4, $t5", "ac3", 0x80000000,
2284                             0xc1037fa4, 0xffffffff, 0x9493110e, t4, t5);
2285   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac1, $t2, $t4", "ac1", 0x55555555,
2286                             0xcb4ab48f, 0xffffffff, 0xbb246228, t2, t4);
2287   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac2, $t0, $t8", "ac2", 0xffff8000,
2288                             0xaf8f8000, 0x00000000, 0x339d8d88, t0, t8);
2289   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac0, $t0, $t1", "ac0", 0xabababab,
2290                             0x87df4510, 0x00000000, 0x70974249, t0, t1);
2291   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac1, $t2, $t3", "ac1", 0xfc79b4d2,
2292                             0xabf4e8e1, 0xffffffff, 0x8a8d4e7d, t2, t3);
2293   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac2, $t4, $t1", "ac2", 0x00000000,
2294                             0xf4c0eeac, 0xffffffff, 0xeb1b4335, t4, t1);
2295   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac3, $t6, $t7", "ac3", 0x00354565,
2296                             0x006a54f2, 0x00000000, 0x0cd6b508, t6, t7);
2297   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac0, $t5, $t3", "ac0", 0x00086755,
2298                             0x79f74493, 0x00000000, 0x6731e282, t5, t3);
2299   TESTDSPINST_AC_RS_RT_DSPC("dpsq_s.w.ph $ac1, $t2, $t4", "ac1", 0xffff8000,
2300                             0x9c098000, 0xffffffff, 0xb6edf28f, t2, t4);
2301
2302
2303   printf("-------- DPSQ_SA.L.W --------\n");
2304   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac3, $t4, $t5", "ac3", 0x00000000,
2305                             0x00000000, 0xffffffff, 0x80000000, t4, t5);
2306   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac0, $t0, $t1", "ac0", 0x00000004,
2307                             1073741824, 0x00000000, 0x00000006, t0, t1);
2308   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac1, $t2, $t3", "ac1", 0x80002435,
2309                             0x80003421, 0x00000000, 1073741824, t2, t3);
2310   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac3, $t6, $t7", "ac3", 0x76548000,
2311                             0x73468000, 0x00000000, 0x7fffffff, t6, t7);
2312   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac0, $t5, $t3", "ac0", 0x80000000,
2313                             0x80000000, 0x00000000, 0x00000001, t5, t3);
2314   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac1, $t2, $t4", "ac1", 0x00010001,
2315                             0xffffffff, 0xffffffff, 0xffffffff, t2, t4);
2316   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac2, $t0, $t8", "ac2", 0x7fff7fff,
2317                             0x7fff7fff, 0xffffffff, 0xffffffff, t0, t8);
2318   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac0, $t0, $t1", "ac0", 0x0000c420,
2319                             0x00000555, 0x00000000, 0x0fde3126, t0, t1);
2320   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac1, $t2, $t3", "ac1", 0x00000000,
2321                             0x00000000, 0x00000000, 0x55555555, t2, t3);
2322   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac2, $t4, $t1", "ac2", 0x80000000,
2323                             0x80000000, 0xffffffff, 0xffff2435, t4, t1);
2324   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac3, $t6, $t7", "ac3", 0xaaaaaaaa,
2325                             0x55555555, 0xffffffff, 0xabababab, t6, t7);
2326   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac0, $t5, $t3", "ac0", 0x00000018,
2327                             0xffff2435, 0xffffffff, 0xfc79b4d2, t5, t3);
2328   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac1, $t2, $t4", "ac1", 0xbabababa,
2329                             0xabababab, 0x00000000, 0x00000000, t2, t4);
2330   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac2, $t0, $t8", "ac2", 0xf0f0f0f0,
2331                             0xfc79b4d2, 0x00000000, 0x00000000, t0, t8);
2332   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac3, $t4, $t5", "ac3", 0xfbde3976,
2333                             0x00000000, 0x00000000, 0x12349876, t4, t5);
2334   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac0, $t0, $t1", "ac0", 0x23534870,
2335                             0x00354565, 0x00000000, 0x00354565, t0, t1);
2336   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac1, $t2, $t3", "ac1", 0x980b7cde,
2337                             0x00086755, 0x00000000, 0x00086755, t2, t3);
2338   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac2, $t4, $t1", "ac2", 0x00000018,
2339                             0x8f8f8f8f, 0xffffffff, 0x8f8f8f8f, t4, t1);
2340   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac3, $t6, $t7", "ac3", 0x92784656,
2341                             0xeeeeeeee, 0xffffffff, 0xeeeeeeee, t6, t7);
2342   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac0, $t5, $t3", "ac0", 0xcacacaca,
2343                             0x1bdbdbdb, 0x00000000, 0x1bdbdbdb, t5, t3);
2344   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac1, $t2, $t4", "ac1", 0xbacabaca,
2345                             0xdecadeca, 0xffffffff, 0xdecadeca, t2, t4);
2346   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac2, $t0, $t8", "ac2", 0x12fadeb4,
2347                             0x93474bde, 0xffffffff, 0x93474bde, t0, t8);
2348   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac3, $t4, $t5", "ac3", 0x7c000790,
2349                             0xfc0007ff, 0xffffffff, 0xfabfabfa, t4, t5);
2350   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac2, $t0, $t8", "ac2", 0xffffffff,
2351                             0xffffffff, 0x00000000, 0x083b3571, t0, t8);
2352   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac0, $t0, $t1", "ac0", 0x24a3291e,
2353                             0x5648e540, 0xffffffff, 0xb9743941, t0, t1);
2354   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac1, $t2, $t3", "ac1", 0xdd91eebf,
2355                             0xc54f79e6, 0xffffffff, 0xbce5f924, t2, t3);
2356   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac2, $t4, $t1", "ac2", 0xf7ce2ec6,
2357                             0x5fc92974, 0xffffffff, 0xcc3c201c, t4, t1);
2358   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac3, $t6, $t7", "ac3", 0xbc1083e8,
2359                             0x7e08184e, 0x00000000, 0x1ebaf88e, t6, t7);
2360   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac0, $t5, $t3", "ac0", 0xa617cc31,
2361                             0x71c8315f, 0x00000000, 0x722d5e20, t5, t3);
2362   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac1, $t2, $t4", "ac1", 0xdfe1e8f0,
2363                             0x9493110e, 0xffffffff, 0xa1d6f791, t2, t4);
2364   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac2, $t0, $t8", "ac2", 0x31458a23,
2365                             0xbb246228, 0x00000000, 0x7b11bee7, t0, t8);
2366   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac3, $t4, $t5", "ac3", 0x848af791,
2367                             0x339d8d88, 0xffffffff, 0xa5631488, t4, t5);
2368   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac0, $t0, $t1", "ac0", 0xda3bacdc,
2369                             0x70974249, 0xffffffff, 0xb10bcc65, t0, t1);
2370   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac1, $t2, $t3", "ac1", 0x649d5cbd,
2371                             0x8a8d4e7d, 0x00000000, 0x73f39fca, t2, t3);
2372   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac2, $t4, $t1", "ac2", 0xc0c8c881,
2373                             0xeb1b4335, 0x00000000, 0x5648e540, t4, t1);
2374   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac3, $t6, $t7", "ac3", 0x7dd81a20,
2375                             0x0cd6b508, 0xffffffff, 0xc54f79e6, t6, t7);
2376   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac0, $t5, $t3", "ac0", 0x7fff7fff,
2377                             0x6731e282, 0x00000000, 0x5fc92974, t5, t3);
2378   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac1, $t2, $t4", "ac1", 0x00000555,
2379                             0xb6edf28f, 0x00000000, 0x7e08184e, t2, t4);
2380   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac2, $t0, $t8", "ac2", 0x00000000,
2381                             0x4b4ec9ca, 0x00000000, 0x71c8315f, t0, t8);
2382   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac3, $t4, $t5", "ac3", 0x80000000,
2383                             0xc1037fa4, 0xffffffff, 0x9493110e, t4, t5);
2384   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac1, $t2, $t4", "ac1", 0x55555555,
2385                             0xcb4ab48f, 0xffffffff, 0xbb246228, t2, t4);
2386   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac2, $t0, $t8", "ac2", 0xffff8000,
2387                             0xaf8f8000, 0x00000000, 0x339d8d88, t0, t8);
2388   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac0, $t0, $t1", "ac0", 0xabababab,
2389                             0x87df4510, 0x00000000, 0x70974249, t0, t1);
2390   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac1, $t2, $t3", "ac1", 0xfc79b4d2,
2391                             0xabf4e8e1, 0xffffffff, 0x8a8d4e7d, t2, t3);
2392   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac2, $t4, $t1", "ac2", 0x00000000,
2393                             0xf4c0eeac, 0xffffffff, 0xeb1b4335, t4, t1);
2394   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac3, $t6, $t7", "ac3", 0x00354565,
2395                             0x006a54f2, 0x00000000, 0x0cd6b508, t6, t7);
2396   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac0, $t5, $t3", "ac0", 0x00086755,
2397                             0x79f74493, 0x00000000, 0x6731e282, t5, t3);
2398   TESTDSPINST_AC_RS_RT_DSPC("dpsq_sa.l.w $ac1, $t2, $t4", "ac1", 0xffff8000,
2399                             0x9c098000, 0xffffffff, 0xb6edf28f, t2, t4);
2400
2401
2402   printf("-------- DPSU.H.QBL --------\n");
2403   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac3, $t4, $t5", "ac3", 0x00000000,
2404                               0x00000000, 0xffffffff, 0x80000000, t4, t5);
2405   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac0, $t0, $t1", "ac0", 0x00000004,
2406                               1073741824, 0x00000000, 0x00000006, t0, t1);
2407   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac1, $t2, $t3", "ac1", 0x80002435,
2408                               0x80003421, 0x00000000, 1073741824, t2, t3);
2409   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac3, $t6, $t7", "ac3", 0x76548000,
2410                               0x73468000, 0x00000000, 0x7fffffff, t6, t7);
2411   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac0, $t5, $t3", "ac0", 0x80000000,
2412                               0x80000000, 0x00000000, 0x00000001, t5, t3);
2413   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac1, $t2, $t4", "ac1", 0x00010001,
2414                               0xffffffff, 0xffffffff, 0xffffffff, t2, t4);
2415   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac2, $t0, $t8", "ac2", 0x7fff7fff,
2416                               0x7fff7fff, 0xffffffff, 0xffffffff, t0, t8);
2417   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac0, $t0, $t1", "ac0", 0x0000c420,
2418                               0x00000555, 0x00000000, 0x0fde3126, t0, t1);
2419   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac1, $t2, $t3", "ac1", 0x00000000,
2420                               0x00000000, 0x00000000, 0x55555555, t2, t3);
2421   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac2, $t4, $t1", "ac2", 0x80000000,
2422                               0x80000000, 0xffffffff, 0xffff2435, t4, t1);
2423   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac3, $t6, $t7", "ac3", 0xaaaaaaaa,
2424                               0x55555555, 0xffffffff, 0xabababab, t6, t7);
2425   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac0, $t5, $t3", "ac0", 0x00000018,
2426                               0xffff2435, 0xffffffff, 0xfc79b4d2, t5, t3);
2427   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac1, $t2, $t4", "ac1", 0xbabababa,
2428                               0xabababab, 0x00000000, 0x00000000, t2, t4);
2429   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac2, $t0, $t8", "ac2", 0xf0f0f0f0,
2430                               0xfc79b4d2, 0x00000000, 0x00000000, t0, t8);
2431   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac3, $t4, $t5", "ac3", 0xfbde3976,
2432                               0x00000000, 0x00000000, 0x12349876, t4, t5);
2433   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac0, $t0, $t1", "ac0", 0x23534870,
2434                               0x00354565, 0x00000000, 0x00354565, t0, t1);
2435   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac1, $t2, $t3", "ac1", 0x980b7cde,
2436                               0x00086755, 0x00000000, 0x00086755, t2, t3);
2437   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac2, $t4, $t1", "ac2", 0x00000018,
2438                               0x8f8f8f8f, 0xffffffff, 0x8f8f8f8f, t4, t1);
2439   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac3, $t6, $t7", "ac3", 0x92784656,
2440                               0xeeeeeeee, 0xffffffff, 0xeeeeeeee, t6, t7);
2441   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac0, $t5, $t3", "ac0", 0xcacacaca,
2442                               0x1bdbdbdb, 0x00000000, 0x1bdbdbdb, t5, t3);
2443   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac1, $t2, $t4", "ac1", 0xbacabaca,
2444                               0xdecadeca, 0xffffffff, 0xdecadeca, t2, t4);
2445   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac2, $t0, $t8", "ac2", 0x12fadeb4,
2446                               0x93474bde, 0xffffffff, 0x93474bde, t0, t8);
2447   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac3, $t4, $t5", "ac3", 0x7c000790,
2448                               0xfc0007ff, 0xffffffff, 0xfabfabfa, t4, t5);
2449   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac2, $t0, $t8", "ac2", 0xffffffff,
2450                               0xffffffff, 0x00000000, 0x083b3571, t0, t8);
2451   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac0, $t0, $t1", "ac0", 0x24a3291e,
2452                               0x5648e540, 0xffffffff, 0xb9743941, t0, t1);
2453   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac1, $t2, $t3", "ac1", 0xdd91eebf,
2454                               0xc54f79e6, 0xffffffff, 0xbce5f924, t2, t3);
2455   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac2, $t4, $t1", "ac2", 0xf7ce2ec6,
2456                               0x5fc92974, 0xffffffff, 0xcc3c201c, t4, t1);
2457   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac3, $t6, $t7", "ac3", 0xbc1083e8,
2458                               0x7e08184e, 0x00000000, 0x1ebaf88e, t6, t7);
2459   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac0, $t5, $t3", "ac0", 0xa617cc31,
2460                               0x71c8315f, 0x00000000, 0x722d5e20, t5, t3);
2461   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac1, $t2, $t4", "ac1", 0xdfe1e8f0,
2462                               0x9493110e, 0xffffffff, 0xa1d6f791, t2, t4);
2463   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac2, $t0, $t8", "ac2", 0x31458a23,
2464                               0xbb246228, 0x00000000, 0x7b11bee7, t0, t8);
2465   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac3, $t4, $t5", "ac3", 0x848af791,
2466                               0x339d8d88, 0xffffffff, 0xa5631488, t4, t5);
2467   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac0, $t0, $t1", "ac0", 0xda3bacdc,
2468                               0x70974249, 0xffffffff, 0xb10bcc65, t0, t1);
2469   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac1, $t2, $t3", "ac1", 0x649d5cbd,
2470                               0x8a8d4e7d, 0x00000000, 0x73f39fca, t2, t3);
2471   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac2, $t4, $t1", "ac2", 0xc0c8c881,
2472                               0xeb1b4335, 0x00000000, 0x5648e540, t4, t1);
2473   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac3, $t6, $t7", "ac3", 0x7dd81a20,
2474                               0x0cd6b508, 0xffffffff, 0xc54f79e6, t6, t7);
2475   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac0, $t5, $t3", "ac0", 0x7fff7fff,
2476                               0x6731e282, 0x00000000, 0x5fc92974, t5, t3);
2477   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac1, $t2, $t4", "ac1", 0x00000555,
2478                               0xb6edf28f, 0x00000000, 0x7e08184e, t2, t4);
2479   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac2, $t0, $t8", "ac2", 0x00000000,
2480                               0x4b4ec9ca, 0x00000000, 0x71c8315f, t0, t8);
2481   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac3, $t4, $t5", "ac3", 0x80000000,
2482                               0xc1037fa4, 0xffffffff, 0x9493110e, t4, t5);
2483   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac1, $t2, $t4", "ac1", 0x55555555,
2484                               0xcb4ab48f, 0xffffffff, 0xbb246228, t2, t4);
2485   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac2, $t0, $t8", "ac2", 0xffff8000,
2486                               0xaf8f8000, 0x00000000, 0x339d8d88, t0, t8);
2487   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac0, $t0, $t1", "ac0", 0xabababab,
2488                               0x87df4510, 0x00000000, 0x70974249, t0, t1);
2489   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac1, $t2, $t3", "ac1", 0xfc79b4d2,
2490                               0xabf4e8e1, 0xffffffff, 0x8a8d4e7d, t2, t3);
2491   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac2, $t4, $t1", "ac2", 0x00000000,
2492                               0xf4c0eeac, 0xffffffff, 0xeb1b4335, t4, t1);
2493   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac3, $t6, $t7", "ac3", 0x00354565,
2494                               0x006a54f2, 0x00000000, 0x0cd6b508, t6, t7);
2495   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac0, $t5, $t3", "ac0", 0x00086755,
2496                               0x79f74493, 0x00000000, 0x6731e282, t5, t3);
2497   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbl $ac1, $t2, $t4", "ac1", 0xffff8000,
2498                               0x9c098000, 0xffffffff, 0xb6edf28f, t2, t4);
2499
2500   printf("-------- DPSU.H.QBR --------\n");
2501   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac3, $t4, $t5", "ac3", 0x00000000,
2502                               0x00000000, 0xffffffff, 0x80000000, t4, t5);
2503   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac0, $t0, $t1", "ac0", 0x00000004,
2504                               1073741824, 0x00000000, 0x00000006, t0, t1);
2505   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac1, $t2, $t3", "ac1", 0x80002435,
2506                               0x80003421, 0x00000000, 1073741824, t2, t3);
2507   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac3, $t6, $t7", "ac3", 0x76548000,
2508                               0x73468000, 0x00000000, 0x7fffffff, t6, t7);
2509   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac0, $t5, $t3", "ac0", 0x80000000,
2510                               0x80000000, 0x00000000, 0x00000001, t5, t3);
2511   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac1, $t2, $t4", "ac1", 0x00010001,
2512                               0xffffffff, 0xffffffff, 0xffffffff, t2, t4);
2513   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac2, $t0, $t8", "ac2", 0x7fff7fff,
2514                               0x7fff7fff, 0xffffffff, 0xffffffff, t0, t8);
2515   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac0, $t0, $t1", "ac0", 0x0000c420,
2516                               0x00000555, 0x00000000, 0x0fde3126, t0, t1);
2517   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac1, $t2, $t3", "ac1", 0x00000000,
2518                               0x00000000, 0x00000000, 0x55555555, t2, t3);
2519   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac2, $t4, $t1", "ac2", 0x80000000,
2520                               0x80000000, 0xffffffff, 0xffff2435, t4, t1);
2521   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac3, $t6, $t7", "ac3", 0xaaaaaaaa,
2522                               0x55555555, 0xffffffff, 0xabababab, t6, t7);
2523   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac0, $t5, $t3", "ac0", 0x00000018,
2524                               0xffff2435, 0xffffffff, 0xfc79b4d2, t5, t3);
2525   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac1, $t2, $t4", "ac1", 0xbabababa,
2526                               0xabababab, 0x00000000, 0x00000000, t2, t4);
2527   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac2, $t0, $t8", "ac2", 0xf0f0f0f0,
2528                               0xfc79b4d2, 0x00000000, 0x00000000, t0, t8);
2529   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac3, $t4, $t5", "ac3", 0xfbde3976,
2530                               0x00000000, 0x00000000, 0x12349876, t4, t5);
2531   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac0, $t0, $t1", "ac0", 0x23534870,
2532                               0x00354565, 0x00000000, 0x00354565, t0, t1);
2533   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac1, $t2, $t3", "ac1", 0x980b7cde,
2534                               0x00086755, 0x00000000, 0x00086755, t2, t3);
2535   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac2, $t4, $t1", "ac2", 0x00000018,
2536                               0x8f8f8f8f, 0xffffffff, 0x8f8f8f8f, t4, t1);
2537   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac3, $t6, $t7", "ac3", 0x92784656,
2538                               0xeeeeeeee, 0xffffffff, 0xeeeeeeee, t6, t7);
2539   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac0, $t5, $t3", "ac0", 0xcacacaca,
2540                               0x1bdbdbdb, 0x00000000, 0x1bdbdbdb, t5, t3);
2541   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac1, $t2, $t4", "ac1", 0xbacabaca,
2542                               0xdecadeca, 0xffffffff, 0xdecadeca, t2, t4);
2543   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac2, $t0, $t8", "ac2", 0x12fadeb4,
2544                               0x93474bde, 0xffffffff, 0x93474bde, t0, t8);
2545   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac3, $t4, $t5", "ac3", 0x7c000790,
2546                               0xfc0007ff, 0xffffffff, 0xfabfabfa, t4, t5);
2547   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac2, $t0, $t8", "ac2", 0xffffffff,
2548                               0xffffffff, 0x00000000, 0x083b3571, t0, t8);
2549   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac0, $t0, $t1", "ac0", 0x24a3291e,
2550                               0x5648e540, 0xffffffff, 0xb9743941, t0, t1);
2551   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac1, $t2, $t3", "ac1", 0xdd91eebf,
2552                               0xc54f79e6, 0xffffffff, 0xbce5f924, t2, t3);
2553   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac2, $t4, $t1", "ac2", 0xf7ce2ec6,
2554                               0x5fc92974, 0xffffffff, 0xcc3c201c, t4, t1);
2555   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac3, $t6, $t7", "ac3", 0xbc1083e8,
2556                               0x7e08184e, 0x00000000, 0x1ebaf88e, t6, t7);
2557   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac0, $t5, $t3", "ac0", 0xa617cc31,
2558                               0x71c8315f, 0x00000000, 0x722d5e20, t5, t3);
2559   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac1, $t2, $t4", "ac1", 0xdfe1e8f0,
2560                               0x9493110e, 0xffffffff, 0xa1d6f791, t2, t4);
2561   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac2, $t0, $t8", "ac2", 0x31458a23,
2562                               0xbb246228, 0x00000000, 0x7b11bee7, t0, t8);
2563   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac3, $t4, $t5", "ac3", 0x848af791,
2564                               0x339d8d88, 0xffffffff, 0xa5631488, t4, t5);
2565   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac0, $t0, $t1", "ac0", 0xda3bacdc,
2566                               0x70974249, 0xffffffff, 0xb10bcc65, t0, t1);
2567   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac1, $t2, $t3", "ac1", 0x649d5cbd,
2568                               0x8a8d4e7d, 0x00000000, 0x73f39fca, t2, t3);
2569   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac2, $t4, $t1", "ac2", 0xc0c8c881,
2570                               0xeb1b4335, 0x00000000, 0x5648e540, t4, t1);
2571   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac3, $t6, $t7", "ac3", 0x7dd81a20,
2572                               0x0cd6b508, 0xffffffff, 0xc54f79e6, t6, t7);
2573   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac0, $t5, $t3", "ac0", 0x7fff7fff,
2574                               0x6731e282, 0x00000000, 0x5fc92974, t5, t3);
2575   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac1, $t2, $t4", "ac1", 0x00000555,
2576                               0xb6edf28f, 0x00000000, 0x7e08184e, t2, t4);
2577   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac2, $t0, $t8", "ac2", 0x00000000,
2578                               0x4b4ec9ca, 0x00000000, 0x71c8315f, t0, t8);
2579   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac3, $t4, $t5", "ac3", 0x80000000,
2580                               0xc1037fa4, 0xffffffff, 0x9493110e, t4, t5);
2581   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac1, $t2, $t4", "ac1", 0x55555555,
2582                               0xcb4ab48f, 0xffffffff, 0xbb246228, t2, t4);
2583   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac2, $t0, $t8", "ac2", 0xffff8000,
2584                               0xaf8f8000, 0x00000000, 0x339d8d88, t0, t8);
2585   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac0, $t0, $t1", "ac0", 0xabababab,
2586                               0x87df4510, 0x00000000, 0x70974249, t0, t1);
2587   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac1, $t2, $t3", "ac1", 0xfc79b4d2,
2588                               0xabf4e8e1, 0xffffffff, 0x8a8d4e7d, t2, t3);
2589   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac2, $t4, $t1", "ac2", 0x00000000,
2590                               0xf4c0eeac, 0xffffffff, 0xeb1b4335, t4, t1);
2591   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac3, $t6, $t7", "ac3", 0x00354565,
2592                               0x006a54f2, 0x00000000, 0x0cd6b508, t6, t7);
2593   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac0, $t5, $t3", "ac0", 0x00086755,
2594                               0x79f74493, 0x00000000, 0x6731e282, t5, t3);
2595   TESTDSPINST_AC_RS_RT_NODSPC("dpsu.h.qbr $ac1, $t2, $t4", "ac1", 0xffff8000,
2596                               0x9c098000, 0xffffffff, 0xb6edf28f, t2, t4);
2597
2598   printf("-------- EXTP --------\n");
2599   TESTDSPINST_EXT("extp $t1, $ac0, 31", "ac0", t1, 0x80000000, 0x80000000, 31,
2600                   42);
2601   TESTDSPINST_EXT("extp $t2, $ac1, 17", "ac1", t2, (1<<31)+1, (1 <<31)+2, 17,
2602                   31);
2603   TESTDSPINST_EXT("extp $t3, $ac2,  4", "ac2", t3, 0x00000000, 0x00000006,  4,
2604                   55);
2605   TESTDSPINST_EXT("extp $t4, $ac3, 12", "ac3", t4, 0x00000004, 1073741824, 12,
2606                   22);
2607   TESTDSPINST_EXT("extp $t5, $ac0,  3", "ac0", t5, 0x7fffffff, 0x7fffffff,  3,
2608                   63);
2609   TESTDSPINST_EXT("extp $t6, $ac1,  8", "ac1", t6, 0xffffffff, 0x00000001,  8,
2610                   13);
2611   TESTDSPINST_EXT("extp $t7, $ac2, 16", "ac2", t7, 0x00000001, 0xffffffff, 16,
2612                   60);
2613   TESTDSPINST_EXT("extp $t8, $ac3, 22", "ac3", t8, 0xffffffff, 0xffffffff, 22,
2614                   22);
2615   TESTDSPINST_EXT("extp $t0, $ac0,  9", "ac0", t0, 0x0000cdfe, 0x0fde3126,  9,
2616                   18);
2617   TESTDSPINST_EXT("extp $t2, $ac2, 16", "ac2", t2, 0x00000018, 0xffff2435, 16,
2618                   30);
2619   TESTDSPINST_EXT("extp $t3, $ac3,  6", "ac3", t3, 0xbabababa, 0xabababab,  6,
2620                   17);
2621   TESTDSPINST_EXT("extp $t4, $ac0, 13", "ac0", t4, 0xf0f0f0f0, 0xfc79b4d2, 13,
2622                   32);
2623   TESTDSPINST_EXT("extp $t5, $ac1, 19", "ac1", t5, 0x00000000, 0x00000000, 19,
2624                   20);
2625   TESTDSPINST_EXT("extp $t6, $ac2, 27", "ac2", t6, 0xfbde3976, 0x00000000, 27,
2626                   30);
2627   TESTDSPINST_EXT("extp $t7, $ac3,  7", "ac3", t7, 0xb0ed7654, 0x12349876,  7,
2628                   32);
2629   TESTDSPINST_EXT("extp $t8, $ac0, 11", "ac0", t8, 0x23534870, 0x35004565, 11,
2630                   37);
2631   TESTDSPINST_EXT("extp $t0, $ac1, 26", "ac1", t0, 0x980b7cde, 0x86700055, 26,
2632                   61);
2633   TESTDSPINST_EXT("extp $t1, $ac2, 15", "ac2", t1, 0x00000018, 0x8f8f8f8f, 15,
2634                   28);
2635   TESTDSPINST_EXT("extp $t2, $ac3,  2", "ac3", t2, 0x92784656, 0xeeeeeeee,  2,
2636                   14);
2637   TESTDSPINST_EXT("extp $t3, $ac0,  1", "ac0", t3, 0xcacacaca, 0x1bdbdbdb,  1,
2638                   58);
2639   TESTDSPINST_EXT("extp $t4, $ac1,  0", "ac1", t4, 0xbacabaca, 0xdecadeca,  0,
2640                   19);
2641
2642   printf("-------- EXTPDP --------\n");
2643   TESTDSPINST_EXT("extpdp $t1, $ac0, 31", "ac0", t1, 0x80000000, 0x80000000,
2644                   31, 42);
2645   TESTDSPINST_EXT("extpdp $t2, $ac1, 17", "ac1", t2, (1<<31)+1, (1<<31)+2, 17,
2646                   31);
2647   TESTDSPINST_EXT("extpdp $t3, $ac2,  4", "ac2", t3, 0x00000000, 0x00000006,
2648                    4, 55);
2649   TESTDSPINST_EXT("extpdp $t4, $ac3, 12", "ac3", t4, 0x00000004, 1073741824,
2650                   12, 22);
2651   TESTDSPINST_EXT("extpdp $t5, $ac0,  3", "ac0", t5, 0x7fffffff, 0x7fffffff,
2652                    3, 63);
2653   TESTDSPINST_EXT("extpdp $t6, $ac1,  8", "ac1", t6, 0xffffffff, 0x00000001,
2654                    8, 13);
2655   TESTDSPINST_EXT("extpdp $t7, $ac2, 16", "ac2", t7, 0x00000001, 0xffffffff,
2656                   16, 60);
2657   TESTDSPINST_EXT("extpdp $t8, $ac3, 22", "ac3", t8, 0xffffffff, 0xffffffff,
2658                   22, 22);
2659   TESTDSPINST_EXT("extpdp $t0, $ac0,  9", "ac0", t0, 0x0000cdfe, 0x0fde3126,
2660                    9, 18);
2661   TESTDSPINST_EXT("extpdp $t3, $ac3,  6", "ac3", t3, 0xbabababa, 0xabababab,
2662                    6, 17);
2663   TESTDSPINST_EXT("extpdp $t4, $ac0, 13", "ac0", t4, 0xf0f0f0f0, 0xfc79b4d2,
2664                   13, 32);
2665   TESTDSPINST_EXT("extpdp $t5, $ac1, 19", "ac1", t5, 0x00000000, 0x00000000,
2666                   19, 20);
2667   TESTDSPINST_EXT("extpdp $t6, $ac2, 27", "ac2", t6, 0xfbde3976, 0x00000000,
2668                   27, 30);
2669   TESTDSPINST_EXT("extpdp $t7, $ac3,  7", "ac3", t7, 0x0bed7654, 0x12349876,
2670                    7, 32);
2671   TESTDSPINST_EXT("extpdp $t8, $ac0, 11", "ac0", t8, 0x23534870, 0x00354565,
2672                   11, 37);
2673   TESTDSPINST_EXT("extpdp $t0, $ac1, 26", "ac1", t0, 0x980b7cde, 0x00086755,
2674                   26, 61);
2675   TESTDSPINST_EXT("extpdp $t1, $ac2, 15", "ac2", t1, 0x00000018, 0x8f8f8f8f,
2676                   15, 28);
2677   TESTDSPINST_EXT("extpdp $t2, $ac3,  2", "ac3", t2, 0x92784656, 0xeeeeeeee,
2678                    2, 14);
2679   TESTDSPINST_EXT("extpdp $t3, $ac0,  1", "ac0", t3, 0xcacacaca, 0x1bdbdbdb,
2680                    1, 58);
2681   TESTDSPINST_EXT("extpdp $t4, $ac1,  0", "ac1", t4, 0xbacabaca, 0xdecadeca,
2682                    0, 19);
2683
2684   printf("-------- EXTPDPV --------\n");
2685   TESTDSPINST_EXTV("extpdpv $t1, $ac0, $t2", "ac0", t1, 0x80000000, 0x80000000,
2686                    t2, 0x80000000, 42);
2687   TESTDSPINST_EXTV("extpdpv $t2, $ac1, $t3", "ac1", t2, (1<<31)+1, (1<<31)+2,
2688                    t3, 0x06, 31);
2689   TESTDSPINST_EXTV("extpdpv $t3, $ac2, $t4", "ac2", t3, 0x00000000, 0x00000006,
2690                    t4, 0x7fffffff, 55);
2691   TESTDSPINST_EXTV("extpdpv $t5, $ac0, $t6", "ac0", t5, 0x7fffffff, 0x7fffffff,
2692                    t6, 0x0fde3126, 63);
2693   TESTDSPINST_EXTV("extpdpv $t7, $ac2, $t8", "ac2", t7, 0x00000001, 0xffffffff,
2694                    t8, 0xaaaaaaaa, 60);
2695   TESTDSPINST_EXTV("extpdpv $t8, $ac3, $t9", "ac3", t8, 0xffffffff, 0xffffffff,
2696                    t9, 0xffff2435, 22);
2697   TESTDSPINST_EXTV("extpdpv $t4, $ac0, $t3", "ac0", t4, 0xf0f0f0f0, 0xfc79b4d2,
2698                    t3, 0x12349876, 32);
2699   TESTDSPINST_EXTV("extpdpv $t5, $ac1, $t4", "ac1", t5, 0x00000000, 0x00000000,
2700                    t4, 0x00354565, 20);
2701   TESTDSPINST_EXTV("extpdpv $t6, $ac2, $t5", "ac2", t6, 0xfbde3976, 0x00000000,
2702                    t5, 0x00086755, 30);
2703   TESTDSPINST_EXTV("extpdpv $t7, $ac3, $t6", "ac3", t7, 0x0bed7654, 0x12349876,
2704                    t6, 0x00000018, 32);
2705   TESTDSPINST_EXTV("extpdpv $t8, $ac0, $t7", "ac0", t8, 0x23534870, 0x00354565,
2706                    t7, 0x23534870, 37);
2707   TESTDSPINST_EXTV("extpdpv $t0, $ac1, $t8", "ac1", t0, 0x980b7cde, 0x00086755,
2708                    t8, 0x92784656, 61);
2709   TESTDSPINST_EXTV("extpdpv $t1, $ac2, $t9", "ac2", t1, 0x00000018, 0x8f8f8f8f,
2710                    t9, 0xeeeeeeee, 28);
2711   TESTDSPINST_EXTV("extpdpv $t2, $ac3, $t1", "ac3", t2, 0x92784656, 0xeeeeeeee,
2712                    t1, 0xcacacaca, 14);
2713   TESTDSPINST_EXTV("extpdpv $t3, $ac0, $t1", "ac0", t3, 0xcacacaca, 0x1bdbdbdb,
2714                    t1, 0xbacabaca, 58);
2715   TESTDSPINST_EXTV("extpdpv $t4, $ac1, $t4", "ac1", t4, 0xbacabaca, 0xdecadeca,
2716                    t4, 0x1bdbdbdb, 19);
2717
2718   printf("-------- EXTPV --------\n");
2719   TESTDSPINST_EXTV("extpv $t1, $ac0, $t2", "ac0", t1, 0x80000000, 0x80000000,
2720                    t2, 0x80000000, 42);
2721   TESTDSPINST_EXTV("extpv $t2, $ac1, $t3", "ac1", t2, (1<<31)+1, (1<<31)+2, t3,
2722                    0x06, 31);
2723   TESTDSPINST_EXTV("extpv $t3, $ac2, $t4", "ac2", t3, 0x00000000, 0x00000006,
2724                    t4, 0x7fffffff, 55);
2725   TESTDSPINST_EXTV("extpv $t5, $ac0, $t6", "ac0", t5, 0x7fffffff, 0x7fffffff,
2726                    t6, 0x0fde3126, 63);
2727   TESTDSPINST_EXTV("extpv $t7, $ac2, $t8", "ac2", t7, 0x00000001, 0xffffffff,
2728                    t8, 0xaaaaaaaa, 60);
2729   TESTDSPINST_EXTV("extpv $t8, $ac3, $t9", "ac3", t8, 0xffffffff, 0xffffffff,
2730                    t9, 0xffff2435, 22);
2731   TESTDSPINST_EXTV("extpv $t4, $ac0, $t3", "ac0", t4, 0xf0f0f0f0, 0xfc79b4d2,
2732                    t3, 0x12349876, 32);
2733   TESTDSPINST_EXTV("extpv $t5, $ac1, $t4", "ac1", t5, 0x00000000, 0x00000000,
2734                    t4, 0x00354565, 20);
2735   TESTDSPINST_EXTV("extpv $t6, $ac2, $t5", "ac2", t6, 0xfbde3976, 0x00000000,
2736                    t5, 0x00086755, 30);
2737   TESTDSPINST_EXTV("extpv $t7, $ac3, $t6", "ac3", t7, 0x0bed7654, 0x12349876,
2738                    t6, 0x00000018, 32);
2739   TESTDSPINST_EXTV("extpv $t8, $ac0, $t7", "ac0", t8, 0x23534870, 0x00354565,
2740                    t7, 0x23534870, 37);
2741   TESTDSPINST_EXTV("extpv $t0, $ac1, $t8", "ac1", t0, 0x980b7cde, 0x00086755,
2742                    t8, 0x92784656, 61);
2743   TESTDSPINST_EXTV("extpv $t1, $ac2, $t9", "ac2", t1, 0x00000018, 0x8f8f8f8f,
2744                    t9, 0xeeeeeeee, 28);
2745   TESTDSPINST_EXTV("extpv $t2, $ac3, $t1", "ac3", t2, 0x92784656, 0xeeeeeeee,
2746                    t1, 0xcacacaca, 14);
2747   TESTDSPINST_EXTV("extpv $t3, $ac0, $t1", "ac0", t3, 0xcacacaca, 0x1bdbdbdb,
2748                    t1, 0xbacabaca, 58);
2749   TESTDSPINST_EXTV("extpv $t4, $ac1, $t4", "ac1", t4, 0xbacabaca, 0xdecadeca,
2750                    t4, 0x1bdbdbdb, 19);
2751
2752   printf("-------- EXTR_S.H --------\n");
2753   TESTDSPINST_EXT("extr_s.h $t4, $ac3,  0", "ac3", t4, 0x00000000, 0x00000000,
2754                   0, 0);
2755   TESTDSPINST_EXT("extr_s.h $t5, $ac0, 31", "ac0", t5, 0x7fffffff, 0xcbcdef01,
2756                   31, 0);
2757   TESTDSPINST_EXT("extr_s.h $t6, $ac1, 31", "ac1", t6, 0x3fffffff, 0x2bcdef01,
2758                   31, 0);
2759   TESTDSPINST_EXT("extr_s.h $t7, $ac2,  0", "ac2", t7, 0xff34bc6f, 0xffffffff,
2760                   0, 0);
2761   TESTDSPINST_EXT("extr_s.h $t8, $ac3,  1", "ac3", t8, 0x00000000, 0xfffffffe,
2762                   1, 0);
2763   TESTDSPINST_EXT("extr_s.h $t1, $ac0, 31", "ac0", t1, 0x80000000, 0x80000000,
2764                   31, 0);
2765   TESTDSPINST_EXT("extr_s.h $t2, $ac1, 17", "ac1", t2, (1<<31)+1, (1<<31)+2,
2766                   17, 0);
2767   TESTDSPINST_EXT("extr_s.h $t3, $ac2,  4", "ac2", t3, 0x00000000, 0x00000006,
2768                   4, 0);
2769   TESTDSPINST_EXT("extr_s.h $t4, $ac3, 12", "ac3", t4, 0x00000004, 1073741824,
2770                   12, 0);
2771   TESTDSPINST_EXT("extr_s.h $t5, $ac0,  3", "ac0", t5, 0x7fffffff, 0x7fffffff,
2772                   3, 0);
2773   TESTDSPINST_EXT("extr_s.h $t6, $ac1,  8", "ac1", t6, 0xffffffff, 0x00000001,
2774                   8, 0);
2775   TESTDSPINST_EXT("extr_s.h $t7, $ac2, 16", "ac2", t7, 0x00000001, 0xffffffff,
2776                   16, 0);
2777   TESTDSPINST_EXT("extr_s.h $t8, $ac3, 22", "ac3", t8, 0xffffffff, 0xffffffff,
2778                   22, 0);
2779   TESTDSPINST_EXT("extr_s.h $t0, $ac0,  9", "ac0", t0, 0x0000cdfe, 0x0fde3126,
2780                   9, 0);
2781   TESTDSPINST_EXT("extr_s.h $t2, $ac2, 14", "ac2", t2, 0x00000018, 0xffff2435,
2782                   14, 0);
2783   TESTDSPINST_EXT("extr_s.h $t1, $ac1, 20", "ac1", t1, 0xaaaaaaaa, 0x55555555,
2784                   20, 0);
2785   TESTDSPINST_EXT("extr_s.h $t2, $ac2, 16", "ac2", t2, 0x00000018, 0xffff2435,
2786                   16, 0);
2787   TESTDSPINST_EXT("extr_s.h $t1, $ac1,  5", "ac1", t1, 0xaaaaaaaa, 0x55555555,
2788                   5, 0);
2789   TESTDSPINST_EXT("extr_s.h $t2, $ac2, 22", "ac2", t2, 0x00000018, 0xffff2435,
2790                   22, 0);
2791   TESTDSPINST_EXT("extr_s.h $t3, $ac3,  6", "ac3", t3, 0xbabababa, 0xabababab,
2792                   6, 0);
2793   TESTDSPINST_EXT("extr_s.h $t4, $ac0, 13", "ac0", t4, 0xf0f0f0f0, 0xfc79b4d2,
2794                   13, 0);
2795   TESTDSPINST_EXT("extr_s.h $t5, $ac1, 19", "ac1", t5, 0x00000000, 0x00000000,
2796                   19, 0);
2797   TESTDSPINST_EXT("extr_s.h $t6, $ac2, 27", "ac2", t6, 0xfbde3976, 0x00000000,
2798                   27, 0);
2799   TESTDSPINST_EXT("extr_s.h $t7, $ac3,  7", "ac3", t7, 0x0bed7654, 0x12349876,
2800                   7, 0);
2801   TESTDSPINST_EXT("extr_s.h $t8, $ac0, 11", "ac0", t8, 0x23534870, 0x00354565,
2802                   11, 0);
2803   TESTDSPINST_EXT("extr_s.h $t0, $ac1, 26", "ac1", t0, 0x980b7cde, 0x00086755,
2804                   26, 0);
2805   TESTDSPINST_EXT("extr_s.h $t1, $ac2, 15", "ac2", t1, 0x00000018, 0x8f8f8f8f,
2806                   15, 0);
2807   TESTDSPINST_EXT("extr_s.h $t2, $ac3,  2", "ac3", t2, 0x92784656, 0xeeeeeeee,
2808                   2, 0);
2809   TESTDSPINST_EXT("extr_s.h $t3, $ac0,  1", "ac0", t3, 0xcacacaca, 0x1bdbdbdb,
2810                   1, 0);
2811   TESTDSPINST_EXT("extr_s.h $t4, $ac1,  0", "ac1", t4, 0xbacabaca, 0xdecadeca,
2812                   0, 0);
2813   TESTDSPINST_EXT("extr_s.h $t5, $ac0,  3", "ac0", t5, 0x00000000, 0x5fc92974,
2814                   3, 0);
2815   TESTDSPINST_EXT("extr_s.h $t6, $ac1,  8", "ac1", t6, 0x00000000, 0x7e08184e,
2816                   8, 0);
2817   TESTDSPINST_EXT("extr_s.h $t7, $ac2, 16", "ac2", t7, 0x00000000, 0x71c8315f,
2818                   16, 0);
2819   TESTDSPINST_EXT("extr_s.h $t8, $ac3, 22", "ac3", t8, 0xffffffff, 0x9493110e,
2820                   22, 0);
2821   TESTDSPINST_EXT("extr_s.h $t0, $ac0,  9", "ac0", t0, 0xffffffff, 0xbb246228,
2822                   9, 0);
2823   TESTDSPINST_EXT("extr_s.h $t1, $ac1,  5", "ac1", t1, 0x00000000, 0x339d8d88,
2824                   5, 0);
2825   TESTDSPINST_EXT("extr_s.h $t2, $ac2, 14", "ac2", t2, 0x00000000, 0x70974249,
2826                   14, 0);
2827   TESTDSPINST_EXT("extr_s.h $t1, $ac1, 20", "ac1", t1, 0xffffffff, 0x8a8d4e7d,
2828                   20, 0);
2829   TESTDSPINST_EXT("extr_s.h $t2, $ac2, 16", "ac2", t2, 0xffffffff, 0xeb1b4335,
2830                   16, 0);
2831   TESTDSPINST_EXT("extr_s.h $t1, $ac1,  5", "ac1", t1, 0x00000000, 0x0cd6b508,
2832                   5, 0);
2833   TESTDSPINST_EXT("extr_s.h $t2, $ac2, 22", "ac2", t2, 0x00000000, 0x6731e282,
2834                   22, 0);
2835   TESTDSPINST_EXT("extr_s.h $t3, $ac3,  6", "ac3", t3, 0xffffffff, 0xb6edf28f,
2836                   6, 0);
2837   TESTDSPINST_EXT("extr_s.h $t4, $ac0, 13", "ac0", t4, 0x00000000, 0x4b4ec9ca,
2838                   13, 0);
2839   TESTDSPINST_EXT("extr_s.h $t5, $ac1, 19", "ac1", t5, 0xffffffff, 0xc1037fa4,
2840                   19, 0);
2841   TESTDSPINST_EXT("extr_s.h $t6, $ac2, 27", "ac2", t6, 0xffffffff, 0xcb4ab48f,
2842                   27, 0);
2843   TESTDSPINST_EXT("extr_s.h $t7, $ac3,  7", "ac3", t7, 0xffffffff, 0xaf8f7e18,
2844                   7, 0);
2845   TESTDSPINST_EXT("extr_s.h $t8, $ac0, 11", "ac0", t8, 0xffffffff, 0x87df4510,
2846                   11, 0);
2847   TESTDSPINST_EXT("extr_s.h $t0, $ac1, 26", "ac1", t0, 0xffffffff, 0xabf4e8e1,
2848                   26, 0);
2849   TESTDSPINST_EXT("extr_s.h $t1, $ac2, 15", "ac2", t1, 0xffffffff, 0xf4c0eeac,
2850                   15, 0);
2851   TESTDSPINST_EXT("extr_s.h $t2, $ac3,  2", "ac3", t2, 0x00000000, 0x006a54f2,
2852                   2, 0);
2853   TESTDSPINST_EXT("extr_s.h $t3, $ac0,  1", "ac0", t3, 0x00000000, 0x79f74493,
2854                   1, 0);
2855   TESTDSPINST_EXT("extr_s.h $t4, $ac1,  0", "ac1", t4, 0xffffffff, 0x9c09e313,
2856                   0, 0);
2857
2858   printf("-------- EXTR.W --------\n");
2859   TESTDSPINST_EXT("extr.w $t4, $ac3,  0", "ac3", t4, 0x00000000, 0x00000000,
2860                   0, 0);
2861   TESTDSPINST_EXT("extr.w $t5, $ac0, 31", "ac0", t5, 0x7fffffff, 0xcbcdef01,
2862                   31, 0);
2863   TESTDSPINST_EXT("extr.w $t6, $ac1, 31", "ac1", t6, 0x3fffffff, 0x2bcdef01,
2864                   31, 0);
2865   TESTDSPINST_EXT("extr.w $t7, $ac2,  0", "ac2", t7, 0xffffffff, 0xffffffff,
2866                   0, 0);
2867   TESTDSPINST_EXT("extr.w $t8, $ac3,  1", "ac3", t8, 0x00000000, 0xfffffffe,
2868                   1, 0);
2869   TESTDSPINST_EXT("extr.w $t1, $ac0, 31", "ac0", t1, 0x80000000, 0x80000000,
2870                   31, 0);
2871   TESTDSPINST_EXT("extr.w $t2, $ac1, 17", "ac1", t2, (1<<31)+1, (1<<31)+2, 17,
2872                   0);
2873   TESTDSPINST_EXT("extr.w $t3, $ac2,  4", "ac2", t3, 0x00000000, 0x00000006,
2874                   4, 0);
2875   TESTDSPINST_EXT("extr.w $t4, $ac3, 12", "ac3", t4, 0x00000004, 1073741824,
2876                   12, 0);
2877   TESTDSPINST_EXT("extr.w $t5, $ac0,  3", "ac0", t5, 0x7fffffff, 0x7fffffff,
2878                   3, 0);
2879   TESTDSPINST_EXT("extr.w $t6, $ac1,  8", "ac1", t6, 0xffffffff, 0x00000001,
2880                   8, 0);
2881   TESTDSPINST_EXT("extr.w $t7, $ac2, 16", "ac2", t7, 0x00000001, 0xffffffff,
2882                   16, 0);
2883   TESTDSPINST_EXT("extr.w $t8, $ac3, 22", "ac3", t8, 0xffffffff, 0xffffffff,
2884                   22, 0);
2885   TESTDSPINST_EXT("extr.w $t0, $ac0,  9", "ac0", t0, 0x0000cdfe, 0xfd0e3126,
2886                   9, 0);
2887   TESTDSPINST_EXT("extr.w $t2, $ac2, 14", "ac2", t2, 0x00000018, 0xffff2435,
2888                   14, 0);
2889   TESTDSPINST_EXT("extr.w $t1, $ac1, 20", "ac1", t1, 0xaaaaaaaa, 0x55555555,
2890                   20, 0);
2891   TESTDSPINST_EXT("extr.w $t2, $ac2, 16", "ac2", t2, 0x00000018, 0xffff2435,
2892                   16, 0);
2893   TESTDSPINST_EXT("extr.w $t1, $ac1,  5", "ac1", t1, 0xaaaaaaaa, 0x55555555,
2894                   5, 0);
2895   TESTDSPINST_EXT("extr.w $t2, $ac2, 22", "ac2", t2, 0x00000018, 0xffff2435,
2896                   22, 0);
2897   TESTDSPINST_EXT("extr.w $t3, $ac3,  6", "ac3", t3, 0xbabababa, 0xabababab,
2898                   6, 0);
2899   TESTDSPINST_EXT("extr.w $t4, $ac0, 13", "ac0", t4, 0xf0f0f0f0, 0xfc79b4d2,
2900                   13, 0);
2901   TESTDSPINST_EXT("extr.w $t5, $ac1, 19", "ac1", t5, 0x00000000, 0x00000000,
2902                   19, 0);
2903   TESTDSPINST_EXT("extr.w $t6, $ac2, 27", "ac2", t6, 0xfbde3976, 0x00000000,
2904                   27, 0);
2905   TESTDSPINST_EXT("extr.w $t7, $ac3,  7", "ac3", t7, 0x0bed7654, 0x12349876,
2906                   7, 0);
2907   TESTDSPINST_EXT("extr.w $t8, $ac0, 11", "ac0", t8, 0x23534870, 0x00354565,
2908                   11, 0);
2909   TESTDSPINST_EXT("extr.w $t0, $ac1, 26", "ac1", t0, 0x980b7cde, 0x80006755,
2910                   26, 0);
2911   TESTDSPINST_EXT("extr.w $t1, $ac2, 15", "ac2", t1, 0x00000018, 0x8f8f8f8f,
2912                   15, 0);
2913   TESTDSPINST_EXT("extr.w $t2, $ac3,  2", "ac3", t2, 0x92784656, 0xeeeeeeee,
2914                   2, 0);
2915   TESTDSPINST_EXT("extr.w $t3, $ac0,  1", "ac0", t3, 0xcacacaca, 0x1bdbdbdb,
2916                   1, 0);
2917   TESTDSPINST_EXT("extr.w $t4, $ac1,  0", "ac1", t4, 0xbacabaca, 0xdecadeca,
2918                   0, 0);
2919   TESTDSPINST_EXT("extr.w $t5, $ac0,  3", "ac0", t5, 0x00000000, 0x5fc92974,
2920                   3, 0);
2921   TESTDSPINST_EXT("extr.w $t6, $ac1,  8", "ac1", t6, 0x00000000, 0x7e08184e,
2922                   8, 0);
2923   TESTDSPINST_EXT("extr.w $t7, $ac2, 16", "ac2", t7, 0x00000000, 0x71c8315f,
2924                   16, 0);
2925   TESTDSPINST_EXT("extr.w $t8, $ac3, 22", "ac3", t8, 0xffffffff, 0x9493110e,
2926                   22, 0);
2927   TESTDSPINST_EXT("extr.w $t0, $ac0,  9", "ac0", t0, 0xffffffff, 0xbb246228,
2928                   9, 0);
2929   TESTDSPINST_EXT("extr.w $t1, $ac1,  5", "ac1", t1, 0x00000000, 0x339d8d88,
2930                   5, 0);
2931   TESTDSPINST_EXT("extr.w $t2, $ac2, 14", "ac2", t2, 0x00000000, 0x70974249,
2932                   14, 0);
2933   TESTDSPINST_EXT("extr.w $t1, $ac1, 20", "ac1", t1, 0xffffffff, 0x8a8d4e7d,
2934                   20, 0);
2935   TESTDSPINST_EXT("extr.w $t2, $ac2, 16", "ac2", t2, 0xffffffff, 0xeb1b4335,
2936                   16, 0);
2937   TESTDSPINST_EXT("extr.w $t1, $ac1,  5", "ac1", t1, 0x00000000, 0x0cd6b508,
2938                   5, 0);
2939   TESTDSPINST_EXT("extr.w $t2, $ac2, 22", "ac2", t2, 0x00000000, 0x6731e282,
2940                   22, 0);
2941   TESTDSPINST_EXT("extr.w $t3, $ac3,  6", "ac3", t3, 0xffffffff, 0xb6edf28f,
2942                   6, 0);
2943   TESTDSPINST_EXT("extr.w $t4, $ac0, 13", "ac0", t4, 0x00000000, 0x4b4ec9ca,
2944                   13, 0);
2945   TESTDSPINST_EXT("extr.w $t5, $ac1, 19", "ac1", t5, 0xffffffff, 0xc1037fa4,
2946                   19, 0);
2947   TESTDSPINST_EXT("extr.w $t6, $ac2, 27", "ac2", t6, 0xffffffff, 0xcb4ab48f,
2948                   27, 0);
2949   TESTDSPINST_EXT("extr.w $t7, $ac3,  7", "ac3", t7, 0xffffffff, 0xaf8f7e18,
2950                   7, 0);
2951   TESTDSPINST_EXT("extr.w $t8, $ac0, 11", "ac0", t8, 0xffffffff, 0x87df4510,
2952                   11, 0);
2953   TESTDSPINST_EXT("extr.w $t0, $ac1, 26", "ac1", t0, 0xffffffff, 0xabf4e8e1,
2954                   26, 0);
2955   TESTDSPINST_EXT("extr.w $t1, $ac2, 15", "ac2", t1, 0xffffffff, 0xf4c0eeac,
2956                   15, 0);
2957   TESTDSPINST_EXT("extr.w $t2, $ac3,  2", "ac3", t2, 0x00000000, 0x006a54f2,
2958                   2, 0);
2959   TESTDSPINST_EXT("extr.w $t3, $ac0,  1", "ac0", t3, 0x00000000, 0x79f74493,
2960                   1, 0);
2961   TESTDSPINST_EXT("extr.w $t4, $ac1,  0", "ac1", t4, 0xffffffff, 0x9c09e313,
2962                   0, 0);
2963
2964   printf("-------- EXTR_R.W --------\n");
2965   TESTDSPINST_EXT("extr_r.w $t4, $ac3,  0", "ac3", t4, 0x00000000, 0x00000000,
2966                   0, 0);
2967   TESTDSPINST_EXT("extr_r.w $t5, $ac0, 31", "ac0", t5, 0x7fffffff, 0xcbcdef01,
2968                   31, 0);
2969   TESTDSPINST_EXT("extr_r.w $t6, $ac1, 31", "ac1", t6, 0x3fffffff, 0x2bcdef01,
2970                   31, 0);
2971   TESTDSPINST_EXT("extr_r.w $t7, $ac2,  0", "ac2", t7, 0x987b2fff, 0xffffffff,
2972                   0, 0);
2973   TESTDSPINST_EXT("extr_r.w $t8, $ac3,  1", "ac3", t8, 0x000cd320, 0xfffffffe,
2974                   1, 0);
2975   TESTDSPINST_EXT("extr_r.w $t1, $ac0, 31", "ac0", t1, 0xfff9b541, 0x80000000,
2976                   31, 0);
2977   TESTDSPINST_EXT("extr_r.w $t3, $ac2,  4", "ac2", t3, 0x0008b31c, 0x00000006,
2978                   4, 0);
2979   TESTDSPINST_EXT("extr_r.w $t5, $ac0,  3", "ac0", t5, 0x0086b3ad, 0x7fffffff,
2980                   3, 0);
2981   TESTDSPINST_EXT("extr_r.w $t6, $ac1,  8", "ac1", t6, 0x00097b51, 0x00000001,
2982                   8, 0);
2983   TESTDSPINST_EXT("extr_r.w $t7, $ac2, 16", "ac2", t7, 0xfcde43ff, 0xffffffff,
2984                   16, 0);
2985   TESTDSPINST_EXT("extr_r.w $t0, $ac0,  9", "ac0", t0, 0xffffca26, 0xfd0e3126,
2986                   9, 0);
2987   TESTDSPINST_EXT("extr_r.w $t1, $ac1,  5", "ac1", t1, 0x00000000, 0x55555555,
2988                   5, 0);
2989   TESTDSPINST_EXT("extr_r.w $t2, $ac2, 14", "ac2", t2, 0xffffffff, 0xffff2435,
2990                   14, 0);
2991   TESTDSPINST_EXT("extr_r.w $t1, $ac1, 20", "ac1", t1, 0x00000000, 0x55555555,
2992                   20, 0);
2993   TESTDSPINST_EXT("extr_r.w $t2, $ac2, 16", "ac2", t2, 0xffffffff, 0xffff2435,
2994                   16, 0);
2995   TESTDSPINST_EXT("extr_r.w $t1, $ac1,  5", "ac1", t1, 0x00000000, 0x55555555,
2996                   5, 0);
2997   TESTDSPINST_EXT("extr_r.w $t2, $ac2, 22", "ac2", t2, 0xffffffff, 0xffff2435,
2998                   22, 0);
2999   TESTDSPINST_EXT("extr_r.w $t3, $ac3,  6", "ac3", t3, 0xffffffff, 0xabababab,
3000                   6, 0);
3001   TESTDSPINST_EXT("extr_r.w $t4, $ac0, 13", "ac0", t4, 0xffffffff, 0xfc79b4d2,
3002                   13, 0);
3003   TESTDSPINST_EXT("extr_r.w $t5, $ac1, 19", "ac1", t5, 0x00000000, 0x00000000,
3004                   19, 0);
3005   TESTDSPINST_EXT("extr_r.w $t6, $ac2, 27", "ac2", t6, 0x00000000, 0x00000000,
3006                   27, 0);
3007   TESTDSPINST_EXT("extr_r.w $t7, $ac3,  7", "ac3", t7, 0x02934b00, 0x12349876,
3008                   7, 0);
3009   TESTDSPINST_EXT("extr_r.w $t8, $ac0, 11", "ac0", t8, 0x0008cad0, 0x00354565,
3010                   11, 0);
3011   TESTDSPINST_EXT("extr_r.w $t0, $ac1, 26", "ac1", t0, 0xf65c8fff, 0x80006755,
3012                   26, 0);
3013   TESTDSPINST_EXT("extr_r.w $t1, $ac2, 15", "ac2", t1, 0xfffff001, 0x8f8f8f8f,
3014                   15, 0);
3015   TESTDSPINST_EXT("extr_r.w $t2, $ac3,  2", "ac3", t2, 0xbad69420, 0xeeeeeeee,
3016                   2, 0);
3017   TESTDSPINST_EXT("extr_r.w $t3, $ac0,  1", "ac0", t3, 0x00000000, 0x1bdbdbdb,
3018                   1, 0);
3019   TESTDSPINST_EXT("extr_r.w $t4, $ac1,  0", "ac1", t4, 0xffffffff, 0xdecadeca,
3020                   0, 0);
3021   TESTDSPINST_EXT("extr_r.w $t5, $ac0,  3", "ac0", t5, 0x00000000, 0x5fc92974,
3022                   3, 0);
3023   TESTDSPINST_EXT("extr_r.w $t6, $ac1,  8", "ac1", t6, 0x00000000, 0x7e08184e,
3024                   8, 0);
3025   TESTDSPINST_EXT("extr_r.w $t7, $ac2, 16", "ac2", t7, 0x00000000, 0x71c8315f,
3026                   16, 0);
3027   TESTDSPINST_EXT("extr_r.w $t8, $ac3, 22", "ac3", t8, 0xffffffff, 0x9493110e,
3028                   22, 0);
3029   TESTDSPINST_EXT("extr_r.w $t0, $ac0,  9", "ac0", t0, 0xffffffff, 0xbb246228,
3030                   9, 0);
3031   TESTDSPINST_EXT("extr_r.w $t1, $ac1,  5", "ac1", t1, 0x00000000, 0x339d8d88,
3032                   5, 0);
3033   TESTDSPINST_EXT("extr_r.w $t2, $ac2, 14", "ac2", t2, 0x00000000, 0x70974249,
3034                   14, 0);
3035   TESTDSPINST_EXT("extr_r.w $t1, $ac1, 20", "ac1", t1, 0xffffffff, 0x8a8d4e7d,
3036                   20, 0);
3037   TESTDSPINST_EXT("extr_r.w $t2, $ac2, 16", "ac2", t2, 0xffffffff, 0xeb1b4335,
3038                   16, 0);
3039   TESTDSPINST_EXT("extr_r.w $t1, $ac1,  5", "ac1", t1, 0x00000000, 0x0cd6b508,
3040                   5, 0);
3041   TESTDSPINST_EXT("extr_r.w $t2, $ac2, 22", "ac2", t2, 0x00000000, 0x6731e282,
3042                   22, 0);
3043   TESTDSPINST_EXT("extr_r.w $t3, $ac3,  6", "ac3", t3, 0xffffffff, 0xb6edf28f,
3044                   6, 0);
3045   TESTDSPINST_EXT("extr_r.w $t4, $ac0, 13", "ac0", t4, 0x00000000, 0x4b4ec9ca,
3046                   13, 0);
3047   TESTDSPINST_EXT("extr_r.w $t5, $ac1, 19", "ac1", t5, 0xffffffff, 0xc1037fa4,
3048                   19, 0);
3049   TESTDSPINST_EXT("extr_r.w $t6, $ac2, 27", "ac2", t6, 0xffffffff, 0xcb4ab48f,
3050                   27, 0);
3051   TESTDSPINST_EXT("extr_r.w $t7, $ac3,  7", "ac3", t7, 0xffffffff, 0xaf8f7e18,
3052                   7, 0);
3053   TESTDSPINST_EXT("extr_r.w $t8, $ac0, 11", "ac0", t8, 0xffffffff, 0x87df4510,
3054                   11, 0);
3055   TESTDSPINST_EXT("extr_r.w $t0, $ac1, 26", "ac1", t0, 0xffffffff, 0xabf4e8e1,
3056                   26, 0);
3057   TESTDSPINST_EXT("extr_r.w $t1, $ac2, 15", "ac2", t1, 0xffffffff, 0xf4c0eeac,
3058                   15, 0);
3059   TESTDSPINST_EXT("extr_r.w $t2, $ac3,  2", "ac3", t2, 0x00000000, 0x006a54f2,
3060                   2, 0);
3061   TESTDSPINST_EXT("extr_r.w $t3, $ac0,  1", "ac0", t3, 0x00000000, 0x79f74493,
3062                   1, 0);
3063   TESTDSPINST_EXT("extr_r.w $t4, $ac1,  0", "ac1", t4, 0xffffffff, 0x9c09e313,
3064                   0, 0);
3065
3066   printf("-------- EXTR_RS.W --------\n");
3067   TESTDSPINST_EXT("extr_rs.w $t4, $ac3,  0", "ac3", t4, 0x00000000, 0x00000000,
3068                   0, 0);
3069   TESTDSPINST_EXT("extr_rs.w $t5, $ac0, 31", "ac0", t5, 0x7fffffff, 0xcbcdef01,
3070                   31, 0);
3071   TESTDSPINST_EXT("extr_rs.w $t6, $ac1, 31", "ac1", t6, 0x3fffffff, 0x2bcdef01,
3072                   31, 0);
3073   TESTDSPINST_EXT("extr_rs.w $t7, $ac2,  0", "ac2", t7, 0x987b2fff, 0xffffffff,
3074                   0, 0);
3075   TESTDSPINST_EXT("extr_rs.w $t8, $ac3,  1", "ac3", t8, 0x000cd320, 0xfffffffe,
3076                   1, 0);
3077   TESTDSPINST_EXT("extr_rs.w $t3, $ac2,  4", "ac2", t3, 0xfff9b541, 0x80000000,
3078                   4, 0);
3079   TESTDSPINST_EXT("extr_rs.w $t5, $ac0,  3", "ac0", t5, 0x0008b31c, 0x00000006,
3080                   3, 0);
3081   TESTDSPINST_EXT("extr_rs.w $t6, $ac1,  8", "ac1", t6, 0x0086b3ad, 0x7fffffff,
3082                   8, 0);
3083   TESTDSPINST_EXT("extr_rs.w $t7, $ac2, 16", "ac2", t7, 0x00097b51, 0x00000001,
3084                   16, 0);
3085   TESTDSPINST_EXT("extr_rs.w $t8, $ac3, 22", "ac3", t8, 0xfcde43ff, 0xffffffff,
3086                   2, 0);
3087   TESTDSPINST_EXT("extr_rs.w $t0, $ac0,  9", "ac0", t0, 0xffffca26, 0xfd0e3126,
3088                   9, 0);
3089   TESTDSPINST_EXT("extr_rs.w $t1, $ac1,  5", "ac1", t1, 0x00000000, 0x55555555,
3090                   5, 0);
3091   TESTDSPINST_EXT("extr_rs.w $t2, $ac2, 14", "ac2", t2, 0xffffffff, 0xffff2435,
3092                   14, 0);
3093   TESTDSPINST_EXT("extr_rs.w $t1, $ac1, 20", "ac1", t1, 0x00000000, 0x55555555,
3094                   0, 0);
3095   TESTDSPINST_EXT("extr_rs.w $t2, $ac2, 16", "ac2", t2, 0xffffffff, 0xffff2435,
3096                   16, 0);
3097   TESTDSPINST_EXT("extr_rs.w $t1, $ac1,  5", "ac1", t1, 0x00000000, 0x55555555,
3098                   5, 0);
3099   TESTDSPINST_EXT("extr_rs.w $t2, $ac2, 22", "ac2", t2, 0xffffffff, 0xffff2435,
3100                   22, 0);
3101   TESTDSPINST_EXT("extr_rs.w $t3, $ac3,  6", "ac3", t3, 0xffffffff, 0xabababab,
3102                   6, 0);
3103   TESTDSPINST_EXT("extr_rs.w $t4, $ac0, 13", "ac0", t4, 0xffffffff, 0xfc79b4d2,
3104                   13, 0);
3105   TESTDSPINST_EXT("extr_rs.w $t5, $ac1, 19", "ac1", t5, 0x00000000, 0x00000000,
3106                   19, 0);
3107   TESTDSPINST_EXT("extr_rs.w $t6, $ac2, 27", "ac2", t6, 0x00000000, 0x00000000,
3108                   27, 0);
3109   TESTDSPINST_EXT("extr_rs.w $t7, $ac3,  7", "ac3", t7, 0x02934b00, 0x12349876,
3110                   7, 0);
3111   TESTDSPINST_EXT("extr_rs.w $t8, $ac0, 11", "ac0", t8, 0x0008cad0, 0x00354565,
3112                   11, 0);
3113   TESTDSPINST_EXT("extr_rs.w $t0, $ac1, 26", "ac1", t0, 0xf65c8fff, 0x80006755,
3114                   26, 0);
3115   TESTDSPINST_EXT("extr_rs.w $t1, $ac2, 15", "ac2", t1, 0xfffff001, 0x8f8f8f8f,
3116                   15, 0);
3117   TESTDSPINST_EXT("extr_rs.w $t2, $ac3,  2", "ac3", t2, 0xbad69420, 0xeeeeeeee,
3118                   2, 0);
3119   TESTDSPINST_EXT("extr_rs.w $t3, $ac0,  1", "ac0", t3, 0x00000000, 0x1bdbdbdb,
3120                   1, 0);
3121   TESTDSPINST_EXT("extr_rs.w $t4, $ac1,  0", "ac1", t4, 0xffffffff, 0xdecadeca,
3122                   0, 0);
3123   TESTDSPINST_EXT("extr_rs.w $t5, $ac0,  3", "ac0", t5, 0x00000000, 0x5fc92974,
3124                   3, 0);
3125   TESTDSPINST_EXT("extr_rs.w $t6, $ac1,  8", "ac1", t6, 0x00000000, 0x7e08184e,
3126                   8, 0);
3127   TESTDSPINST_EXT("extr_rs.w $t7, $ac2, 16", "ac2", t7, 0x00000000, 0x71c8315f,
3128                   16, 0);
3129   TESTDSPINST_EXT("extr_rs.w $t8, $ac3, 22", "ac3", t8, 0xffffffff, 0x9493110e,
3130                   22, 0);
3131   TESTDSPINST_EXT("extr_rs.w $t0, $ac0,  9", "ac0", t0, 0xffffffff, 0xbb246228,
3132                   9, 0);
3133   TESTDSPINST_EXT("extr_rs.w $t1, $ac1,  5", "ac1", t1, 0x00000000, 0x339d8d88,
3134                   5, 0);
3135   TESTDSPINST_EXT("extr_rs.w $t2, $ac2, 14", "ac2", t2, 0x00000000, 0x70974249,
3136                   14, 0);
3137   TESTDSPINST_EXT("extr_rs.w $t1, $ac1, 20", "ac1", t1, 0xffffffff, 0x8a8d4e7d,
3138                   20, 0);
3139   TESTDSPINST_EXT("extr_rs.w $t2, $ac2, 16", "ac2", t2, 0xffffffff, 0xeb1b4335,
3140                   16, 0);
3141   TESTDSPINST_EXT("extr_rs.w $t1, $ac1,  5", "ac1", t1, 0x00000000, 0x0cd6b508,
3142                   5, 0);
3143   TESTDSPINST_EXT("extr_rs.w $t2, $ac2, 22", "ac2", t2, 0x00000000, 0x6731e282,
3144                   22, 0);
3145   TESTDSPINST_EXT("extr_rs.w $t3, $ac3,  6", "ac3", t3, 0xffffffff, 0xb6edf28f,
3146                   6, 0);
3147   TESTDSPINST_EXT("extr_rs.w $t4, $ac0, 13", "ac0", t4, 0x00000000, 0x4b4ec9ca,
3148                   13, 0);
3149   TESTDSPINST_EXT("extr_rs.w $t5, $ac1, 19", "ac1", t5, 0xffffffff, 0xc1037fa4,
3150                   19, 0);
3151   TESTDSPINST_EXT("extr_rs.w $t6, $ac2, 27", "ac2", t6, 0xffffffff, 0xcb4ab48f,
3152                   27, 0);
3153   TESTDSPINST_EXT("extr_rs.w $t7, $ac3,  7", "ac3", t7, 0xffffffff, 0xaf8f7e18,
3154                   7, 0);
3155   TESTDSPINST_EXT("extr_rs.w $t8, $ac0, 11", "ac0", t8, 0xffffffff, 0x87df4510,
3156                   11, 0);
3157   TESTDSPINST_EXT("extr_rs.w $t0, $ac1, 26", "ac1", t0, 0xffffffff, 0xabf4e8e1,
3158                   26, 0);
3159   TESTDSPINST_EXT("extr_rs.w $t1, $ac2, 15", "ac2", t1, 0xffffffff, 0xf4c0eeac,
3160                   15, 0);
3161   TESTDSPINST_EXT("extr_rs.w $t2, $ac3,  2", "ac3", t2, 0x00000000, 0x006a54f2,
3162                   2, 0);
3163   TESTDSPINST_EXT("extr_rs.w $t3, $ac0,  1", "ac0", t3, 0x00000000, 0x79f74493,
3164                   1, 0);
3165   TESTDSPINST_EXT("extr_rs.w $t4, $ac1,  0", "ac1", t4, 0xffffffff, 0x9c09e313,
3166                   0, 0);
3167
3168   printf("-------- EXTRV_S.H --------\n");
3169   TESTDSPINST_EXTV("extrv_s.h $t1, $ac1, $t3", "ac1", t1, 0x00000000,
3170                    0x00000000, t3, 0xbababa00, 0);
3171   TESTDSPINST_EXTV("extrv_s.h $t2, $ac2, $t4", "ac2", t2, 0x7fffffff,
3172                    0xcbcdef01, t4, 0xfbde391f, 0);
3173   TESTDSPINST_EXTV("extrv_s.h $t1, $ac1, $t7", "ac1", t1, 0x3fffffff,
3174                    0x2bcdef01, t7, 0x5555551f, 0);
3175   TESTDSPINST_EXTV("extrv_s.h $t2, $ac2, $t5", "ac2", t2, 0xffffffff,
3176                    0xffffffff, t5, 0x0000cd00, 0);
3177   TESTDSPINST_EXTV("extrv_s.h $t1, $ac1, $t2", "ac1", t1, 0x00000000,
3178                    0xfffffffe, t2, 0x80000001, 0);
3179   TESTDSPINST_EXTV("extrv_s.h $t2, $ac1, $t1", "ac1", t2, (1<<31)+1, (1<<31)+2,
3180                    t1, 0x12349876, 0);
3181   TESTDSPINST_EXTV("extrv_s.h $t1, $ac0, $t0", "ac0", t1, 0x80000000,
3182                    0x80000000, t0, 0x12349876, 0);
3183   TESTDSPINST_EXTV("extrv_s.h $t3, $ac2, $t2", "ac2", t3, 0x00000000,
3184                    0x00000006, t2, 0x00354565, 0);
3185   TESTDSPINST_EXTV("extrv_s.h $t4, $ac3, $t3", "ac3", t4, 0x00000004,
3186                    1073741824, t3, 0x00086755, 0);
3187   TESTDSPINST_EXTV("extrv_s.h $t5, $ac0, $t4", "ac0", t5, 0x7fffffff,
3188                    0x7fffffff, t4, 0x00000018, 0);
3189   TESTDSPINST_EXTV("extrv_s.h $t6, $ac1, $t5", "ac1", t6, 0xffffffff,
3190                    0x00000001, t5, 0x23534870, 0);
3191   TESTDSPINST_EXTV("extrv_s.h $t7, $ac2, $t6", "ac2", t7, 0x00000001,
3192                    0xffffffff, t6, 0x92784656, 0);
3193   TESTDSPINST_EXTV("extrv_s.h $t8, $ac3, $t7", "ac3", t8, 0xffffffff,
3194                    0xffffffff, t7, 0xeeeeeeee, 0);
3195   TESTDSPINST_EXTV("extrv_s.h $t0, $ac0, $t8", "ac0", t0, 0x0000cdfe,
3196                    0x0fde3126, t8, 0xcacacaca, 0);
3197   TESTDSPINST_EXTV("extrv_s.h $t1, $ac1, $t0", "ac1", t1, 0xaaaaaaaa,
3198                    0x55555555, t0, 0xbacabaca, 0);
3199   TESTDSPINST_EXTV("extrv_s.h $t2, $ac2, $t1", "ac2", t2, 0x00000018,
3200                    0xffff2435, t1, 0x1bdbdbdb, 0);
3201   TESTDSPINST_EXTV("extrv_s.h $t1, $ac1, $t2", "ac1", t1, 0xaaaaaaaa,
3202                    0x55555555, t2, 0x0cd6b508, 0);
3203   TESTDSPINST_EXTV("extrv_s.h $t2, $ac2, $t3", "ac2", t2, 0x00000018,
3204                    0xffff2435, t3, 0x6731e282, 0);
3205   TESTDSPINST_EXTV("extrv_s.h $t1, $ac1, $t4", "ac1", t1, 0xaaaaaaaa,
3206                    0x55555555, t4, 0xb6edf28f, 0);
3207   TESTDSPINST_EXTV("extrv_s.h $t2, $ac2, $t5", "ac2", t2, 0x00000018,
3208                    0xffff2435, t5, 0x4b4ec9ca, 0);
3209   TESTDSPINST_EXTV("extrv_s.h $t3, $ac3, $t6", "ac3", t3, 0xbabababa,
3210                    0xabababab, t6, 0xc1037fa4, 0);
3211   TESTDSPINST_EXTV("extrv_s.h $t4, $ac0, $t7", "ac0", t4, 0xf0f0f0f0,
3212                    0xfc79b4d2, t7, 0xcb4ab48f, 0);
3213   TESTDSPINST_EXTV("extrv_s.h $t5, $ac1, $t8", "ac1", t5, 0x00000000,
3214                    0x00000000, t8, 0xaf8f7e18, 0);
3215   TESTDSPINST_EXTV("extrv_s.h $t6, $ac2, $t0", "ac2", t6, 0xfbde3976,
3216                    0x00000000, t0, 0x87df4510, 0);
3217   TESTDSPINST_EXTV("extrv_s.h $t7, $ac3, $t1", "ac3", t7, 0x0bed7654,
3218                    0x12349876, t1, 0xabf4e8e1, 0);
3219   TESTDSPINST_EXTV("extrv_s.h $t8, $ac0, $t2", "ac0", t8, 0x23534870,
3220                    0x00354565, t2, 0xf4c0eeac, 0);
3221   TESTDSPINST_EXTV("extrv_s.h $t0, $ac1, $t3", "ac1", t0, 0x980b7cde,
3222                    0x00086755, t3, 0x006a54f2, 0);
3223   TESTDSPINST_EXTV("extrv_s.h $t1, $ac2, $t4", "ac2", t1, 0x00000018,
3224                    0x8f8f8f8f, t4, 0x79f74493, 0);
3225   TESTDSPINST_EXTV("extrv_s.h $t2, $ac3, $t5", "ac3", t2, 0x92784656,
3226                    0xeeeeeeee, t5, 0x9c09e313, 0);
3227   TESTDSPINST_EXTV("extrv_s.h $t3, $ac0, $t6", "ac0", t3, 0xcacacaca,
3228                    0x1bdbdbdb, t6, 0x0fde3126, 0);
3229   TESTDSPINST_EXTV("extrv_s.h $t4, $ac1, $t7", "ac1", t4, 0xbacabaca,
3230                    0xdecadeca, t7, 0x55555555, 0);
3231   TESTDSPINST_EXTV("extrv_s.h $t5, $ac0, $t8", "ac0", t5, 0x00000000,
3232                    0x5fc92974, t8, 0xffff2435, 0);
3233   TESTDSPINST_EXTV("extrv_s.h $t6, $ac1, $t0", "ac1", t6, 0x00000000,
3234                    0x7e08184e, t0, 0x55555555, 0);
3235   TESTDSPINST_EXTV("extrv_s.h $t7, $ac2, $t1", "ac2", t7, 0x00000000,
3236                    0x71c8315f, t1, 0xffff2435, 0);
3237   TESTDSPINST_EXTV("extrv_s.h $t8, $ac3, $t2", "ac3", t8, 0xffffffff,
3238                    0x9493110e, t2, 0x55555555, 0);
3239   TESTDSPINST_EXTV("extrv_s.h $t0, $ac0, $t3", "ac0", t0, 0xffffffff,
3240                    0xbb246228, t3, 0xffff2435, 0);
3241   TESTDSPINST_EXTV("extrv_s.h $t1, $ac1, $t4", "ac1", t1, 0x00000000,
3242                    0x339d8d88, t4, 0xabababab, 0);
3243   TESTDSPINST_EXTV("extrv_s.h $t2, $ac2, $t5", "ac2", t2, 0x00000000,
3244                    0x70974249, t5, 0xfc79b4d2, 0);
3245   TESTDSPINST_EXTV("extrv_s.h $t1, $ac1, $t6", "ac1", t1, 0xffffffff,
3246                    0x8a8d4e7d, t6, 0x00000000, 0);
3247   TESTDSPINST_EXTV("extrv_s.h $t2, $ac2, $t7", "ac2", t2, 0xffffffff,
3248                    0xeb1b4335, t7, 0x00000000, 0);
3249   TESTDSPINST_EXTV("extrv_s.h $t1, $ac1, $t8", "ac1", t1, 0x00000000,
3250                    0x0cd6b508, t8, 0x12349876, 0);
3251   TESTDSPINST_EXTV("extrv_s.h $t2, $ac2, $t0", "ac2", t2, 0x00000000,
3252                    0x6731e282, t0, 0x00354565, 0);
3253   TESTDSPINST_EXTV("extrv_s.h $t3, $ac3, $t1", "ac3", t3, 0xffffffff,
3254                    0xb6edf28f, t1, 0x00086755, 0);
3255   TESTDSPINST_EXTV("extrv_s.h $t4, $ac0, $t2", "ac0", t4, 0x00000000,
3256                    0x4b4ec9ca, t2, 0x8f8f8f8f, 0);
3257   TESTDSPINST_EXTV("extrv_s.h $t5, $ac1, $t3", "ac1", t5, 0xffffffff,
3258                    0xc1037fa4, t3, 0xeeeeeeee, 0);
3259   TESTDSPINST_EXTV("extrv_s.h $t6, $ac2, $t3", "ac2", t6, 0xffffffff,
3260                    0xcb4ab48f, t3, 0x1bdbdbdb, 0);
3261   TESTDSPINST_EXTV("extrv_s.h $t7, $ac3, $t4", "ac3", t7, 0xffffffff,
3262                    0xaf8f7e18, t4, 0xbb246228, 0);
3263   TESTDSPINST_EXTV("extrv_s.h $t8, $ac0, $t5", "ac0", t8, 0xffffffff,
3264                    0x87df4510, t5, 0x339d8d88, 0);
3265   TESTDSPINST_EXTV("extrv_s.h $t0, $ac1, $t6", "ac1", t0, 0xffffffff,
3266                    0xabf4e8e1, t6, 0x70974249, 0);
3267   TESTDSPINST_EXTV("extrv_s.h $t1, $ac2, $t7", "ac2", t1, 0xffffffff,
3268                    0xf4c0eeac, t7, 0x8a8d4e7d, 0);
3269   TESTDSPINST_EXTV("extrv_s.h $t2, $ac3, $t8", "ac3", t2, 0x00000000,
3270                    0x006a54f2, t8, 0xeb1b4335, 0);
3271   TESTDSPINST_EXTV("extrv_s.h $t3, $ac0, $t0", "ac0", t3, 0x00000000,
3272                    0x79f74493, t0, 0x0cd6b508, 0);
3273   TESTDSPINST_EXTV("extrv_s.h $t4, $ac1, $t1", "ac1", t4, 0xffffffff,
3274                    0x9c09e313, t1, 0x6731e282, 0);
3275
3276   printf("-------- EXTRV.W --------\n");
3277   TESTDSPINST_EXTV("extrv.w $t1, $ac1, $t3", "ac1", t1, 0x00000000, 0x00000000,
3278                    t3, 0xbababa00, 0);
3279   TESTDSPINST_EXTV("extrv.w $t2, $ac2, $t4", "ac2", t2, 0x7fffffff, 0xcbcdef01,
3280                    t4, 0xfbde391f, 0);
3281   TESTDSPINST_EXTV("extrv.w $t1, $ac1, $t7", "ac1", t1, 0x3fffffff, 0x2bcdef01,
3282                    t7, 0x5555551f, 0);
3283   TESTDSPINST_EXTV("extrv.w $t2, $ac2, $t5", "ac2", t2, 0xffffffff, 0xffffffff,
3284                    t5, 0x0000cd00, 0);
3285   TESTDSPINST_EXTV("extrv.w $t1, $ac1, $t2", "ac1", t1, 0x00000000, 0xfffffffe,
3286                    t2, 0x80000001, 0);
3287   TESTDSPINST_EXTV("extrv.w $t1, $ac1, $t3", "ac1", t1, 0xaaabad3a, 0x55555555,
3288                    t3, 0xbababa05, 0);
3289   TESTDSPINST_EXTV("extrv.w $t2, $ac2, $t4", "ac2", t2, 0x00000018, 0xffff2435,
3290                    t4, 0xfbde390e, 0);
3291   TESTDSPINST_EXTV("extrv.w $t1, $ac1, $t7", "ac1", t1, 0xaaaaa221, 0x55555555,
3292                    t7, 0x55555514, 0);
3293   TESTDSPINST_EXTV("extrv.w $t2, $ac2, $t5", "ac2", t2, 0x00000018, 0xffff2435,
3294                    t5, 0x0000cd10, 0);
3295   TESTDSPINST_EXTV("extrv.w $t1, $ac1, $t2", "ac1", t1, 0xaaaaaaaa, 0x55555555,
3296                    t2, 0x80000005, 0);
3297   TESTDSPINST_EXTV("extrv.w $t2, $ac2, $t3", "ac2", t2, 0x00000018, 0xffff2435,
3298                    t3, 0x7fffff16, 0);
3299   TESTDSPINST_EXTV("extrv.w $t0, $ac0, $t1", "ac0", t0, 0x0000cdfe, 0x0fde3126,
3300                    t1, 0xbabababa, 0);
3301   TESTDSPINST_EXTV("extrv.w $t3, $ac3, $t2", "ac3", t3, 0xbabababa, 0xabababab,
3302                    t2, 0xfbde3976, 0);
3303   TESTDSPINST_EXTV("extrv.w $t6, $ac1, $t7", "ac1", t6, 0xffffffff, 0x00000001,
3304                    t7, 0x55555555, 0);
3305   TESTDSPINST_EXTV("extrv.w $t4, $ac3, $t5", "ac3", t4, 0x00000004, 1073741824,
3306                    t5, 0x0000cdfe, 0);
3307   TESTDSPINST_EXTV("extrv.w $t1, $ac0, $t2", "ac0", t1, 0x80000000, 0x80000000,
3308                    t2, 0x80000000, 0);
3309   TESTDSPINST_EXTV("extrv.w $t2, $ac1, $t3", "ac1", t2, (1<<31)+1, (1<<31)+2,
3310                    t3, 0x06, 0);
3311   TESTDSPINST_EXTV("extrv.w $t3, $ac2, $t4", "ac2", t3, 0x00000000, 0x00000006,
3312                    t4, 0x7fffffff, 0);
3313   TESTDSPINST_EXTV("extrv.w $t5, $ac0, $t6", "ac0", t5, 0x7fffffff, 0x7fffffff,
3314                    t6, 0x0fde3126, 0);
3315   TESTDSPINST_EXTV("extrv.w $t7, $ac2, $t8", "ac2", t7, 0x00000001, 0xffffffff,
3316                    t8, 0xaaaaaaaa, 0);
3317   TESTDSPINST_EXTV("extrv.w $t8, $ac3, $t9", "ac3", t8, 0xffffffff, 0xffffffff,
3318                    t9, 0xffff2435, 0);
3319   TESTDSPINST_EXTV("extrv.w $t4, $ac0, $t3", "ac0", t4, 0xf0f0f0f0, 0xfc79b4d2,
3320                    t3, 0x12349876, 0);
3321   TESTDSPINST_EXTV("extrv.w $t5, $ac1, $t4", "ac1", t5, 0x00000000, 0x00000000,
3322                    t4, 0x00354565, 0);
3323   TESTDSPINST_EXTV("extrv.w $t6, $ac2, $t5", "ac2", t6, 0xfbde3976, 0x00000000,
3324                    t5, 0x00086755, 0);
3325   TESTDSPINST_EXTV("extrv.w $t7, $ac3, $t6", "ac3", t7, 0x0bed7654, 0x12349876,
3326                    t6, 0x00000018, 0);
3327   TESTDSPINST_EXTV("extrv.w $t8, $ac0, $t7", "ac0", t8, 0x23534870, 0x00354565,
3328                    t7, 0x23534870, 0);
3329   TESTDSPINST_EXTV("extrv.w $t0, $ac1, $t8", "ac1", t0, 0x980b7cde, 0x00086755,
3330                    t8, 0x92784656, 0);
3331   TESTDSPINST_EXTV("extrv.w $t1, $ac2, $t9", "ac2", t1, 0x00000018, 0x8f8f8f8f,
3332                    t9, 0xeeeeeeee, 0);
3333   TESTDSPINST_EXTV("extrv.w $t2, $ac3, $t1", "ac3", t2, 0x92784656, 0xeeeeeeee,
3334                    t1, 0xcacacaca, 0);
3335   TESTDSPINST_EXTV("extrv.w $t3, $ac0, $t1", "ac0", t3, 0xcacacaca, 0x1bdbdbdb,
3336                    t1, 0xbacabaca, 0);
3337   TESTDSPINST_EXTV("extrv.w $t4, $ac1, $t4", "ac1", t4, 0xbacabaca, 0xdecadeca,
3338                    t4, 0x1bdbdbdb, 0);
3339   TESTDSPINST_EXTV("extrv.w $t5, $ac0, $t8", "ac0", t5, 0x00000000, 0x5fc92974,
3340                    t8, 0xffff2435, 0);
3341   TESTDSPINST_EXTV("extrv.w $t6, $ac1, $t0", "ac1", t6, 0x00000000, 0x7e08184e,
3342                    t0, 0x55555555, 0);
3343   TESTDSPINST_EXTV("extrv.w $t7, $ac2, $t1", "ac2", t7, 0x00000000, 0x71c8315f,
3344                    t1, 0xffff2435, 0);
3345   TESTDSPINST_EXTV("extrv.w $t8, $ac3, $t2", "ac3", t8, 0xffffffff, 0x9493110e,
3346                    t2, 0x55555555, 0);
3347   TESTDSPINST_EXTV("extrv.w $t0, $ac0, $t3", "ac0", t0, 0xffffffff, 0xbb246228,
3348                    t3, 0xffff2435, 0);
3349   TESTDSPINST_EXTV("extrv.w $t1, $ac1, $t4", "ac1", t1, 0x00000000, 0x339d8d88,
3350                    t4, 0xabababab, 0);
3351   TESTDSPINST_EXTV("extrv.w $t2, $ac2, $t5", "ac2", t2, 0x00000000, 0x70974249,
3352                    t5, 0xfc79b4d2, 0);
3353   TESTDSPINST_EXTV("extrv.w $t1, $ac1, $t6", "ac1", t1, 0xffffffff, 0x8a8d4e7d,
3354                    t6, 0x00000000, 0);
3355   TESTDSPINST_EXTV("extrv.w $t2, $ac2, $t7", "ac2", t2, 0xffffffff, 0xeb1b4335,
3356                    t7, 0x00000000, 0);
3357   TESTDSPINST_EXTV("extrv.w $t1, $ac1, $t8", "ac1", t1, 0x00000000, 0x0cd6b508,
3358                    t8, 0x12349876, 0);
3359   TESTDSPINST_EXTV("extrv.w $t2, $ac2, $t0", "ac2", t2, 0x00000000, 0x6731e282,
3360                    t0, 0x00354565, 0);
3361   TESTDSPINST_EXTV("extrv.w $t3, $ac3, $t1", "ac3", t3, 0xffffffff, 0xb6edf28f,
3362                    t1, 0x00086755, 0);
3363   TESTDSPINST_EXTV("extrv.w $t4, $ac0, $t2", "ac0", t4, 0x00000000, 0x4b4ec9ca,
3364                    t2, 0x8f8f8f8f, 0);
3365   TESTDSPINST_EXTV("extrv.w $t5, $ac1, $t3", "ac1", t5, 0xffffffff, 0xc1037fa4,
3366                    t3, 0xeeeeeeee, 0);
3367   TESTDSPINST_EXTV("extrv.w $t6, $ac2, $t3", "ac2", t6, 0xffffffff, 0xcb4ab48f,
3368                    t3, 0x1bdbdbdb, 0);
3369   TESTDSPINST_EXTV("extrv.w $t7, $ac3, $t4", "ac3", t7, 0xffffffff, 0xaf8f7e18,
3370                    t4, 0xbb246228, 0);
3371   TESTDSPINST_EXTV("extrv.w $t8, $ac0, $t5", "ac0", t8, 0xffffffff, 0x87df4510,
3372                    t5, 0x339d8d88, 0);
3373   TESTDSPINST_EXTV("extrv.w $t0, $ac1, $t6", "ac1", t0, 0xffffffff, 0xabf4e8e1,
3374                    t6, 0x70974249, 0);
3375   TESTDSPINST_EXTV("extrv.w $t1, $ac2, $t7", "ac2", t1, 0xffffffff, 0xf4c0eeac,
3376                    t7, 0x8a8d4e7d, 0);
3377   TESTDSPINST_EXTV("extrv.w $t2, $ac3, $t8", "ac3", t2, 0x00000000, 0x006a54f2,
3378                    t8, 0xeb1b4335, 0);
3379   TESTDSPINST_EXTV("extrv.w $t3, $ac0, $t0", "ac0", t3, 0x00000000, 0x79f74493,
3380                    t0, 0x0cd6b508, 0);
3381   TESTDSPINST_EXTV("extrv.w $t4, $ac1, $t1", "ac1", t4, 0xffffffff, 0x9c09e313,
3382                    t1, 0x6731e282, 0);
3383
3384   printf("-------- EXTRV_R.W --------\n");
3385   TESTDSPINST_EXTV("extrv_r.w $t1, $ac1, $t3", "ac1", t1, 0x00000000,
3386                    0x00000000, t3, 0xbababa00, 0);
3387   TESTDSPINST_EXTV("extrv_r.w $t2, $ac2, $t4", "ac2", t2, 0x7fffffff,
3388                    0xcbcdef01, t4, 0xfbde391f, 0);
3389   TESTDSPINST_EXTV("extrv_r.w $t1, $ac1, $t7", "ac1", t1, 0x3fffffff,
3390                    0x2bcdef01, t7, 0x5555551f, 0);
3391   TESTDSPINST_EXTV("extrv_r.w $t2, $ac2, $t5", "ac2", t2, 0xffffffff,
3392                    0xffffffff, t5, 0x0000cd00, 0);
3393   TESTDSPINST_EXTV("extrv_r.w $t1, $ac1, $t2", "ac1", t1, 0x00000000,
3394                    0xfffffffe, t2, 0x80000001, 0);
3395   TESTDSPINST_EXTV("extrv_r.w $t1, $ac1, $t3", "ac1", t1, 0x00000000,
3396                    0x55555555, t3, 0xbababa05, 0);
3397   TESTDSPINST_EXTV("extrv_r.w $t2, $ac2, $t4", "ac2", t2, 0xffffffff,
3398                    0xffff2435, t4, 0xfbde390e, 0);
3399   TESTDSPINST_EXTV("extrv_r.w $t1, $ac1, $t7", "ac1", t1, 0x00000000,
3400                    0x55555555, t7, 0x55555514, 0);
3401   TESTDSPINST_EXTV("extrv_r.w $t2, $ac2, $t5", "ac2", t2, 0xffffffff,
3402                    0xffff2435, t5, 0x0000cd10, 0);
3403   TESTDSPINST_EXTV("extrv_r.w $t1, $ac1, $t2", "ac1", t1, 0x00000000,
3404                    0x55555555, t2, 0x80000005, 0);
3405   TESTDSPINST_EXTV("extrv_r.w $t2, $ac2, $t3", "ac2", t2, 0xffffffff,
3406                    0xffff2435, t3, 0x7fffff16, 0);
3407   TESTDSPINST_EXTV("extrv_r.w $t0, $ac0, $t1", "ac0", t0, 0x00000000,
3408                    0x0fde3126, t1, 0xbabababa, 0);
3409   TESTDSPINST_EXTV("extrv_r.w $t3, $ac3, $t2", "ac3", t3, 0xffffffff,
3410                    0xabababab, t2, 0xfbde3976, 0);
3411   TESTDSPINST_EXTV("extrv_r.w $t6, $ac1, $t7", "ac1", t6, 0x00000000,
3412                    0x00000001, t7, 0x55555555, 0);
3413   TESTDSPINST_EXTV("extrv_r.w $t1, $ac0, $t2", "ac0", t1, 0xffffffff,
3414                    0x80000000, t2, 0x80000000, 0);
3415   TESTDSPINST_EXTV("extrv_r.w $t3, $ac2, $t4", "ac2", t3, 0x00000000,
3416                    0x00000006, t4, 0x7fffffff, 0);
3417   TESTDSPINST_EXTV("extrv_r.w $t5, $ac0, $t6", "ac0", t5, 0x00000000,
3418                    0x7fffffff, t6, 0x0fde3126, 0);
3419   TESTDSPINST_EXTV("extrv_r.w $t7, $ac2, $t8", "ac2", t7, 0xffffffff,
3420                    0xffffffff, t8, 0xaaaaaaaa, 0);
3421   TESTDSPINST_EXTV("extrv_r.w $t8, $ac3, $t9", "ac3", t8, 0xffffffff,
3422                    0xffffffff, t9, 0xffff2435, 0);
3423   TESTDSPINST_EXTV("extrv_r.w $t4, $ac0, $t3", "ac0", t4, 0xffffffff,
3424                    0xfc79b4d2, t3, 0x12349876, 0);
3425   TESTDSPINST_EXTV("extrv_r.w $t5, $ac1, $t4", "ac1", t5, 0x00000000,
3426                    0x00000000, t4, 0x00354565, 0);
3427   TESTDSPINST_EXTV("extrv_r.w $t6, $ac2, $t5", "ac2", t6, 0x00000000,
3428                    0x00000000, t5, 0x00086755, 0);
3429   TESTDSPINST_EXTV("extrv_r.w $t7, $ac3, $t6", "ac3", t7, 0x00000000,
3430                    0x12349876, t6, 0x00000018, 0);
3431   TESTDSPINST_EXTV("extrv_r.w $t8, $ac0, $t7", "ac0", t8, 0x00000000,
3432                    0x00354565, t7, 0x23534870, 0);
3433   TESTDSPINST_EXTV("extrv_r.w $t0, $ac1, $t8", "ac1", t0, 0x00000000,
3434                    0x00086755, t8, 0x92784656, 0);
3435   TESTDSPINST_EXTV("extrv_r.w $t1, $ac2, $t9", "ac2", t1, 0xffffffff,
3436                    0x8f8f8f8f, t9, 0xeeeeeeee, 0);
3437   TESTDSPINST_EXTV("extrv_r.w $t2, $ac3, $t1", "ac3", t2, 0xffffffff,
3438                    0xeeeeeeee, t1, 0xcacacaca, 0);
3439   TESTDSPINST_EXTV("extrv_r.w $t3, $ac0, $t1", "ac0", t3, 0x00000000,
3440                    0x1bdbdbdb, t1, 0xbacabaca, 0);
3441   TESTDSPINST_EXTV("extrv_r.w $t4, $ac1, $t4", "ac1", t4, 0xffffffff,
3442                    0xdecadeca, t4, 0x1bdbdbdb, 0);
3443   TESTDSPINST_EXTV("extrv_r.w $t5, $ac0, $t8", "ac0", t5, 0xf0f0f0f0,
3444                    0x5fc92974, t8, 0xffff2435, 0);
3445   TESTDSPINST_EXTV("extrv_r.w $t6, $ac1, $t0", "ac1", t6, 0x00000000,
3446                    0x7e08184e, t0, 0x55555555, 0);
3447   TESTDSPINST_EXTV("extrv_r.w $t7, $ac2, $t1", "ac2", t7, 0xfbde3976,
3448                    0x71c8315f, t1, 0xffff2435, 0);
3449   TESTDSPINST_EXTV("extrv_r.w $t8, $ac3, $t2", "ac3", t8, 0x0bed7654,
3450                    0x9493110e, t2, 0x55555555, 0);
3451   TESTDSPINST_EXTV("extrv_r.w $t0, $ac0, $t3", "ac0", t0, 0x23534870,
3452                    0xbb246228, t3, 0xffff2435, 0);
3453   TESTDSPINST_EXTV("extrv_r.w $t1, $ac1, $t4", "ac1", t1, 0x980b7cde,
3454                    0x339d8d88, t4, 0xabababab, 0);
3455   TESTDSPINST_EXTV("extrv_r.w $t2, $ac2, $t5", "ac2", t2, 0x00000018,
3456                    0x70974249, t5, 0xfc79b4d2, 0);
3457   TESTDSPINST_EXTV("extrv_r.w $t1, $ac1, $t6", "ac1", t1, 0x92784656,
3458                    0x8a8d4e7d, t6, 0x00000000, 0);
3459   TESTDSPINST_EXTV("extrv_r.w $t2, $ac2, $t7", "ac2", t2, 0xcacacaca,
3460                    0xeb1b4335, t7, 0x00000000, 0);
3461   TESTDSPINST_EXTV("extrv_r.w $t1, $ac1, $t8", "ac1", t1, 0xbacabaca,
3462                    0x0cd6b508, t8, 0x12349876, 0);
3463   TESTDSPINST_EXTV("extrv_r.w $t2, $ac2, $t0", "ac2", t2, 0x00000000,
3464                    0x6731e282, t0, 0x00354565, 0);
3465   TESTDSPINST_EXTV("extrv_r.w $t3, $ac3, $t1", "ac3", t3, 0x00000000,
3466                    0xb6edf28f, t1, 0x00086755, 0);
3467   TESTDSPINST_EXTV("extrv_r.w $t4, $ac0, $t2", "ac0", t4, 0x00000000,
3468                    0x4b4ec9ca, t2, 0x8f8f8f8f, 0);
3469   TESTDSPINST_EXTV("extrv_r.w $t5, $ac1, $t3", "ac1", t5, 0xffffffff,
3470                    0xc1037fa4, t3, 0xeeeeeeee, 0);
3471   TESTDSPINST_EXTV("extrv_r.w $t6, $ac2, $t3", "ac2", t6, 0xffffffff,
3472                    0xcb4ab48f, t3, 0x1bdbdbdb, 0);
3473   TESTDSPINST_EXTV("extrv_r.w $t7, $ac3, $t4", "ac3", t7, 0x00000000,
3474                    0xaf8f7e18, t4, 0xbb246228, 0);
3475   TESTDSPINST_EXTV("extrv_r.w $t8, $ac0, $t5", "ac0", t8, 0x00000000,
3476                    0x87df4510, t5, 0x339d8d88, 0);
3477   TESTDSPINST_EXTV("extrv_r.w $t0, $ac1, $t6", "ac1", t0, 0xffffffff,
3478                    0xabf4e8e1, t6, 0x70974249, 0);
3479   TESTDSPINST_EXTV("extrv_r.w $t1, $ac2, $t7", "ac2", t1, 0xffffffff,
3480                    0xf4c0eeac, t7, 0x8a8d4e7d, 0);
3481   TESTDSPINST_EXTV("extrv_r.w $t2, $ac3, $t8", "ac3", t2, 0x00000000,
3482                    0x006a54f2, t8, 0xeb1b4335, 0);
3483   TESTDSPINST_EXTV("extrv_r.w $t3, $ac0, $t0", "ac0", t3, 0x00000000,
3484                    0x79f74493, t0, 0x0cd6b508, 0);
3485   TESTDSPINST_EXTV("extrv_r.w $t4, $ac1, $t1", "ac1", t4, 0xffffffff,
3486                    0x9c09e313, t1, 0x6731e282, 0);
3487
3488   printf("-------- EXTRV_RS.W --------\n");
3489   TESTDSPINST_EXTV("extrv_rs.w $t1, $ac1, $t3", "ac1", t1, 0x00000000,
3490                    0x00000000, t3, 0xbababa00, 0);
3491   TESTDSPINST_EXTV("extrv_rs.w $t1, $ac1, $t3", "ac1", t1, 0x987b2fff,
3492                    0xffffffff, t3, 0xbababa00, 0);
3493   TESTDSPINST_EXTV("extrv_rs.w $t2, $ac2, $t4", "ac2", t2, 0x7fffffff,
3494                    0xcbcdef01, t4, 0xfbde391f, 0);
3495   TESTDSPINST_EXTV("extrv_rs.w $t1, $ac1, $t7", "ac1", t1, 0x3fffffff,
3496                    0x2bcdef01, t7, 0x5555551f, 0);
3497   TESTDSPINST_EXTV("extrv_rs.w $t2, $ac2, $t5", "ac2", t2, 0xffffffff,
3498                    0xffffffff, t5, 0x0000cd00, 0);
3499   TESTDSPINST_EXTV("extrv_rs.w $t1, $ac1, $t2", "ac1", t1, 0x00000000,
3500                    0xfffffffe, t2, 0x80000001, 0);
3501   TESTDSPINST_EXTV("extrv_rs.w $t1, $ac1, $t3", "ac1", t1, 0x00000000,
3502                    0x55555555, t3, 0xbababa05, 0);
3503   TESTDSPINST_EXTV("extrv_rs.w $t2, $ac2, $t4", "ac2", t2, 0xffffffff,
3504                    0xffff2435, t4, 0xfbde390e, 0);
3505   TESTDSPINST_EXTV("extrv_rs.w $t1, $ac1, $t7", "ac1", t1, 0x00000000,
3506                    0x55555555, t7, 0x55555514, 0);
3507   TESTDSPINST_EXTV("extrv_rs.w $t2, $ac2, $t5", "ac2", t2, 0xffffffff,
3508                    0xffff2435, t5, 0x0000cd10, 0);
3509   TESTDSPINST_EXTV("extrv_rs.w $t1, $ac1, $t2", "ac1", t1, 0x00000000,
3510                    0x55555555, t2, 0x80000005, 0);
3511   TESTDSPINST_EXTV("extrv_rs.w $t2, $ac2, $t3", "ac2", t2, 0xffffffff,
3512                    0xffff2435, t3, 0x7fffff16, 0);
3513   TESTDSPINST_EXTV("extrv_rs.w $t0, $ac0, $t1", "ac0", t0, 0x00000000,
3514                    0x0fde3126, t1, 0xbabababa, 0);
3515   TESTDSPINST_EXTV("extrv_rs.w $t3, $ac3, $t2", "ac3", t3, 0xffffffff,
3516                    0xabababab, t2, 0xfbde3976, 0);
3517   TESTDSPINST_EXTV("extrv_rs.w $t6, $ac1, $t7", "ac1", t6, 0x00000000,
3518                    0x00000001, t7, 0x55555555, 0);
3519   TESTDSPINST_EXTV("extrv_rs.w $t1, $ac0, $t2", "ac0", t1, 0xffffffff,
3520                    0x80000000, t2, 0x80000000, 0);
3521   TESTDSPINST_EXTV("extrv_rs.w $t5, $ac0, $t6", "ac0", t5, 0x00000000,
3522                    0x7fffffff, t6, 0x0fde3126, 0);
3523   TESTDSPINST_EXTV("extrv_rs.w $t7, $ac2, $t8", "ac2", t7, 0xffffffff,
3524                    0xffffffff, t8, 0xaaaaaaaa, 0);
3525   TESTDSPINST_EXTV("extrv_rs.w $t8, $ac3, $t9", "ac3", t8, 0xffffffff,
3526                    0xffffffff, t9, 0xffff2435, 0);
3527   TESTDSPINST_EXTV("extrv_rs.w $t4, $ac0, $t3", "ac0", t4, 0xffffffff,
3528                    0xfc79b4d2, t3, 0x12349876, 0);
3529   TESTDSPINST_EXTV("extrv_rs.w $t5, $ac1, $t4", "ac1", t5, 0xf0f0f0f0,
3530                    0x00000000, t4, 0x00354565, 0);
3531   TESTDSPINST_EXTV("extrv_rs.w $t6, $ac2, $t5", "ac2", t6, 0x00000000,
3532                    0x00000000, t5, 0x00086755, 0);
3533   TESTDSPINST_EXTV("extrv_rs.w $t7, $ac3, $t6", "ac3", t7, 0xfbde3976,
3534                    0x12349876, t6, 0x00000018, 0);
3535   TESTDSPINST_EXTV("extrv_rs.w $t8, $ac0, $t7", "ac0", t8, 0x0bed7654,
3536                    0x00354565, t7, 0x23534870, 0);
3537   TESTDSPINST_EXTV("extrv_rs.w $t0, $ac1, $t8", "ac1", t0, 0x23534870,
3538                    0x00086755, t8, 0x92784656, 0);
3539   TESTDSPINST_EXTV("extrv_rs.w $t1, $ac2, $t9", "ac2", t1, 0x980b7cde,
3540                    0x8f8f8f8f, t9, 0xeeeeeeee, 0);
3541   TESTDSPINST_EXTV("extrv_rs.w $t2, $ac3, $t1", "ac3", t2, 0x00000018,
3542                    0xeeeeeeee, t1, 0xcacacaca, 0);
3543   TESTDSPINST_EXTV("extrv_rs.w $t3, $ac0, $t1", "ac0", t3, 0x92784656,
3544                    0x1bdbdbdb, t1, 0xbacabaca, 0);
3545   TESTDSPINST_EXTV("extrv_rs.w $t4, $ac1, $t4", "ac1", t4, 0xcacacaca,
3546                    0xdecadeca, t4, 0x1bdbdbdb, 0);
3547   TESTDSPINST_EXTV("extrv_rs.w $t5, $ac0, $t8", "ac0", t5, 0xbacabaca,
3548                    0x5fc92974, t8, 0xffff2435, 0);
3549   TESTDSPINST_EXTV("extrv_rs.w $t6, $ac1, $t0", "ac1", t6, 0x00000000,
3550                    0x7e08184e, t0, 0x55555555, 0);
3551   TESTDSPINST_EXTV("extrv_rs.w $t7, $ac2, $t1", "ac2", t7, 0x00000000,
3552                    0x71c8315f, t1, 0xffff2435, 0);
3553   TESTDSPINST_EXTV("extrv_rs.w $t8, $ac3, $t2", "ac3", t8, 0xffffffff,
3554                    0x9493110e, t2, 0x55555555, 0);
3555   TESTDSPINST_EXTV("extrv_rs.w $t0, $ac0, $t3", "ac0", t0, 0xffffffff,
3556                    0xbb246228, t3, 0xffff2435, 0);
3557   TESTDSPINST_EXTV("extrv_rs.w $t1, $ac1, $t4", "ac1", t1, 0x00000000,
3558                    0x339d8d88, t4, 0xabababab, 0);
3559   TESTDSPINST_EXTV("extrv_rs.w $t2, $ac2, $t5", "ac2", t2, 0x00000000,
3560                    0x70974249, t5, 0xfc79b4d2, 0);
3561   TESTDSPINST_EXTV("extrv_rs.w $t1, $ac1, $t6", "ac1", t1, 0xffffffff,
3562                    0x8a8d4e7d, t6, 0x00000000, 0);
3563   TESTDSPINST_EXTV("extrv_rs.w $t2, $ac2, $t7", "ac2", t2, 0xffffffff,
3564                    0xeb1b4335, t7, 0x00000000, 0);
3565   TESTDSPINST_EXTV("extrv_rs.w $t1, $ac1, $t8", "ac1", t1, 0x00000000,
3566                    0x0cd6b508, t8, 0x12349876, 0);
3567   TESTDSPINST_EXTV("extrv_rs.w $t2, $ac2, $t0", "ac2", t2, 0x00000000,
3568                    0x6731e282, t0, 0x00354565, 0);
3569   TESTDSPINST_EXTV("extrv_rs.w $t3, $ac3, $t1", "ac3", t3, 0xffffffff,
3570                    0xb6edf28f, t1, 0x00086755, 0);
3571   TESTDSPINST_EXTV("extrv_rs.w $t4, $ac0, $t2", "ac0", t4, 0x00000000,
3572                    0x4b4ec9ca, t2, 0x8f8f8f8f, 0);
3573   TESTDSPINST_EXTV("extrv_rs.w $t5, $ac1, $t3", "ac1", t5, 0xffffffff,
3574                    0xc1037fa4, t3, 0xeeeeeeee, 0);
3575   TESTDSPINST_EXTV("extrv_rs.w $t6, $ac2, $t3", "ac2", t6, 0xffffffff,
3576                    0xcb4ab48f, t3, 0x1bdbdbdb, 0);
3577   TESTDSPINST_EXTV("extrv_rs.w $t7, $ac3, $t4", "ac3", t7, 0xffffffff,
3578                    0xaf8f7e18, t4, 0xbb246228, 0);
3579   TESTDSPINST_EXTV("extrv_rs.w $t8, $ac0, $t5", "ac0", t8, 0xffffffff,
3580                    0x87df4510, t5, 0x339d8d88, 0);
3581   TESTDSPINST_EXTV("extrv_rs.w $t0, $ac1, $t6", "ac1", t0, 0xffffffff,
3582                    0xabf4e8e1, t6, 0x70974249, 0);
3583   TESTDSPINST_EXTV("extrv_rs.w $t1, $ac2, $t7", "ac2", t1, 0xffffffff,
3584                    0xf4c0eeac, t7, 0x8a8d4e7d, 0);
3585   TESTDSPINST_EXTV("extrv_rs.w $t2, $ac3, $t8", "ac3", t2, 0x00000000,
3586                    0x006a54f2, t8, 0xeb1b4335, 0);
3587   TESTDSPINST_EXTV("extrv_rs.w $t3, $ac0, $t0", "ac0", t3, 0x00000000,
3588                    0x79f74493, t0, 0x0cd6b508, 0);
3589   TESTDSPINST_EXTV("extrv_rs.w $t4, $ac1, $t1", "ac1", t4, 0xffffffff,
3590                    0x9c09e313, t1, 0x6731e282, 0);
3591
3592   printf("-------- INSV --------\n");
3593   TESTDSPINST_INSV("insv $t5, $t3", 0xffffffff, 0x00000000, t5, t3,  7,
3594                    ( 1<<7));
3595   TESTDSPINST_INSV("insv $t2, $t4", 0x004dfbe5, 0xe87927cc, t2, t4,  2,
3596                    (15<<7));
3597   TESTDSPINST_INSV("insv $t0, $t8", 0xf6a3fa3c, 0x083b3571, t0, t8,  4,
3598                    ( 2<<7));
3599   TESTDSPINST_INSV("insv $t0, $t1", 0xbf17fb9a, 0xb9743941, t0, t1, 13,
3600                    ( 0<<7));
3601   TESTDSPINST_INSV("insv $t2, $t3", 0x2c0bd024, 0xbce5f924, t2, t3,  5,
3602                    ( 5<<7));
3603   TESTDSPINST_INSV("insv $t5, $t3", 0x288593c0, 0x722d5e20, t5, t3, 28,
3604                    ( 4<<7));
3605   TESTDSPINST_INSV("insv $t2, $t4", 0x4d7ff5b4, 0xa1d6f791, t2, t4,  0,
3606                    (32<<7));
3607   TESTDSPINST_INSV("insv $t0, $t8", 0x4557be13, 0x7b11bee7, t0, t8, 16,
3608                    (15<<7));
3609   TESTDSPINST_INSV("insv $t4, $t5", 0xadcf5772, 0xa5631488, t4, t5, 15,
3610                    ( 7<<7));
3611   TESTDSPINST_INSV("insv $t0, $t1", 0x989a7235, 0xb10bcc65, t0, t1, 19,
3612                    ( 8<<7));
3613   TESTDSPINST_INSV("insv $t2, $t3", 0x4d6f393a, 0x73f39fca, t2, t3, 30,
3614                    ( 1<<7));
3615   TESTDSPINST_INSV("insv $t4, $t1", 0x24a3291e, 0x5648e540, t4, t1,  1,
3616                    (28<<7));
3617   TESTDSPINST_INSV("insv $t6, $t7", 0xdd91eebf, 0xc54f79e6, t6, t7, 17,
3618                    ( 5<<7));
3619   TESTDSPINST_INSV("insv $t5, $t3", 0xf7ce2ec6, 0x5fc92974, t5, t3, 26,
3620                    ( 2<<7));
3621   TESTDSPINST_INSV("insv $t2, $t4", 0xbc1083e8, 0x7e08184e, t2, t4, 14,
3622                    (13<<7));
3623   TESTDSPINST_INSV("insv $t0, $t8", 0xa617cc31, 0x71c8315f, t0, t8,  8,
3624                    (17<<7));
3625   TESTDSPINST_INSV("insv $t4, $t5", 0xdfe1e8f0, 0x9493110e, t4, t5,  9,
3626                    (11<<7));
3627   TESTDSPINST_INSV("insv $t2, $t4", 0x31458a23, 0xbb246228, t2, t4, 23,
3628                    ( 9<<7));
3629   TESTDSPINST_INSV("insv $t0, $t8", 0x848af791, 0x339d8d88, t0, t8,  6,
3630                    (19<<7));
3631   TESTDSPINST_INSV("insv $t0, $t1", 0xda3bacdc, 0x70974249, t0, t1, 19,
3632                    ( 8<<7));
3633   TESTDSPINST_INSV("insv $t0, $t1", 0x2fff0000, 0x00000001, t0, t1,  7,
3634                    (13<<7));
3635   TESTDSPINST_INSV("insv $t2, $t3", 0x2fff0000, 0x73741802, t2, t3,  2,
3636                    (23<<7));
3637   TESTDSPINST_INSV("insv $t4, $t1", 0x2fff0000, 0x80003403, t4, t1,  4,
3638                    (28<<7));
3639   TESTDSPINST_INSV("insv $t0, $t1", 0xabababab, 0x00000000, t0, t1,  0,
3640                    (22<<7));
3641   TESTDSPINST_INSV("insv $t2, $t3", 0xdecadeca, 0x80000000, t2, t3, 26,
3642                    ( 0<<7));
3643   TESTDSPINST_INSV("insv $t4, $t1", 0xbacabaca, 0x55555555, t4, t1, 12,
3644                    ( 3<<7));
3645   TESTDSPINST_INSV("insv $t6, $t7", 0x3545ff80, 0xffff2434, t6, t7,  1,
3646                    (23<<7));
3647   TESTDSPINST_INSV("insv $t2, $t4", 0xc4dbfe20, 0xfc79b4d2, t2, t4, 11,
3648                    ( 8<<7));
3649   TESTDSPINST_INSV("insv $t0, $t8", 0x00000000, 0x00000000, t0, t8, 16,
3650                    ( 9<<7));
3651   TESTDSPINST_INSV("insv $t0, $t1", 0xad80bce4, 0x00086755, t0, t1, 13,
3652                    (17<<7));
3653   TESTDSPINST_INSV("insv $t2, $t3", 0x7f003245, 0x8f8f8f8f, t2, t3,  8,
3654                    (18<<7));
3655   TESTDSPINST_INSV("insv $t5, $t3", 0x980b7cde, 0xdecadeca, t5, t3,  4,
3656                    (15<<7));
3657
3658{
3659   printf("DSP LWX\n");
3660   ppMem(mem, 16);
3661   int i;
3662   for(i = 0; i < 64; i+=4){
3663      TESTDSPINST_LWX(i, t0, t1);
3664   }
3665}
3666
3667{
3668   printf("DSP LHX\n");
3669   ppMem(mem, 16);
3670   int i;
3671   for(i = 0; i < 64; i+=2){
3672      TESTDSPINST_LHX(i, t0, t1);
3673   }
3674}
3675
3676{
3677   printf("DSP LBUX\n");
3678   ppMem(mem, 16);
3679   int i;
3680   for(i = 0; i < 64; i++){
3681      TESTDSPINST_LBUX(i, t0, t1);
3682   }
3683}
3684
3685   printf("-------- MADD --------\n");
3686   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac3, $t4, $t5", "ac3", 0x00000000,
3687                               0x00000000, 0xffffffff, 0x80000000, t4, t5);
3688   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac0, $t0, $t1", "ac0", 0x00000004,
3689                               1073741824, 0x00000000, 0x00000006, t0, t1);
3690   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac1, $t2, $t3", "ac1", 0x80002435,
3691                               0x80003421, 0x00000000, 1073741824, t2, t3);
3692   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac3, $t6, $t7", "ac3", 0x76548000,
3693                               0x73468000, 0x00000000, 0x7fffffff, t6, t7);
3694   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac0, $t5, $t3", "ac0", 0x80000000,
3695                               0x80000000, 0x00000000, 0x00000001, t5, t3);
3696   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac1, $t2, $t4", "ac1", 0x00010001,
3697                               0xffffffff, 0xffffffff, 0xffffffff, t2, t4);
3698   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac2, $t0, $t8", "ac2", 0x7fff7fff,
3699                               0x7fff7fff, 0xffffffff, 0xffffffff, t0, t8);
3700   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac0, $t0, $t1", "ac0", 0x0000c420,
3701                               0x00000555, 0x00000000, 0x0fde3126, t0, t1);
3702   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac1, $t2, $t3", "ac1", 0x00000000,
3703                               0x00000000, 0x00000000, 0x55555555, t2, t3);
3704   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac2, $t4, $t1", "ac2", 0x80000000,
3705                               0x80000000, 0xffffffff, 0xffff2435, t4, t1);
3706   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac3, $t6, $t7", "ac3", 0xaaaaaaaa,
3707                               0x55555555, 0xffffffff, 0xabababab, t6, t7);
3708   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac0, $t5, $t3", "ac0", 0x00000018,
3709                               0xffff2435, 0xffffffff, 0xfc79b4d2, t5, t3);
3710   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac1, $t2, $t4", "ac1", 0xbabababa,
3711                               0xabababab, 0x00000000, 0x00000000, t2, t4);
3712   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac2, $t0, $t8", "ac2", 0xf0f0f0f0,
3713                               0xfc79b4d2, 0x00000000, 0x00000000, t0, t8);
3714   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac3, $t4, $t5", "ac3", 0xfbde3976,
3715                               0x00000000, 0x00000000, 0x12349876, t4, t5);
3716   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac0, $t0, $t1", "ac0", 0x23534870,
3717                               0x00354565, 0x00000000, 0x00354565, t0, t1);
3718   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac1, $t2, $t3", "ac1", 0x980b7cde,
3719                               0x00086755, 0x00000000, 0x00086755, t2, t3);
3720   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac2, $t4, $t1", "ac2", 0x00000018,
3721                               0x8f8f8f8f, 0xffffffff, 0x8f8f8f8f, t4, t1);
3722   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac3, $t6, $t7", "ac3", 0x92784656,
3723                               0xeeeeeeee, 0xffffffff, 0xeeeeeeee, t6, t7);
3724   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac0, $t5, $t3", "ac0", 0xcacacaca,
3725                               0x1bdbdbdb, 0x00000000, 0x1bdbdbdb, t5, t3);
3726   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac1, $t2, $t4", "ac1", 0xbacabaca,
3727                               0xdecadeca, 0xffffffff, 0xdecadeca, t2, t4);
3728   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac2, $t0, $t8", "ac2", 0x12fadeb4,
3729                               0x93474bde, 0xffffffff, 0x93474bde, t0, t8);
3730   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac3, $t4, $t5", "ac3", 0x7c000790,
3731                               0xfc0007ff, 0xffffffff, 0xfabfabfa, t4, t5);
3732   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac2, $t0, $t8", "ac2", 0xffffffff,
3733                               0xffffffff, 0x00000000, 0x083b3571, t0, t8);
3734   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac0, $t0, $t1", "ac0", 0x24a3291e,
3735                               0x5648e540, 0xffffffff, 0xb9743941, t0, t1);
3736   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac1, $t2, $t3", "ac1", 0xdd91eebf,
3737                               0xc54f79e6, 0xffffffff, 0xbce5f924, t2, t3);
3738   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac2, $t4, $t1", "ac2", 0xf7ce2ec6,
3739                               0x5fc92974, 0xffffffff, 0xcc3c201c, t4, t1);
3740   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac3, $t6, $t7", "ac3", 0xbc1083e8,
3741                               0x7e08184e, 0x00000000, 0x1ebaf88e, t6, t7);
3742   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac0, $t5, $t3", "ac0", 0xa617cc31,
3743                               0x71c8315f, 0x00000000, 0x722d5e20, t5, t3);
3744   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac1, $t2, $t4", "ac1", 0xdfe1e8f0,
3745                               0x9493110e, 0xffffffff, 0xa1d6f791, t2, t4);
3746   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac2, $t0, $t8", "ac2", 0x31458a23,
3747                               0xbb246228, 0x00000000, 0x7b11bee7, t0, t8);
3748   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac3, $t4, $t5", "ac3", 0x848af791,
3749                               0x339d8d88, 0xffffffff, 0xa5631488, t4, t5);
3750   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac0, $t0, $t1", "ac0", 0xda3bacdc,
3751                               0x70974249, 0xffffffff, 0xb10bcc65, t0, t1);
3752   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac1, $t2, $t3", "ac1", 0x649d5cbd,
3753                               0x8a8d4e7d, 0x00000000, 0x73f39fca, t2, t3);
3754   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac2, $t4, $t1", "ac2", 0xc0c8c881,
3755                               0xeb1b4335, 0x00000000, 0x5648e540, t4, t1);
3756   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac3, $t6, $t7", "ac3", 0x7dd81a20,
3757                               0x0cd6b508, 0xffffffff, 0xc54f79e6, t6, t7);
3758   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac0, $t5, $t3", "ac0", 0x7fff7fff,
3759                               0x6731e282, 0x00000000, 0x5fc92974, t5, t3);
3760   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac1, $t2, $t4", "ac1", 0x00000555,
3761                               0xb6edf28f, 0x00000000, 0x7e08184e, t2, t4);
3762   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac2, $t0, $t8", "ac2", 0x00000000,
3763                               0x4b4ec9ca, 0x00000000, 0x71c8315f, t0, t8);
3764   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac3, $t4, $t5", "ac3", 0x80000000,
3765                               0xc1037fa4, 0xffffffff, 0x9493110e, t4, t5);
3766   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac1, $t2, $t4", "ac1", 0x55555555,
3767                               0xcb4ab48f, 0xffffffff, 0xbb246228, t2, t4);
3768   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac2, $t0, $t8", "ac2", 0xffff8000,
3769                               0xaf8f8000, 0x00000000, 0x339d8d88, t0, t8);
3770   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac0, $t0, $t1", "ac0", 0xabababab,
3771                               0x87df4510, 0x00000000, 0x70974249, t0, t1);
3772   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac1, $t2, $t3", "ac1", 0xfc79b4d2,
3773                               0xabf4e8e1, 0xffffffff, 0x8a8d4e7d, t2, t3);
3774   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac2, $t4, $t1", "ac2", 0x00000000,
3775                               0xf4c0eeac, 0xffffffff, 0xeb1b4335, t4, t1);
3776   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac3, $t6, $t7", "ac3", 0x00354565,
3777                               0x006a54f2, 0x00000000, 0x0cd6b508, t6, t7);
3778   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac0, $t5, $t3", "ac0", 0x00086755,
3779                               0x79f74493, 0x00000000, 0x6731e282, t5, t3);
3780   TESTDSPINST_AC_RS_RT_NODSPC("madd $ac1, $t2, $t4", "ac1", 0xffff8000,
3781                               0x9c098000, 0xffffffff, 0xb6edf28f, t2, t4);
3782
3783   printf("-------- MADDU --------\n");
3784   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac3, $t4, $t5", "ac3", 0x00000000,
3785                               0x00000000, 0xffffffff, 0x80000000, t4, t5);
3786   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac0, $t0, $t1", "ac0", 0x00000004,
3787                               1073741824, 0x00000000, 0x00000006, t0, t1);
3788   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac1, $t2, $t3", "ac1", 0x80002435,
3789                               0x80003421, 0x00000000, 1073741824, t2, t3);
3790   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac3, $t6, $t7", "ac3", 0x76548000,
3791                               0x73468000, 0x00000000, 0x7fffffff, t6, t7);
3792   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac0, $t5, $t3", "ac0", 0x80000000,
3793                               0x80000000, 0x00000000, 0x00000001, t5, t3);
3794   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac1, $t2, $t4", "ac1", 0x00010001,
3795                               0xffffffff, 0xffffffff, 0xffffffff, t2, t4);
3796   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac2, $t0, $t8", "ac2", 0x7fff7fff,
3797                               0x7fff7fff, 0xffffffff, 0xffffffff, t0, t8);
3798   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac0, $t0, $t1", "ac0", 0x0000c420,
3799                               0x00000555, 0x00000000, 0x0fde3126, t0, t1);
3800   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac1, $t2, $t3", "ac1", 0x00000000,
3801                               0x00000000, 0x00000000, 0x55555555, t2, t3);
3802   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac2, $t4, $t1", "ac2", 0x80000000,
3803                               0x80000000, 0xffffffff, 0xffff2435, t4, t1);
3804   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac3, $t6, $t7", "ac3", 0xaaaaaaaa,
3805                               0x55555555, 0xffffffff, 0xabababab, t6, t7);
3806   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac0, $t5, $t3", "ac0", 0x00000018,
3807                               0xffff2435, 0xffffffff, 0xfc79b4d2, t5, t3);
3808   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac1, $t2, $t4", "ac1", 0xbabababa,
3809                               0xabababab, 0x00000000, 0x00000000, t2, t4);
3810   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac2, $t0, $t8", "ac2", 0xf0f0f0f0,
3811                               0xfc79b4d2, 0x00000000, 0x00000000, t0, t8);
3812   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac3, $t4, $t5", "ac3", 0xfbde3976,
3813                               0x00000000, 0x00000000, 0x12349876, t4, t5);
3814   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac0, $t0, $t1", "ac0", 0x23534870,
3815                               0x00354565, 0x00000000, 0x00354565, t0, t1);
3816   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac1, $t2, $t3", "ac1", 0x980b7cde,
3817                               0x00086755, 0x00000000, 0x00086755, t2, t3);
3818   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac2, $t4, $t1", "ac2", 0x00000018,
3819                               0x8f8f8f8f, 0xffffffff, 0x8f8f8f8f, t4, t1);
3820   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac3, $t6, $t7", "ac3", 0x92784656,
3821                               0xeeeeeeee, 0xffffffff, 0xeeeeeeee, t6, t7);
3822   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac0, $t5, $t3", "ac0", 0xcacacaca,
3823                               0x1bdbdbdb, 0x00000000, 0x1bdbdbdb, t5, t3);
3824   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac1, $t2, $t4", "ac1", 0xbacabaca,
3825                               0xdecadeca, 0xffffffff, 0xdecadeca, t2, t4);
3826   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac2, $t0, $t8", "ac2", 0x12fadeb4,
3827                               0x93474bde, 0xffffffff, 0x93474bde, t0, t8);
3828   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac3, $t4, $t5", "ac3", 0x7c000790,
3829                               0xfc0007ff, 0xffffffff, 0xfabfabfa, t4, t5);
3830   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac2, $t0, $t8", "ac2", 0xffffffff,
3831                               0xffffffff, 0x00000000, 0x083b3571, t0, t8);
3832   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac0, $t0, $t1", "ac0", 0x24a3291e,
3833                               0x5648e540, 0xffffffff, 0xb9743941, t0, t1);
3834   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac1, $t2, $t3", "ac1", 0xdd91eebf,
3835                               0xc54f79e6, 0xffffffff, 0xbce5f924, t2, t3);
3836   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac2, $t4, $t1", "ac2", 0xf7ce2ec6,
3837                               0x5fc92974, 0xffffffff, 0xcc3c201c, t4, t1);
3838   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac3, $t6, $t7", "ac3", 0xbc1083e8,
3839                               0x7e08184e, 0x00000000, 0x1ebaf88e, t6, t7);
3840   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac0, $t5, $t3", "ac0", 0xa617cc31,
3841                               0x71c8315f, 0x00000000, 0x722d5e20, t5, t3);
3842   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac1, $t2, $t4", "ac1", 0xdfe1e8f0,
3843                               0x9493110e, 0xffffffff, 0xa1d6f791, t2, t4);
3844   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac2, $t0, $t8", "ac2", 0x31458a23,
3845                               0xbb246228, 0x00000000, 0x7b11bee7, t0, t8);
3846   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac3, $t4, $t5", "ac3", 0x848af791,
3847                               0x339d8d88, 0xffffffff, 0xa5631488, t4, t5);
3848   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac0, $t0, $t1", "ac0", 0xda3bacdc,
3849                               0x70974249, 0xffffffff, 0xb10bcc65, t0, t1);
3850   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac1, $t2, $t3", "ac1", 0x649d5cbd,
3851                               0x8a8d4e7d, 0x00000000, 0x73f39fca, t2, t3);
3852   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac2, $t4, $t1", "ac2", 0xc0c8c881,
3853                               0xeb1b4335, 0x00000000, 0x5648e540, t4, t1);
3854   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac3, $t6, $t7", "ac3", 0x7dd81a20,
3855                               0x0cd6b508, 0xffffffff, 0xc54f79e6, t6, t7);
3856   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac0, $t5, $t3", "ac0", 0x7fff7fff,
3857                               0x6731e282, 0x00000000, 0x5fc92974, t5, t3);
3858   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac1, $t2, $t4", "ac1", 0x00000555,
3859                               0xb6edf28f, 0x00000000, 0x7e08184e, t2, t4);
3860   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac2, $t0, $t8", "ac2", 0x00000000,
3861                               0x4b4ec9ca, 0x00000000, 0x71c8315f, t0, t8);
3862   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac3, $t4, $t5", "ac3", 0x80000000,
3863                               0xc1037fa4, 0xffffffff, 0x9493110e, t4, t5);
3864   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac1, $t2, $t4", "ac1", 0x55555555,
3865                               0xcb4ab48f, 0xffffffff, 0xbb246228, t2, t4);
3866   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac2, $t0, $t8", "ac2", 0xffff8000,
3867                               0xaf8f8000, 0x00000000, 0x339d8d88, t0, t8);
3868   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac0, $t0, $t1", "ac0", 0xabababab,
3869                               0x87df4510, 0x00000000, 0x70974249, t0, t1);
3870   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac1, $t2, $t3", "ac1", 0xfc79b4d2,
3871                               0xabf4e8e1, 0xffffffff, 0x8a8d4e7d, t2, t3);
3872   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac2, $t4, $t1", "ac2", 0x00000000,
3873                               0xf4c0eeac, 0xffffffff, 0xeb1b4335, t4, t1);
3874   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac3, $t6, $t7", "ac3", 0x00354565,
3875                               0x006a54f2, 0x00000000, 0x0cd6b508, t6, t7);
3876   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac0, $t5, $t3", "ac0", 0x00086755,
3877                               0x79f74493, 0x00000000, 0x6731e282, t5, t3);
3878   TESTDSPINST_AC_RS_RT_NODSPC("maddu $ac1, $t2, $t4", "ac1", 0xffff8000,
3879                               0x9c098000, 0xffffffff, 0xb6edf28f, t2, t4);
3880
3881   printf("-------- MSUB --------\n");
3882   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac3, $t4, $t5", "ac3", 0x00000000,
3883                               0x00000000, 0xffffffff, 0x80000000, t4, t5);
3884   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac0, $t0, $t1", "ac0", 0x00000004,
3885                               1073741824, 0x00000000, 0x00000006, t0, t1);
3886   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac1, $t2, $t3", "ac1", 0x80002435,
3887                               0x80003421, 0x00000000, 1073741824, t2, t3);
3888   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac3, $t6, $t7", "ac3", 0x76548000,
3889                               0x73468000, 0x00000000, 0x7fffffff, t6, t7);
3890   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac0, $t5, $t3", "ac0", 0x80000000,
3891                               0x80000000, 0x00000000, 0x00000001, t5, t3);
3892   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac1, $t2, $t4", "ac1", 0x00010001,
3893                               0xffffffff, 0xffffffff, 0xffffffff, t2, t4);
3894   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac2, $t0, $t8", "ac2", 0x7fff7fff,
3895                               0x7fff7fff, 0xffffffff, 0xffffffff, t0, t8);
3896   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac0, $t0, $t1", "ac0", 0x0000c420,
3897                               0x00000555, 0x00000000, 0x0fde3126, t0, t1);
3898   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac1, $t2, $t3", "ac1", 0x00000000,
3899                               0x00000000, 0x00000000, 0x55555555, t2, t3);
3900   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac2, $t4, $t1", "ac2", 0x80000000,
3901                               0x80000000, 0xffffffff, 0xffff2435, t4, t1);
3902   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac3, $t6, $t7", "ac3", 0xaaaaaaaa,
3903                               0x55555555, 0xffffffff, 0xabababab, t6, t7);
3904   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac0, $t5, $t3", "ac0", 0x00000018,
3905                               0xffff2435, 0xffffffff, 0xfc79b4d2, t5, t3);
3906   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac1, $t2, $t4", "ac1", 0xbabababa,
3907                               0xabababab, 0x00000000, 0x00000000, t2, t4);
3908   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac2, $t0, $t8", "ac2", 0xf0f0f0f0,
3909                               0xfc79b4d2, 0x00000000, 0x00000000, t0, t8);
3910   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac3, $t4, $t5", "ac3", 0xfbde3976,
3911                               0x00000000, 0x00000000, 0x12349876, t4, t5);
3912   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac0, $t0, $t1", "ac0", 0x23534870,
3913                               0x00354565, 0x00000000, 0x00354565, t0, t1);
3914   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac1, $t2, $t3", "ac1", 0x980b7cde,
3915                               0x00086755, 0x00000000, 0x00086755, t2, t3);
3916   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac2, $t4, $t1", "ac2", 0x00000018,
3917                               0x8f8f8f8f, 0xffffffff, 0x8f8f8f8f, t4, t1);
3918   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac3, $t6, $t7", "ac3", 0x92784656,
3919                               0xeeeeeeee, 0xffffffff, 0xeeeeeeee, t6, t7);
3920   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac0, $t5, $t3", "ac0", 0xcacacaca,
3921                               0x1bdbdbdb, 0x00000000, 0x1bdbdbdb, t5, t3);
3922   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac1, $t2, $t4", "ac1", 0xbacabaca,
3923                               0xdecadeca, 0xffffffff, 0xdecadeca, t2, t4);
3924   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac2, $t0, $t8", "ac2", 0x12fadeb4,
3925                               0x93474bde, 0xffffffff, 0x93474bde, t0, t8);
3926   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac3, $t4, $t5", "ac3", 0x7c000790,
3927                               0xfc0007ff, 0xffffffff, 0xfabfabfa, t4, t5);
3928   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac2, $t0, $t8", "ac2", 0xffffffff,
3929                               0xffffffff, 0x00000000, 0x083b3571, t0, t8);
3930   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac0, $t0, $t1", "ac0", 0x24a3291e,
3931                               0x5648e540, 0xffffffff, 0xb9743941, t0, t1);
3932   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac1, $t2, $t3", "ac1", 0xdd91eebf,
3933                               0xc54f79e6, 0xffffffff, 0xbce5f924, t2, t3);
3934   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac2, $t4, $t1", "ac2", 0xf7ce2ec6,
3935                               0x5fc92974, 0xffffffff, 0xcc3c201c, t4, t1);
3936   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac3, $t6, $t7", "ac3", 0xbc1083e8,
3937                               0x7e08184e, 0x00000000, 0x1ebaf88e, t6, t7);
3938   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac0, $t5, $t3", "ac0", 0xa617cc31,
3939                               0x71c8315f, 0x00000000, 0x722d5e20, t5, t3);
3940   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac1, $t2, $t4", "ac1", 0xdfe1e8f0,
3941                               0x9493110e, 0xffffffff, 0xa1d6f791, t2, t4);
3942   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac2, $t0, $t8", "ac2", 0x31458a23,
3943                               0xbb246228, 0x00000000, 0x7b11bee7, t0, t8);
3944   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac3, $t4, $t5", "ac3", 0x848af791,
3945                               0x339d8d88, 0xffffffff, 0xa5631488, t4, t5);
3946   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac0, $t0, $t1", "ac0", 0xda3bacdc,
3947                               0x70974249, 0xffffffff, 0xb10bcc65, t0, t1);
3948   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac1, $t2, $t3", "ac1", 0x649d5cbd,
3949                               0x8a8d4e7d, 0x00000000, 0x73f39fca, t2, t3);
3950   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac2, $t4, $t1", "ac2", 0xc0c8c881,
3951                               0xeb1b4335, 0x00000000, 0x5648e540, t4, t1);
3952   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac3, $t6, $t7", "ac3", 0x7dd81a20,
3953                               0x0cd6b508, 0xffffffff, 0xc54f79e6, t6, t7);
3954   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac0, $t5, $t3", "ac0", 0x7fff7fff,
3955                               0x6731e282, 0x00000000, 0x5fc92974, t5, t3);
3956   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac1, $t2, $t4", "ac1", 0x00000555,
3957                               0xb6edf28f, 0x00000000, 0x7e08184e, t2, t4);
3958   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac2, $t0, $t8", "ac2", 0x00000000,
3959                               0x4b4ec9ca, 0x00000000, 0x71c8315f, t0, t8);
3960   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac3, $t4, $t5", "ac3", 0x80000000,
3961                               0xc1037fa4, 0xffffffff, 0x9493110e, t4, t5);
3962   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac1, $t2, $t4", "ac1", 0x55555555,
3963                               0xcb4ab48f, 0xffffffff, 0xbb246228, t2, t4);
3964   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac2, $t0, $t8", "ac2", 0xffff8000,
3965                               0xaf8f8000, 0x00000000, 0x339d8d88, t0, t8);
3966   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac0, $t0, $t1", "ac0", 0xabababab,
3967                               0x87df4510, 0x00000000, 0x70974249, t0, t1);
3968   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac1, $t2, $t3", "ac1", 0xfc79b4d2,
3969                               0xabf4e8e1, 0xffffffff, 0x8a8d4e7d, t2, t3);
3970   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac2, $t4, $t1", "ac2", 0x00000000,
3971                               0xf4c0eeac, 0xffffffff, 0xeb1b4335, t4, t1);
3972   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac3, $t6, $t7", "ac3", 0x00354565,
3973                               0x006a54f2, 0x00000000, 0x0cd6b508, t6, t7);
3974   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac0, $t5, $t3", "ac0", 0x00086755,
3975                               0x79f74493, 0x00000000, 0x6731e282, t5, t3);
3976   TESTDSPINST_AC_RS_RT_NODSPC("msub $ac1, $t2, $t4", "ac1", 0xffff8000,
3977                               0x9c098000, 0xffffffff, 0xb6edf28f, t2, t4);
3978
3979   printf("-------- MSUBU --------\n");
3980   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac3, $t4, $t5", "ac3", 0x00000000,
3981                               0x00000000, 0xffffffff, 0x80000000, t4, t5);
3982   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac0, $t0, $t1", "ac0", 0x00000004,
3983                               1073741824, 0x00000000, 0x00000006, t0, t1);
3984   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac1, $t2, $t3", "ac1", 0x80002435,
3985                               0x80003421, 0x00000000, 1073741824, t2, t3);
3986   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac3, $t6, $t7", "ac3", 0x76548000,
3987                               0x73468000, 0x00000000, 0x7fffffff, t6, t7);
3988   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac0, $t5, $t3", "ac0", 0x80000000,
3989                               0x80000000, 0x00000000, 0x00000001, t5, t3);
3990   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac1, $t2, $t4", "ac1", 0x00010001,
3991                               0xffffffff, 0xffffffff, 0xffffffff, t2, t4);
3992   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac2, $t0, $t8", "ac2", 0x7fff7fff,
3993                               0x7fff7fff, 0xffffffff, 0xffffffff, t0, t8);
3994   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac0, $t0, $t1", "ac0", 0x0000c420,
3995                               0x00000555, 0x00000000, 0x0fde3126, t0, t1);
3996   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac1, $t2, $t3", "ac1", 0x00000000,
3997                               0x00000000, 0x00000000, 0x55555555, t2, t3);
3998   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac2, $t4, $t1", "ac2", 0x80000000,
3999                               0x80000000, 0xffffffff, 0xffff2435, t4, t1);
4000   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac3, $t6, $t7", "ac3", 0xaaaaaaaa,
4001                               0x55555555, 0xffffffff, 0xabababab, t6, t7);
4002   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac0, $t5, $t3", "ac0", 0x00000018,
4003                               0xffff2435, 0xffffffff, 0xfc79b4d2, t5, t3);
4004   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac1, $t2, $t4", "ac1", 0xbabababa,
4005                               0xabababab, 0x00000000, 0x00000000, t2, t4);
4006   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac2, $t0, $t8", "ac2", 0xf0f0f0f0,
4007                               0xfc79b4d2, 0x00000000, 0x00000000, t0, t8);
4008   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac3, $t4, $t5", "ac3", 0xfbde3976,
4009                               0x00000000, 0x00000000, 0x12349876, t4, t5);
4010   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac0, $t0, $t1", "ac0", 0x23534870,
4011                               0x00354565, 0x00000000, 0x00354565, t0, t1);
4012   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac1, $t2, $t3", "ac1", 0x980b7cde,
4013                               0x00086755, 0x00000000, 0x00086755, t2, t3);
4014   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac2, $t4, $t1", "ac2", 0x00000018,
4015                               0x8f8f8f8f, 0xffffffff, 0x8f8f8f8f, t4, t1);
4016   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac3, $t6, $t7", "ac3", 0x92784656,
4017                               0xeeeeeeee, 0xffffffff, 0xeeeeeeee, t6, t7);
4018   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac0, $t5, $t3", "ac0", 0xcacacaca,
4019                               0x1bdbdbdb, 0x00000000, 0x1bdbdbdb, t5, t3);
4020   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac1, $t2, $t4", "ac1", 0xbacabaca,
4021                               0xdecadeca, 0xffffffff, 0xdecadeca, t2, t4);
4022   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac2, $t0, $t8", "ac2", 0x12fadeb4,
4023                               0x93474bde, 0xffffffff, 0x93474bde, t0, t8);
4024   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac3, $t4, $t5", "ac3", 0x7c000790,
4025                               0xfc0007ff, 0xffffffff, 0xfabfabfa, t4, t5);
4026   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac2, $t0, $t8", "ac2", 0xffffffff,
4027                               0xffffffff, 0x00000000, 0x083b3571, t0, t8);
4028   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac0, $t0, $t1", "ac0", 0x24a3291e,
4029                               0x5648e540, 0xffffffff, 0xb9743941, t0, t1);
4030   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac1, $t2, $t3", "ac1", 0xdd91eebf,
4031                               0xc54f79e6, 0xffffffff, 0xbce5f924, t2, t3);
4032   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac2, $t4, $t1", "ac2", 0xf7ce2ec6,
4033                               0x5fc92974, 0xffffffff, 0xcc3c201c, t4, t1);
4034   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac3, $t6, $t7", "ac3", 0xbc1083e8,
4035                               0x7e08184e, 0x00000000, 0x1ebaf88e, t6, t7);
4036   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac0, $t5, $t3", "ac0", 0xa617cc31,
4037                               0x71c8315f, 0x00000000, 0x722d5e20, t5, t3);
4038   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac1, $t2, $t4", "ac1", 0xdfe1e8f0,
4039                               0x9493110e, 0xffffffff, 0xa1d6f791, t2, t4);
4040   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac2, $t0, $t8", "ac2", 0x31458a23,
4041                               0xbb246228, 0x00000000, 0x7b11bee7, t0, t8);
4042   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac3, $t4, $t5", "ac3", 0x848af791,
4043                               0x339d8d88, 0xffffffff, 0xa5631488, t4, t5);
4044   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac0, $t0, $t1", "ac0", 0xda3bacdc,
4045                               0x70974249, 0xffffffff, 0xb10bcc65, t0, t1);
4046   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac1, $t2, $t3", "ac1", 0x649d5cbd,
4047                               0x8a8d4e7d, 0x00000000, 0x73f39fca, t2, t3);
4048   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac2, $t4, $t1", "ac2", 0xc0c8c881,
4049                               0xeb1b4335, 0x00000000, 0x5648e540, t4, t1);
4050   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac3, $t6, $t7", "ac3", 0x7dd81a20,
4051                               0x0cd6b508, 0xffffffff, 0xc54f79e6, t6, t7);
4052   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac0, $t5, $t3", "ac0", 0x7fff7fff,
4053                               0x6731e282, 0x00000000, 0x5fc92974, t5, t3);
4054   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac1, $t2, $t4", "ac1", 0x00000555,
4055                               0xb6edf28f, 0x00000000, 0x7e08184e, t2, t4);
4056   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac2, $t0, $t8", "ac2", 0x00000000,
4057                               0x4b4ec9ca, 0x00000000, 0x71c8315f, t0, t8);
4058   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac3, $t4, $t5", "ac3", 0x80000000,
4059                               0xc1037fa4, 0xffffffff, 0x9493110e, t4, t5);
4060   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac1, $t2, $t4", "ac1", 0x55555555,
4061                               0xcb4ab48f, 0xffffffff, 0xbb246228, t2, t4);
4062   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac2, $t0, $t8", "ac2", 0xffff8000,
4063                               0xaf8f8000, 0x00000000, 0x339d8d88, t0, t8);
4064   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac0, $t0, $t1", "ac0", 0xabababab,
4065                               0x87df4510, 0x00000000, 0x70974249, t0, t1);
4066   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac1, $t2, $t3", "ac1", 0xfc79b4d2,
4067                               0xabf4e8e1, 0xffffffff, 0x8a8d4e7d, t2, t3);
4068   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac2, $t4, $t1", "ac2", 0x00000000,
4069                               0xf4c0eeac, 0xffffffff, 0xeb1b4335, t4, t1);
4070   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac3, $t6, $t7", "ac3", 0x00354565,
4071                               0x006a54f2, 0x00000000, 0x0cd6b508, t6, t7);
4072   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac0, $t5, $t3", "ac0", 0x00086755,
4073                               0x79f74493, 0x00000000, 0x6731e282, t5, t3);
4074   TESTDSPINST_AC_RS_RT_NODSPC("msubu $ac1, $t2, $t4", "ac1", 0xffff8000,
4075                               0x9c098000, 0xffffffff, 0xb6edf28f, t2, t4);
4076
4077   printf("-------- MAQ_S.W.PHR --------\n");
4078   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac3, $t4, $t5", "ac3", 0x00000000,
4079                             0x00000000, 0xffffffff, 0x80000000, t4, t5);
4080   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac0, $t0, $t1", "ac0", 0x00000004,
4081                             1073741824, 0x00000000, 0x00000006, t0, t1);
4082   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac1, $t2, $t3", "ac1", 0x80002435,
4083                             0x80003421, 0x00000000, 1073741824, t2, t3);
4084   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac3, $t6, $t7", "ac3", 0x76548000,
4085                             0x73468000, 0x00000000, 0x7fffffff, t6, t7);
4086   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac0, $t5, $t3", "ac0", 0x80000000,
4087                             0x80000000, 0x00000000, 0x00000001, t5, t3);
4088   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac1, $t2, $t4", "ac1", 0x00010001,
4089                             0xffffffff, 0xffffffff, 0xffffffff, t2, t4);
4090   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac2, $t0, $t8", "ac2", 0x7fff7fff,
4091                             0x7fff7fff, 0xffffffff, 0xffffffff, t0, t8);
4092   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac0, $t0, $t1", "ac0", 0x0000c420,
4093                             0x00000555, 0x00000000, 0x0fde3126, t0, t1);
4094   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac1, $t2, $t3", "ac1", 0x00000000,
4095                             0x00000000, 0x00000000, 0x55555555, t2, t3);
4096   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac2, $t4, $t1", "ac2", 0x80000000,
4097                             0x80000000, 0xffffffff, 0xffff2435, t4, t1);
4098   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac3, $t6, $t7", "ac3", 0xaaaaaaaa,
4099                             0x55555555, 0xffffffff, 0xabababab, t6, t7);
4100   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac0, $t5, $t3", "ac0", 0x00000018,
4101                             0xffff2435, 0xffffffff, 0xfc79b4d2, t5, t3);
4102   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac1, $t2, $t4", "ac1", 0xbabababa,
4103                             0xabababab, 0x00000000, 0x00000000, t2, t4);
4104   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac2, $t0, $t8", "ac2", 0xf0f0f0f0,
4105                             0xfc79b4d2, 0x00000000, 0x00000000, t0, t8);
4106   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac3, $t4, $t5", "ac3", 0xfbde3976,
4107                             0x00000000, 0x00000000, 0x12349876, t4, t5);
4108   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac0, $t0, $t1", "ac0", 0x23534870,
4109                             0x00354565, 0x00000000, 0x00354565, t0, t1);
4110   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac1, $t2, $t3", "ac1", 0x980b7cde,
4111                             0x00086755, 0x00000000, 0x00086755, t2, t3);
4112   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac2, $t4, $t1", "ac2", 0x00000018,
4113                             0x8f8f8f8f, 0xffffffff, 0x8f8f8f8f, t4, t1);
4114   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac3, $t6, $t7", "ac3", 0x92784656,
4115                             0xeeeeeeee, 0xffffffff, 0xeeeeeeee, t6, t7);
4116   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac0, $t5, $t3", "ac0", 0xcacacaca,
4117                             0x1bdbdbdb, 0x00000000, 0x1bdbdbdb, t5, t3);
4118   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac1, $t2, $t4", "ac1", 0xbacabaca,
4119                             0xdecadeca, 0xffffffff, 0xdecadeca, t2, t4);
4120   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac2, $t0, $t8", "ac2", 0x12fadeb4,
4121                             0x93474bde, 0xffffffff, 0x93474bde, t0, t8);
4122   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac3, $t4, $t5", "ac3", 0x7c000790,
4123                             0xfc0007ff, 0xffffffff, 0xfabfabfa, t4, t5);
4124   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac2, $t0, $t8", "ac2", 0xffffffff,
4125                             0xffffffff, 0x00000000, 0x083b3571, t0, t8);
4126   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac0, $t0, $t1", "ac0", 0x24a3291e,
4127                             0x5648e540, 0xffffffff, 0xb9743941, t0, t1);
4128   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac1, $t2, $t3", "ac1", 0xdd91eebf,
4129                             0xc54f79e6, 0xffffffff, 0xbce5f924, t2, t3);
4130   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac2, $t4, $t1", "ac2", 0xf7ce2ec6,
4131                             0x5fc92974, 0xffffffff, 0xcc3c201c, t4, t1);
4132   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac3, $t6, $t7", "ac3", 0xbc1083e8,
4133                             0x7e08184e, 0x00000000, 0x1ebaf88e, t6, t7);
4134   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac0, $t5, $t3", "ac0", 0xa617cc31,
4135                             0x71c8315f, 0x00000000, 0x722d5e20, t5, t3);
4136   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac1, $t2, $t4", "ac1", 0xdfe1e8f0,
4137                             0x9493110e, 0xffffffff, 0xa1d6f791, t2, t4);
4138   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac2, $t0, $t8", "ac2", 0x31458a23,
4139                             0xbb246228, 0x00000000, 0x7b11bee7, t0, t8);
4140   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac3, $t4, $t5", "ac3", 0x848af791,
4141                             0x339d8d88, 0xffffffff, 0xa5631488, t4, t5);
4142   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac0, $t0, $t1", "ac0", 0xda3bacdc,
4143                             0x70974249, 0xffffffff, 0xb10bcc65, t0, t1);
4144   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac1, $t2, $t3", "ac1", 0x649d5cbd,
4145                             0x8a8d4e7d, 0x00000000, 0x73f39fca, t2, t3);
4146   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac2, $t4, $t1", "ac2", 0xc0c8c881,
4147                             0xeb1b4335, 0x00000000, 0x5648e540, t4, t1);
4148   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac3, $t6, $t7", "ac3", 0x7dd81a20,
4149                             0x0cd6b508, 0xffffffff, 0xc54f79e6, t6, t7);
4150   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac0, $t5, $t3", "ac0", 0x7fff7fff,
4151                             0x6731e282, 0x00000000, 0x5fc92974, t5, t3);
4152   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac1, $t2, $t4", "ac1", 0x00000555,
4153                             0xb6edf28f, 0x00000000, 0x7e08184e, t2, t4);
4154   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac2, $t0, $t8", "ac2", 0x00000000,
4155                             0x4b4ec9ca, 0x00000000, 0x71c8315f, t0, t8);
4156   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac3, $t4, $t5", "ac3", 0x80000000,
4157                             0xc1037fa4, 0xffffffff, 0x9493110e, t4, t5);
4158   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac1, $t2, $t4", "ac1", 0x55555555,
4159                             0xcb4ab48f, 0xffffffff, 0xbb246228, t2, t4);
4160   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac2, $t0, $t8", "ac2", 0xffff8000,
4161                             0xaf8f8000, 0x00000000, 0x339d8d88, t0, t8);
4162   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac0, $t0, $t1", "ac0", 0xabababab,
4163                             0x87df4510, 0x00000000, 0x70974249, t0, t1);
4164   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac1, $t2, $t3", "ac1", 0xfc79b4d2,
4165                             0xabf4e8e1, 0xffffffff, 0x8a8d4e7d, t2, t3);
4166   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac2, $t4, $t1", "ac2", 0x00000000,
4167                             0xf4c0eeac, 0xffffffff, 0xeb1b4335, t4, t1);
4168   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac3, $t6, $t7", "ac3", 0x00354565,
4169                             0x006a54f2, 0x00000000, 0x0cd6b508, t6, t7);
4170   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac0, $t5, $t3", "ac0", 0x00086755,
4171                             0x79f74493, 0x00000000, 0x6731e282, t5, t3);
4172   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phr $ac1, $t2, $t4", "ac1", 0xffff8000,
4173                             0x9c098000, 0xffffffff, 0xb6edf28f, t2, t4);
4174
4175   printf("-------- MAQ_SA.W.PHR --------\n");
4176   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac3, $t4, $t5", "ac3", 0x00000000,
4177                             0x00000000, 0xffffffff, 0x80000000, t4, t5);
4178   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac0, $t0, $t1", "ac0", 0x00000004,
4179                             1073741824, 0x00000000, 0x00000006, t0, t1);
4180   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac1, $t2, $t3", "ac1", 0x80002435,
4181                             0x80003421, 0x00000000, 1073741824, t2, t3);
4182   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac3, $t6, $t7", "ac3", 0x76548000,
4183                             0x73468000, 0x00000000, 0x7fffffff, t6, t7);
4184   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac0, $t5, $t3", "ac0", 0x80000000,
4185                             0x80000000, 0x00000000, 0x00000001, t5, t3);
4186   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac1, $t2, $t4", "ac1", 0x00010001,
4187                             0xffffffff, 0xffffffff, 0xffffffff, t2, t4);
4188   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac2, $t0, $t8", "ac2", 0x7fff7fff,
4189                             0x7fff7fff, 0xffffffff, 0xffffffff, t0, t8);
4190   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac0, $t0, $t1", "ac0", 0x0000c420,
4191                             0x00000555, 0x00000000, 0x0fde3126, t0, t1);
4192   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac1, $t2, $t3", "ac1", 0x00000000,
4193                             0x00000000, 0x00000000, 0x55555555, t2, t3);
4194   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac2, $t4, $t1", "ac2", 0x80000000,
4195                             0x80000000, 0xffffffff, 0xffff2435, t4, t1);
4196   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac3, $t6, $t7", "ac3", 0xaaaaaaaa,
4197                             0x55555555, 0xffffffff, 0xabababab, t6, t7);
4198   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac0, $t5, $t3", "ac0", 0x00000018,
4199                             0xffff2435, 0xffffffff, 0xfc79b4d2, t5, t3);
4200   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac1, $t2, $t4", "ac1", 0xbabababa,
4201                             0xabababab, 0x00000000, 0x00000000, t2, t4);
4202   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac2, $t0, $t8", "ac2", 0xf0f0f0f0,
4203                             0xfc79b4d2, 0x00000000, 0x00000000, t0, t8);
4204   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac3, $t4, $t5", "ac3", 0xfbde3976,
4205                             0x00000000, 0x00000000, 0x12349876, t4, t5);
4206   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac0, $t0, $t1", "ac0", 0x23534870,
4207                             0x00354565, 0x00000000, 0x00354565, t0, t1);
4208   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac1, $t2, $t3", "ac1", 0x980b7cde,
4209                             0x00086755, 0x00000000, 0x00086755, t2, t3);
4210   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac2, $t4, $t1", "ac2", 0x00000018,
4211                             0x8f8f8f8f, 0xffffffff, 0x8f8f8f8f, t4, t1);
4212   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac3, $t6, $t7", "ac3", 0x92784656,
4213                             0xeeeeeeee, 0xffffffff, 0xeeeeeeee, t6, t7);
4214   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac0, $t5, $t3", "ac0", 0xcacacaca,
4215                             0x1bdbdbdb, 0x00000000, 0x1bdbdbdb, t5, t3);
4216   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac1, $t2, $t4", "ac1", 0xbacabaca,
4217                             0xdecadeca, 0xffffffff, 0xdecadeca, t2, t4);
4218   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac2, $t0, $t8", "ac2", 0x12fadeb4,
4219                             0x93474bde, 0xffffffff, 0x93474bde, t0, t8);
4220   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac3, $t4, $t5", "ac3", 0x7c000790,
4221                             0xfc0007ff, 0xffffffff, 0xfabfabfa, t4, t5);
4222   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac2, $t0, $t8", "ac2", 0xffffffff,
4223                             0xffffffff, 0x00000000, 0x083b3571, t0, t8);
4224   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac0, $t0, $t1", "ac0", 0x24a3291e,
4225                             0x5648e540, 0xffffffff, 0xb9743941, t0, t1);
4226   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac1, $t2, $t3", "ac1", 0xdd91eebf,
4227                             0xc54f79e6, 0xffffffff, 0xbce5f924, t2, t3);
4228   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac2, $t4, $t1", "ac2", 0xf7ce2ec6,
4229                             0x5fc92974, 0xffffffff, 0xcc3c201c, t4, t1);
4230   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac3, $t6, $t7", "ac3", 0xbc1083e8,
4231                             0x7e08184e, 0x00000000, 0x1ebaf88e, t6, t7);
4232   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac0, $t5, $t3", "ac0", 0xa617cc31,
4233                             0x71c8315f, 0x00000000, 0x722d5e20, t5, t3);
4234   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac1, $t2, $t4", "ac1", 0xdfe1e8f0,
4235                             0x9493110e, 0xffffffff, 0xa1d6f791, t2, t4);
4236   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac2, $t0, $t8", "ac2", 0x31458a23,
4237                             0xbb246228, 0x00000000, 0x7b11bee7, t0, t8);
4238   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac3, $t4, $t5", "ac3", 0x848af791,
4239                             0x339d8d88, 0xffffffff, 0xa5631488, t4, t5);
4240   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac0, $t0, $t1", "ac0", 0xda3bacdc,
4241                             0x70974249, 0xffffffff, 0xb10bcc65, t0, t1);
4242   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac1, $t2, $t3", "ac1", 0x649d5cbd,
4243                             0x8a8d4e7d, 0x00000000, 0x73f39fca, t2, t3);
4244   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac2, $t4, $t1", "ac2", 0xc0c8c881,
4245                             0xeb1b4335, 0x00000000, 0x5648e540, t4, t1);
4246   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac3, $t6, $t7", "ac3", 0x7dd81a20,
4247                             0x0cd6b508, 0xffffffff, 0xc54f79e6, t6, t7);
4248   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac0, $t5, $t3", "ac0", 0x7fff7fff,
4249                             0x6731e282, 0x00000000, 0x5fc92974, t5, t3);
4250   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac1, $t2, $t4", "ac1", 0x00000555,
4251                             0xb6edf28f, 0x00000000, 0x7e08184e, t2, t4);
4252   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac2, $t0, $t8", "ac2", 0x00000000,
4253                             0x4b4ec9ca, 0x00000000, 0x71c8315f, t0, t8);
4254   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac3, $t4, $t5", "ac3", 0x80000000,
4255                             0xc1037fa4, 0xffffffff, 0x9493110e, t4, t5);
4256   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac1, $t2, $t4", "ac1", 0x55555555,
4257                             0xcb4ab48f, 0xffffffff, 0xbb246228, t2, t4);
4258   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac2, $t0, $t8", "ac2", 0xffff8000,
4259                             0xaf8f8000, 0x00000000, 0x339d8d88, t0, t8);
4260   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac0, $t0, $t1", "ac0", 0xabababab,
4261                             0x87df4510, 0x00000000, 0x70974249, t0, t1);
4262   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac1, $t2, $t3", "ac1", 0xfc79b4d2,
4263                             0xabf4e8e1, 0xffffffff, 0x8a8d4e7d, t2, t3);
4264   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac2, $t4, $t1", "ac2", 0x00000000,
4265                             0xf4c0eeac, 0xffffffff, 0xeb1b4335, t4, t1);
4266   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac3, $t6, $t7", "ac3", 0x00354565,
4267                             0x006a54f2, 0x00000000, 0x0cd6b508, t6, t7);
4268   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac0, $t5, $t3", "ac0", 0x00086755,
4269                             0x79f74493, 0x00000000, 0x6731e282, t5, t3);
4270   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phr $ac1, $t2, $t4", "ac1", 0xffff8000,
4271                             0x9c098000, 0xffffffff, 0xb6edf28f, t2, t4);
4272
4273   printf("-------- MAQ_S.W.PHL --------\n");
4274   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac3, $t4, $t5", "ac3", 0x00000000,
4275                             0x00000000, 0xffffffff, 0x80000000, t4, t5);
4276   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac0, $t0, $t1", "ac0", 0x00000004,
4277                             1073741824, 0x00000000, 0x00000006, t0, t1);
4278   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac1, $t2, $t3", "ac1", 0x80002435,
4279                             0x80003421, 0x00000000, 1073741824, t2, t3);
4280   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac3, $t6, $t7", "ac3", 0x76548000,
4281                             0x73468000, 0x00000000, 0x7fffffff, t6, t7);
4282   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac0, $t5, $t3", "ac0", 0x80000000,
4283                             0x80000000, 0x00000000, 0x00000001, t5, t3);
4284   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac1, $t2, $t4", "ac1", 0x00010001,
4285                             0xffffffff, 0xffffffff, 0xffffffff, t2, t4);
4286   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac2, $t0, $t8", "ac2", 0x7fff7fff,
4287                             0x7fff7fff, 0xffffffff, 0xffffffff, t0, t8);
4288   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac0, $t0, $t1", "ac0", 0x0000c420,
4289                             0x00000555, 0x00000000, 0x0fde3126, t0, t1);
4290   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac1, $t2, $t3", "ac1", 0x00000000,
4291                             0x00000000, 0x00000000, 0x55555555, t2, t3);
4292   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac2, $t4, $t1", "ac2", 0x80000000,
4293                             0x80000000, 0xffffffff, 0xffff2435, t4, t1);
4294   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac3, $t6, $t7", "ac3", 0xaaaaaaaa,
4295                             0x55555555, 0xffffffff, 0xabababab, t6, t7);
4296   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac0, $t5, $t3", "ac0", 0x00000018,
4297                             0xffff2435, 0xffffffff, 0xfc79b4d2, t5, t3);
4298   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac1, $t2, $t4", "ac1", 0xbabababa,
4299                             0xabababab, 0x00000000, 0x00000000, t2, t4);
4300   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac2, $t0, $t8", "ac2", 0xf0f0f0f0,
4301                             0xfc79b4d2, 0x00000000, 0x00000000, t0, t8);
4302   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac3, $t4, $t5", "ac3", 0xfbde3976,
4303                             0x00000000, 0x00000000, 0x12349876, t4, t5);
4304   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac0, $t0, $t1", "ac0", 0x23534870,
4305                             0x00354565, 0x00000000, 0x00354565, t0, t1);
4306   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac1, $t2, $t3", "ac1", 0x980b7cde,
4307                             0x00086755, 0x00000000, 0x00086755, t2, t3);
4308   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac2, $t4, $t1", "ac2", 0x00000018,
4309                             0x8f8f8f8f, 0xffffffff, 0x8f8f8f8f, t4, t1);
4310   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac3, $t6, $t7", "ac3", 0x92784656,
4311                             0xeeeeeeee, 0xffffffff, 0xeeeeeeee, t6, t7);
4312   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac0, $t5, $t3", "ac0", 0xcacacaca,
4313                             0x1bdbdbdb, 0x00000000, 0x1bdbdbdb, t5, t3);
4314   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac1, $t2, $t4", "ac1", 0xbacabaca,
4315                             0xdecadeca, 0xffffffff, 0xdecadeca, t2, t4);
4316   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac2, $t0, $t8", "ac2", 0x12fadeb4,
4317                             0x93474bde, 0xffffffff, 0x93474bde, t0, t8);
4318   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac3, $t4, $t5", "ac3", 0x7c000790,
4319                             0xfc0007ff, 0xffffffff, 0xfabfabfa, t4, t5);
4320   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac2, $t0, $t8", "ac2", 0xffffffff,
4321                             0xffffffff, 0x00000000, 0x083b3571, t0, t8);
4322   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac0, $t0, $t1", "ac0", 0x24a3291e,
4323                             0x5648e540, 0xffffffff, 0xb9743941, t0, t1);
4324   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac1, $t2, $t3", "ac1", 0xdd91eebf,
4325                             0xc54f79e6, 0xffffffff, 0xbce5f924, t2, t3);
4326   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac2, $t4, $t1", "ac2", 0xf7ce2ec6,
4327                             0x5fc92974, 0xffffffff, 0xcc3c201c, t4, t1);
4328   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac3, $t6, $t7", "ac3", 0xbc1083e8,
4329                             0x7e08184e, 0x00000000, 0x1ebaf88e, t6, t7);
4330   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac0, $t5, $t3", "ac0", 0xa617cc31,
4331                             0x71c8315f, 0x00000000, 0x722d5e20, t5, t3);
4332   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac1, $t2, $t4", "ac1", 0xdfe1e8f0,
4333                             0x9493110e, 0xffffffff, 0xa1d6f791, t2, t4);
4334   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac2, $t0, $t8", "ac2", 0x31458a23,
4335                             0xbb246228, 0x00000000, 0x7b11bee7, t0, t8);
4336   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac3, $t4, $t5", "ac3", 0x848af791,
4337                             0x339d8d88, 0xffffffff, 0xa5631488, t4, t5);
4338   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac0, $t0, $t1", "ac0", 0xda3bacdc,
4339                             0x70974249, 0xffffffff, 0xb10bcc65, t0, t1);
4340   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac1, $t2, $t3", "ac1", 0x649d5cbd,
4341                             0x8a8d4e7d, 0x00000000, 0x73f39fca, t2, t3);
4342   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac2, $t4, $t1", "ac2", 0xc0c8c881,
4343                             0xeb1b4335, 0x00000000, 0x5648e540, t4, t1);
4344   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac3, $t6, $t7", "ac3", 0x7dd81a20,
4345                             0x0cd6b508, 0xffffffff, 0xc54f79e6, t6, t7);
4346   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac0, $t5, $t3", "ac0", 0x7fff7fff,
4347                             0x6731e282, 0x00000000, 0x5fc92974, t5, t3);
4348   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac1, $t2, $t4", "ac1", 0x00000555,
4349                             0xb6edf28f, 0x00000000, 0x7e08184e, t2, t4);
4350   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac2, $t0, $t8", "ac2", 0x00000000,
4351                             0x4b4ec9ca, 0x00000000, 0x71c8315f, t0, t8);
4352   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac3, $t4, $t5", "ac3", 0x80000000,
4353                             0xc1037fa4, 0xffffffff, 0x9493110e, t4, t5);
4354   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac1, $t2, $t4", "ac1", 0x55555555,
4355                             0xcb4ab48f, 0xffffffff, 0xbb246228, t2, t4);
4356   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac2, $t0, $t8", "ac2", 0xffff8000,
4357                             0xaf8f8000, 0x00000000, 0x339d8d88, t0, t8);
4358   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac0, $t0, $t1", "ac0", 0xabababab,
4359                             0x87df4510, 0x00000000, 0x70974249, t0, t1);
4360   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac1, $t2, $t3", "ac1", 0xfc79b4d2,
4361                             0xabf4e8e1, 0xffffffff, 0x8a8d4e7d, t2, t3);
4362   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac2, $t4, $t1", "ac2", 0x00000000,
4363                             0xf4c0eeac, 0xffffffff, 0xeb1b4335, t4, t1);
4364   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac3, $t6, $t7", "ac3", 0x00354565,
4365                             0x006a54f2, 0x00000000, 0x0cd6b508, t6, t7);
4366   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac0, $t5, $t3", "ac0", 0x00086755,
4367                             0x79f74493, 0x00000000, 0x6731e282, t5, t3);
4368   TESTDSPINST_AC_RS_RT_DSPC("maq_s.w.phl $ac1, $t2, $t4", "ac1", 0xffff8000,
4369                             0x9c098000, 0xffffffff, 0xb6edf28f, t2, t4);
4370
4371
4372   printf("-------- MAQ_SA.W.PHL --------\n");
4373   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac3, $t4, $t5", "ac3", 0x00000000,
4374                             0x00000000, 0xffffffff, 0x80000000, t4, t5);
4375   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac0, $t0, $t1", "ac0", 0x00000004,
4376                             1073741824, 0x00000000, 0x00000006, t0, t1);
4377   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac1, $t2, $t3", "ac1", 0x80002435,
4378                             0x80003421, 0x00000000, 1073741824, t2, t3);
4379   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac3, $t6, $t7", "ac3", 0x76548000,
4380                             0x73468000, 0x00000000, 0x7fffffff, t6, t7);
4381   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac0, $t5, $t3", "ac0", 0x80000000,
4382                             0x80000000, 0x00000000, 0x00000001, t5, t3);
4383   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac1, $t2, $t4", "ac1", 0x00010001,
4384                             0xffffffff, 0xffffffff, 0xffffffff, t2, t4);
4385   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac2, $t0, $t8", "ac2", 0x7fff7fff,
4386                             0x7fff7fff, 0xffffffff, 0xffffffff, t0, t8);
4387   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac0, $t0, $t1", "ac0", 0x0000c420,
4388                             0x00000555, 0x00000000, 0x0fde3126, t0, t1);
4389   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac1, $t2, $t3", "ac1", 0x00000000,
4390                             0x00000000, 0x00000000, 0x55555555, t2, t3);
4391   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac2, $t4, $t1", "ac2", 0x80000000,
4392                             0x80000000, 0xffffffff, 0xffff2435, t4, t1);
4393   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac3, $t6, $t7", "ac3", 0xaaaaaaaa,
4394                             0x55555555, 0xffffffff, 0xabababab, t6, t7);
4395   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac0, $t5, $t3", "ac0", 0x00000018,
4396                             0xffff2435, 0xffffffff, 0xfc79b4d2, t5, t3);
4397   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac1, $t2, $t4", "ac1", 0xbabababa,
4398                             0xabababab, 0x00000000, 0x00000000, t2, t4);
4399   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac2, $t0, $t8", "ac2", 0xf0f0f0f0,
4400                             0xfc79b4d2, 0x00000000, 0x00000000, t0, t8);
4401   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac3, $t4, $t5", "ac3", 0xfbde3976,
4402                             0x00000000, 0x00000000, 0x12349876, t4, t5);
4403   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac0, $t0, $t1", "ac0", 0x23534870,
4404                             0x00354565, 0x00000000, 0x00354565, t0, t1);
4405   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac1, $t2, $t3", "ac1", 0x980b7cde,
4406                             0x00086755, 0x00000000, 0x00086755, t2, t3);
4407   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac2, $t4, $t1", "ac2", 0x00000018,
4408                             0x8f8f8f8f, 0xffffffff, 0x8f8f8f8f, t4, t1);
4409   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac3, $t6, $t7", "ac3", 0x92784656,
4410                             0xeeeeeeee, 0xffffffff, 0xeeeeeeee, t6, t7);
4411   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac0, $t5, $t3", "ac0", 0xcacacaca,
4412                             0x1bdbdbdb, 0x00000000, 0x1bdbdbdb, t5, t3);
4413   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac1, $t2, $t4", "ac1", 0xbacabaca,
4414                             0xdecadeca, 0xffffffff, 0xdecadeca, t2, t4);
4415   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac2, $t0, $t8", "ac2", 0x12fadeb4,
4416                             0x93474bde, 0xffffffff, 0x93474bde, t0, t8);
4417   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac3, $t4, $t5", "ac3", 0x7c000790,
4418                             0xfc0007ff, 0xffffffff, 0xfabfabfa, t4, t5);
4419   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac2, $t0, $t8", "ac2", 0xffffffff,
4420                             0xffffffff, 0x00000000, 0x083b3571, t0, t8);
4421   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac0, $t0, $t1", "ac0", 0x24a3291e,
4422                             0x5648e540, 0xffffffff, 0xb9743941, t0, t1);
4423   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac1, $t2, $t3", "ac1", 0xdd91eebf,
4424                             0xc54f79e6, 0xffffffff, 0xbce5f924, t2, t3);
4425   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac2, $t4, $t1", "ac2", 0xf7ce2ec6,
4426                             0x5fc92974, 0xffffffff, 0xcc3c201c, t4, t1);
4427   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac3, $t6, $t7", "ac3", 0xbc1083e8,
4428                             0x7e08184e, 0x00000000, 0x1ebaf88e, t6, t7);
4429   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac0, $t5, $t3", "ac0", 0xa617cc31,
4430                             0x71c8315f, 0x00000000, 0x722d5e20, t5, t3);
4431   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac1, $t2, $t4", "ac1", 0xdfe1e8f0,
4432                             0x9493110e, 0xffffffff, 0xa1d6f791, t2, t4);
4433   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac2, $t0, $t8", "ac2", 0x31458a23,
4434                             0xbb246228, 0x00000000, 0x7b11bee7, t0, t8);
4435   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac3, $t4, $t5", "ac3", 0x848af791,
4436                             0x339d8d88, 0xffffffff, 0xa5631488, t4, t5);
4437   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac0, $t0, $t1", "ac0", 0xda3bacdc,
4438                             0x70974249, 0xffffffff, 0xb10bcc65, t0, t1);
4439   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac1, $t2, $t3", "ac1", 0x649d5cbd,
4440                             0x8a8d4e7d, 0x00000000, 0x73f39fca, t2, t3);
4441   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac2, $t4, $t1", "ac2", 0xc0c8c881,
4442                             0xeb1b4335, 0x00000000, 0x5648e540, t4, t1);
4443   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac3, $t6, $t7", "ac3", 0x7dd81a20,
4444                             0x0cd6b508, 0xffffffff, 0xc54f79e6, t6, t7);
4445   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac0, $t5, $t3", "ac0", 0x7fff7fff,
4446                             0x6731e282, 0x00000000, 0x5fc92974, t5, t3);
4447   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac1, $t2, $t4", "ac1", 0x00000555,
4448                             0xb6edf28f, 0x00000000, 0x7e08184e, t2, t4);
4449   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac2, $t0, $t8", "ac2", 0x00000000,
4450                             0x4b4ec9ca, 0x00000000, 0x71c8315f, t0, t8);
4451   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac3, $t4, $t5", "ac3", 0x80000000,
4452                             0xc1037fa4, 0xffffffff, 0x9493110e, t4, t5);
4453   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac1, $t2, $t4", "ac1", 0x55555555,
4454                             0xcb4ab48f, 0xffffffff, 0xbb246228, t2, t4);
4455   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac2, $t0, $t8", "ac2", 0xffff8000,
4456                             0xaf8f8000, 0x00000000, 0x339d8d88, t0, t8);
4457   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac0, $t0, $t1", "ac0", 0xabababab,
4458                             0x87df4510, 0x00000000, 0x70974249, t0, t1);
4459   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac1, $t2, $t3", "ac1", 0xfc79b4d2,
4460                             0xabf4e8e1, 0xffffffff, 0x8a8d4e7d, t2, t3);
4461   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac2, $t4, $t1", "ac2", 0x00000000,
4462                             0xf4c0eeac, 0xffffffff, 0xeb1b4335, t4, t1);
4463   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac3, $t6, $t7", "ac3", 0x00354565,
4464                             0x006a54f2, 0x00000000, 0x0cd6b508, t6, t7);
4465   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac0, $t5, $t3", "ac0", 0x00086755,
4466                             0x79f74493, 0x00000000, 0x6731e282, t5, t3);
4467   TESTDSPINST_AC_RS_RT_DSPC("maq_sa.w.phl $ac1, $t2, $t4", "ac1", 0xffff8000,
4468                             0x9c098000, 0xffffffff, 0xb6edf28f, t2, t4);
4469
4470   printf("-------- MTHI, MTLO, MFHI, MFLO --------\n");
4471   TESTDSPINST_HILO("ac0", 0x00000000, 0x00000006);
4472   TESTDSPINST_HILO("ac1", 0x00000055, 0x00000286);
4473   TESTDSPINST_HILO("ac2", 0x00000018, 0x00000fff);
4474   TESTDSPINST_HILO("ac3", 0x7fffffff, 0x7fffffff);
4475   TESTDSPINST_HILO("ac0", 0xffffffff, 0x00000001);
4476   TESTDSPINST_HILO("ac1", 0x00000001, 0xffffffff);
4477   TESTDSPINST_HILO("ac2", 0x00000002, 0x00000006);
4478   TESTDSPINST_HILO("ac3", 0x00000356, 0x00000555);
4479
4480   printf("-------- MODSUB --------\n");
4481   TESTDSPINST_RD_RS_RT_NODSPC("modsub $t0, $t1, $t2", 0x00000000, 0x00000000,
4482                               t0, t1, t2);
4483   TESTDSPINST_RD_RS_RT_NODSPC("modsub $t2, $t3, $t4", 0x00045fb2, 0x00000286,
4484                               t2, t3, t4);
4485   TESTDSPINST_RD_RS_RT_NODSPC("modsub $t4, $t1, $t5", 0x00002435, 0xffff3421,
4486                               t4, t1, t5);
4487   TESTDSPINST_RD_RS_RT_NODSPC("modsub $t6, $t7, $t3", 0x07654cb8, 0x734680bc,
4488                               t6, t7, t3);
4489   TESTDSPINST_RD_RS_RT_NODSPC("modsub $t5, $t3, $t2", 0xf973437b, 0x80000000,
4490                               t5, t3, t2);
4491   TESTDSPINST_RD_RS_RT_NODSPC("modsub $t2, $t4, $t8", 0x00010001, 0xffffffff,
4492                               t2, t4, t8);
4493   TESTDSPINST_RD_RS_RT_NODSPC("modsub $t0, $t8, $t0", 0x7fff7fff, 0x7fff7fff,
4494                               t0, t8, t0);
4495   TESTDSPINST_RD_RS_RT_NODSPC("modsub $t4, $t6, $t1", 0x0000c420, 0x00000555,
4496                               t4, t6, t1);
4497   TESTDSPINST_RD_RS_RT_NODSPC("modsub $t2, $t3, $t4", 0x00000004, 1073741824,
4498                               t2, t3, t4);
4499   TESTDSPINST_RD_RS_RT_NODSPC("modsub $t4, $t1, $t5", 0x80002435, 0x80003421,
4500                               t4, t1, t5);
4501   TESTDSPINST_RD_RS_RT_NODSPC("modsub $t6, $t7, $t3", 0x76548000, 0x73468000,
4502                               t6, t7, t3);
4503   TESTDSPINST_RD_RS_RT_NODSPC("modsub $t5, $t3, $t2", 0x80000000, 0x80000000,
4504                               t5, t3, t2);
4505   TESTDSPINST_RD_RS_RT_NODSPC("modsub $t2, $t4, $t8", 0x00010001, 0xffffffff,
4506                               t2, t4, t8);
4507   TESTDSPINST_RD_RS_RT_NODSPC("modsub $t0, $t8, $t0", 0x7fff7fff, 0x7fff7fff,
4508                               t0, t8, t0);
4509   TESTDSPINST_RD_RS_RT_NODSPC("modsub $t4, $t6, $t1", 0x0000c420, 0x00000555,
4510                               t4, t6, t1);
4511   TESTDSPINST_RD_RS_RT_NODSPC("modsub $t0, $t1, $t2", 0x00000000, 0x00000000,
4512                               t0, t1, t2);
4513   TESTDSPINST_RD_RS_RT_NODSPC("modsub $t2, $t3, $t4", 0x80000000, 0x80000000,
4514                               t2, t3, t4);
4515   TESTDSPINST_RD_RS_RT_NODSPC("modsub $t4, $t1, $t5", 0xaaaaaaaa, 0x55555555,
4516                               t4, t1, t5);
4517   TESTDSPINST_RD_RS_RT_NODSPC("modsub $t6, $t7, $t3", 0x00000018, 0xffff2435,
4518                               t6, t7, t3);
4519   TESTDSPINST_RD_RS_RT_NODSPC("modsub $t5, $t3, $t2", 0xbabababa, 0xabababab,
4520                               t5, t3, t2);
4521   TESTDSPINST_RD_RS_RT_NODSPC("modsub $t2, $t4, $t8", 0xf0f0f0f0, 0xfc79b4d2,
4522                               t2, t4, t8);
4523   TESTDSPINST_RD_RS_RT_NODSPC("modsub $t0, $t8, $t0", 0xfbde3976, 0x00000000,
4524                               t0, t8, t0);
4525   TESTDSPINST_RD_RS_RT_NODSPC("modsub $t4, $t6, $t1", 0x23534870, 0x00354565,
4526                               t4, t6, t1);
4527   TESTDSPINST_RD_RS_RT_NODSPC("modsub $t0, $t1, $t2", 0x980b7cde, 0x00086755,
4528                               t0, t1, t2);
4529   TESTDSPINST_RD_RS_RT_NODSPC("modsub $t2, $t3, $t4", 0x00000018, 0x8f8f8f8f,
4530                               t2, t3, t4);
4531   TESTDSPINST_RD_RS_RT_NODSPC("modsub $t4, $t1, $t5", 0x92784656, 0xeeeeeeee,
4532                               t4, t1, t5);
4533   TESTDSPINST_RD_RS_RT_NODSPC("modsub $t6, $t7, $t3", 0xcacacaca, 0x1bdbdbdb,
4534                               t6, t7, t3);
4535   TESTDSPINST_RD_RS_RT_NODSPC("modsub $t5, $t3, $t2", 0xbacabaca, 0xdecadeca,
4536                               t5, t3, t2);
4537   TESTDSPINST_RD_RS_RT_NODSPC("modsub $t2, $t4, $t8", 0x12fadeb4, 0x93474bde,
4538                               t2, t4, t8);
4539   TESTDSPINST_RD_RS_RT_NODSPC("modsub $t0, $t8, $t0", 0x7c000790, 0xfc0007ff,
4540                               t0, t8, t0);
4541   TESTDSPINST_RD_RS_RT_NODSPC("modsub $t4, $t6, $t1", 0xffffffff, 0xffffffff,
4542                               t4, t6, t1);
4543   TESTDSPINST_RD_RS_RT_NODSPC("modsub $t0, $t1, $t2", 0xf2f4df1f, 0xcb4ab48f,
4544                               t0, t1, t2);
4545   TESTDSPINST_RD_RS_RT_NODSPC("modsub $t2, $t3, $t4", 0x435f909a, 0xaf8f7e18,
4546                               t2, t3, t4);
4547   TESTDSPINST_RD_RS_RT_NODSPC("modsub $t4, $t1, $t5", 0x2106ba5f, 0x87df4510,
4548                               t4, t1, t5);
4549   TESTDSPINST_RD_RS_RT_NODSPC("modsub $t6, $t7, $t3", 0x246a6376, 0xabf4e8e1,
4550                               t6, t7, t3);
4551   TESTDSPINST_RD_RS_RT_NODSPC("modsub $t5, $t3, $t2", 0x1046a1a3, 0xf4c0eeac,
4552                               t5, t3, t2);
4553   TESTDSPINST_RD_RS_RT_NODSPC("modsub $t2, $t4, $t8", 0x638ca515, 0x006a54f2,
4554                               t2, t4, t8);
4555   TESTDSPINST_RD_RS_RT_NODSPC("modsub $t0, $t8, $t0", 0xf63e7a9d, 0x79f74493,
4556                               t0, t8, t0);
4557   TESTDSPINST_RD_RS_RT_NODSPC("modsub $t4, $t6, $t1", 0xbd6845cd, 0x9c09e313,
4558                               t4, t6, t1);
4559
4560   printf("-------- MTHLIP --------\n");
4561   TESTDSPINST_MTHLIP("mthlip $t1, $ac1", "ac1", 0xda3bacdc, 0x70974249,
4562                      0x00000000, t1,  7);
4563   TESTDSPINST_MTHLIP("mthlip $t2, $ac2", "ac2", 0x2fff0000, 0x00000001,
4564                      0xe87927cc, t2,  2);
4565   TESTDSPINST_MTHLIP("mthlip $t1, $ac1", "ac1", 0x2fff0000, 0x73741802,
4566                      0x083b3571, t1,  4);
4567   TESTDSPINST_MTHLIP("mthlip $t2, $ac2", "ac2", 0x2fff0000, 0x80003403,
4568                      0xb9743941, t2, 13);
4569   TESTDSPINST_MTHLIP("mthlip $t1, $ac1", "ac1", 0xff460000, 0x73468004,
4570                      0xbce5f924, t1,  5);
4571   TESTDSPINST_MTHLIP("mthlip $t2, $ac2", "ac2", 0x00008000, 0x80000000,
4572                      0xcc3c201c, t2, 22);
4573   TESTDSPINST_MTHLIP("mthlip $t0, $ac0", "ac0", 0x00010001, 0xffffff07,
4574                      0x1ebaf88e, t0, 31);
4575   TESTDSPINST_MTHLIP("mthlip $t3, $ac3", "ac3", 0x7fff7fff, 0x7fff7f07,
4576                      0x722d5e20, t3, 28);
4577   TESTDSPINST_MTHLIP("mthlip $t6, $ac1", "ac1", 0xffffffff, 0x00000505,
4578                      0xa1d6f791, t6,  0);
4579   TESTDSPINST_MTHLIP("mthlip $t4, $ac3", "ac3", 0xabababab, 0x00000000,
4580                      0x7b11bee7, t4, 26);
4581   TESTDSPINST_MTHLIP("mthlip $t1, $ac0", "ac0", 0xdecadeca, 0x80000000,
4582                      0xa5631488, t1, 12);
4583   TESTDSPINST_MTHLIP("mthlip $t2, $ac1", "ac1", 0xbacabaca, 0x55555555,
4584                      0xb10bcc65, t2,  1);
4585   TESTDSPINST_MTHLIP("mthlip $t3, $ac2", "ac2", 0x3545ff80, 0xffff2434,
4586                      0x73f39fca, t3, 31);
4587   TESTDSPINST_MTHLIP("mthlip $t5, $ac0", "ac0", 0x734680bc, 0xabababa3,
4588                      0x5648e540, t5, 11);
4589   TESTDSPINST_MTHLIP("mthlip $t7, $ac2", "ac2", 0xc4dbfe20, 0xfc79b4d2,
4590                      0xc54f79e6, t7, 16);
4591   TESTDSPINST_MTHLIP("mthlip $t8, $ac3", "ac3", 0x00000000, 0x00000000,
4592                      0x5fc92974, t8, 29);
4593   TESTDSPINST_MTHLIP("mthlip $t4, $ac0", "ac0", 0x55555555, 0x00354561,
4594                      0x7e08184e, t4, 13);
4595   TESTDSPINST_MTHLIP("mthlip $t5, $ac1", "ac1", 0xad80bce4, 0x00086755,
4596                      0x71c8315f, t5,  8);
4597   TESTDSPINST_MTHLIP("mthlip $t6, $ac2", "ac2", 0x7f003245, 0x8f8f8f8f,
4598                      0x9493110e, t6,  7);
4599   TESTDSPINST_MTHLIP("mthlip $t7, $ac3", "ac3", 0x93474bde, 0xeeeeeeee,
4600                      0xbb246228, t7, 21);
4601   TESTDSPINST_MTHLIP("mthlip $t8, $ac0", "ac0", 0xf97343ff, 0x1bdbdbdb,
4602                      0x339d8d88, t8,  4);
4603   TESTDSPINST_MTHLIP("mthlip $t0, $ac1", "ac1", 0x980b7cde, 0xdecadeca,
4604                      0x70974249, t0, 32);
4605   TESTDSPINST_MTHLIP("mthlip $t1, $ac2", "ac2", 0x0555adec, 0x93474bde,
4606                      0x339d8d88, t1, 33);
4607   TESTDSPINST_MTHLIP("mthlip $t1, $ac0", "ac0", 0x00000000, 0x0cd6b508,
4608                      0x12349876, t1, 12);
4609   TESTDSPINST_MTHLIP("mthlip $t2, $ac1", "ac1", 0x00000000, 0x6731e282,
4610                      0x00354565, t2,  1);
4611   TESTDSPINST_MTHLIP("mthlip $t3, $ac2", "ac2", 0xffffffff, 0xb6edf28f,
4612                      0x00086755, t3, 31);
4613   TESTDSPINST_MTHLIP("mthlip $t5, $ac0", "ac0", 0x00000000, 0x4b4ec9ca,
4614                      0x8f8f8f8f, t5, 11);
4615   TESTDSPINST_MTHLIP("mthlip $t7, $ac2", "ac2", 0xffffffff, 0xc1037fa4,
4616                      0xeeeeeeee, t7, 16);
4617   TESTDSPINST_MTHLIP("mthlip $t8, $ac3", "ac3", 0xffffffff, 0xcb4ab48f,
4618                      0x1bdbdbdb, t8, 29);
4619   TESTDSPINST_MTHLIP("mthlip $t4, $ac0", "ac0", 0xffffffff, 0xaf8f7e18,
4620                      0xbb246228, t4, 13);
4621   TESTDSPINST_MTHLIP("mthlip $t5, $ac1", "ac1", 0xffffffff, 0x87df4510,
4622                      0x339d8d88, t5,  8);
4623   TESTDSPINST_MTHLIP("mthlip $t6, $ac2", "ac2", 0xffffffff, 0xabf4e8e1,
4624                      0x70974249, t6,  7);
4625   TESTDSPINST_MTHLIP("mthlip $t7, $ac3", "ac3", 0xffffffff, 0xf4c0eeac,
4626                      0x8a8d4e7d, t7, 21);
4627   TESTDSPINST_MTHLIP("mthlip $t8, $ac0", "ac0", 0x00000000, 0x006a54f2,
4628                      0xeb1b4335, t8,  4);
4629   TESTDSPINST_MTHLIP("mthlip $t0, $ac1", "ac1", 0x00000000, 0x79f74493,
4630                      0x0cd6b508, t0, 32);
4631   TESTDSPINST_MTHLIP("mthlip $t1, $ac2", "ac2", 0xffffffff, 0x9c09e313,
4632                      0x6731e282, t1, 33);
4633
4634   printf("-------- MULEQ_S.W.PHL --------\n");
4635   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phl $t0, $t1, $t2", 0x00000000,
4636                             0x00000000, t0, t1, t2);
4637   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phl $t2, $t3, $t4", 0x00045fb2,
4638                             0x00000286, t2, t3, t4);
4639   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phl $t4, $t1, $t5", 0x80002435,
4640                             0x80003421, t4, t1, t5);
4641   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phl $t6, $t7, $t3", 0x07654cb8,
4642                             0x734680bc, t6, t7, t3);
4643   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phl $t5, $t3, $t2", 0xf973437b,
4644                             0x80000000, t5, t3, t2);
4645   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phl $t2, $t4, $t8", 0x00010001,
4646                             0xffffffff, t2, t4, t8);
4647   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phl $t0, $t8, $t0", 0x7fff7fff,
4648                             0x7fff7fff, t0, t8, t0);
4649   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phl $t4, $t6, $t1", 0x0000c420,
4650                             0x00000555, t4, t6, t1);
4651   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phl $t2, $t3, $t4", 0x80000000,
4652                             0x80000000, t2, t3, t4);
4653   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phl $t4, $t1, $t5", 0xaaaaaaaa,
4654                             0x55555555, t4, t1, t5);
4655   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phl $t6, $t7, $t3", 0x00000018,
4656                             0xffff2435, t6, t7, t3);
4657   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phl $t5, $t3, $t2", 0xbabababa,
4658                             0xabababab, t5, t3, t2);
4659   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phl $t2, $t4, $t8", 0xf0f0f0f0,
4660                             0xfc79b4d2, t2, t4, t8);
4661   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phl $t0, $t8, $t0", 0xfbde3976,
4662                             0x00000000, t0, t8, t0);
4663   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phl $t4, $t6, $t1", 0x23534870,
4664                             0x00354565, t4, t6, t1);
4665   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phl $t0, $t1, $t2", 0x980b7cde,
4666                             0x00086755, t0, t1, t2);
4667   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phl $t2, $t3, $t4", 0x00000018,
4668                             0x8f8f8f8f, t2, t3, t4);
4669   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phl $t4, $t1, $t5", 0x92784656,
4670                             0xeeeeeeee, t4, t1, t5);
4671   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phl $t6, $t7, $t3", 0xcacacaca,
4672                             0x1bdbdbdb, t6, t7, t3);
4673   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phl $t5, $t3, $t2", 0xbacabaca,
4674                             0xdecadeca, t5, t3, t2);
4675   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phl $t2, $t4, $t8", 0x12fadeb4,
4676                             0x93474bde, t2, t4, t8);
4677   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phl $t0, $t8, $t0", 0x7c000790,
4678                             0xfc0007ff, t0, t8, t0);
4679   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phl $t4, $t6, $t1", 0xffffffff,
4680                             0xffffffff, t4, t6, t1);
4681   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phl $t0, $t1, $t2", 0xf2f4df1f,
4682                             0xcb4ab48f, t0, t1, t2);
4683   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phl $t2, $t3, $t4", 0x435f909a,
4684                             0xaf8f7e18, t2, t3, t4);
4685   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phl $t4, $t1, $t5", 0x2106ba5f,
4686                             0x87df4510, t4, t1, t5);
4687   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phl $t6, $t7, $t3", 0x246a6376,
4688                             0xabf4e8e1, t6, t7, t3);
4689   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phl $t5, $t3, $t2", 0x1046a1a3,
4690                             0xf4c0eeac, t5, t3, t2);
4691   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phl $t2, $t4, $t8", 0x638ca515,
4692                             0x006a54f2, t2, t4, t8);
4693   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phl $t0, $t8, $t0", 0xf63e7a9d,
4694                             0x79f74493, t0, t8, t0);
4695   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phl $t4, $t6, $t1", 0xbd6845cd,
4696                             0x9c09e313, t4, t6, t1);
4697
4698   printf("-------- MULEQ_S.W.PHR --------\n");
4699   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phr $t0, $t1, $t2", 0x00000000,
4700                             0x00000000, t0, t1, t2);
4701   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phr $t2, $t3, $t4", 0x00045fb2,
4702                             0x00000286, t2, t3, t4);
4703   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phr $t4, $t1, $t5", 0x80002435,
4704                             0x80003421, t4, t1, t5);
4705   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phr $t6, $t7, $t3", 0x07654cb8,
4706                             0x734680bc, t6, t7, t3);
4707   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phr $t5, $t3, $t2", 0xf973437b,
4708                             0x80000000, t5, t3, t2);
4709   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phr $t2, $t4, $t8", 0x00010001,
4710                             0xffffffff, t2, t4, t8);
4711   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phr $t0, $t8, $t0", 0x7fff7fff,
4712                             0x7fff7fff, t0, t8, t0);
4713   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phr $t4, $t6, $t1", 0x0000c420,
4714                             0x00000555, t4, t6, t1);
4715   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phr $t2, $t3, $t4", 0x80000000,
4716                             0x80000000, t2, t3, t4);
4717   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phr $t4, $t1, $t5", 0xaaaaaaaa,
4718                             0x55555555, t4, t1, t5);
4719   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phr $t6, $t7, $t3", 0x00000018,
4720                             0xffff2435, t6, t7, t3);
4721   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phr $t5, $t3, $t2", 0xbabababa,
4722                             0xabababab, t5, t3, t2);
4723   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phr $t2, $t4, $t8", 0xf0f0f0f0,
4724                             0xfc79b4d2, t2, t4, t8);
4725   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phr $t0, $t8, $t0", 0xfbde3976,
4726                             0x00000000, t0, t8, t0);
4727   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phr $t4, $t6, $t1", 0x23534870,
4728                             0x00354565, t4, t6, t1);
4729   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phr $t0, $t1, $t2", 0x980b7cde,
4730                             0x00086755, t0, t1, t2);
4731   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phr $t2, $t3, $t4", 0x00000018,
4732                             0x8f8f8f8f, t2, t3, t4);
4733   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phr $t4, $t1, $t5", 0x92784656,
4734                             0xeeeeeeee, t4, t1, t5);
4735   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phr $t6, $t7, $t3", 0xcacacaca,
4736                             0x1bdbdbdb, t6, t7, t3);
4737   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phr $t5, $t3, $t2", 0xbacabaca,
4738                             0xdecadeca, t5, t3, t2);
4739   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phr $t2, $t4, $t8", 0x12fadeb4,
4740                             0x93474bde, t2, t4, t8);
4741   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phr $t0, $t8, $t0", 0x7c000790,
4742                             0xfc0007ff, t0, t8, t0);
4743   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phr $t4, $t6, $t1", 0xffffffff,
4744                             0xffffffff, t4, t6, t1);
4745   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phr $t0, $t1, $t2", 0xf2f4df1f,
4746                             0xcb4ab48f, t0, t1, t2);
4747   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phr $t2, $t3, $t4", 0x435f909a,
4748                             0xaf8f7e18, t2, t3, t4);
4749   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phr $t4, $t1, $t5", 0x2106ba5f,
4750                             0x87df4510, t4, t1, t5);
4751   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phr $t6, $t7, $t3", 0x246a6376,
4752                             0xabf4e8e1, t6, t7, t3);
4753   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phr $t5, $t3, $t2", 0x1046a1a3,
4754                             0xf4c0eeac, t5, t3, t2);
4755   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phr $t2, $t4, $t8", 0x638ca515,
4756                             0x006a54f2, t2, t4, t8);
4757   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phr $t0, $t8, $t0", 0xf63e7a9d,
4758                             0x79f74493, t0, t8, t0);
4759   TESTDSPINST_RD_RS_RT_DSPC("muleq_s.w.phr $t4, $t6, $t1", 0xbd6845cd,
4760                             0x9c09e313, t4, t6, t1);
4761
4762   printf("-------- MULEU_S.PH.QBL --------\n");
4763   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbl $t0, $t1, $t2", 0x00000000,
4764                             0x00000000, t0, t1, t2);
4765   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbl $t2, $t3, $t4", 0x00045fb2,
4766                             0x00000286, t2, t3, t4);
4767   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbl $t4, $t1, $t5", 0x80002435,
4768                             0x80003421, t4, t1, t5);
4769   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbl $t6, $t7, $t3", 0x07654cb8,
4770                             0x734680bc, t6, t7, t3);
4771   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbl $t5, $t3, $t2", 0xf973437b,
4772                             0x80000000, t5, t3, t2);
4773   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbl $t2, $t4, $t8", 0x00010001,
4774                             0xffffffff, t2, t4, t8);
4775   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbl $t0, $t8, $t0", 0x7fff7fff,
4776                             0x7fff7fff, t0, t8, t0);
4777   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbl $t4, $t6, $t1", 0x0000c420,
4778                             0x00000555, t4, t6, t1);
4779   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbl $t2, $t3, $t4", 0x80000000,
4780                             0x80000000, t2, t3, t4);
4781   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbl $t4, $t1, $t5", 0xaaaa8000,
4782                             0x55558000, t4, t1, t5);
4783   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbl $t6, $t7, $t3", 0x00000018,
4784                             0xffff2435, t6, t7, t3);
4785   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbl $t5, $t3, $t2", 0xbabababa,
4786                             0xabababab, t5, t3, t2);
4787   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbl $t2, $t4, $t8", 0xf0f0f0f0,
4788                             0xfc79b4d2, t2, t4, t8);
4789   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbl $t0, $t8, $t0", 0xfbde3976,
4790                             0x00000000, t0, t8, t0);
4791   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbl $t4, $t6, $t1", 0x23534870,
4792                             0x00354565, t4, t6, t1);
4793   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbl $t0, $t1, $t2", 0x980b7cde,
4794                             0x00086755, t0, t1, t2);
4795   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbl $t2, $t3, $t4", 0x00000018,
4796                             0x8f8f8f8f, t2, t3, t4);
4797   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbl $t4, $t1, $t5", 0x92784656,
4798                             0xeeeeeeee, t4, t1, t5);
4799   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbl $t6, $t7, $t3", 0xcacacaca,
4800                             0x1bdbdbdb, t6, t7, t3);
4801   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbl $t5, $t3, $t2", 0xbacabaca,
4802                             0xdecadeca, t5, t3, t2);
4803   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbl $t2, $t4, $t8", 0x12fadeb4,
4804                             0x93474bde, t2, t4, t8);
4805   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbl $t0, $t8, $t0", 0x7c000790,
4806                             0xfc0007ff, t0, t8, t0);
4807   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbl $t4, $t6, $t1", 0xffffffff,
4808                             0xffffffff, t4, t6, t1);
4809   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbl $t0, $t1, $t2", 0xffffffff,
4810                             0xcb4ab48f, t0, t1, t2);
4811   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbl $t2, $t3, $t4", 0xffffffff,
4812                             0xaf8f7e18, t2, t3, t4);
4813   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbl $t4, $t1, $t5", 0xffffffff,
4814                             0x87df4510, t4, t1, t5);
4815   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbl $t6, $t7, $t3", 0xffffffff,
4816                             0xabf4e8e1, t6, t7, t3);
4817   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbl $t5, $t3, $t2", 0xffffffff,
4818                             0xf4c0eeac, t5, t3, t2);
4819   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbl $t2, $t4, $t8", 0x00000000,
4820                             0x006a54f2, t2, t4, t8);
4821   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbl $t0, $t8, $t0", 0x00000000,
4822                             0x79f74493, t0, t8, t0);
4823   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbl $t4, $t6, $t1", 0xffffffff,
4824                             0x9c09e313, t4, t6, t1);
4825
4826   printf("-------- MULEU_S.PH.QBR --------\n");
4827   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbr $t0, $t1, $t2", 0x00000000,
4828                             0x00000000, t0, t1, t2);
4829   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbr $t2, $t3, $t4", 0x00045fb2,
4830                             0x00000286, t2, t3, t4);
4831   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbr $t4, $t1, $t5", 0x80002435,
4832                             0x80003421, t4, t1, t5);
4833   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbr $t6, $t7, $t3", 0x07654cb8,
4834                             0x734680bc, t6, t7, t3);
4835   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbr $t5, $t3, $t2", 0xf973437b,
4836                             0x80000000, t5, t3, t2);
4837   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbr $t2, $t4, $t8", 0x00010001,
4838                             0xffffffff, t2, t4, t8);
4839   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbr $t0, $t8, $t0", 0x7fff7fff,
4840                             0x7fff7fff, t0, t8, t0);
4841   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbr $t4, $t6, $t1", 0x0000c420,
4842                             0x00000555, t4, t6, t1);
4843   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbr $t2, $t3, $t4", 0x80000000,
4844                             0x80000000, t2, t3, t4);
4845   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbr $t4, $t1, $t5", 0xaaaa8000,
4846                             0x55558000, t4, t1, t5);
4847   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbr $t6, $t7, $t3", 0x00000018,
4848                             0xffff2435, t6, t7, t3);
4849   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbr $t5, $t3, $t2", 0xbabababa,
4850                             0xabababab, t5, t3, t2);
4851   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbr $t2, $t4, $t8", 0xf0f0f0f0,
4852                             0xfc79b4d2, t2, t4, t8);
4853   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbr $t0, $t8, $t0", 0xfbde3976,
4854                             0x00000000, t0, t8, t0);
4855   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbr $t4, $t6, $t1", 0x23534870,
4856                             0x00354565, t4, t6, t1);
4857   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbr $t0, $t1, $t2", 0x980b7cde,
4858                             0x00086755, t0, t1, t2);
4859   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbr $t2, $t3, $t4", 0x00000018,
4860                             0x8f8f8f8f, t2, t3, t4);
4861   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbr $t4, $t1, $t5", 0x92784656,
4862                             0xeeeeeeee, t4, t1, t5);
4863   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbr $t6, $t7, $t3", 0xcacacaca,
4864                             0x1bdbdbdb, t6, t7, t3);
4865   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbr $t5, $t3, $t2", 0xbacabaca,
4866                             0xdecadeca, t5, t3, t2);
4867   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbr $t2, $t4, $t8", 0x12fadeb4,
4868                             0x93474bde, t2, t4, t8);
4869   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbr $t0, $t8, $t0", 0x7c000790,
4870                             0xfc0007ff, t0, t8, t0);
4871   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbr $t4, $t6, $t1", 0xffffffff,
4872                             0xffffffff, t4, t6, t1);
4873   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbr $t0, $t1, $t2", 0xffffffff,
4874                             0xcb4ab48f, t0, t1, t2);
4875   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbr $t2, $t3, $t4", 0xffffffff,
4876                             0xaf8f7e18, t2, t3, t4);
4877   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbr $t4, $t1, $t5", 0xffffffff,
4878                             0x87df4510, t4, t1, t5);
4879   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbr $t6, $t7, $t3", 0xffffffff,
4880                             0xabf4e8e1, t6, t7, t3);
4881   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbr $t5, $t3, $t2", 0xffffffff,
4882                             0xf4c0eeac, t5, t3, t2);
4883   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbr $t2, $t4, $t8", 0x00000000,
4884                             0x006a54f2, t2, t4, t8);
4885   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbr $t0, $t8, $t0", 0x00000000,
4886                             0x79f74493, t0, t8, t0);
4887   TESTDSPINST_RD_RS_RT_DSPC("muleu_s.ph.qbr $t4, $t6, $t1", 0xffffffff,
4888                             0x9c09e313, t4, t6, t1);
4889
4890   printf("-------- MULQ_RS.PH --------\n");
4891   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.ph $t0, $t1, $t2", 0x00000000, 0x00000000,
4892                             t0, t1, t2);
4893   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.ph $t2, $t3, $t4", 0x00045fb2, 0x00000286,
4894                             t2, t3, t4);
4895   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.ph $t4, $t1, $t5", 0x80002435, 0x80003421,
4896                             t4, t1, t5);
4897   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.ph $t6, $t7, $t3", 0x07654cb8, 0x734680bc,
4898                             t6, t7, t3);
4899   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.ph $t5, $t3, $t2", 0xf973437b, 0x80000000,
4900                             t5, t3, t2);
4901   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.ph $t2, $t4, $t8", 0x00010001, 0xffffffff,
4902                             t2, t4, t8);
4903   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.ph $t0, $t8, $t0", 0x7fff7fff, 0x7fff7fff,
4904                             t0, t8, t0);
4905   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.ph $t4, $t6, $t1", 0x0000c420, 0x00000555,
4906                             t4, t6, t1);
4907   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.ph $t2, $t3, $t4", 0x80000000, 0x80000000,
4908                             t2, t3, t4);
4909   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.ph $t4, $t1, $t5", 0xaaaa8000, 0x55558000,
4910                             t4, t1, t5);
4911   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.ph $t6, $t7, $t3", 0x00000018, 0xffff2435,
4912                             t6, t7, t3);
4913   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.ph $t5, $t3, $t2", 0xbabababa, 0xabababab,
4914                             t5, t3, t2);
4915   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.ph $t2, $t4, $t8", 0xf0f0f0f0, 0xfc79b4d2,
4916                             t2, t4, t8);
4917   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.ph $t0, $t8, $t0", 0xfbde3976, 0x00000000,
4918                             t0, t8, t0);
4919   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.ph $t4, $t6, $t1", 0x23534870, 0x00354565,
4920                             t4, t6, t1);
4921   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.ph $t0, $t1, $t2", 0x980b7cde, 0x00086755,
4922                             t0, t1, t2);
4923   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.ph $t2, $t3, $t4", 0x00000018, 0x8f8f8f8f,
4924                             t2, t3, t4);
4925   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.ph $t4, $t1, $t5", 0x92784656, 0xeeeeeeee,
4926                             t4, t1, t5);
4927   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.ph $t6, $t7, $t3", 0xcacacaca, 0x1bdbdbdb,
4928                             t6, t7, t3);
4929   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.ph $t5, $t3, $t2", 0xbacabaca, 0xdecadeca,
4930                             t5, t3, t2);
4931   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.ph $t2, $t4, $t8", 0x12fadeb4, 0x93474bde,
4932                             t2, t4, t8);
4933   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.ph $t0, $t8, $t0", 0x7c000790, 0xfc0007ff,
4934                             t0, t8, t0);
4935   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.ph $t4, $t6, $t1", 0xffffffff, 0xffffffff,
4936                             t4, t6, t1);
4937   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.ph $t0, $t1, $t2", 0xf2f4df1f, 0xcb4ab48f,
4938                             t0, t1, t2);
4939   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.ph $t2, $t3, $t4", 0x435f909a, 0xaf8f7e18,
4940                             t2, t3, t4);
4941   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.ph $t4, $t1, $t5", 0x2106ba5f, 0x87df4510,
4942                             t4, t1, t5);
4943   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.ph $t6, $t7, $t3", 0x246a6376, 0xabf4e8e1,
4944                             t6, t7, t3);
4945   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.ph $t5, $t3, $t2", 0x1046a1a3, 0xf4c0eeac,
4946                             t5, t3, t2);
4947   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.ph $t2, $t4, $t8", 0x638ca515, 0x006a54f2,
4948                             t2, t4, t8);
4949   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.ph $t0, $t8, $t0", 0xf63e7a9d, 0x79f74493,
4950                             t0, t8, t0);
4951   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.ph $t4, $t6, $t1", 0xbd6845cd, 0x9c09e313,
4952                             t4, t6, t1);
4953
4954   printf("-------- MULSAQ_S.W.PH --------\n");
4955   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac3, $t4, $t5", "ac3", 0x00000000,
4956                             0x00000000, 0xffffffff, 0x80000000, t4, t5);
4957   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac0, $t0, $t1", "ac0", 0x00000004,
4958                             1073741824, 0x00000000, 0x00000006, t0, t1);
4959   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac1, $t2, $t3", "ac1", 0x80002435,
4960                             0x80003421, 0x00000000, 1073741824, t2, t3);
4961   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac3, $t6, $t7", "ac3", 0x76548000,
4962                             0x73468000, 0x00000000, 0x7fffffff, t6, t7);
4963   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac0, $t5, $t3", "ac0", 0x80000000,
4964                             0x80000000, 0x00000000, 0x00000001, t5, t3);
4965   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac1, $t2, $t4", "ac1", 0x00010001,
4966                             0xffffffff, 0xffffffff, 0xffffffff, t2, t4);
4967   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac2, $t0, $t8", "ac2", 0x7fff7fff,
4968                             0x7fff7fff, 0xffffffff, 0xffffffff, t0, t8);
4969   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac0, $t0, $t1", "ac0", 0x0000c420,
4970                             0x00000555, 0x00000000, 0x0fde3126, t0, t1);
4971   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac1, $t2, $t3", "ac1", 0x00000000,
4972                             0x00000000, 0x00000000, 0x55555555, t2, t3);
4973   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac2, $t4, $t1", "ac2", 0x80000000,
4974                             0x80000000, 0xffffffff, 0xffff2435, t4, t1);
4975   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac3, $t6, $t7", "ac3", 0xaaaaaaaa,
4976                             0x55555555, 0xffffffff, 0xabababab, t6, t7);
4977   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac0, $t5, $t3", "ac0", 0x00000018,
4978                             0xffff2435, 0xffffffff, 0xfc79b4d2, t5, t3);
4979   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac1, $t2, $t4", "ac1", 0xbabababa,
4980                             0xabababab, 0x00000000, 0x00000000, t2, t4);
4981   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac2, $t0, $t8", "ac2", 0xf0f0f0f0,
4982                             0xfc79b4d2, 0x00000000, 0x00000000, t0, t8);
4983   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac3, $t4, $t5", "ac3", 0xfbde3976,
4984                             0x00000000, 0x00000000, 0x12349876, t4, t5);
4985   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac0, $t0, $t1", "ac0", 0x23534870,
4986                             0x00354565, 0x00000000, 0x00354565, t0, t1);
4987   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac1, $t2, $t3", "ac1", 0x980b7cde,
4988                             0x00086755, 0x00000000, 0x00086755, t2, t3);
4989   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac2, $t4, $t1", "ac2", 0x00000018,
4990                             0x8f8f8f8f, 0xffffffff, 0x8f8f8f8f, t4, t1);
4991   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac3, $t6, $t7", "ac3", 0x92784656,
4992                             0xeeeeeeee, 0xffffffff, 0xeeeeeeee, t6, t7);
4993   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac0, $t5, $t3", "ac0", 0xcacacaca,
4994                             0x1bdbdbdb, 0x00000000, 0x1bdbdbdb, t5, t3);
4995   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac1, $t2, $t4", "ac1", 0xbacabaca,
4996                             0xdecadeca, 0xffffffff, 0xdecadeca, t2, t4);
4997   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac2, $t0, $t8", "ac2", 0x12fadeb4,
4998                             0x93474bde, 0xffffffff, 0x93474bde, t0, t8);
4999   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac3, $t4, $t5", "ac3", 0x7c000790,
5000                             0xfc0007ff, 0xffffffff, 0xfabfabfa, t4, t5);
5001   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac2, $t0, $t8", "ac2", 0xffffffff,
5002                             0xffffffff, 0x00000000, 0x083b3571, t0, t8);
5003   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac0, $t0, $t1", "ac0", 0x24a3291e,
5004                             0x5648e540, 0xffffffff, 0xb9743941, t0, t1);
5005   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac1, $t2, $t3", "ac1", 0xdd91eebf,
5006                             0xc54f79e6, 0xffffffff, 0xbce5f924, t2, t3);
5007   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac2, $t4, $t1", "ac2", 0xf7ce2ec6,
5008                             0x5fc92974, 0xffffffff, 0xcc3c201c, t4, t1);
5009   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac3, $t6, $t7", "ac3", 0xbc1083e8,
5010                             0x7e08184e, 0x00000000, 0x1ebaf88e, t6, t7);
5011   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac0, $t5, $t3", "ac0", 0xa617cc31,
5012                             0x71c8315f, 0x00000000, 0x722d5e20, t5, t3);
5013   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac1, $t2, $t4", "ac1", 0xdfe1e8f0,
5014                             0x9493110e, 0xffffffff, 0xa1d6f791, t2, t4);
5015   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac2, $t0, $t8", "ac2", 0x31458a23,
5016                             0xbb246228, 0x00000000, 0x7b11bee7, t0, t8);
5017   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac3, $t4, $t5", "ac3", 0x848af791,
5018                             0x339d8d88, 0xffffffff, 0xa5631488, t4, t5);
5019   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac0, $t0, $t1", "ac0", 0xda3bacdc,
5020                             0x70974249, 0xffffffff, 0xb10bcc65, t0, t1);
5021   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac1, $t2, $t3", "ac1", 0x649d5cbd,
5022                             0x8a8d4e7d, 0x00000000, 0x73f39fca, t2, t3);
5023   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac2, $t4, $t1", "ac2", 0xc0c8c881,
5024                             0xeb1b4335, 0x00000000, 0x5648e540, t4, t1);
5025   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac3, $t6, $t7", "ac3", 0x7dd81a20,
5026                             0x0cd6b508, 0xffffffff, 0xc54f79e6, t6, t7);
5027   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac0, $t5, $t3", "ac0", 0x7fff7fff,
5028                             0x6731e282, 0x00000000, 0x5fc92974, t5, t3);
5029   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac1, $t2, $t4", "ac1", 0x00000555,
5030                             0xb6edf28f, 0x00000000, 0x7e08184e, t2, t4);
5031   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac2, $t0, $t8", "ac2", 0x00000000,
5032                             0x4b4ec9ca, 0x00000000, 0x71c8315f, t0, t8);
5033   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac3, $t4, $t5", "ac3", 0x80000000,
5034                             0xc1037fa4, 0xffffffff, 0x9493110e, t4, t5);
5035   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac1, $t2, $t4", "ac1", 0x55555555,
5036                             0xcb4ab48f, 0xffffffff, 0xbb246228, t2, t4);
5037   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac2, $t0, $t8", "ac2", 0xffff8000,
5038                             0xaf8f8000, 0x00000000, 0x339d8d88, t0, t8);
5039   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac0, $t0, $t1", "ac0", 0xabababab,
5040                             0x87df4510, 0x00000000, 0x70974249, t0, t1);
5041   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac1, $t2, $t3", "ac1", 0xfc79b4d2,
5042                             0xabf4e8e1, 0xffffffff, 0x8a8d4e7d, t2, t3);
5043   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac2, $t4, $t1", "ac2", 0x00000000,
5044                             0xf4c0eeac, 0xffffffff, 0xeb1b4335, t4, t1);
5045   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac3, $t6, $t7", "ac3", 0x00354565,
5046                             0x006a54f2, 0x00000000, 0x0cd6b508, t6, t7);
5047   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac0, $t5, $t3", "ac0", 0x00086755,
5048                             0x79f74493, 0x00000000, 0x6731e282, t5, t3);
5049   TESTDSPINST_AC_RS_RT_DSPC("mulsaq_s.w.ph $ac1, $t2, $t4", "ac1", 0xffff8000,
5050                             0x9c098000, 0xffffffff, 0xb6edf28f, t2, t4);
5051
5052   printf("-------- MULT --------\n");
5053   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac3, $t4, $t5", "ac3", 0x00000000,
5054                               0x00000000, 0xffffffff, 0x80000000, t4, t5);
5055   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac0, $t0, $t1", "ac0", 0x00000004,
5056                               1073741824, 0x00000000, 0x00000006, t0, t1);
5057   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac1, $t2, $t3", "ac1", 0x80002435,
5058                               0x80003421, 0x00000000, 1073741824, t2, t3);
5059   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac3, $t6, $t7", "ac3", 0x76548000,
5060                               0x73468000, 0x00000000, 0x7fffffff, t6, t7);
5061   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac0, $t5, $t3", "ac0", 0x80000000,
5062                               0x80000000, 0x00000000, 0x00000001, t5, t3);
5063   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac1, $t2, $t4", "ac1", 0x00010001,
5064                               0xffffffff, 0xffffffff, 0xffffffff, t2, t4);
5065   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac2, $t0, $t8", "ac2", 0x7fff7fff,
5066                               0x7fff7fff, 0xffffffff, 0xffffffff, t0, t8);
5067   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac0, $t0, $t1", "ac0", 0x0000c420,
5068                               0x00000555, 0x00000000, 0x0fde3126, t0, t1);
5069   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac1, $t2, $t3", "ac1", 0x00000000,
5070                               0x00000000, 0x00000000, 0x55555555, t2, t3);
5071   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac2, $t4, $t1", "ac2", 0x80000000,
5072                               0x80000000, 0xffffffff, 0xffff2435, t4, t1);
5073   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac3, $t6, $t7", "ac3", 0xaaaaaaaa,
5074                               0x55555555, 0xffffffff, 0xabababab, t6, t7);
5075   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac0, $t5, $t3", "ac0", 0x00000018,
5076                               0xffff2435, 0xffffffff, 0xfc79b4d2, t5, t3);
5077   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac1, $t2, $t4", "ac1", 0xbabababa,
5078                               0xabababab, 0x00000000, 0x00000000, t2, t4);
5079   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac2, $t0, $t8", "ac2", 0xf0f0f0f0,
5080                               0xfc79b4d2, 0x00000000, 0x00000000, t0, t8);
5081   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac3, $t4, $t5", "ac3", 0xfbde3976,
5082                               0x00000000, 0x00000000, 0x12349876, t4, t5);
5083   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac0, $t0, $t1", "ac0", 0x23534870,
5084                               0x00354565, 0x00000000, 0x00354565, t0, t1);
5085   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac1, $t2, $t3", "ac1", 0x980b7cde,
5086                               0x00086755, 0x00000000, 0x00086755, t2, t3);
5087   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac2, $t4, $t1", "ac2", 0x00000018,
5088                               0x8f8f8f8f, 0xffffffff, 0x8f8f8f8f, t4, t1);
5089   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac3, $t6, $t7", "ac3", 0x92784656,
5090                               0xeeeeeeee, 0xffffffff, 0xeeeeeeee, t6, t7);
5091   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac0, $t5, $t3", "ac0", 0xcacacaca,
5092                               0x1bdbdbdb, 0x00000000, 0x1bdbdbdb, t5, t3);
5093   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac1, $t2, $t4", "ac1", 0xbacabaca,
5094                               0xdecadeca, 0xffffffff, 0xdecadeca, t2, t4);
5095   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac2, $t0, $t8", "ac2", 0x12fadeb4,
5096                               0x93474bde, 0xffffffff, 0x93474bde, t0, t8);
5097   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac3, $t4, $t5", "ac3", 0x7c000790,
5098                               0xfc0007ff, 0xffffffff, 0xfabfabfa, t4, t5);
5099   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac2, $t0, $t8", "ac2", 0xffffffff,
5100                               0xffffffff, 0x00000000, 0x083b3571, t0, t8);
5101   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac0, $t0, $t1", "ac0", 0x24a3291e,
5102                               0x5648e540, 0xffffffff, 0xb9743941, t0, t1);
5103   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac1, $t2, $t3", "ac1", 0xdd91eebf,
5104                               0xc54f79e6, 0xffffffff, 0xbce5f924, t2, t3);
5105   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac2, $t4, $t1", "ac2", 0xf7ce2ec6,
5106                               0x5fc92974, 0xffffffff, 0xcc3c201c, t4, t1);
5107   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac3, $t6, $t7", "ac3", 0xbc1083e8,
5108                               0x7e08184e, 0x00000000, 0x1ebaf88e, t6, t7);
5109   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac0, $t5, $t3", "ac0", 0xa617cc31,
5110                               0x71c8315f, 0x00000000, 0x722d5e20, t5, t3);
5111   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac1, $t2, $t4", "ac1", 0xdfe1e8f0,
5112                               0x9493110e, 0xffffffff, 0xa1d6f791, t2, t4);
5113   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac2, $t0, $t8", "ac2", 0x31458a23,
5114                               0xbb246228, 0x00000000, 0x7b11bee7, t0, t8);
5115   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac3, $t4, $t5", "ac3", 0x848af791,
5116                               0x339d8d88, 0xffffffff, 0xa5631488, t4, t5);
5117   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac0, $t0, $t1", "ac0", 0xda3bacdc,
5118                               0x70974249, 0xffffffff, 0xb10bcc65, t0, t1);
5119   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac1, $t2, $t3", "ac1", 0x649d5cbd,
5120                               0x8a8d4e7d, 0x00000000, 0x73f39fca, t2, t3);
5121   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac2, $t4, $t1", "ac2", 0xc0c8c881,
5122                               0xeb1b4335, 0x00000000, 0x5648e540, t4, t1);
5123   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac3, $t6, $t7", "ac3", 0x7dd81a20,
5124                               0x0cd6b508, 0xffffffff, 0xc54f79e6, t6, t7);
5125   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac0, $t5, $t3", "ac0", 0x7fff7fff,
5126                               0x6731e282, 0x00000000, 0x5fc92974, t5, t3);
5127   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac1, $t2, $t4", "ac1", 0x00000555,
5128                               0xb6edf28f, 0x00000000, 0x7e08184e, t2, t4);
5129   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac2, $t0, $t8", "ac2", 0x00000000,
5130                               0x4b4ec9ca, 0x00000000, 0x71c8315f, t0, t8);
5131   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac3, $t4, $t5", "ac3", 0x80000000,
5132                               0xc1037fa4, 0xffffffff, 0x9493110e, t4, t5);
5133   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac1, $t2, $t4", "ac1", 0x55555555,
5134                               0xcb4ab48f, 0xffffffff, 0xbb246228, t2, t4);
5135   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac2, $t0, $t8", "ac2", 0xffff8000,
5136                               0xaf8f8000, 0x00000000, 0x339d8d88, t0, t8);
5137   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac0, $t0, $t1", "ac0", 0xabababab,
5138                               0x87df4510, 0x00000000, 0x70974249, t0, t1);
5139   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac1, $t2, $t3", "ac1", 0xfc79b4d2,
5140                               0xabf4e8e1, 0xffffffff, 0x8a8d4e7d, t2, t3);
5141   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac2, $t4, $t1", "ac2", 0x00000000,
5142                               0xf4c0eeac, 0xffffffff, 0xeb1b4335, t4, t1);
5143   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac3, $t6, $t7", "ac3", 0x00354565,
5144                               0x006a54f2, 0x00000000, 0x0cd6b508, t6, t7);
5145   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac0, $t5, $t3", "ac0", 0x00086755,
5146                               0x79f74493, 0x00000000, 0x6731e282, t5, t3);
5147   TESTDSPINST_AC_RS_RT_NODSPC("mult $ac1, $t2, $t4", "ac1", 0xffff8000,
5148                               0x9c098000, 0xffffffff, 0xb6edf28f, t2, t4);
5149
5150   printf("-------- MULTU --------\n");
5151   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac3, $t4, $t5", "ac3", 0x00000000,
5152                               0x00000000, 0xffffffff, 0x80000000, t4, t5);
5153   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac0, $t0, $t1", "ac0", 0x00000004,
5154                               1073741824, 0x00000000, 0x00000006, t0, t1);
5155   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac1, $t2, $t3", "ac1", 0x80002435,
5156                               0x80003421, 0x00000000, 1073741824, t2, t3);
5157   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac3, $t6, $t7", "ac3", 0x76548000,
5158                               0x73468000, 0x00000000, 0x7fffffff, t6, t7);
5159   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac0, $t5, $t3", "ac0", 0x80000000,
5160                               0x80000000, 0x00000000, 0x00000001, t5, t3);
5161   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac1, $t2, $t4", "ac1", 0x00010001,
5162                               0xffffffff, 0xffffffff, 0xffffffff, t2, t4);
5163   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac2, $t0, $t8", "ac2", 0x7fff7fff,
5164                               0x7fff7fff, 0xffffffff, 0xffffffff, t0, t8);
5165   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac0, $t0, $t1", "ac0", 0x0000c420,
5166                               0x00000555, 0x00000000, 0x0fde3126, t0, t1);
5167   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac1, $t2, $t3", "ac1", 0x00000000,
5168                               0x00000000, 0x00000000, 0x55555555, t2, t3);
5169   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac2, $t4, $t1", "ac2", 0x80000000,
5170                               0x80000000, 0xffffffff, 0xffff2435, t4, t1);
5171   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac3, $t6, $t7", "ac3", 0xaaaaaaaa,
5172                               0x55555555, 0xffffffff, 0xabababab, t6, t7);
5173   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac0, $t5, $t3", "ac0", 0x00000018,
5174                               0xffff2435, 0xffffffff, 0xfc79b4d2, t5, t3);
5175   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac1, $t2, $t4", "ac1", 0xbabababa,
5176                               0xabababab, 0x00000000, 0x00000000, t2, t4);
5177   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac2, $t0, $t8", "ac2", 0xf0f0f0f0,
5178                               0xfc79b4d2, 0x00000000, 0x00000000, t0, t8);
5179   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac3, $t4, $t5", "ac3", 0xfbde3976,
5180                               0x00000000, 0x00000000, 0x12349876, t4, t5);
5181   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac0, $t0, $t1", "ac0", 0x23534870,
5182                               0x00354565, 0x00000000, 0x00354565, t0, t1);
5183   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac1, $t2, $t3", "ac1", 0x980b7cde,
5184                               0x00086755, 0x00000000, 0x00086755, t2, t3);
5185   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac2, $t4, $t1", "ac2", 0x00000018,
5186                               0x8f8f8f8f, 0xffffffff, 0x8f8f8f8f, t4, t1);
5187   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac3, $t6, $t7", "ac3", 0x92784656,
5188                               0xeeeeeeee, 0xffffffff, 0xeeeeeeee, t6, t7);
5189   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac0, $t5, $t3", "ac0", 0xcacacaca,
5190                               0x1bdbdbdb, 0x00000000, 0x1bdbdbdb, t5, t3);
5191   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac1, $t2, $t4", "ac1", 0xbacabaca,
5192                               0xdecadeca, 0xffffffff, 0xdecadeca, t2, t4);
5193   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac2, $t0, $t8", "ac2", 0x12fadeb4,
5194                               0x93474bde, 0xffffffff, 0x93474bde, t0, t8);
5195   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac3, $t4, $t5", "ac3", 0x7c000790,
5196                               0xfc0007ff, 0xffffffff, 0xfabfabfa, t4, t5);
5197   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac2, $t0, $t8", "ac2", 0xffffffff,
5198                               0xffffffff, 0x00000000, 0x083b3571, t0, t8);
5199   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac0, $t0, $t1", "ac0", 0x24a3291e,
5200                               0x5648e540, 0xffffffff, 0xb9743941, t0, t1);
5201   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac1, $t2, $t3", "ac1", 0xdd91eebf,
5202                               0xc54f79e6, 0xffffffff, 0xbce5f924, t2, t3);
5203   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac2, $t4, $t1", "ac2", 0xf7ce2ec6,
5204                               0x5fc92974, 0xffffffff, 0xcc3c201c, t4, t1);
5205   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac3, $t6, $t7", "ac3", 0xbc1083e8,
5206                               0x7e08184e, 0x00000000, 0x1ebaf88e, t6, t7);
5207   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac0, $t5, $t3", "ac0", 0xa617cc31,
5208                               0x71c8315f, 0x00000000, 0x722d5e20, t5, t3);
5209   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac1, $t2, $t4", "ac1", 0xdfe1e8f0,
5210                               0x9493110e, 0xffffffff, 0xa1d6f791, t2, t4);
5211   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac2, $t0, $t8", "ac2", 0x31458a23,
5212                               0xbb246228, 0x00000000, 0x7b11bee7, t0, t8);
5213   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac3, $t4, $t5", "ac3", 0x848af791,
5214                               0x339d8d88, 0xffffffff, 0xa5631488, t4, t5);
5215   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac0, $t0, $t1", "ac0", 0xda3bacdc,
5216                               0x70974249, 0xffffffff, 0xb10bcc65, t0, t1);
5217   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac1, $t2, $t3", "ac1", 0x649d5cbd,
5218                               0x8a8d4e7d, 0x00000000, 0x73f39fca, t2, t3);
5219   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac2, $t4, $t1", "ac2", 0xc0c8c881,
5220                               0xeb1b4335, 0x00000000, 0x5648e540, t4, t1);
5221   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac3, $t6, $t7", "ac3", 0x7dd81a20,
5222                               0x0cd6b508, 0xffffffff, 0xc54f79e6, t6, t7);
5223   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac0, $t5, $t3", "ac0", 0x7fff7fff,
5224                               0x6731e282, 0x00000000, 0x5fc92974, t5, t3);
5225   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac1, $t2, $t4", "ac1", 0x00000555,
5226                               0xb6edf28f, 0x00000000, 0x7e08184e, t2, t4);
5227   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac2, $t0, $t8", "ac2", 0x00000000,
5228                               0x4b4ec9ca, 0x00000000, 0x71c8315f, t0, t8);
5229   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac3, $t4, $t5", "ac3", 0x80000000,
5230                               0xc1037fa4, 0xffffffff, 0x9493110e, t4, t5);
5231   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac1, $t2, $t4", "ac1", 0x55555555,
5232                               0xcb4ab48f, 0xffffffff, 0xbb246228, t2, t4);
5233   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac2, $t0, $t8", "ac2", 0xffff8000,
5234                               0xaf8f8000, 0x00000000, 0x339d8d88, t0, t8);
5235   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac0, $t0, $t1", "ac0", 0xabababab,
5236                               0x87df4510, 0x00000000, 0x70974249, t0, t1);
5237   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac1, $t2, $t3", "ac1", 0xfc79b4d2,
5238                               0xabf4e8e1, 0xffffffff, 0x8a8d4e7d, t2, t3);
5239   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac2, $t4, $t1", "ac2", 0x00000000,
5240                               0xf4c0eeac, 0xffffffff, 0xeb1b4335, t4, t1);
5241   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac3, $t6, $t7", "ac3", 0x00354565,
5242                               0x006a54f2, 0x00000000, 0x0cd6b508, t6, t7);
5243   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac0, $t5, $t3", "ac0", 0x00086755,
5244                               0x79f74493, 0x00000000, 0x6731e282, t5, t3);
5245   TESTDSPINST_AC_RS_RT_NODSPC("multu $ac1, $t2, $t4", "ac1", 0xffff8000,
5246                               0x9c098000, 0xffffffff, 0xb6edf28f, t2, t4);
5247
5248   printf("-------- PACKRL.PH --------\n");
5249   TESTDSPINST_RD_RS_RT_NODSPC("packrl.ph $t0, $t1, $t2", 0x00000000,
5250                               0x00000000, t0, t1, t2);
5251   TESTDSPINST_RD_RS_RT_NODSPC("packrl.ph $t2, $t3, $t4", 0x045fb232,
5252                               0x00028632, t2, t3, t4);
5253   TESTDSPINST_RD_RS_RT_NODSPC("packrl.ph $t4, $t1, $t5", 0xfabc3435,
5254                               0xfabc3421, t4, t1, t5);
5255   TESTDSPINST_RD_RS_RT_NODSPC("packrl.ph $t6, $t7, $t3", 0x07654cb8,
5256                               0x734680bc, t6, t7, t3);
5257   TESTDSPINST_RD_RS_RT_NODSPC("packrl.ph $t5, $t3, $t2", 0xf973437b,
5258                               0x80000000, t5, t3, t2);
5259   TESTDSPINST_RD_RS_RT_NODSPC("packrl.ph $t2, $t4, $t8", 0x00ff0001,
5260                               0xff01ffff, t2, t4, t8);
5261   TESTDSPINST_RD_RS_RT_NODSPC("packrl.ph $t0, $t8, $t0", 0x7fff7fff,
5262                               0x7fff7fff, t0, t8, t0);
5263   TESTDSPINST_RD_RS_RT_NODSPC("packrl.ph $t4, $t6, $t1", 0x0000c420,
5264                               0x00000555, t4, t6, t1);
5265   TESTDSPINST_RD_RS_RT_NODSPC("packrl.ph $t0, $t1, $t2", 0x00000000,
5266                               0x00000000, t0, t1, t2);
5267   TESTDSPINST_RD_RS_RT_NODSPC("packrl.ph $t2, $t3, $t4", 0x80000000,
5268                               0x80000000, t2, t3, t4);
5269   TESTDSPINST_RD_RS_RT_NODSPC("packrl.ph $t4, $t1, $t5", 0xaaaaaaaa,
5270                               0x55555555, t4, t1, t5);
5271   TESTDSPINST_RD_RS_RT_NODSPC("packrl.ph $t6, $t7, $t3", 0x00000018,
5272                               0xffff2435, t6, t7, t3);
5273   TESTDSPINST_RD_RS_RT_NODSPC("packrl.ph $t5, $t3, $t2", 0xbabababa,
5274                               0xabababab, t5, t3, t2);
5275   TESTDSPINST_RD_RS_RT_NODSPC("packrl.ph $t2, $t4, $t8", 0xf0f0f0f0,
5276                               0xfc79b4d2, t2, t4, t8);
5277   TESTDSPINST_RD_RS_RT_NODSPC("packrl.ph $t0, $t8, $t0", 0xfbde3976,
5278                               0x00000000, t0, t8, t0);
5279   TESTDSPINST_RD_RS_RT_NODSPC("packrl.ph $t4, $t6, $t1", 0x23534870,
5280                               0x00354565, t4, t6, t1);
5281   TESTDSPINST_RD_RS_RT_NODSPC("packrl.ph $t0, $t1, $t2", 0x980b7cde,
5282                               0x00086755, t0, t1, t2);
5283   TESTDSPINST_RD_RS_RT_NODSPC("packrl.ph $t2, $t3, $t4", 0x00000018,
5284                               0x8f8f8f8f, t2, t3, t4);
5285   TESTDSPINST_RD_RS_RT_NODSPC("packrl.ph $t4, $t1, $t5", 0x92784656,
5286                               0xeeeeeeee, t4, t1, t5);
5287   TESTDSPINST_RD_RS_RT_NODSPC("packrl.ph $t6, $t7, $t3", 0xcacacaca,
5288                               0x1bdbdbdb, t6, t7, t3);
5289   TESTDSPINST_RD_RS_RT_NODSPC("packrl.ph $t5, $t3, $t2", 0xbacabaca,
5290                               0xdecadeca, t5, t3, t2);
5291   TESTDSPINST_RD_RS_RT_NODSPC("packrl.ph $t2, $t4, $t8", 0x12fadeb4,
5292                               0x93474bde, t2, t4, t8);
5293   TESTDSPINST_RD_RS_RT_NODSPC("packrl.ph $t0, $t8, $t0", 0x7c000790,
5294                               0xfc0007ff, t0, t8, t0);
5295   TESTDSPINST_RD_RS_RT_NODSPC("packrl.ph $t4, $t6, $t1", 0xffffffff,
5296                               0xffffffff, t4, t6, t1);
5297   TESTDSPINST_RD_RS_RT_NODSPC("packrl.ph $t0, $t1, $t2", 0xf2f4df1f,
5298                               0xcb4ab48f, t0, t1, t2);
5299   TESTDSPINST_RD_RS_RT_NODSPC("packrl.ph $t2, $t3, $t4", 0x435f909a,
5300                               0xaf8f7e18, t2, t3, t4);
5301   TESTDSPINST_RD_RS_RT_NODSPC("packrl.ph $t4, $t1, $t5", 0x2106ba5f,
5302                               0x87df4510, t4, t1, t5);
5303   TESTDSPINST_RD_RS_RT_NODSPC("packrl.ph $t6, $t7, $t3", 0x246a6376,
5304                               0xabf4e8e1, t6, t7, t3);
5305   TESTDSPINST_RD_RS_RT_NODSPC("packrl.ph $t5, $t3, $t2", 0x1046a1a3,
5306                               0xf4c0eeac, t5, t3, t2);
5307   TESTDSPINST_RD_RS_RT_NODSPC("packrl.ph $t2, $t4, $t8", 0x638ca515,
5308                               0x006a54f2, t2, t4, t8);
5309   TESTDSPINST_RD_RS_RT_NODSPC("packrl.ph $t0, $t8, $t0", 0xf63e7a9d,
5310                               0x79f74493, t0, t8, t0);
5311   TESTDSPINST_RD_RS_RT_NODSPC("packrl.ph $t4, $t6, $t1", 0xbd6845cd,
5312                               0x9c09e313, t4, t6, t1);
5313
5314   printf("-------- PICK.QB --------\n");
5315   TESTDSPINST_PICK("pick.qb $t5, $t3, $t2", "cmp.eq.ph $t3, $t2", 0xf973437b,
5316                    0x807343bc, t5, t3, t2);
5317   TESTDSPINST_PICK("pick.qb $t2, $t4, $t8", "cmp.eq.ph $t4, $t8", 0x00ff0001,
5318                    0x00ff0001, t2, t4, t8);
5319   TESTDSPINST_PICK("pick.qb $t3, $t8, $t0", "cmp.eq.ph $t8, $t0", 0x7fff7fff,
5320                    0x7fff7fff, t3, t8, t0);
5321   TESTDSPINST_PICK("pick.qb $t4, $t6, $t1", "cmp.eq.ph $t6, $t1", 0x0000c420,
5322                    0x00000555, t4, t6, t1);
5323   TESTDSPINST_PICK("pick.qb $t2, $t3, $t4", "cmp.lt.ph $t3, $t4", 0xf973437b,
5324                    0x807342bc, t2, t3, t4);
5325   TESTDSPINST_PICK("pick.qb $t4, $t1, $t5", "cmp.lt.ph $t1, $t5", 0x00ff0001,
5326                    0xff0100ff, t4, t1, t5);
5327   TESTDSPINST_PICK("pick.qb $t6, $t7, $t3", "cmp.lt.ph $t7, $t3", 0x7fff7fff,
5328                    0x7fff7fff, t6, t7, t3);
5329   TESTDSPINST_PICK("pick.qb $t0, $t1, $t2", "cmp.lt.ph $t1, $t2", 0x0000c420,
5330                    0x00000555, t0, t1, t2);
5331   TESTDSPINST_PICK("pick.qb $t2, $t3, $t4", "cmp.le.ph $t3, $t4", 0xf973437b,
5332                    0x807342bc, t2, t3, t4);
5333   TESTDSPINST_PICK("pick.qb $t4, $t1, $t5", "cmp.le.ph $t1, $t5", 0x00ff0001,
5334                    0xff0100ff, t4, t1, t5);
5335   TESTDSPINST_PICK("pick.qb $t6, $t7, $t3", "cmp.le.ph $t7, $t3", 0x7fff7fff,
5336                    0x7fff7fff, t6, t7, t3);
5337   TESTDSPINST_PICK("pick.qb $t0, $t1, $t2", "cmp.le.ph $t1, $t2", 0x0000c420,
5338                    0x00000555, t0, t1, t2);
5339   TESTDSPINST_PICK("pick.qb $t5, $t3, $t2", "cmp.eq.ph $t3, $t2", 0x1046a1a3,
5340                    0xf4c0eeac, t5, t3, t2);
5341   TESTDSPINST_PICK("pick.qb $t2, $t4, $t8", "cmp.eq.ph $t4, $t8", 0x638ca515,
5342                    0x006a54f2, t2, t4, t8);
5343   TESTDSPINST_PICK("pick.qb $t3, $t8, $t0", "cmp.eq.ph $t8, $t0", 0xf63e7a9d,
5344                    0x79f74493, t3, t8, t0);
5345   TESTDSPINST_PICK("pick.qb $t4, $t6, $t1", "cmp.eq.ph $t6, $t1", 0xbd6845cd,
5346                    0x9c09e313, t4, t6, t1);
5347   TESTDSPINST_PICK("pick.qb $t2, $t3, $t4", "cmp.lt.ph $t3, $t4", 0x1046a1a3,
5348                    0xf4c0eeac, t2, t3, t4);
5349   TESTDSPINST_PICK("pick.qb $t4, $t1, $t5", "cmp.lt.ph $t1, $t5", 0x638ca515,
5350                    0x006a54f2, t4, t1, t5);
5351   TESTDSPINST_PICK("pick.qb $t6, $t7, $t3", "cmp.lt.ph $t7, $t3", 0xf63e7a9d,
5352                    0x79f74493, t6, t7, t3);
5353   TESTDSPINST_PICK("pick.qb $t0, $t1, $t2", "cmp.lt.ph $t1, $t2", 0xbd6845cd,
5354                    0x9c09e313, t0, t1, t2);
5355   TESTDSPINST_PICK("pick.qb $t2, $t3, $t4", "cmp.le.ph $t3, $t4", 0x1046a1a3,
5356                    0xf4c0eeac, t2, t3, t4);
5357   TESTDSPINST_PICK("pick.qb $t4, $t1, $t5", "cmp.le.ph $t1, $t5", 0x638ca515,
5358                    0x006a54f2, t4, t1, t5);
5359   TESTDSPINST_PICK("pick.qb $t6, $t7, $t3", "cmp.le.ph $t7, $t3", 0xf63e7a9d,
5360                    0x79f74493, t6, t7, t3);
5361   TESTDSPINST_PICK("pick.qb $t0, $t1, $t2", "cmp.le.ph $t1, $t2", 0xbd6845cd,
5362                    0x9c09e313, t0, t1, t2);
5363   TESTDSPINST_PICK("pick.qb $t5, $t3, $t2", "cmp.eq.ph $t3, $t2", 0x92784656,
5364                    0xeeeeeeee, t5, t3, t2);
5365   TESTDSPINST_PICK("pick.qb $t2, $t4, $t8", "cmp.eq.ph $t4, $t8", 0xcacacaca,
5366                    0x1bdbdbdb, t2, t4, t8);
5367   TESTDSPINST_PICK("pick.qb $t3, $t8, $t0", "cmp.eq.ph $t8, $t0", 0xbacabaca,
5368                    0xdecadeca, t3, t8, t0);
5369   TESTDSPINST_PICK("pick.qb $t4, $t6, $t1", "cmp.eq.ph $t6, $t1", 0x12fadeb4,
5370                    0x93474bde, t4, t6, t1);
5371   TESTDSPINST_PICK("pick.qb $t2, $t3, $t4", "cmp.lt.ph $t3, $t4", 0x92784656,
5372                    0xeeeeeeee, t2, t3, t4);
5373   TESTDSPINST_PICK("pick.qb $t4, $t1, $t5", "cmp.lt.ph $t1, $t5", 0xcacacaca,
5374                    0x1bdbdbdb, t4, t1, t5);
5375   TESTDSPINST_PICK("pick.qb $t6, $t7, $t3", "cmp.lt.ph $t7, $t3", 0xbacabaca,
5376                    0xdecadeca, t6, t7, t3);
5377   TESTDSPINST_PICK("pick.qb $t0, $t1, $t2", "cmp.lt.ph $t1, $t2", 0x12fadeb4,
5378                    0x93474bde, t0, t1, t2);
5379   TESTDSPINST_PICK("pick.qb $t2, $t3, $t4", "cmp.le.ph $t3, $t4", 0x92784656,
5380                    0xeeeeeeee, t2, t3, t4);
5381   TESTDSPINST_PICK("pick.qb $t4, $t1, $t5", "cmp.le.ph $t1, $t5", 0xcacacaca,
5382                    0x1bdbdbdb, t4, t1, t5);
5383   TESTDSPINST_PICK("pick.qb $t6, $t7, $t3", "cmp.le.ph $t7, $t3", 0xbacabaca,
5384                    0xdecadeca, t6, t7, t3);
5385   TESTDSPINST_PICK("pick.qb $t0, $t1, $t2", "cmp.le.ph $t1, $t2", 0x12fadeb4,
5386                    0x93474bde, t0, t1, t2);
5387
5388   printf("-------- PRECEQ.W.PHL --------\n");
5389   TESTDSPINST_RD_RT_NODSPC("preceq.w.phl $t0, $t1", 0x00000000, t0, t1);
5390   TESTDSPINST_RD_RT_NODSPC("preceq.w.phl $t2, $t3", 0x80003286, t2, t3);
5391   TESTDSPINST_RD_RT_NODSPC("preceq.w.phl $t4, $t1", 0xfabc2435, t4, t1);
5392   TESTDSPINST_RD_RT_NODSPC("preceq.w.phl $t6, $t7", 0x73468000, t6, t7);
5393   TESTDSPINST_RD_RT_NODSPC("preceq.w.phl $t5, $t3", 0x80000000, t5, t3);
5394   TESTDSPINST_RD_RT_NODSPC("preceq.w.phl $t2, $t4", 0xffffffff, t2, t4);
5395   TESTDSPINST_RD_RT_NODSPC("preceq.w.phl $t0, $t8", 0xfff45fff, t0, t8);
5396   TESTDSPINST_RD_RT_NODSPC("preceq.w.phl $t4, $t4", 0x00000555, t4, t4);
5397   TESTDSPINST_RD_RT_NODSPC("preceq.w.phl $t0, $t1", 0x00005340, t0, t1);
5398   TESTDSPINST_RD_RT_NODSPC("preceq.w.phl $t2, $t3", 0x80000000, t2, t3);
5399   TESTDSPINST_RD_RT_NODSPC("preceq.w.phl $t4, $t1", 0x55555555, t4, t1);
5400   TESTDSPINST_RD_RT_NODSPC("preceq.w.phl $t6, $t7", 0xffff2435, t6, t7);
5401   TESTDSPINST_RD_RT_NODSPC("preceq.w.phl $t5, $t3", 0xabababab, t5, t3);
5402   TESTDSPINST_RD_RT_NODSPC("preceq.w.phl $t2, $t4", 0xfc79b4d2, t2, t4);
5403   TESTDSPINST_RD_RT_NODSPC("preceq.w.phl $t0, $t8", 0x00000000, t0, t8);
5404   TESTDSPINST_RD_RT_NODSPC("preceq.w.phl $t4, $t4", 0x00354565, t4, t4);
5405   TESTDSPINST_RD_RT_NODSPC("preceq.w.phl $t0, $t1", 0x00086755, t0, t1);
5406   TESTDSPINST_RD_RT_NODSPC("preceq.w.phl $t2, $t3", 0x8f8f8f8f, t2, t3);
5407   TESTDSPINST_RD_RT_NODSPC("preceq.w.phl $t4, $t1", 0xeeeeeeee, t4, t1);
5408   TESTDSPINST_RD_RT_NODSPC("preceq.w.phl $t6, $t7", 0x1bdbdbdb, t6, t7);
5409   TESTDSPINST_RD_RT_NODSPC("preceq.w.phl $t5, $t3", 0xdecadeca, t5, t3);
5410   TESTDSPINST_RD_RT_NODSPC("preceq.w.phl $t2, $t4", 0x93474bde, t2, t4);
5411   TESTDSPINST_RD_RT_NODSPC("preceq.w.phl $t0, $t8", 0xfc0007ff, t0, t8);
5412   TESTDSPINST_RD_RT_NODSPC("preceq.w.phl $t4, $t4", 0xffffffff, t4, t4);
5413   TESTDSPINST_RD_RT_NODSPC("preceq.w.phl $t0, $t1", 0xcb4ab48f, t0, t1);
5414   TESTDSPINST_RD_RT_NODSPC("preceq.w.phl $t2, $t3", 0xaf8f7e18, t2, t3);
5415   TESTDSPINST_RD_RT_NODSPC("preceq.w.phl $t4, $t1", 0x87df4510, t4, t1);
5416   TESTDSPINST_RD_RT_NODSPC("preceq.w.phl $t6, $t7", 0xabf4e8e1, t6, t7);
5417   TESTDSPINST_RD_RT_NODSPC("preceq.w.phl $t5, $t3", 0xf4c0eeac, t5, t3);
5418   TESTDSPINST_RD_RT_NODSPC("preceq.w.phl $t2, $t4", 0x006a54f2, t2, t4);
5419   TESTDSPINST_RD_RT_NODSPC("preceq.w.phl $t0, $t8", 0x79f74493, t0, t8);
5420   TESTDSPINST_RD_RT_NODSPC("preceq.w.phl $t4, $t4", 0x9c09e313, t4, t4);
5421
5422   printf("-------- PICK.PH --------\n");
5423   TESTDSPINST_PICK("pick.ph $t5, $t3, $t2", "cmp.eq.ph $t3, $t2", 0xf973437b,
5424                    0x807343bc, t5, t3, t2);
5425   TESTDSPINST_PICK("pick.ph $t2, $t4, $t8", "cmp.eq.ph $t4, $t8", 0x00ff0001,
5426                    0x00ff0001, t2, t4, t8);
5427   TESTDSPINST_PICK("pick.ph $t3, $t8, $t0", "cmp.eq.ph $t8, $t0", 0x7fff7fff,
5428                    0x7fff7fff, t3, t8, t0);
5429   TESTDSPINST_PICK("pick.ph $t4, $t6, $t1", "cmp.eq.ph $t6, $t1", 0x0000c420,
5430                    0x00000555, t4, t6, t1);
5431   TESTDSPINST_PICK("pick.ph $t2, $t3, $t4", "cmp.lt.ph $t3, $t4", 0xf973437b,
5432                    0x807342bc, t2, t3, t4);
5433   TESTDSPINST_PICK("pick.ph $t4, $t1, $t5", "cmp.lt.ph $t1, $t5", 0x00ff0001,
5434                    0xff0100ff, t4, t1, t5);
5435   TESTDSPINST_PICK("pick.ph $t6, $t7, $t3", "cmp.lt.ph $t7, $t3", 0x7fff7fff,
5436                    0x7fff7fff, t6, t7, t3);
5437   TESTDSPINST_PICK("pick.ph $t0, $t1, $t2", "cmp.lt.ph $t1, $t2", 0x0000c420,
5438                    0x00000555, t0, t1, t2);
5439   TESTDSPINST_PICK("pick.ph $t2, $t3, $t4", "cmp.le.ph $t3, $t4", 0xf973437b,
5440                    0x807342bc, t2, t3, t4);
5441   TESTDSPINST_PICK("pick.ph $t4, $t1, $t5", "cmp.le.ph $t1, $t5", 0x00ff0001,
5442                    0xff0100ff, t4, t1, t5);
5443   TESTDSPINST_PICK("pick.ph $t6, $t7, $t3", "cmp.le.ph $t7, $t3", 0x7fff7fff,
5444                    0x7fff7fff, t6, t7, t3);
5445   TESTDSPINST_PICK("pick.ph $t0, $t1, $t2", "cmp.le.ph $t1, $t2", 0x0000c420,
5446                    0x00000555, t0, t1, t2);
5447   TESTDSPINST_PICK("pick.ph $t5, $t3, $t2", "cmp.eq.ph $t3, $t2", 0x1046a1a3,
5448                    0xf4c0eeac, t5, t3, t2);
5449   TESTDSPINST_PICK("pick.ph $t2, $t4, $t8", "cmp.eq.ph $t4, $t8", 0x638ca515,
5450                    0x006a54f2, t2, t4, t8);
5451   TESTDSPINST_PICK("pick.ph $t3, $t8, $t0", "cmp.eq.ph $t8, $t0", 0xf63e7a9d,
5452                    0x79f74493, t3, t8, t0);
5453   TESTDSPINST_PICK("pick.ph $t4, $t6, $t1", "cmp.eq.ph $t6, $t1", 0xbd6845cd,
5454                    0x9c09e313, t4, t6, t1);
5455   TESTDSPINST_PICK("pick.ph $t2, $t3, $t4", "cmp.lt.ph $t3, $t4", 0x1046a1a3,
5456                    0xf4c0eeac, t2, t3, t4);
5457   TESTDSPINST_PICK("pick.ph $t4, $t1, $t5", "cmp.lt.ph $t1, $t5", 0x638ca515,
5458                    0x006a54f2, t4, t1, t5);
5459   TESTDSPINST_PICK("pick.ph $t6, $t7, $t3", "cmp.lt.ph $t7, $t3", 0xf63e7a9d,
5460                    0x79f74493, t6, t7, t3);
5461   TESTDSPINST_PICK("pick.ph $t0, $t1, $t2", "cmp.lt.ph $t1, $t2", 0xbd6845cd,
5462                    0x9c09e313, t0, t1, t2);
5463   TESTDSPINST_PICK("pick.ph $t2, $t3, $t4", "cmp.le.ph $t3, $t4", 0x1046a1a3,
5464                    0xf4c0eeac, t2, t3, t4);
5465   TESTDSPINST_PICK("pick.ph $t4, $t1, $t5", "cmp.le.ph $t1, $t5", 0x638ca515,
5466                    0x006a54f2, t4, t1, t5);
5467   TESTDSPINST_PICK("pick.ph $t6, $t7, $t3", "cmp.le.ph $t7, $t3", 0xf63e7a9d,
5468                    0x79f74493, t6, t7, t3);
5469   TESTDSPINST_PICK("pick.ph $t0, $t1, $t2", "cmp.le.ph $t1, $t2", 0xbd6845cd,
5470                    0x9c09e313, t0, t1, t2);
5471   TESTDSPINST_PICK("pick.ph $t5, $t3, $t2", "cmp.eq.ph $t3, $t2", 0x92784656,
5472                    0xeeeeeeee, t5, t3, t2);
5473   TESTDSPINST_PICK("pick.ph $t2, $t4, $t8", "cmp.eq.ph $t4, $t8", 0xcacacaca,
5474                    0x1bdbdbdb, t2, t4, t8);
5475   TESTDSPINST_PICK("pick.ph $t3, $t8, $t0", "cmp.eq.ph $t8, $t0", 0xbacabaca,
5476                    0xdecadeca, t3, t8, t0);
5477   TESTDSPINST_PICK("pick.ph $t4, $t6, $t1", "cmp.eq.ph $t6, $t1", 0x12fadeb4,
5478                    0x93474bde, t4, t6, t1);
5479   TESTDSPINST_PICK("pick.ph $t2, $t3, $t4", "cmp.lt.ph $t3, $t4", 0x92784656,
5480                    0xeeeeeeee, t2, t3, t4);
5481   TESTDSPINST_PICK("pick.ph $t4, $t1, $t5", "cmp.lt.ph $t1, $t5", 0xcacacaca,
5482                    0x1bdbdbdb, t4, t1, t5);
5483   TESTDSPINST_PICK("pick.ph $t6, $t7, $t3", "cmp.lt.ph $t7, $t3", 0xbacabaca,
5484                    0xdecadeca, t6, t7, t3);
5485   TESTDSPINST_PICK("pick.ph $t0, $t1, $t2", "cmp.lt.ph $t1, $t2", 0x12fadeb4,
5486                    0x93474bde, t0, t1, t2);
5487   TESTDSPINST_PICK("pick.ph $t2, $t3, $t4", "cmp.le.ph $t3, $t4", 0x92784656,
5488                    0xeeeeeeee, t2, t3, t4);
5489   TESTDSPINST_PICK("pick.ph $t4, $t1, $t5", "cmp.le.ph $t1, $t5", 0xcacacaca,
5490                    0x1bdbdbdb, t4, t1, t5);
5491   TESTDSPINST_PICK("pick.ph $t6, $t7, $t3", "cmp.le.ph $t7, $t3", 0xbacabaca,
5492                    0xdecadeca, t6, t7, t3);
5493   TESTDSPINST_PICK("pick.ph $t0, $t1, $t2", "cmp.le.ph $t1, $t2", 0x12fadeb4,
5494                    0x93474bde, t0, t1, t2);
5495
5496   printf("-------- PRECEQ.W.PHR --------\n");
5497   TESTDSPINST_RD_RT_NODSPC("preceq.w.phr $t0, $t1", 0x00000000, t0, t1);
5498   TESTDSPINST_RD_RT_NODSPC("preceq.w.phr $t2, $t3", 0x80003286, t2, t3);
5499   TESTDSPINST_RD_RT_NODSPC("preceq.w.phr $t4, $t1", 0xfabc2435, t4, t1);
5500   TESTDSPINST_RD_RT_NODSPC("preceq.w.phr $t6, $t7", 0x73468000, t6, t7);
5501   TESTDSPINST_RD_RT_NODSPC("preceq.w.phr $t5, $t3", 0x80000000, t5, t3);
5502   TESTDSPINST_RD_RT_NODSPC("preceq.w.phr $t2, $t4", 0xffffffff, t2, t4);
5503   TESTDSPINST_RD_RT_NODSPC("preceq.w.phr $t0, $t8", 0xfff45fff, t0, t8);
5504   TESTDSPINST_RD_RT_NODSPC("preceq.w.phr $t4, $t4", 0x00000555, t4, t4);
5505   TESTDSPINST_RD_RT_NODSPC("preceq.w.phr $t0, $t1", 0x00005340, t0, t1);
5506   TESTDSPINST_RD_RT_NODSPC("preceq.w.phr $t2, $t3", 0x80000000, t2, t3);
5507   TESTDSPINST_RD_RT_NODSPC("preceq.w.phr $t4, $t1", 0x55555555, t4, t1);
5508   TESTDSPINST_RD_RT_NODSPC("preceq.w.phr $t6, $t7", 0xffff2435, t6, t7);
5509   TESTDSPINST_RD_RT_NODSPC("preceq.w.phr $t5, $t3", 0xabababab, t5, t3);
5510   TESTDSPINST_RD_RT_NODSPC("preceq.w.phr $t2, $t4", 0xfc79b4d2, t2, t4);
5511   TESTDSPINST_RD_RT_NODSPC("preceq.w.phr $t0, $t8", 0x00000000, t0, t8);
5512   TESTDSPINST_RD_RT_NODSPC("preceq.w.phr $t4, $t4", 0x00354565, t4, t4);
5513   TESTDSPINST_RD_RT_NODSPC("preceq.w.phr $t0, $t1", 0x00086755, t0, t1);
5514   TESTDSPINST_RD_RT_NODSPC("preceq.w.phr $t2, $t3", 0x8f8f8f8f, t2, t3);
5515   TESTDSPINST_RD_RT_NODSPC("preceq.w.phr $t4, $t1", 0xeeeeeeee, t4, t1);
5516   TESTDSPINST_RD_RT_NODSPC("preceq.w.phr $t6, $t7", 0x1bdbdbdb, t6, t7);
5517   TESTDSPINST_RD_RT_NODSPC("preceq.w.phr $t5, $t3", 0xdecadeca, t5, t3);
5518   TESTDSPINST_RD_RT_NODSPC("preceq.w.phr $t2, $t4", 0x93474bde, t2, t4);
5519   TESTDSPINST_RD_RT_NODSPC("preceq.w.phr $t0, $t8", 0xfc0007ff, t0, t8);
5520   TESTDSPINST_RD_RT_NODSPC("preceq.w.phr $t4, $t4", 0xffffffff, t4, t4);
5521   TESTDSPINST_RD_RT_NODSPC("preceq.w.phr $t0, $t1", 0xcb4ab48f, t0, t1);
5522   TESTDSPINST_RD_RT_NODSPC("preceq.w.phr $t2, $t3", 0xaf8f7e18, t2, t3);
5523   TESTDSPINST_RD_RT_NODSPC("preceq.w.phr $t4, $t1", 0x87df4510, t4, t1);
5524   TESTDSPINST_RD_RT_NODSPC("preceq.w.phr $t6, $t7", 0xabf4e8e1, t6, t7);
5525   TESTDSPINST_RD_RT_NODSPC("preceq.w.phr $t5, $t3", 0xf4c0eeac, t5, t3);
5526   TESTDSPINST_RD_RT_NODSPC("preceq.w.phr $t2, $t4", 0x006a54f2, t2, t4);
5527   TESTDSPINST_RD_RT_NODSPC("preceq.w.phr $t0, $t8", 0x79f74493, t0, t8);
5528   TESTDSPINST_RD_RT_NODSPC("preceq.w.phr $t4, $t4", 0x9c09e313, t4, t4);
5529
5530   printf("-------- PRECEQU.PH.QBL --------\n");
5531   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbl $t0, $t1", 0x00000000, t0, t1);
5532   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbl $t2, $t3", 0x80003286, t2, t3);
5533   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbl $t4, $t1", 0xfabc2435, t4, t1);
5534   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbl $t6, $t7", 0x73468000, t6, t7);
5535   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbl $t5, $t3", 0x80000000, t5, t3);
5536   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbl $t2, $t4", 0xffffffff, t2, t4);
5537   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbl $t0, $t8", 0xfff45fff, t0, t8);
5538   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbl $t4, $t4", 0x00000555, t4, t4);
5539   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbl $t0, $t1", 0x00005340, t0, t1);
5540   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbl $t2, $t3", 0x80000000, t2, t3);
5541   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbl $t4, $t1", 0x55555555, t4, t1);
5542   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbl $t6, $t7", 0xffff2435, t6, t7);
5543   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbl $t5, $t3", 0xabababab, t5, t3);
5544   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbl $t2, $t4", 0xfc79b4d2, t2, t4);
5545   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbl $t0, $t8", 0x00000000, t0, t8);
5546   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbl $t4, $t4", 0x00354565, t4, t4);
5547   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbl $t0, $t1", 0x00086755, t0, t1);
5548   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbl $t2, $t3", 0x8f8f8f8f, t2, t3);
5549   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbl $t4, $t1", 0xeeeeeeee, t4, t1);
5550   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbl $t6, $t7", 0x1bdbdbdb, t6, t7);
5551   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbl $t5, $t3", 0xdecadeca, t5, t3);
5552   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbl $t2, $t4", 0x93474bde, t2, t4);
5553   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbl $t0, $t8", 0xfc0007ff, t0, t8);
5554   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbl $t4, $t4", 0xffffffff, t4, t4);
5555   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbl $t0, $t1", 0xcb4ab48f, t0, t1);
5556   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbl $t2, $t3", 0xaf8f7e18, t2, t3);
5557   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbl $t4, $t1", 0x87df4510, t4, t1);
5558   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbl $t6, $t7", 0xabf4e8e1, t6, t7);
5559   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbl $t5, $t3", 0xf4c0eeac, t5, t3);
5560   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbl $t2, $t4", 0x006a54f2, t2, t4);
5561   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbl $t0, $t8", 0x79f74493, t0, t8);
5562   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbl $t4, $t4", 0x9c09e313, t4, t4);
5563
5564   printf("-------- PRECEQU.PH.QBLA --------\n");
5565   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbla $t0, $t1", 0x00000000, t0, t1);
5566   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbla $t2, $t3", 0x80003286, t2, t3);
5567   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbla $t4, $t1", 0xfabc2435, t4, t1);
5568   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbla $t6, $t7", 0x73468000, t6, t7);
5569   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbla $t5, $t3", 0x80000000, t5, t3);
5570   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbla $t2, $t4", 0xffffffff, t2, t4);
5571   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbla $t0, $t8", 0xfff45fff, t0, t8);
5572   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbla $t4, $t4", 0x00000555, t4, t4);
5573   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbla $t0, $t1", 0x00005340, t0, t1);
5574   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbla $t2, $t3", 0x80000000, t2, t3);
5575   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbla $t4, $t1", 0x55555555, t4, t1);
5576   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbla $t6, $t7", 0xffff2435, t6, t7);
5577   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbla $t5, $t3", 0xabababab, t5, t3);
5578   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbla $t2, $t4", 0xfc79b4d2, t2, t4);
5579   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbla $t0, $t8", 0x00000000, t0, t8);
5580   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbla $t4, $t4", 0x00354565, t4, t4);
5581   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbla $t0, $t1", 0x00086755, t0, t1);
5582   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbla $t2, $t3", 0x8f8f8f8f, t2, t3);
5583   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbla $t4, $t1", 0xeeeeeeee, t4, t1);
5584   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbla $t6, $t7", 0x1bdbdbdb, t6, t7);
5585   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbla $t5, $t3", 0xdecadeca, t5, t3);
5586   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbla $t2, $t4", 0x93474bde, t2, t4);
5587   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbla $t0, $t8", 0xfc0007ff, t0, t8);
5588   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbla $t4, $t4", 0xffffffff, t4, t4);
5589   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbla $t0, $t1", 0xcb4ab48f, t0, t1);
5590   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbla $t2, $t3", 0xaf8f7e18, t2, t3);
5591   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbla $t4, $t1", 0x87df4510, t4, t1);
5592   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbla $t6, $t7", 0xabf4e8e1, t6, t7);
5593   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbla $t5, $t3", 0xf4c0eeac, t5, t3);
5594   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbla $t2, $t4", 0x006a54f2, t2, t4);
5595   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbla $t0, $t8", 0x79f74493, t0, t8);
5596   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbla $t4, $t4", 0x9c09e313, t4, t4);
5597
5598   printf("-------- PRECEQU.PH.QBR --------\n");
5599   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbr $t0, $t1", 0x00000000, t0, t1);
5600   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbr $t2, $t3", 0x80003286, t2, t3);
5601   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbr $t4, $t1", 0xfabc2435, t4, t1);
5602   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbr $t6, $t7", 0x73468000, t6, t7);
5603   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbr $t5, $t3", 0x80000000, t5, t3);
5604   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbr $t2, $t4", 0xffffffff, t2, t4);
5605   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbr $t0, $t8", 0xfff45fff, t0, t8);
5606   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbr $t4, $t4", 0x00000555, t4, t4);
5607   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbr $t0, $t1", 0x00005340, t0, t1);
5608   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbr $t2, $t3", 0x80000000, t2, t3);
5609   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbr $t4, $t1", 0x55555555, t4, t1);
5610   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbr $t6, $t7", 0xffff2435, t6, t7);
5611   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbr $t5, $t3", 0xabababab, t5, t3);
5612   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbr $t2, $t4", 0xfc79b4d2, t2, t4);
5613   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbr $t0, $t8", 0x00000000, t0, t8);
5614   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbr $t4, $t4", 0x00354565, t4, t4);
5615   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbr $t0, $t1", 0x00086755, t0, t1);
5616   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbr $t2, $t3", 0x8f8f8f8f, t2, t3);
5617   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbr $t4, $t1", 0xeeeeeeee, t4, t1);
5618   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbr $t6, $t7", 0x1bdbdbdb, t6, t7);
5619   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbr $t5, $t3", 0xdecadeca, t5, t3);
5620   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbr $t2, $t4", 0x93474bde, t2, t4);
5621   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbr $t0, $t8", 0xfc0007ff, t0, t8);
5622   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbr $t4, $t4", 0xffffffff, t4, t4);
5623   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbr $t0, $t1", 0xcb4ab48f, t0, t1);
5624   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbr $t2, $t3", 0xaf8f7e18, t2, t3);
5625   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbr $t4, $t1", 0x87df4510, t4, t1);
5626   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbr $t6, $t7", 0xabf4e8e1, t6, t7);
5627   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbr $t5, $t3", 0xf4c0eeac, t5, t3);
5628   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbr $t2, $t4", 0x006a54f2, t2, t4);
5629   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbr $t0, $t8", 0x79f74493, t0, t8);
5630   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbr $t4, $t4", 0x9c09e313, t4, t4);
5631
5632   printf("-------- PRECEQU.PH.QBRA --------\n");
5633   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbra $t0, $t1", 0x00000000, t0, t1);
5634   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbra $t2, $t3", 0x80003286, t2, t3);
5635   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbra $t4, $t1", 0xfabc2435, t4, t1);
5636   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbra $t6, $t7", 0x73468000, t6, t7);
5637   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbra $t5, $t3", 0x80000000, t5, t3);
5638   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbra $t2, $t4", 0xffffffff, t2, t4);
5639   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbra $t0, $t8", 0xfff45fff, t0, t8);
5640   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbra $t4, $t4", 0x00000555, t4, t4);
5641   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbra $t0, $t1", 0x00005340, t0, t1);
5642   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbra $t2, $t3", 0x80000000, t2, t3);
5643   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbra $t4, $t1", 0x55555555, t4, t1);
5644   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbra $t6, $t7", 0xffff2435, t6, t7);
5645   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbra $t5, $t3", 0xabababab, t5, t3);
5646   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbra $t2, $t4", 0xfc79b4d2, t2, t4);
5647   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbra $t0, $t8", 0x00000000, t0, t8);
5648   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbra $t4, $t4", 0x00354565, t4, t4);
5649   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbra $t0, $t1", 0x00086755, t0, t1);
5650   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbra $t2, $t3", 0x8f8f8f8f, t2, t3);
5651   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbra $t4, $t1", 0xeeeeeeee, t4, t1);
5652   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbra $t6, $t7", 0x1bdbdbdb, t6, t7);
5653   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbra $t5, $t3", 0xdecadeca, t5, t3);
5654   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbra $t2, $t4", 0x93474bde, t2, t4);
5655   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbra $t0, $t8", 0xfc0007ff, t0, t8);
5656   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbra $t4, $t4", 0xffffffff, t4, t4);
5657   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbra $t0, $t1", 0xcb4ab48f, t0, t1);
5658   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbra $t2, $t3", 0xaf8f7e18, t2, t3);
5659   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbra $t4, $t1", 0x87df4510, t4, t1);
5660   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbra $t6, $t7", 0xabf4e8e1, t6, t7);
5661   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbra $t5, $t3", 0xf4c0eeac, t5, t3);
5662   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbra $t2, $t4", 0x006a54f2, t2, t4);
5663   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbra $t0, $t8", 0x79f74493, t0, t8);
5664   TESTDSPINST_RD_RT_NODSPC("precequ.ph.qbra $t4, $t4", 0x9c09e313, t4, t4);
5665
5666   printf("-------- PRECEU.PH.QBL --------\n");
5667   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbl $t0, $t1", 0x00000000, t0, t1);
5668   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbl $t2, $t3", 0x80003286, t2, t3);
5669   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbl $t4, $t1", 0xfabc2435, t4, t1);
5670   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbl $t6, $t7", 0x73468000, t6, t7);
5671   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbl $t5, $t3", 0x80000000, t5, t3);
5672   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbl $t2, $t4", 0xffffffff, t2, t4);
5673   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbl $t0, $t8", 0xfff45fff, t0, t8);
5674   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbl $t4, $t4", 0x00000555, t4, t4);
5675   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbl $t0, $t1", 0x00005340, t0, t1);
5676   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbl $t2, $t3", 0x80000000, t2, t3);
5677   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbl $t4, $t1", 0x55555555, t4, t1);
5678   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbl $t6, $t7", 0xffff2435, t6, t7);
5679   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbl $t5, $t3", 0xabababab, t5, t3);
5680   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbl $t2, $t4", 0xfc79b4d2, t2, t4);
5681   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbl $t0, $t8", 0x00000000, t0, t8);
5682   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbl $t4, $t4", 0x00354565, t4, t4);
5683   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbl $t0, $t1", 0x00086755, t0, t1);
5684   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbl $t2, $t3", 0x8f8f8f8f, t2, t3);
5685   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbl $t4, $t1", 0xeeeeeeee, t4, t1);
5686   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbl $t6, $t7", 0x1bdbdbdb, t6, t7);
5687   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbl $t5, $t3", 0xdecadeca, t5, t3);
5688   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbl $t2, $t4", 0x93474bde, t2, t4);
5689   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbl $t0, $t8", 0xfc0007ff, t0, t8);
5690   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbl $t4, $t4", 0xffffffff, t4, t4);
5691   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbl $t0, $t1", 0xcb4ab48f, t0, t1);
5692   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbl $t2, $t3", 0xaf8f7e18, t2, t3);
5693   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbl $t4, $t1", 0x87df4510, t4, t1);
5694   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbl $t6, $t7", 0xabf4e8e1, t6, t7);
5695   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbl $t5, $t3", 0xf4c0eeac, t5, t3);
5696   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbl $t2, $t4", 0x006a54f2, t2, t4);
5697   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbl $t0, $t8", 0x79f74493, t0, t8);
5698   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbl $t4, $t4", 0x9c09e313, t4, t4);
5699
5700   printf("-------- PRECEU.PH.QBLA --------\n");
5701   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbla $t0, $t1", 0x00000000, t0, t1);
5702   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbla $t2, $t3", 0x80003286, t2, t3);
5703   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbla $t4, $t1", 0xfabc2435, t4, t1);
5704   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbla $t6, $t7", 0x73468000, t6, t7);
5705   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbla $t5, $t3", 0x80000000, t5, t3);
5706   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbla $t2, $t4", 0xffffffff, t2, t4);
5707   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbla $t0, $t8", 0xfff45fff, t0, t8);
5708   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbla $t4, $t4", 0x00000555, t4, t4);
5709   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbla $t0, $t1", 0x00005340, t0, t1);
5710   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbla $t2, $t3", 0x80000000, t2, t3);
5711   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbla $t4, $t1", 0x55555555, t4, t1);
5712   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbla $t6, $t7", 0xffff2435, t6, t7);
5713   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbla $t5, $t3", 0xabababab, t5, t3);
5714   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbla $t2, $t4", 0xfc79b4d2, t2, t4);
5715   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbla $t0, $t8", 0x00000000, t0, t8);
5716   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbla $t4, $t4", 0x00354565, t4, t4);
5717   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbla $t0, $t1", 0x00086755, t0, t1);
5718   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbla $t2, $t3", 0x8f8f8f8f, t2, t3);
5719   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbla $t4, $t1", 0xeeeeeeee, t4, t1);
5720   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbla $t6, $t7", 0x1bdbdbdb, t6, t7);
5721   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbla $t5, $t3", 0xdecadeca, t5, t3);
5722   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbla $t2, $t4", 0x93474bde, t2, t4);
5723   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbla $t0, $t8", 0xfc0007ff, t0, t8);
5724   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbla $t4, $t4", 0xffffffff, t4, t4);
5725   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbla $t0, $t1", 0xcb4ab48f, t0, t1);
5726   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbla $t2, $t3", 0xaf8f7e18, t2, t3);
5727   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbla $t4, $t1", 0x87df4510, t4, t1);
5728   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbla $t6, $t7", 0xabf4e8e1, t6, t7);
5729   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbla $t5, $t3", 0xf4c0eeac, t5, t3);
5730   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbla $t2, $t4", 0x006a54f2, t2, t4);
5731   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbla $t0, $t8", 0x79f74493, t0, t8);
5732   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbla $t4, $t4", 0x9c09e313, t4, t4);
5733
5734   printf("-------- PRECEU.PH.QBR --------\n");
5735   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbr $t0, $t1", 0x00000000, t0, t1);
5736   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbr $t2, $t3", 0x80003286, t2, t3);
5737   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbr $t4, $t1", 0xfabc2435, t4, t1);
5738   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbr $t6, $t7", 0x73468000, t6, t7);
5739   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbr $t5, $t3", 0x80000000, t5, t3);
5740   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbr $t2, $t4", 0xffffffff, t2, t4);
5741   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbr $t0, $t8", 0xfff45fff, t0, t8);
5742   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbr $t4, $t4", 0x00000555, t4, t4);
5743   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbr $t0, $t1", 0x00005340, t0, t1);
5744   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbr $t2, $t3", 0x80000000, t2, t3);
5745   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbr $t4, $t1", 0x55555555, t4, t1);
5746   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbr $t6, $t7", 0xffff2435, t6, t7);
5747   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbr $t5, $t3", 0xabababab, t5, t3);
5748   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbr $t2, $t4", 0xfc79b4d2, t2, t4);
5749   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbr $t0, $t8", 0x00000000, t0, t8);
5750   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbr $t4, $t4", 0x00354565, t4, t4);
5751   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbr $t0, $t1", 0x00086755, t0, t1);
5752   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbr $t2, $t3", 0x8f8f8f8f, t2, t3);
5753   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbr $t4, $t1", 0xeeeeeeee, t4, t1);
5754   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbr $t6, $t7", 0x1bdbdbdb, t6, t7);
5755   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbr $t5, $t3", 0xdecadeca, t5, t3);
5756   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbr $t2, $t4", 0x93474bde, t2, t4);
5757   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbr $t0, $t8", 0xfc0007ff, t0, t8);
5758   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbr $t4, $t4", 0xffffffff, t4, t4);
5759   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbr $t0, $t1", 0xcb4ab48f, t0, t1);
5760   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbr $t2, $t3", 0xaf8f7e18, t2, t3);
5761   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbr $t4, $t1", 0x87df4510, t4, t1);
5762   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbr $t6, $t7", 0xabf4e8e1, t6, t7);
5763   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbr $t5, $t3", 0xf4c0eeac, t5, t3);
5764   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbr $t2, $t4", 0x006a54f2, t2, t4);
5765   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbr $t0, $t8", 0x79f74493, t0, t8);
5766   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbr $t4, $t4", 0x9c09e313, t4, t4);
5767
5768   printf("-------- PRECEU.PH.QBRA --------\n");
5769   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbra $t0, $t1", 0x00000000, t0, t1);
5770   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbra $t2, $t3", 0x80003286, t2, t3);
5771   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbra $t4, $t1", 0xfabc2435, t4, t1);
5772   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbra $t6, $t7", 0x73468000, t6, t7);
5773   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbra $t5, $t3", 0x80000000, t5, t3);
5774   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbra $t2, $t4", 0xffffffff, t2, t4);
5775   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbra $t0, $t8", 0xfff45fff, t0, t8);
5776   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbra $t4, $t4", 0x00000555, t4, t4);
5777   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbra $t0, $t1", 0x00005340, t0, t1);
5778   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbra $t2, $t3", 0x80000000, t2, t3);
5779   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbra $t4, $t1", 0x55555555, t4, t1);
5780   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbra $t6, $t7", 0xffff2435, t6, t7);
5781   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbra $t5, $t3", 0xabababab, t5, t3);
5782   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbra $t2, $t4", 0xfc79b4d2, t2, t4);
5783   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbra $t0, $t8", 0x00000000, t0, t8);
5784   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbra $t4, $t4", 0x00354565, t4, t4);
5785   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbra $t0, $t1", 0x00086755, t0, t1);
5786   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbra $t2, $t3", 0x8f8f8f8f, t2, t3);
5787   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbra $t4, $t1", 0xeeeeeeee, t4, t1);
5788   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbra $t6, $t7", 0x1bdbdbdb, t6, t7);
5789   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbra $t5, $t3", 0xdecadeca, t5, t3);
5790   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbra $t2, $t4", 0x93474bde, t2, t4);
5791   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbra $t0, $t8", 0xfc0007ff, t0, t8);
5792   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbra $t4, $t4", 0xffffffff, t4, t4);
5793   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbra $t0, $t1", 0xcb4ab48f, t0, t1);
5794   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbra $t2, $t3", 0xaf8f7e18, t2, t3);
5795   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbra $t4, $t1", 0x87df4510, t4, t1);
5796   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbra $t6, $t7", 0xabf4e8e1, t6, t7);
5797   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbra $t5, $t3", 0xf4c0eeac, t5, t3);
5798   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbra $t2, $t4", 0x006a54f2, t2, t4);
5799   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbra $t0, $t8", 0x79f74493, t0, t8);
5800   TESTDSPINST_RD_RT_NODSPC("preceu.ph.qbra $t4, $t4", 0x9c09e313, t4, t4);
5801
5802   printf("-------- PRECRQ.QB.PH --------\n");
5803   TESTDSPINST_RD_RS_RT_NODSPC("precrq.qb.ph $t0, $t1, $t2", 0x00000000,
5804                               0x00000000, t0, t1, t2);
5805   TESTDSPINST_RD_RS_RT_NODSPC("precrq.qb.ph $t2, $t3, $t4", 0x045fb232,
5806                               0x00028632, t2, t3, t4);
5807   TESTDSPINST_RD_RS_RT_NODSPC("precrq.qb.ph $t4, $t1, $t5", 0xfabc3435,
5808                               0xfabc3421, t4, t1, t5);
5809   TESTDSPINST_RD_RS_RT_NODSPC("precrq.qb.ph $t6, $t7, $t3", 0x07654cb8,
5810                               0x734680bc, t6, t7, t3);
5811   TESTDSPINST_RD_RS_RT_NODSPC("precrq.qb.ph $t5, $t3, $t2", 0xf973437b,
5812                               0x80000000, t5, t3, t2);
5813   TESTDSPINST_RD_RS_RT_NODSPC("precrq.qb.ph $t2, $t4, $t8", 0x00ff0001,
5814                               0xff01ffff, t2, t4, t8);
5815   TESTDSPINST_RD_RS_RT_NODSPC("precrq.qb.ph $t0, $t8, $t0", 0x7fff7fff,
5816                               0x7fff7fff, t0, t8, t0);
5817   TESTDSPINST_RD_RS_RT_NODSPC("precrq.qb.ph $t4, $t6, $t1", 0x0000c420,
5818                               0x00000555, t4, t6, t1);
5819   TESTDSPINST_RD_RS_RT_NODSPC("precrq.qb.ph $t0, $t1, $t2", 0x00000000,
5820                               0x00000000, t0, t1, t2);
5821   TESTDSPINST_RD_RS_RT_NODSPC("precrq.qb.ph $t2, $t3, $t4", 0x80000000,
5822                               0x80000000, t2, t3, t4);
5823   TESTDSPINST_RD_RS_RT_NODSPC("precrq.qb.ph $t4, $t1, $t5", 0xaaaaaaaa,
5824                               0x55555555, t4, t1, t5);
5825   TESTDSPINST_RD_RS_RT_NODSPC("precrq.qb.ph $t6, $t7, $t3", 0x00000018,
5826                               0xffff2435, t6, t7, t3);
5827   TESTDSPINST_RD_RS_RT_NODSPC("precrq.qb.ph $t5, $t3, $t2", 0xbabababa,
5828                               0xabababab, t5, t3, t2);
5829   TESTDSPINST_RD_RS_RT_NODSPC("precrq.qb.ph $t2, $t4, $t8", 0xf0f0f0f0,
5830                               0xfc79b4d2, t2, t4, t8);
5831   TESTDSPINST_RD_RS_RT_NODSPC("precrq.qb.ph $t0, $t8, $t0", 0xfbde3976,
5832                               0x00000000, t0, t8, t0);
5833   TESTDSPINST_RD_RS_RT_NODSPC("precrq.qb.ph $t4, $t6, $t1", 0x23534870,
5834                               0x00354565, t4, t6, t1);
5835   TESTDSPINST_RD_RS_RT_NODSPC("precrq.qb.ph $t0, $t1, $t2", 0x980b7cde,
5836                               0x00086755, t0, t1, t2);
5837   TESTDSPINST_RD_RS_RT_NODSPC("precrq.qb.ph $t2, $t3, $t4", 0x00000018,
5838                               0x8f8f8f8f, t2, t3, t4);
5839   TESTDSPINST_RD_RS_RT_NODSPC("precrq.qb.ph $t4, $t1, $t5", 0x92784656,
5840                               0xeeeeeeee, t4, t1, t5);
5841   TESTDSPINST_RD_RS_RT_NODSPC("precrq.qb.ph $t6, $t7, $t3", 0xcacacaca,
5842                               0x1bdbdbdb, t6, t7, t3);
5843   TESTDSPINST_RD_RS_RT_NODSPC("precrq.qb.ph $t5, $t3, $t2", 0xbacabaca,
5844                               0xdecadeca, t5, t3, t2);
5845   TESTDSPINST_RD_RS_RT_NODSPC("precrq.qb.ph $t2, $t4, $t8", 0x12fadeb4,
5846                               0x93474bde, t2, t4, t8);
5847   TESTDSPINST_RD_RS_RT_NODSPC("precrq.qb.ph $t0, $t8, $t0", 0x7c000790,
5848                               0xfc0007ff, t0, t8, t0);
5849   TESTDSPINST_RD_RS_RT_NODSPC("precrq.qb.ph $t4, $t6, $t1", 0xffffffff,
5850                               0xffffffff, t4, t6, t1);
5851   TESTDSPINST_RD_RS_RT_NODSPC("precrq.qb.ph $t0, $t1, $t2", 0xf2f4df1f,
5852                               0xcb4ab48f, t0, t1, t2);
5853   TESTDSPINST_RD_RS_RT_NODSPC("precrq.qb.ph $t2, $t3, $t4", 0x435f909a,
5854                               0xaf8f7e18, t2, t3, t4);
5855   TESTDSPINST_RD_RS_RT_NODSPC("precrq.qb.ph $t4, $t1, $t5", 0x2106ba5f,
5856                               0x87df4510, t4, t1, t5);
5857   TESTDSPINST_RD_RS_RT_NODSPC("precrq.qb.ph $t6, $t7, $t3", 0x246a6376,
5858                               0xabf4e8e1, t6, t7, t3);
5859   TESTDSPINST_RD_RS_RT_NODSPC("precrq.qb.ph $t5, $t3, $t2", 0x1046a1a3,
5860                               0xf4c0eeac, t5, t3, t2);
5861   TESTDSPINST_RD_RS_RT_NODSPC("precrq.qb.ph $t2, $t4, $t8", 0x638ca515,
5862                               0x006a54f2, t2, t4, t8);
5863   TESTDSPINST_RD_RS_RT_NODSPC("precrq.qb.ph $t0, $t8, $t0", 0xf63e7a9d,
5864                               0x79f74493, t0, t8, t0);
5865   TESTDSPINST_RD_RS_RT_NODSPC("precrq.qb.ph $t4, $t6, $t1", 0xbd6845cd,
5866                               0x9c09e313, t4, t6, t1);
5867
5868   printf("-------- PRECRQ.PH.W --------\n");
5869   TESTDSPINST_RD_RS_RT_NODSPC("precrq.ph.w $t0, $t1, $t2", 0x00000000,
5870                               0x00000000, t0, t1, t2);
5871   TESTDSPINST_RD_RS_RT_NODSPC("precrq.ph.w $t2, $t3, $t4", 0x045fb232,
5872                               0x00028632, t2, t3, t4);
5873   TESTDSPINST_RD_RS_RT_NODSPC("precrq.ph.w $t4, $t1, $t5", 0xfabc3435,
5874                               0xfabc3421, t4, t1, t5);
5875   TESTDSPINST_RD_RS_RT_NODSPC("precrq.ph.w $t6, $t7, $t3", 0x07654cb8,
5876                               0x734680bc, t6, t7, t3);
5877   TESTDSPINST_RD_RS_RT_NODSPC("precrq.ph.w $t5, $t3, $t2", 0xf973437b,
5878                               0x80000000, t5, t3, t2);
5879   TESTDSPINST_RD_RS_RT_NODSPC("precrq.ph.w $t2, $t4, $t8", 0x00ff0001,
5880                               0xff01ffff, t2, t4, t8);
5881   TESTDSPINST_RD_RS_RT_NODSPC("precrq.ph.w $t0, $t8, $t0", 0x7fff7fff,
5882                               0x7fff7fff, t0, t8, t0);
5883   TESTDSPINST_RD_RS_RT_NODSPC("precrq.ph.w $t4, $t6, $t1", 0x0000c420,
5884                               0x00000555, t4, t6, t1);
5885   TESTDSPINST_RD_RS_RT_NODSPC("precrq.ph.w $t0, $t1, $t2", 0x00000000,
5886                               0x00000000, t0, t1, t2);
5887   TESTDSPINST_RD_RS_RT_NODSPC("precrq.ph.w $t2, $t3, $t4", 0x80000000,
5888                               0x80000000, t2, t3, t4);
5889   TESTDSPINST_RD_RS_RT_NODSPC("precrq.ph.w $t4, $t1, $t5", 0xaaaaaaaa,
5890                               0x55555555, t4, t1, t5);
5891   TESTDSPINST_RD_RS_RT_NODSPC("precrq.ph.w $t6, $t7, $t3", 0x00000018,
5892                               0xffff2435, t6, t7, t3);
5893   TESTDSPINST_RD_RS_RT_NODSPC("precrq.ph.w $t5, $t3, $t2", 0xbabababa,
5894                               0xabababab, t5, t3, t2);
5895   TESTDSPINST_RD_RS_RT_NODSPC("precrq.ph.w $t2, $t4, $t8", 0xf0f0f0f0,
5896                               0xfc79b4d2, t2, t4, t8);
5897   TESTDSPINST_RD_RS_RT_NODSPC("precrq.ph.w $t0, $t8, $t0", 0xfbde3976,
5898                               0x00000000, t0, t8, t0);
5899   TESTDSPINST_RD_RS_RT_NODSPC("precrq.ph.w $t4, $t6, $t1", 0x23534870,
5900                               0x00354565, t4, t6, t1);
5901   TESTDSPINST_RD_RS_RT_NODSPC("precrq.ph.w $t0, $t1, $t2", 0x980b7cde,
5902                               0x00086755, t0, t1, t2);
5903   TESTDSPINST_RD_RS_RT_NODSPC("precrq.ph.w $t2, $t3, $t4", 0x00000018,
5904                               0x8f8f8f8f, t2, t3, t4);
5905   TESTDSPINST_RD_RS_RT_NODSPC("precrq.ph.w $t4, $t1, $t5", 0x92784656,
5906                               0xeeeeeeee, t4, t1, t5);
5907   TESTDSPINST_RD_RS_RT_NODSPC("precrq.ph.w $t6, $t7, $t3", 0xcacacaca,
5908                               0x1bdbdbdb, t6, t7, t3);
5909   TESTDSPINST_RD_RS_RT_NODSPC("precrq.ph.w $t5, $t3, $t2", 0xbacabaca,
5910                               0xdecadeca, t5, t3, t2);
5911   TESTDSPINST_RD_RS_RT_NODSPC("precrq.ph.w $t2, $t4, $t8", 0x12fadeb4,
5912                               0x93474bde, t2, t4, t8);
5913   TESTDSPINST_RD_RS_RT_NODSPC("precrq.ph.w $t0, $t8, $t0", 0x7c000790,
5914                               0xfc0007ff, t0, t8, t0);
5915   TESTDSPINST_RD_RS_RT_NODSPC("precrq.ph.w $t4, $t6, $t1", 0xffffffff,
5916                               0xffffffff, t4, t6, t1);
5917   TESTDSPINST_RD_RS_RT_NODSPC("precrq.ph.w $t0, $t1, $t2", 0xf2f4df1f,
5918                               0xcb4ab48f, t0, t1, t2);
5919   TESTDSPINST_RD_RS_RT_NODSPC("precrq.ph.w $t2, $t3, $t4", 0x435f909a,
5920                               0xaf8f7e18, t2, t3, t4);
5921   TESTDSPINST_RD_RS_RT_NODSPC("precrq.ph.w $t4, $t1, $t5", 0x2106ba5f,
5922                               0x87df4510, t4, t1, t5);
5923   TESTDSPINST_RD_RS_RT_NODSPC("precrq.ph.w $t6, $t7, $t3", 0x246a6376,
5924                               0xabf4e8e1, t6, t7, t3);
5925   TESTDSPINST_RD_RS_RT_NODSPC("precrq.ph.w $t5, $t3, $t2", 0x1046a1a3,
5926                               0xf4c0eeac, t5, t3, t2);
5927   TESTDSPINST_RD_RS_RT_NODSPC("precrq.ph.w $t2, $t4, $t8", 0x638ca515,
5928                               0x006a54f2, t2, t4, t8);
5929   TESTDSPINST_RD_RS_RT_NODSPC("precrq.ph.w $t0, $t8, $t0", 0xf63e7a9d,
5930                               0x79f74493, t0, t8, t0);
5931   TESTDSPINST_RD_RS_RT_NODSPC("precrq.ph.w $t4, $t6, $t1", 0xbd6845cd,
5932                               0x9c09e313, t4, t6, t1);
5933
5934   printf("-------- PRECRQ_RS.PH.W --------\n");
5935   TESTDSPINST_RD_RS_RT_DSPC("precrq_rs.ph.w $t0, $t1, $t2", 0x00000000,
5936                             0x00000000, t0, t1, t2);
5937   TESTDSPINST_RD_RS_RT_DSPC("precrq_rs.ph.w $t2, $t3, $t4", 0x045fb232,
5938                             0x00028632, t2, t3, t4);
5939   TESTDSPINST_RD_RS_RT_DSPC("precrq_rs.ph.w $t4, $t1, $t5", 0xfabc3435,
5940                             0xfabc3421, t4, t1, t5);
5941   TESTDSPINST_RD_RS_RT_DSPC("precrq_rs.ph.w $t6, $t7, $t3", 0x07654cb8,
5942                             0x734680bc, t6, t7, t3);
5943   TESTDSPINST_RD_RS_RT_DSPC("precrq_rs.ph.w $t5, $t3, $t2", 0xf973437b,
5944                             0x80000000, t5, t3, t2);
5945   TESTDSPINST_RD_RS_RT_DSPC("precrq_rs.ph.w $t2, $t4, $t8", 0x00ff0001,
5946                             0xff01ffff, t2, t4, t8);
5947   TESTDSPINST_RD_RS_RT_DSPC("precrq_rs.ph.w $t0, $t8, $t0", 0x7fffd004,
5948                             0x7fff7fff, t0, t8, t0);
5949   TESTDSPINST_RD_RS_RT_DSPC("precrq_rs.ph.w $t0, $t8, $t0", 0x7fffd004,
5950                             0x7fff7fff, t0, t8, t0);
5951   TESTDSPINST_RD_RS_RT_DSPC("precrq_rs.ph.w $t4, $t6, $t1", 0x0000c420,
5952                             0x00000555, t4, t6, t1);
5953   TESTDSPINST_RD_RS_RT_DSPC("precrq_rs.ph.w $t0, $t1, $t2", 0x7fff8000,
5954                             0xffff8000, t0, t1, t2);
5955   TESTDSPINST_RD_RS_RT_DSPC("precrq_rs.ph.w $t2, $t3, $t4", 0x80000000,
5956                             0x80000000, t2, t3, t4);
5957   TESTDSPINST_RD_RS_RT_DSPC("precrq_rs.ph.w $t4, $t1, $t5", 0x7fffaaaa,
5958                             0x55555555, t4, t1, t5);
5959   TESTDSPINST_RD_RS_RT_DSPC("precrq_rs.ph.w $t6, $t7, $t3", 0x00000018,
5960                             0xffff2435, t6, t7, t3);
5961   TESTDSPINST_RD_RS_RT_DSPC("precrq_rs.ph.w $t5, $t3, $t2", 0xbabababa,
5962                             0xabababab, t5, t3, t2);
5963   TESTDSPINST_RD_RS_RT_DSPC("precrq_rs.ph.w $t2, $t4, $t8", 0xf0f0f0f0,
5964                             0xfc79b4d2, t2, t4, t8);
5965   TESTDSPINST_RD_RS_RT_DSPC("precrq_rs.ph.w $t0, $t8, $t0", 0xfbde3976,
5966                             0x00000000, t0, t8, t0);
5967   TESTDSPINST_RD_RS_RT_DSPC("precrq_rs.ph.w $t4, $t6, $t1", 0x23534870,
5968                             0x00354565, t4, t6, t1);
5969   TESTDSPINST_RD_RS_RT_DSPC("precrq_rs.ph.w $t0, $t1, $t2", 0x980b7cde,
5970                             0x00086755, t0, t1, t2);
5971   TESTDSPINST_RD_RS_RT_DSPC("precrq_rs.ph.w $t2, $t3, $t4", 0x00000018,
5972                             0x8f8f8f8f, t2, t3, t4);
5973   TESTDSPINST_RD_RS_RT_DSPC("precrq_rs.ph.w $t4, $t1, $t5", 0x92784656,
5974                             0xeeeeeeee, t4, t1, t5);
5975   TESTDSPINST_RD_RS_RT_DSPC("precrq_rs.ph.w $t6, $t7, $t3", 0xcacacaca,
5976                             0x1bdbdbdb, t6, t7, t3);
5977   TESTDSPINST_RD_RS_RT_DSPC("precrq_rs.ph.w $t5, $t3, $t2", 0xbacabaca,
5978                             0xdecadeca, t5, t3, t2);
5979   TESTDSPINST_RD_RS_RT_DSPC("precrq_rs.ph.w $t2, $t4, $t8", 0x12fadeb4,
5980                             0x93474bde, t2, t4, t8);
5981   TESTDSPINST_RD_RS_RT_DSPC("precrq_rs.ph.w $t0, $t8, $t0", 0x7fffffff,
5982                             0xfc0007ff, t0, t8, t0);
5983   TESTDSPINST_RD_RS_RT_DSPC("precrq_rs.ph.w $t4, $t6, $t1", 0xffffffff,
5984                             0xffffffff, t4, t6, t1);
5985   TESTDSPINST_RD_RS_RT_DSPC("precrq_rs.ph.w $t0, $t1, $t2", 0xf2f4df1f,
5986                             0xcb4ab48f, t0, t1, t2);
5987   TESTDSPINST_RD_RS_RT_DSPC("precrq_rs.ph.w $t2, $t3, $t4", 0x435f909a,
5988                             0xaf8f7e18, t2, t3, t4);
5989   TESTDSPINST_RD_RS_RT_DSPC("precrq_rs.ph.w $t4, $t1, $t5", 0x2106ba5f,
5990                             0x87df4510, t4, t1, t5);
5991   TESTDSPINST_RD_RS_RT_DSPC("precrq_rs.ph.w $t6, $t7, $t3", 0x246a6376,
5992                             0xabf4e8e1, t6, t7, t3);
5993   TESTDSPINST_RD_RS_RT_DSPC("precrq_rs.ph.w $t5, $t3, $t2", 0x1046a1a3,
5994                             0xf4c0eeac, t5, t3, t2);
5995   TESTDSPINST_RD_RS_RT_DSPC("precrq_rs.ph.w $t2, $t4, $t8", 0x638ca515,
5996                             0x006a54f2, t2, t4, t8);
5997   TESTDSPINST_RD_RS_RT_DSPC("precrq_rs.ph.w $t0, $t8, $t0", 0xf63e7a9d,
5998                             0x79f74493, t0, t8, t0);
5999   TESTDSPINST_RD_RS_RT_DSPC("precrq_rs.ph.w $t4, $t6, $t1", 0xbd6845cd,
6000                             0x9c09e313, t4, t6, t1);
6001
6002   printf("-------- PRECRQU_S.QB.PH --------\n");
6003   TESTDSPINST_RD_RS_RT_DSPC("precrqu_s.qb.ph $t0, $t1, $t2", 0x00000000,
6004                             0x00000000, t0, t1, t2);
6005   TESTDSPINST_RD_RS_RT_DSPC("precrqu_s.qb.ph $t2, $t3, $t4", 0x045fb232,
6006                             0x00028632, t2, t3, t4);
6007   TESTDSPINST_RD_RS_RT_DSPC("precrqu_s.qb.ph $t4, $t1, $t5", 0xfabc3435,
6008                             0xfabc3421, t4, t1, t5);
6009   TESTDSPINST_RD_RS_RT_DSPC("precrqu_s.qb.ph $t6, $t7, $t3", 0x07654cb8,
6010                             0x734680bc, t6, t7, t3);
6011   TESTDSPINST_RD_RS_RT_DSPC("precrqu_s.qb.ph $t5, $t3, $t2", 0xf973437b,
6012                             0x80000000, t5, t3, t2);
6013   TESTDSPINST_RD_RS_RT_DSPC("precrqu_s.qb.ph $t2, $t4, $t8", 0x00ff0001,
6014                             0xff01ffff, t2, t4, t8);
6015   TESTDSPINST_RD_RS_RT_DSPC("precrqu_s.qb.ph $t0, $t8, $t0", 0x7fff7004,
6016                             0x7fff7fff, t0, t8, t0);
6017   TESTDSPINST_RD_RS_RT_DSPC("precrqu_s.qb.ph $t4, $t6, $t1", 0x0000c420,
6018                             0x00000555, t4, t6, t1);
6019   TESTDSPINST_RD_RS_RT_DSPC("precrqu_s.qb.ph $t0, $t1, $t2", 0x00000000,
6020                             0x00000000, t0, t1, t2);
6021   TESTDSPINST_RD_RS_RT_DSPC("precrqu_s.qb.ph $t2, $t3, $t4", 0x80000000,
6022                             0x80000000, t2, t3, t4);
6023   TESTDSPINST_RD_RS_RT_DSPC("precrqu_s.qb.ph $t4, $t1, $t5", 0xaaaaaaaa,
6024                             0x55555555, t4, t1, t5);
6025   TESTDSPINST_RD_RS_RT_DSPC("precrqu_s.qb.ph $t6, $t7, $t3", 0x00000018,
6026                             0xffff2435, t6, t7, t3);
6027   TESTDSPINST_RD_RS_RT_DSPC("precrqu_s.qb.ph $t5, $t3, $t2", 0xbabababa,
6028                             0xabababab, t5, t3, t2);
6029   TESTDSPINST_RD_RS_RT_DSPC("precrqu_s.qb.ph $t2, $t4, $t8", 0xf0f0f0f0,
6030                             0xfc79b4d2, t2, t4, t8);
6031   TESTDSPINST_RD_RS_RT_DSPC("precrqu_s.qb.ph $t0, $t8, $t0", 0xfbde3976,
6032                             0x00000000, t0, t8, t0);
6033   TESTDSPINST_RD_RS_RT_DSPC("precrqu_s.qb.ph $t4, $t6, $t1", 0x23534870,
6034                             0x00354565, t4, t6, t1);
6035   TESTDSPINST_RD_RS_RT_DSPC("precrqu_s.qb.ph $t0, $t1, $t2", 0x980b7cde,
6036                             0x00086755, t0, t1, t2);
6037   TESTDSPINST_RD_RS_RT_DSPC("precrqu_s.qb.ph $t2, $t3, $t4", 0x00000018,
6038                             0x8f8f8f8f, t2, t3, t4);
6039   TESTDSPINST_RD_RS_RT_DSPC("precrqu_s.qb.ph $t4, $t1, $t5", 0x92784656,
6040                             0xeeeeeeee, t4, t1, t5);
6041   TESTDSPINST_RD_RS_RT_DSPC("precrqu_s.qb.ph $t6, $t7, $t3", 0xcacacaca,
6042                             0x1bdbdbdb, t6, t7, t3);
6043   TESTDSPINST_RD_RS_RT_DSPC("precrqu_s.qb.ph $t5, $t3, $t2", 0xbacabaca,
6044                             0xdecadeca, t5, t3, t2);
6045   TESTDSPINST_RD_RS_RT_DSPC("precrqu_s.qb.ph $t2, $t4, $t8", 0x12fadeb4,
6046                             0x93474bde, t2, t4, t8);
6047   TESTDSPINST_RD_RS_RT_DSPC("precrqu_s.qb.ph $t0, $t8, $t0", 0x7c000790,
6048                             0xfc0007ff, t0, t8, t0);
6049   TESTDSPINST_RD_RS_RT_DSPC("precrqu_s.qb.ph $t4, $t6, $t1", 0xffffffff,
6050                             0xffffffff, t4, t6, t1);
6051   TESTDSPINST_RD_RS_RT_DSPC("precrqu_s.qb.ph $t0, $t1, $t2", 0xf2f4df1f,
6052                             0xcb4ab48f, t0, t1, t2);
6053   TESTDSPINST_RD_RS_RT_DSPC("precrqu_s.qb.ph $t2, $t3, $t4", 0x435f909a,
6054                             0xaf8f7e18, t2, t3, t4);
6055   TESTDSPINST_RD_RS_RT_DSPC("precrqu_s.qb.ph $t4, $t1, $t5", 0x2106ba5f,
6056                             0x87df4510, t4, t1, t5);
6057   TESTDSPINST_RD_RS_RT_DSPC("precrqu_s.qb.ph $t6, $t7, $t3", 0x246a6376,
6058                             0xabf4e8e1, t6, t7, t3);
6059   TESTDSPINST_RD_RS_RT_DSPC("precrqu_s.qb.ph $t5, $t3, $t2", 0x1046a1a3,
6060                             0xf4c0eeac, t5, t3, t2);
6061   TESTDSPINST_RD_RS_RT_DSPC("precrqu_s.qb.ph $t2, $t4, $t8", 0x638ca515,
6062                             0x006a54f2, t2, t4, t8);
6063   TESTDSPINST_RD_RS_RT_DSPC("precrqu_s.qb.ph $t0, $t8, $t0", 0xf63e7a9d,
6064                             0x79f74493, t0, t8, t0);
6065   TESTDSPINST_RD_RS_RT_DSPC("precrqu_s.qb.ph $t4, $t6, $t1", 0xbd6845cd,
6066                             0x9c09e313, t4, t6, t1);
6067
6068   printf("-------- RADDU.W.QB --------\n");
6069   TESTDSPINST_RADDU_W_QB("raddu.w.qb $t3, $t2", 0x55555555, t3, t2);
6070   TESTDSPINST_RADDU_W_QB("raddu.w.qb $t4, $t1", 0xffff2435, t4, t1);
6071   TESTDSPINST_RADDU_W_QB("raddu.w.qb $t7, $t2", 0x55555555, t7, t2);
6072   TESTDSPINST_RADDU_W_QB("raddu.w.qb $t5, $t1", 0xffff2435, t5, t1);
6073   TESTDSPINST_RADDU_W_QB("raddu.w.qb $t2, $t2", 0x55435755, t2, t2);
6074   TESTDSPINST_RADDU_W_QB("raddu.w.qb $t3, $t1", 0xffff2435, t3, t1);
6075   TESTDSPINST_RADDU_W_QB("raddu.w.qb $t1, $t2", 0x0fde3126, t1, t2);
6076   TESTDSPINST_RADDU_W_QB("raddu.w.qb $t2, $t0", 0xabababab, t2, t0);
6077   TESTDSPINST_RADDU_W_QB("raddu.w.qb $t7, $t3", 0x00000001, t7, t3);
6078   TESTDSPINST_RADDU_W_QB("raddu.w.qb $t5, $t6", 1073741824, t5, t6);
6079   TESTDSPINST_RADDU_W_QB("raddu.w.qb $t2, $t4", 0x80000000, t2, t4);
6080   TESTDSPINST_RADDU_W_QB("raddu.w.qb $t6, $t1", 0x7fffffff, t6, t1);
6081   TESTDSPINST_RADDU_W_QB("raddu.w.qb $t8, $t5", 0x23534870, t8, t5);
6082   TESTDSPINST_RADDU_W_QB("raddu.w.qb $t9, $t7", 0xffffffff, t9, t7);
6083   TESTDSPINST_RADDU_W_QB("raddu.w.qb $t3, $t8", 0xfc79b4d2, t3, t8);
6084   TESTDSPINST_RADDU_W_QB("raddu.w.qb $t4, $t4", 0x00000000, t4, t4);
6085   TESTDSPINST_RADDU_W_QB("raddu.w.qb $t5, $t5", 0x00000000, t5, t5);
6086   TESTDSPINST_RADDU_W_QB("raddu.w.qb $t6, $t6", 0x12349876, t6, t6);
6087   TESTDSPINST_RADDU_W_QB("raddu.w.qb $t7, $t7", 0x00354565, t7, t7);
6088   TESTDSPINST_RADDU_W_QB("raddu.w.qb $t8, $t8", 0x00086755, t8, t8);
6089   TESTDSPINST_RADDU_W_QB("raddu.w.qb $t9, $t0", 0x8f8f8f8f, t9, t0);
6090   TESTDSPINST_RADDU_W_QB("raddu.w.qb $t1, $t1", 0xeeeeeeee, t1, t1);
6091   TESTDSPINST_RADDU_W_QB("raddu.w.qb $t1, $t2", 0x1bdbdbdb, t1, t2);
6092   TESTDSPINST_RADDU_W_QB("raddu.w.qb $t4, $t3", 0xdecadeca, t4, t3);
6093   TESTDSPINST_RADDU_W_QB("raddu.w.qb $t8, $t4", 0x5fc92974, t8, t4);
6094   TESTDSPINST_RADDU_W_QB("raddu.w.qb $t0, $t5", 0x7e08184e, t0, t5);
6095   TESTDSPINST_RADDU_W_QB("raddu.w.qb $t1, $t6", 0x71c8315f, t1, t6);
6096   TESTDSPINST_RADDU_W_QB("raddu.w.qb $t2, $t7", 0x9493110e, t2, t7);
6097   TESTDSPINST_RADDU_W_QB("raddu.w.qb $t3, $t8", 0xbb246228, t3, t8);
6098   TESTDSPINST_RADDU_W_QB("raddu.w.qb $t4, $t0", 0x339d8d88, t4, t0);
6099   TESTDSPINST_RADDU_W_QB("raddu.w.qb $t5, $t1", 0x70974249, t5, t1);
6100   TESTDSPINST_RADDU_W_QB("raddu.w.qb $t6, $t2", 0x8a8d4e7d, t6, t2);
6101   TESTDSPINST_RADDU_W_QB("raddu.w.qb $t7, $t1", 0xeb1b4335, t7, t1);
6102   TESTDSPINST_RADDU_W_QB("raddu.w.qb $t8, $t2", 0x0cd6b508, t8, t2);
6103   TESTDSPINST_RADDU_W_QB("raddu.w.qb $t0, $t1", 0x6731e282, t0, t1);
6104   TESTDSPINST_RADDU_W_QB("raddu.w.qb $t1, $t2", 0xb6edf28f, t1, t2);
6105   TESTDSPINST_RADDU_W_QB("raddu.w.qb $t2, $t3", 0x4b4ec9ca, t2, t3);
6106   TESTDSPINST_RADDU_W_QB("raddu.w.qb $t3, $t4", 0xc1037fa4, t3, t4);
6107   TESTDSPINST_RADDU_W_QB("raddu.w.qb $t3, $t5", 0xcb4ab48f, t3, t5);
6108   TESTDSPINST_RADDU_W_QB("raddu.w.qb $t4, $t6", 0xaf8f7e18, t4, t6);
6109   TESTDSPINST_RADDU_W_QB("raddu.w.qb $t4, $t6", 0xaf8f7e18, t4, t6);
6110
6111   printf("-------- RDDSP/WRDSP --------\n");
6112   TESTDSPINST_RDDSPWRDSP(0x35055512, 0x0000001f);
6113   TESTDSPINST_RDDSPWRDSP(0x00000000, 0x00000002);
6114   TESTDSPINST_RDDSPWRDSP(0x80003286, 0x00000004);
6115   TESTDSPINST_RDDSPWRDSP(0xfabc2435, 0x00000008);
6116   TESTDSPINST_RDDSPWRDSP(0x73468000, 0x00000016);
6117   TESTDSPINST_RDDSPWRDSP(0x80000000, 0x00000020);
6118   TESTDSPINST_RDDSPWRDSP(0xffffffff, 0x00000022);
6119   TESTDSPINST_RDDSPWRDSP(0xfff45fff, 0x0000003f);
6120   TESTDSPINST_RDDSPWRDSP(0x00000555, 0x00000013);
6121   TESTDSPINST_RDDSPWRDSP(0x23534870, 0x00000014);
6122   TESTDSPINST_RDDSPWRDSP(0x0555adec, 0x00000010);
6123   TESTDSPINST_RDDSPWRDSP(0x980b7cde, 0x00000015);
6124   TESTDSPINST_RDDSPWRDSP(0xf973437b, 0x00000011);
6125   TESTDSPINST_RDDSPWRDSP(0x93474bde, 0x00000007);
6126   TESTDSPINST_RDDSPWRDSP(0x55555555, 0x00000009);
6127   TESTDSPINST_RDDSPWRDSP(0xc4dbfe20, 0x00000006);
6128   TESTDSPINST_RDDSPWRDSP(0x734680bc, 0x00000000);
6129   TESTDSPINST_RDDSPWRDSP(0x00354565, 0x00000003);
6130   TESTDSPINST_RDDSPWRDSP(0xbacabaca, 0x00000021);
6131   TESTDSPINST_RDDSPWRDSP(0xdecadeca, 0x00000016);
6132   TESTDSPINST_RDDSPWRDSP(0x00000286, 0x00000001);
6133   TESTDSPINST_RDDSPWRDSP(0xabababab, 0x00000026);
6134
6135   printf("-------- REPL.PH --------\n");
6136   TESTDSPINST_RD_IMM_NODSPC("repl.ph $t0, 0", 0, t0);
6137   TESTDSPINST_RD_IMM_NODSPC("repl.ph $t1, 1", 1, t1);
6138   TESTDSPINST_RD_IMM_NODSPC("repl.ph $t2, -1", -1, t2);
6139   TESTDSPINST_RD_IMM_NODSPC("repl.ph $t3, -129", -129, t3);
6140   TESTDSPINST_RD_IMM_NODSPC("repl.ph $t4, -2", -2, t4);
6141   TESTDSPINST_RD_IMM_NODSPC("repl.ph $t0, 0x123", 0x123, t0);
6142   TESTDSPINST_RD_IMM_NODSPC("repl.ph $t1, 0x07b", 0x07b, t1);
6143   TESTDSPINST_RD_IMM_NODSPC("repl.ph $t2, 0x1c8", 0x1c8, t2);
6144   TESTDSPINST_RD_IMM_NODSPC("repl.ph $t3, 0x080", 0x080, t3);
6145   TESTDSPINST_RD_IMM_NODSPC("repl.ph $t4, 0x07f", 0x07f, t4);
6146   TESTDSPINST_RD_IMM_NODSPC("repl.ph $t5, 0x1ff", 0x1ff, t5);
6147   TESTDSPINST_RD_IMM_NODSPC("repl.ph $t6, 0x000", 0x000, t6);
6148   TESTDSPINST_RD_IMM_NODSPC("repl.ph $t7, 0x177", 0x177, t7);
6149   TESTDSPINST_RD_IMM_NODSPC("repl.ph $t0, 0x1de", 0x1de, t0);
6150   TESTDSPINST_RD_IMM_NODSPC("repl.ph $t1, 0x018", 0x018, t1);
6151   TESTDSPINST_RD_IMM_NODSPC("repl.ph $t2, 0x056", 0x056, t2);
6152   TESTDSPINST_RD_IMM_NODSPC("repl.ph $t3, 0x1ca", 0x1ca, t3);
6153   TESTDSPINST_RD_IMM_NODSPC("repl.ph $t4, 0x1ab", 0x1ab, t4);
6154   TESTDSPINST_RD_IMM_NODSPC("repl.ph $t5, 0x1d2", 0x1d2, t5);
6155   TESTDSPINST_RD_IMM_NODSPC("repl.ph $t6, 0x000", 0x000, t6);
6156   TESTDSPINST_RD_IMM_NODSPC("repl.ph $t7, 0x065", 0x065, t7);
6157   TESTDSPINST_RD_IMM_NODSPC("repl.ph $t0, 0x055", 0x055, t0);
6158   TESTDSPINST_RD_IMM_NODSPC("repl.ph $t1, 0x08f", 0x08f, t1);
6159   TESTDSPINST_RD_IMM_NODSPC("repl.ph $t2, 0x0ee", 0x0ee, t2);
6160   TESTDSPINST_RD_IMM_NODSPC("repl.ph $t3, 0x1db", 0x1db, t3);
6161   TESTDSPINST_RD_IMM_NODSPC("repl.ph $t4, 0x1ca", 0x1ca, t4);
6162   TESTDSPINST_RD_IMM_NODSPC("repl.ph $t5, 0x1de", 0x1de, t5);
6163   TESTDSPINST_RD_IMM_NODSPC("repl.ph $t6, 0x0ff", 0x0ff, t6);
6164   TESTDSPINST_RD_IMM_NODSPC("repl.ph $t7, 0x0ff", 0x0ff, t7);
6165   TESTDSPINST_RD_IMM_NODSPC("repl.ph $t0, 0x08f", 0x08f, t0);
6166   TESTDSPINST_RD_IMM_NODSPC("repl.ph $t1, 0x118", 0x118, t1);
6167   TESTDSPINST_RD_IMM_NODSPC("repl.ph $t2, 0x110", 0x110, t2);
6168   TESTDSPINST_RD_IMM_NODSPC("repl.ph $t3, 0x1e1", 0x1e1, t3);
6169   TESTDSPINST_RD_IMM_NODSPC("repl.ph $t4, 0x1ac", 0x1ac, t4);
6170   TESTDSPINST_RD_IMM_NODSPC("repl.ph $t5, 0x0f2", 0x0f2, t5);
6171   TESTDSPINST_RD_IMM_NODSPC("repl.ph $t6, 0x093", 0x093, t6);
6172   TESTDSPINST_RD_IMM_NODSPC("repl.ph $t7, 0x013", 0x013, t7);
6173
6174   printf("-------- REPL.QB --------\n");
6175   TESTDSPINST_RD_IMM_NODSPC("repl.qb $t0, 0x23", 0x23, t0);
6176   TESTDSPINST_RD_IMM_NODSPC("repl.qb $t1, 0x7b", 0x7b, t1);
6177   TESTDSPINST_RD_IMM_NODSPC("repl.qb $t2, 0xc8", 0xc8, t2);
6178   TESTDSPINST_RD_IMM_NODSPC("repl.qb $t3, 0x80", 0x80, t3);
6179   TESTDSPINST_RD_IMM_NODSPC("repl.qb $t4, 0x7f", 0x7f, t4);
6180   TESTDSPINST_RD_IMM_NODSPC("repl.qb $t5, 0xff", 0xff, t5);
6181   TESTDSPINST_RD_IMM_NODSPC("repl.qb $t6, 0x00", 0x00, t6);
6182   TESTDSPINST_RD_IMM_NODSPC("repl.qb $t7, 0x77", 0x77, t7);
6183   TESTDSPINST_RD_IMM_NODSPC("repl.qb $t0, 0xde", 0xde, t0);
6184   TESTDSPINST_RD_IMM_NODSPC("repl.qb $t1, 0x18", 0x18, t1);
6185   TESTDSPINST_RD_IMM_NODSPC("repl.qb $t2, 0x56", 0x56, t2);
6186   TESTDSPINST_RD_IMM_NODSPC("repl.qb $t3, 0xca", 0xca, t3);
6187   TESTDSPINST_RD_IMM_NODSPC("repl.qb $t4, 0xab", 0xab, t4);
6188   TESTDSPINST_RD_IMM_NODSPC("repl.qb $t5, 0xd2", 0xd2, t5);
6189   TESTDSPINST_RD_IMM_NODSPC("repl.qb $t6, 0x00", 0x00, t6);
6190   TESTDSPINST_RD_IMM_NODSPC("repl.qb $t7, 0x65", 0x65, t7);
6191   TESTDSPINST_RD_IMM_NODSPC("repl.qb $t0, 0x55", 0x55, t0);
6192   TESTDSPINST_RD_IMM_NODSPC("repl.qb $t1, 0x8f", 0x8f, t1);
6193   TESTDSPINST_RD_IMM_NODSPC("repl.qb $t2, 0xee", 0xee, t2);
6194   TESTDSPINST_RD_IMM_NODSPC("repl.qb $t3, 0xdb", 0xdb, t3);
6195   TESTDSPINST_RD_IMM_NODSPC("repl.qb $t4, 0xca", 0xca, t4);
6196   TESTDSPINST_RD_IMM_NODSPC("repl.qb $t5, 0xde", 0xde, t5);
6197   TESTDSPINST_RD_IMM_NODSPC("repl.qb $t6, 0xff", 0xff, t6);
6198   TESTDSPINST_RD_IMM_NODSPC("repl.qb $t7, 0xff", 0xff, t7);
6199   TESTDSPINST_RD_IMM_NODSPC("repl.qb $t0, 0x8f", 0x8f, t0);
6200   TESTDSPINST_RD_IMM_NODSPC("repl.qb $t1, 0x18", 0x18, t1);
6201   TESTDSPINST_RD_IMM_NODSPC("repl.qb $t2, 0x10", 0x10, t2);
6202   TESTDSPINST_RD_IMM_NODSPC("repl.qb $t3, 0xe1", 0xe1, t3);
6203   TESTDSPINST_RD_IMM_NODSPC("repl.qb $t4, 0xac", 0xac, t4);
6204   TESTDSPINST_RD_IMM_NODSPC("repl.qb $t5, 0xf2", 0xf2, t5);
6205   TESTDSPINST_RD_IMM_NODSPC("repl.qb $t6, 0x93", 0x93, t6);
6206   TESTDSPINST_RD_IMM_NODSPC("repl.qb $t7, 0x13", 0x13, t7);
6207
6208   printf("-------- REPLV.PH --------\n");
6209   TESTDSPINST_RD_RT_NODSPC("replv.ph $t0, $t1", 0x00000000, t0, t1);
6210   TESTDSPINST_RD_RT_NODSPC("replv.ph $t2, $t3", 0x80003286, t2, t3);
6211   TESTDSPINST_RD_RT_NODSPC("replv.ph $t4, $t1", 0xfabc2435, t4, t1);
6212   TESTDSPINST_RD_RT_NODSPC("replv.ph $t6, $t7", 0x73468000, t6, t7);
6213   TESTDSPINST_RD_RT_NODSPC("replv.ph $t5, $t3", 0x80000000, t5, t3);
6214   TESTDSPINST_RD_RT_NODSPC("replv.ph $t2, $t4", 0xffffffff, t2, t4);
6215   TESTDSPINST_RD_RT_NODSPC("replv.ph $t0, $t8", 0xfff45fff, t0, t8);
6216   TESTDSPINST_RD_RT_NODSPC("replv.ph $t4, $t4", 0x00000555, t4, t4);
6217   TESTDSPINST_RD_RT_NODSPC("replv.ph $t0, $t1", 0x00005340, t0, t1);
6218   TESTDSPINST_RD_RT_NODSPC("replv.ph $t2, $t3", 0x80000000, t2, t3);
6219   TESTDSPINST_RD_RT_NODSPC("replv.ph $t4, $t1", 0x55555555, t4, t1);
6220   TESTDSPINST_RD_RT_NODSPC("replv.ph $t6, $t7", 0xffff2435, t6, t7);
6221   TESTDSPINST_RD_RT_NODSPC("replv.ph $t5, $t3", 0xabababab, t5, t3);
6222   TESTDSPINST_RD_RT_NODSPC("replv.ph $t2, $t4", 0xfc79b4d2, t2, t4);
6223   TESTDSPINST_RD_RT_NODSPC("replv.ph $t0, $t8", 0x00000000, t0, t8);
6224   TESTDSPINST_RD_RT_NODSPC("replv.ph $t4, $t4", 0x00354565, t4, t4);
6225   TESTDSPINST_RD_RT_NODSPC("replv.ph $t0, $t1", 0x00086755, t0, t1);
6226   TESTDSPINST_RD_RT_NODSPC("replv.ph $t2, $t3", 0x8f8f8f8f, t2, t3);
6227   TESTDSPINST_RD_RT_NODSPC("replv.ph $t4, $t1", 0xeeeeeeee, t4, t1);
6228   TESTDSPINST_RD_RT_NODSPC("replv.ph $t6, $t7", 0x1bdbdbdb, t6, t7);
6229   TESTDSPINST_RD_RT_NODSPC("replv.ph $t5, $t3", 0xdecadeca, t5, t3);
6230   TESTDSPINST_RD_RT_NODSPC("replv.ph $t2, $t4", 0x93474bde, t2, t4);
6231   TESTDSPINST_RD_RT_NODSPC("replv.ph $t0, $t8", 0xfc0007ff, t0, t8);
6232   TESTDSPINST_RD_RT_NODSPC("replv.ph $t4, $t4", 0xffffffff, t4, t4);
6233   TESTDSPINST_RD_RT_NODSPC("replv.ph $t0, $t1", 0xcb4ab48f, t0, t1);
6234   TESTDSPINST_RD_RT_NODSPC("replv.ph $t2, $t3", 0xaf8f7e18, t2, t3);
6235   TESTDSPINST_RD_RT_NODSPC("replv.ph $t4, $t1", 0x87df4510, t4, t1);
6236   TESTDSPINST_RD_RT_NODSPC("replv.ph $t6, $t7", 0xabf4e8e1, t6, t7);
6237   TESTDSPINST_RD_RT_NODSPC("replv.ph $t5, $t3", 0xf4c0eeac, t5, t3);
6238   TESTDSPINST_RD_RT_NODSPC("replv.ph $t2, $t4", 0x006a54f2, t2, t4);
6239   TESTDSPINST_RD_RT_NODSPC("replv.ph $t0, $t8", 0x79f74493, t0, t8);
6240   TESTDSPINST_RD_RT_NODSPC("replv.ph $t4, $t4", 0x9c09e313, t4, t4);
6241
6242   printf("-------- REPLV.QB --------\n");
6243   TESTDSPINST_RD_RT_NODSPC("replv.qb $t0, $t1", 0x00000000, t0, t1);
6244   TESTDSPINST_RD_RT_NODSPC("replv.qb $t2, $t3", 0x80003286, t2, t3);
6245   TESTDSPINST_RD_RT_NODSPC("replv.qb $t4, $t1", 0xfabc2435, t4, t1);
6246   TESTDSPINST_RD_RT_NODSPC("replv.qb $t6, $t7", 0x73468000, t6, t7);
6247   TESTDSPINST_RD_RT_NODSPC("replv.qb $t5, $t3", 0x80000000, t5, t3);
6248   TESTDSPINST_RD_RT_NODSPC("replv.qb $t2, $t4", 0xffffffff, t2, t4);
6249   TESTDSPINST_RD_RT_NODSPC("replv.qb $t0, $t8", 0xfff45fff, t0, t8);
6250   TESTDSPINST_RD_RT_NODSPC("replv.qb $t4, $t4", 0x00000555, t4, t4);
6251   TESTDSPINST_RD_RT_NODSPC("replv.qb $t0, $t1", 0x00005340, t0, t1);
6252   TESTDSPINST_RD_RT_NODSPC("replv.qb $t2, $t3", 0x80000000, t2, t3);
6253   TESTDSPINST_RD_RT_NODSPC("replv.qb $t4, $t1", 0x55555555, t4, t1);
6254   TESTDSPINST_RD_RT_NODSPC("replv.qb $t6, $t7", 0xffff2435, t6, t7);
6255   TESTDSPINST_RD_RT_NODSPC("replv.qb $t5, $t3", 0xabababab, t5, t3);
6256   TESTDSPINST_RD_RT_NODSPC("replv.qb $t2, $t4", 0xfc79b4d2, t2, t4);
6257   TESTDSPINST_RD_RT_NODSPC("replv.qb $t0, $t8", 0x00000000, t0, t8);
6258   TESTDSPINST_RD_RT_NODSPC("replv.qb $t4, $t4", 0x00354565, t4, t4);
6259   TESTDSPINST_RD_RT_NODSPC("replv.qb $t0, $t1", 0x00086755, t0, t1);
6260   TESTDSPINST_RD_RT_NODSPC("replv.qb $t2, $t3", 0x8f8f8f8f, t2, t3);
6261   TESTDSPINST_RD_RT_NODSPC("replv.qb $t4, $t1", 0xeeeeeeee, t4, t1);
6262   TESTDSPINST_RD_RT_NODSPC("replv.qb $t6, $t7", 0x1bdbdbdb, t6, t7);
6263   TESTDSPINST_RD_RT_NODSPC("replv.qb $t5, $t3", 0xdecadeca, t5, t3);
6264   TESTDSPINST_RD_RT_NODSPC("replv.qb $t2, $t4", 0x93474bde, t2, t4);
6265   TESTDSPINST_RD_RT_NODSPC("replv.qb $t0, $t8", 0xfc0007ff, t0, t8);
6266   TESTDSPINST_RD_RT_NODSPC("replv.qb $t4, $t4", 0xffffffff, t4, t4);
6267   TESTDSPINST_RD_RT_NODSPC("replv.qb $t0, $t1", 0xcb4ab48f, t0, t1);
6268   TESTDSPINST_RD_RT_NODSPC("replv.qb $t2, $t3", 0xaf8f7e18, t2, t3);
6269   TESTDSPINST_RD_RT_NODSPC("replv.qb $t4, $t1", 0x87df4510, t4, t1);
6270   TESTDSPINST_RD_RT_NODSPC("replv.qb $t6, $t7", 0xabf4e8e1, t6, t7);
6271   TESTDSPINST_RD_RT_NODSPC("replv.qb $t5, $t3", 0xf4c0eeac, t5, t3);
6272   TESTDSPINST_RD_RT_NODSPC("replv.qb $t2, $t4", 0x006a54f2, t2, t4);
6273   TESTDSPINST_RD_RT_NODSPC("replv.qb $t0, $t8", 0x79f74493, t0, t8);
6274   TESTDSPINST_RD_RT_NODSPC("replv.qb $t4, $t4", 0x9c09e313, t4, t4);
6275
6276   printf("-------- SHILO --------\n");
6277   TESTDSPINST_SHILO("ac3", 0x980b7cde, 0x0243ade5, -5);
6278   TESTDSPINST_SHILO("ac0", 0x80003286, 0x00002340, 12);
6279   TESTDSPINST_SHILO("ac1", 0x23534870, 0x0bca3470,  7);
6280   TESTDSPINST_SHILO("ac2", 0x0555adec, 0x1245bef6,  3);
6281   TESTDSPINST_SHILO("ac3", 0x980b7cde, 0x0243ade5, -5);
6282   TESTDSPINST_SHILO("ac0", 0xf97343ff, 0x0bce2434, -13);
6283   TESTDSPINST_SHILO("ac1", 0x93474bde, 0x0bcde433, 31);
6284   TESTDSPINST_SHILO("ac2", 0x7f003245, 0x000432fe, -32);
6285   TESTDSPINST_SHILO("ac3", 0xad80bce4, 0x0241bce0,  8);
6286   TESTDSPINST_SHILO("ac0", 0x55555555, 0xbcdea87a, 20);
6287   TESTDSPINST_SHILO("ac1", 0x00000000, 0x00000007, 22);
6288   TESTDSPINST_SHILO("ac2", 0xc4dbfe20, 0x000023b6, -19);
6289   TESTDSPINST_SHILO("ac3", 0x734680bc, 0x000deab5, 16);
6290   TESTDSPINST_SHILO("ac0", 0x3545ff80, 0x00000004, -2);
6291   TESTDSPINST_SHILO("ac1", 0xbacabaca, 0x00000003, -4);
6292   TESTDSPINST_SHILO("ac2", 0xdecadeca, 0x00000002, -18);
6293   TESTDSPINST_SHILO("ac3", 0xabababab, 0x00000001,  0);
6294   TESTDSPINST_SHILO("ac0", 0xffffffff, 0x00000000,  1);
6295   TESTDSPINST_SHILO("ac1", 0x7fff7fff, 0x0bce3457, 30);
6296   TESTDSPINST_SHILO("ac2", 0x00010001, 0x00ca6ced, -30);
6297   TESTDSPINST_SHILO("ac3", 0x00000080, 0x5bc34109, -24);
6298   TESTDSPINST_SHILO("ac0", 0xff460000, 0x4bacd342,  5);
6299   TESTDSPINST_SHILO("ac1", 0x2fff0000, 0x03bcde24,  9);
6300   TESTDSPINST_SHILO("ac2", 0x2fff0000, 0x02234379, 16);
6301   TESTDSPINST_SHILO("ac3", 0x2fff0000, 0x01098789, -12);
6302
6303   printf("-------- SHILOV --------\n");
6304   TESTDSP_SHILOV("ac3", 0x980b7cde, 0x0243ade5, 0x01098789, t5);
6305   TESTDSP_SHILOV("ac0", 0x80003286, 0x00002340, 0x0241bce0, t1);
6306   TESTDSP_SHILOV("ac1", 0x23534870, 0x0bca3470, 0xc4dbfe20, t1);
6307   TESTDSP_SHILOV("ac2", 0x0555adec, 0x1245bef6, 0x93474bde, t3);
6308   TESTDSP_SHILOV("ac3", 0x980b7cde, 0x0243ade5, 0x7f003245, t7);
6309   TESTDSP_SHILOV("ac0", 0xf97343ff, 0x0bce2434, 0x0241bce0, t3);
6310   TESTDSP_SHILOV("ac1", 0x93474bde, 0x0bcde433, 0x0bce3457, t4);
6311   TESTDSP_SHILOV("ac2", 0x7f003245, 0x000432fe, 0xbacabaca, t8);
6312   TESTDSP_SHILOV("ac3", 0xad80bce4, 0x0241bce0, 0x734680bc, t1);
6313   TESTDSP_SHILOV("ac0", 0x55555555, 0xbcdea87a, 0x3545ff80, t3);
6314   TESTDSP_SHILOV("ac1", 0x00000000, 0x00000007, 0x7fff7fff, t1);
6315   TESTDSP_SHILOV("ac2", 0xc4dbfe20, 0x000023b6, 0xc4dbfe20, t7);
6316   TESTDSP_SHILOV("ac3", 0x734680bc, 0x000deab5,         16, t3);
6317   TESTDSP_SHILOV("ac0", 0x3545ff80, 0x00000004,         -2, t4);
6318   TESTDSP_SHILOV("ac1", 0xbacabaca, 0x00000003,         -4, t8);
6319   TESTDSP_SHILOV("ac2", 0xdecadeca, 0x00000002,        -18, t5);
6320   TESTDSP_SHILOV("ac3", 0xabababab, 0x00000001,          0, t1);
6321   TESTDSP_SHILOV("ac0", 0xffffffff, 0x00000000,          1, t3);
6322   TESTDSP_SHILOV("ac1", 0x7fff7fff, 0x0bce3457,         30, t1);
6323   TESTDSP_SHILOV("ac2", 0x00010001, 0x00ca6ced,        -30, t7);
6324   TESTDSP_SHILOV("ac3", 0x00000080, 0x5bc34109,        -24, t3);
6325   TESTDSP_SHILOV("ac0", 0xff460000, 0x4bacd342,        -32, t4);
6326   TESTDSP_SHILOV("ac1", 0x2fff0000, 0x03bcde24,         31, t8);
6327   TESTDSP_SHILOV("ac2", 0x2fff0000, 0x02234379,         16, t5);
6328   TESTDSP_SHILOV("ac3", 0x2fff0000, 0x01098789,        -12, t5);
6329
6330   printf("-------- SHLL.PH --------\n");
6331   TESTDSPINST_RD_RT_SA_DSPC("shll.ph $t0, $t1,  0", 0x00000000,  0, t0, t1);
6332   TESTDSPINST_RD_RT_SA_DSPC("shll.ph $t2, $t3,  1", 0x2fff0000,  1, t2, t3);
6333   TESTDSPINST_RD_RT_SA_DSPC("shll.ph $t4, $t1,  2", 0x2fff0000,  2, t4, t1);
6334   TESTDSPINST_RD_RT_SA_DSPC("shll.ph $t6, $t7,  3", 0x2fff0000,  3, t6, t7);
6335   TESTDSPINST_RD_RT_SA_DSPC("shll.ph $t5, $t3,  4", 0x80000000,  4, t5, t3);
6336   TESTDSPINST_RD_RT_SA_DSPC("shll.ph $t2, $t4,  5", 0xff01ffff,  5, t2, t4);
6337   TESTDSPINST_RD_RT_SA_DSPC("shll.ph $t0, $t8,  6", 0x7fff7fff,  6, t0, t8);
6338   TESTDSPINST_RD_RT_SA_DSPC("shll.ph $t4, $t6,  7", 0x00000555,  7, t4, t6);
6339   TESTDSPINST_RD_RT_SA_DSPC("shll.ph $t0, $t1,  8", 0x00000000,  8, t0, t1);
6340   TESTDSPINST_RD_RT_SA_DSPC("shll.ph $t2, $t3,  9", 0x80000000,  9, t2, t3);
6341   TESTDSPINST_RD_RT_SA_DSPC("shll.ph $t4, $t1, 10", 0x55555555, 10, t4, t1);
6342   TESTDSPINST_RD_RT_SA_DSPC("shll.ph $t6, $t7, 11", 0xffff2435, 11, t6, t7);
6343   TESTDSPINST_RD_RT_SA_DSPC("shll.ph $t5, $t3, 12", 0xabababab, 12, t5, t3);
6344   TESTDSPINST_RD_RT_SA_DSPC("shll.ph $t2, $t4, 13", 0xfc79b4d2, 13, t2, t4);
6345   TESTDSPINST_RD_RT_SA_DSPC("shll.ph $t0, $t8, 14", 0x00000000, 14, t0, t8);
6346   TESTDSPINST_RD_RT_SA_DSPC("shll.ph $t4, $t6, 15", 0x00354565, 15, t4, t6);
6347   TESTDSPINST_RD_RT_SA_DSPC("shll.ph $t0, $t1,  0", 0x00086755,  0, t0, t1);
6348   TESTDSPINST_RD_RT_SA_DSPC("shll.ph $t2, $t3,  1", 0x8f8f8f8f,  1, t2, t3);
6349   TESTDSPINST_RD_RT_SA_DSPC("shll.ph $t4, $t1,  2", 0xeeeeeeee,  2, t4, t1);
6350   TESTDSPINST_RD_RT_SA_DSPC("shll.ph $t6, $t7,  3", 0x1bdbdbdb,  3, t6, t7);
6351   TESTDSPINST_RD_RT_SA_DSPC("shll.ph $t5, $t3,  4", 0xdecadeca,  4, t5, t3);
6352   TESTDSPINST_RD_RT_SA_DSPC("shll.ph $t2, $t4,  5", 0x93474bde,  5, t2, t4);
6353   TESTDSPINST_RD_RT_SA_DSPC("shll.ph $t0, $t8,  6", 0xfc0007ff,  6, t0, t8);
6354   TESTDSPINST_RD_RT_SA_DSPC("shll.ph $t4, $t6,  7", 0xffffffff,  7, t4, t6);
6355   TESTDSPINST_RD_RT_SA_DSPC("shll.ph $t0, $t1,  8", 0xcb4ab48f,  8, t0, t1);
6356   TESTDSPINST_RD_RT_SA_DSPC("shll.ph $t2, $t3,  9", 0xaf8f7e18,  9, t2, t3);
6357   TESTDSPINST_RD_RT_SA_DSPC("shll.ph $t4, $t1, 10", 0x87df4510, 10, t4, t1);
6358   TESTDSPINST_RD_RT_SA_DSPC("shll.ph $t6, $t7, 11", 0xabf4e8e1, 11, t6, t7);
6359   TESTDSPINST_RD_RT_SA_DSPC("shll.ph $t5, $t3, 12", 0xf4c0eeac, 12, t5, t3);
6360   TESTDSPINST_RD_RT_SA_DSPC("shll.ph $t2, $t4, 13", 0x006a54f2, 13, t2, t4);
6361   TESTDSPINST_RD_RT_SA_DSPC("shll.ph $t0, $t8, 14", 0x79f74493, 14, t0, t8);
6362   TESTDSPINST_RD_RT_SA_DSPC("shll.ph $t4, $t6, 15", 0x9c09e313, 15, t4, t6);
6363
6364   printf("-------- SHLL_S.PH --------\n");
6365   TESTDSPINST_RD_RT_SA_DSPC("shll_s.ph $t0, $t1,  0", 0x00000000,  0, t0, t1);
6366   TESTDSPINST_RD_RT_SA_DSPC("shll_s.ph $t2, $t3,  1", 0x2fff0000,  1, t2, t3);
6367   TESTDSPINST_RD_RT_SA_DSPC("shll_s.ph $t4, $t1,  2", 0x2fff0000,  2, t4, t1);
6368   TESTDSPINST_RD_RT_SA_DSPC("shll_s.ph $t6, $t7,  3", 0x2fff0000,  3, t6, t7);
6369   TESTDSPINST_RD_RT_SA_DSPC("shll_s.ph $t5, $t3,  4", 0x80000000,  4, t5, t3);
6370   TESTDSPINST_RD_RT_SA_DSPC("shll_s.ph $t2, $t4,  5", 0xff01ffff,  5, t2, t4);
6371   TESTDSPINST_RD_RT_SA_DSPC("shll_s.ph $t0, $t8,  6", 0x7fff7fff,  6, t0, t8);
6372   TESTDSPINST_RD_RT_SA_DSPC("shll_s.ph $t4, $t6,  7", 0x00000555,  7, t4, t6);
6373   TESTDSPINST_RD_RT_SA_DSPC("shll_s.ph $t0, $t1,  8", 0x00000000,  8, t0, t1);
6374   TESTDSPINST_RD_RT_SA_DSPC("shll_s.ph $t2, $t3,  9", 0x80000000,  9, t2, t3);
6375   TESTDSPINST_RD_RT_SA_DSPC("shll_s.ph $t4, $t1, 10", 0x55555555, 10, t4, t1);
6376   TESTDSPINST_RD_RT_SA_DSPC("shll_s.ph $t6, $t7, 11", 0xffff2435, 11, t6, t7);
6377   TESTDSPINST_RD_RT_SA_DSPC("shll_s.ph $t5, $t3, 12", 0xabababab, 12, t5, t3);
6378   TESTDSPINST_RD_RT_SA_DSPC("shll_s.ph $t2, $t4, 13", 0xfc79b4d2, 13, t2, t4);
6379   TESTDSPINST_RD_RT_SA_DSPC("shll_s.ph $t0, $t8, 14", 0x00000000, 14, t0, t8);
6380   TESTDSPINST_RD_RT_SA_DSPC("shll_s.ph $t4, $t6, 15", 0x00354565, 15, t4, t6);
6381   TESTDSPINST_RD_RT_SA_DSPC("shll_s.ph $t0, $t1,  0", 0x00086755,  0, t0, t1);
6382   TESTDSPINST_RD_RT_SA_DSPC("shll_s.ph $t2, $t3,  1", 0x8f8f8f8f,  1, t2, t3);
6383   TESTDSPINST_RD_RT_SA_DSPC("shll_s.ph $t4, $t1,  2", 0xeeeeeeee,  2, t4, t1);
6384   TESTDSPINST_RD_RT_SA_DSPC("shll_s.ph $t6, $t7,  3", 0x1bdbdbdb,  3, t6, t7);
6385   TESTDSPINST_RD_RT_SA_DSPC("shll_s.ph $t5, $t3,  4", 0xdecadeca,  4, t5, t3);
6386   TESTDSPINST_RD_RT_SA_DSPC("shll_s.ph $t2, $t4,  5", 0x93474bde,  5, t2, t4);
6387   TESTDSPINST_RD_RT_SA_DSPC("shll_s.ph $t0, $t8,  6", 0xfc0007ff,  6, t0, t8);
6388   TESTDSPINST_RD_RT_SA_DSPC("shll_s.ph $t4, $t6,  7", 0xffffffff,  7, t4, t6);
6389   TESTDSPINST_RD_RT_SA_DSPC("shll_s.ph $t0, $t1,  8", 0xcb4ab48f,  8, t0, t1);
6390   TESTDSPINST_RD_RT_SA_DSPC("shll_s.ph $t2, $t3,  9", 0xaf8f7e18,  9, t2, t3);
6391   TESTDSPINST_RD_RT_SA_DSPC("shll_s.ph $t4, $t1, 10", 0x87df4510, 10, t4, t1);
6392   TESTDSPINST_RD_RT_SA_DSPC("shll_s.ph $t6, $t7, 11", 0xabf4e8e1, 11, t6, t7);
6393   TESTDSPINST_RD_RT_SA_DSPC("shll_s.ph $t5, $t3, 12", 0xf4c0eeac, 12, t5, t3);
6394   TESTDSPINST_RD_RT_SA_DSPC("shll_s.ph $t2, $t4, 13", 0x006a54f2, 13, t2, t4);
6395   TESTDSPINST_RD_RT_SA_DSPC("shll_s.ph $t0, $t8, 14", 0x79f74493, 14, t0, t8);
6396   TESTDSPINST_RD_RT_SA_DSPC("shll_s.ph $t4, $t6, 15", 0x9c09e313, 15, t4, t6);
6397
6398   printf("-------- SHLL.QB --------\n");
6399   TESTDSPINST_RD_RT_SA_DSPC("shll.qb $t0, $t1, 1", 0x00000000, 1, t0, t1);
6400   TESTDSPINST_RD_RT_SA_DSPC("shll.qb $t2, $t3, 2", 0x2fff0000, 2, t2, t3);
6401   TESTDSPINST_RD_RT_SA_DSPC("shll.qb $t4, $t1, 3", 0x2fff0000, 3, t4, t1);
6402   TESTDSPINST_RD_RT_SA_DSPC("shll.qb $t6, $t7, 4", 0x2fff0000, 4, t6, t7);
6403   TESTDSPINST_RD_RT_SA_DSPC("shll.qb $t5, $t3, 0", 0x80000000, 0, t5, t3);
6404   TESTDSPINST_RD_RT_SA_DSPC("shll.qb $t2, $t4, 7", 0xff01ffff, 7, t2, t4);
6405   TESTDSPINST_RD_RT_SA_DSPC("shll.qb $t0, $t8, 7", 0x7fff7fff, 7, t0, t8);
6406   TESTDSPINST_RD_RT_SA_DSPC("shll.qb $t4, $t6, 0", 0x00000555, 0, t4, t6);
6407   TESTDSPINST_RD_RT_SA_DSPC("shll.qb $t0, $t1, 1", 0x00000000, 1, t0, t1);
6408   TESTDSPINST_RD_RT_SA_DSPC("shll.qb $t2, $t3, 2", 0x80000000, 2, t2, t3);
6409   TESTDSPINST_RD_RT_SA_DSPC("shll.qb $t4, $t1, 3", 0x55555555, 3, t4, t1);
6410   TESTDSPINST_RD_RT_SA_DSPC("shll.qb $t6, $t7, 4", 0xffff2435, 4, t6, t7);
6411   TESTDSPINST_RD_RT_SA_DSPC("shll.qb $t5, $t3, 5", 0xabababab, 5, t5, t3);
6412   TESTDSPINST_RD_RT_SA_DSPC("shll.qb $t2, $t4, 6", 0xfc79b4d2, 6, t2, t4);
6413   TESTDSPINST_RD_RT_SA_DSPC("shll.qb $t0, $t8, 7", 0x00000000, 7, t0, t8);
6414   TESTDSPINST_RD_RT_SA_DSPC("shll.qb $t4, $t6, 0", 0x00354565, 0, t4, t6);
6415   TESTDSPINST_RD_RT_SA_DSPC("shll.qb $t0, $t1, 1", 0x00086755, 1, t0, t1);
6416   TESTDSPINST_RD_RT_SA_DSPC("shll.qb $t2, $t3, 2", 0x8f8f8f8f, 2, t2, t3);
6417   TESTDSPINST_RD_RT_SA_DSPC("shll.qb $t4, $t1, 3", 0xeeeeeeee, 3, t4, t1);
6418   TESTDSPINST_RD_RT_SA_DSPC("shll.qb $t6, $t7, 4", 0x1bdbdbdb, 4, t6, t7);
6419   TESTDSPINST_RD_RT_SA_DSPC("shll.qb $t5, $t3, 5", 0xdecadeca, 5, t5, t3);
6420   TESTDSPINST_RD_RT_SA_DSPC("shll.qb $t2, $t4, 6", 0x93474bde, 6, t2, t4);
6421   TESTDSPINST_RD_RT_SA_DSPC("shll.qb $t0, $t8, 7", 0xfc0007ff, 7, t0, t8);
6422   TESTDSPINST_RD_RT_SA_DSPC("shll.qb $t4, $t6, 0", 0xffffffff, 0, t4, t6);
6423   TESTDSPINST_RD_RT_SA_DSPC("shll.qb $t0, $t1, 3", 0xcb4ab48f, 3, t0, t1);
6424   TESTDSPINST_RD_RT_SA_DSPC("shll.qb $t2, $t3, 4", 0xaf8f7e18, 4, t2, t3);
6425   TESTDSPINST_RD_RT_SA_DSPC("shll.qb $t4, $t1, 0", 0x87df4510, 0, t4, t1);
6426   TESTDSPINST_RD_RT_SA_DSPC("shll.qb $t6, $t7, 7", 0xabf4e8e1, 7, t6, t7);
6427   TESTDSPINST_RD_RT_SA_DSPC("shll.qb $t5, $t3, 7", 0xf4c0eeac, 7, t5, t3);
6428   TESTDSPINST_RD_RT_SA_DSPC("shll.qb $t2, $t4, 5", 0x006a54f2, 5, t2, t4);
6429   TESTDSPINST_RD_RT_SA_DSPC("shll.qb $t0, $t8, 1", 0x79f74493, 1, t0, t8);
6430   TESTDSPINST_RD_RT_SA_DSPC("shll.qb $t4, $t6, 2", 0x9c09e313, 2, t4, t6);
6431
6432   printf("-------- SHLL_S.W --------\n");
6433   TESTDSPINST_RD_RT_SA_DSPC("shll_s.w $t0, $t1,  0", 0x00000000,  0, t0, t1);
6434   TESTDSPINST_RD_RT_SA_DSPC("shll_s.w $t2, $t3,  1", 0x2fff0000,  1, t2, t3);
6435   TESTDSPINST_RD_RT_SA_DSPC("shll_s.w $t4, $t1,  2", 0x2fff0000,  2, t4, t1);
6436   TESTDSPINST_RD_RT_SA_DSPC("shll_s.w $t6, $t7,  3", 0x2fff0000,  3, t6, t7);
6437   TESTDSPINST_RD_RT_SA_DSPC("shll_s.w $t5, $t3,  4", 0x80000000,  4, t5, t3);
6438   TESTDSPINST_RD_RT_SA_DSPC("shll_s.w $t2, $t4,  5", 0xff01ffff,  5, t2, t4);
6439   TESTDSPINST_RD_RT_SA_DSPC("shll_s.w $t0, $t8,  6", 0x7fff7fff,  6, t0, t8);
6440   TESTDSPINST_RD_RT_SA_DSPC("shll_s.w $t4, $t6,  7", 0x00000555,  7, t4, t6);
6441   TESTDSPINST_RD_RT_SA_DSPC("shll_s.w $t0, $t1,  8", 0x00000000,  8, t0, t1);
6442   TESTDSPINST_RD_RT_SA_DSPC("shll_s.w $t2, $t3,  9", 0x80000000,  9, t2, t3);
6443   TESTDSPINST_RD_RT_SA_DSPC("shll_s.w $t4, $t1, 10", 0x55555555, 10, t4, t1);
6444   TESTDSPINST_RD_RT_SA_DSPC("shll_s.w $t6, $t7, 11", 0xffff2435, 11, t6, t7);
6445   TESTDSPINST_RD_RT_SA_DSPC("shll_s.w $t5, $t3, 12", 0xabababab, 12, t5, t3);
6446   TESTDSPINST_RD_RT_SA_DSPC("shll_s.w $t2, $t4, 13", 0xfc79b4d2, 13, t2, t4);
6447   TESTDSPINST_RD_RT_SA_DSPC("shll_s.w $t0, $t8, 14", 0x00000000, 14, t0, t8);
6448   TESTDSPINST_RD_RT_SA_DSPC("shll_s.w $t4, $t6, 15", 0x00354565, 15, t4, t6);
6449   TESTDSPINST_RD_RT_SA_DSPC("shll_s.w $t0, $t1, 16", 0x00086755,  0, t0, t1);
6450   TESTDSPINST_RD_RT_SA_DSPC("shll_s.w $t2, $t3, 17", 0x8f8f8f8f,  1, t2, t3);
6451   TESTDSPINST_RD_RT_SA_DSPC("shll_s.w $t4, $t1, 18", 0xeeeeeeee,  2, t4, t1);
6452   TESTDSPINST_RD_RT_SA_DSPC("shll_s.w $t6, $t7, 19", 0x1bdbdbdb,  3, t6, t7);
6453   TESTDSPINST_RD_RT_SA_DSPC("shll_s.w $t5, $t3, 20", 0xdecadeca,  4, t5, t3);
6454   TESTDSPINST_RD_RT_SA_DSPC("shll_s.w $t2, $t4, 21", 0x93474bde,  5, t2, t4);
6455   TESTDSPINST_RD_RT_SA_DSPC("shll_s.w $t0, $t8, 22", 0xfc0007ff,  6, t0, t8);
6456   TESTDSPINST_RD_RT_SA_DSPC("shll_s.w $t4, $t6, 23", 0xffffffff,  7, t4, t6);
6457   TESTDSPINST_RD_RT_SA_DSPC("shll_s.w $t0, $t1, 24", 0xcb4ab48f,  8, t0, t1);
6458   TESTDSPINST_RD_RT_SA_DSPC("shll_s.w $t2, $t3, 25", 0xaf8f7e18,  9, t2, t3);
6459   TESTDSPINST_RD_RT_SA_DSPC("shll_s.w $t4, $t1, 26", 0x87df4510, 10, t4, t1);
6460   TESTDSPINST_RD_RT_SA_DSPC("shll_s.w $t6, $t7, 27", 0xabf4e8e1, 11, t6, t7);
6461   TESTDSPINST_RD_RT_SA_DSPC("shll_s.w $t5, $t3, 28", 0xf4c0eeac, 12, t5, t3);
6462   TESTDSPINST_RD_RT_SA_DSPC("shll_s.w $t2, $t4, 29", 0x006a54f2, 13, t2, t4);
6463   TESTDSPINST_RD_RT_SA_DSPC("shll_s.w $t0, $t8, 30", 0x79f74493, 14, t0, t8);
6464   TESTDSPINST_RD_RT_SA_DSPC("shll_s.w $t4, $t6, 31", 0x9c09e313, 15, t4, t6);
6465
6466   printf("-------- SHLLV.PH --------\n");
6467   TESTDSPINST_RD_RT_RS_DSPC("shllv.ph $t0, $t1, $t2", 0x7fffffff, 0x00000000,
6468                             t0, t1, t2);
6469   TESTDSPINST_RD_RT_RS_DSPC("shllv.ph $t2, $t3, $t4", 0x80000000, 0x00000000,
6470                             t2, t3, t4);
6471   TESTDSPINST_RD_RT_RS_DSPC("shllv.ph $t4, $t1, $t5", 0x2fff0000, 0xfabc3401,
6472                             t4, t1, t5);
6473   TESTDSPINST_RD_RT_RS_DSPC("shllv.ph $t6, $t7, $t3", 0x2fff0000, 0x73468002,
6474                             t6, t7, t3);
6475   TESTDSPINST_RD_RT_RS_DSPC("shllv.ph $t5, $t3, $t2", 0x2fff0000, 0x80000003,
6476                             t5, t3, t2);
6477   TESTDSPINST_RD_RT_RS_DSPC("shllv.ph $t2, $t4, $t8", 0x00ff0001, 0xff01ffff,
6478                             t2, t4, t8);
6479   TESTDSPINST_RD_RT_RS_DSPC("shllv.ph $t0, $t8, $t0", 0x7fff7004, 0x7fff7fff,
6480                             t0, t8, t0);
6481   TESTDSPINST_RD_RT_RS_DSPC("shllv.ph $t4, $t6, $t1", 0x0000c420, 0x00000555,
6482                             t4, t6, t1);
6483   TESTDSPINST_RD_RT_RS_DSPC("shllv.ph $t0, $t1, $t2", 0x00000000, 0x00000000,
6484                             t0, t1, t2);
6485   TESTDSPINST_RD_RT_RS_DSPC("shllv.ph $t2, $t3, $t4", 0x80000000, 0x80000000,
6486                             t2, t3, t4);
6487   TESTDSPINST_RD_RT_RS_DSPC("shllv.ph $t4, $t1, $t5", 0xaaaaaaaa, 0x55555555,
6488                             t4, t1, t5);
6489   TESTDSPINST_RD_RT_RS_DSPC("shllv.ph $t6, $t7, $t3", 0x00000018, 0xffff2435,
6490                             t6, t7, t3);
6491   TESTDSPINST_RD_RT_RS_DSPC("shllv.ph $t5, $t3, $t2", 0xbabababa, 0xabababab,
6492                             t5, t3, t2);
6493   TESTDSPINST_RD_RT_RS_DSPC("shllv.ph $t2, $t4, $t8", 0xf0f0f0f0, 0xfc79b4d2,
6494                             t2, t4, t8);
6495   TESTDSPINST_RD_RT_RS_DSPC("shllv.ph $t0, $t8, $t0", 0xfbde3976, 0x00000000,
6496                             t0, t8, t0);
6497   TESTDSPINST_RD_RT_RS_DSPC("shllv.ph $t4, $t6, $t1", 0x23534870, 0x00354565,
6498                             t4, t6, t1);
6499   TESTDSPINST_RD_RT_RS_DSPC("shllv.ph $t0, $t1, $t2", 0x980b7cde, 0x00086755,
6500                             t0, t1, t2);
6501   TESTDSPINST_RD_RT_RS_DSPC("shllv.ph $t2, $t3, $t4", 0x00000018, 0x8f8f8f8f,
6502                             t2, t3, t4);
6503   TESTDSPINST_RD_RT_RS_DSPC("shllv.ph $t4, $t1, $t5", 0x92784656, 0xeeeeeeee,
6504                             t4, t1, t5);
6505   TESTDSPINST_RD_RT_RS_DSPC("shllv.ph $t6, $t7, $t3", 0xcacacaca, 0x1bdbdbdb,
6506                             t6, t7, t3);
6507   TESTDSPINST_RD_RT_RS_DSPC("shllv.ph $t5, $t3, $t2", 0xbacabaca, 0xdecadeca,
6508                             t5, t3, t2);
6509   TESTDSPINST_RD_RT_RS_DSPC("shllv.ph $t2, $t4, $t8", 0x12fadeb4, 0x93474bde,
6510                             t2, t4, t8);
6511   TESTDSPINST_RD_RT_RS_DSPC("shllv.ph $t0, $t8, $t0", 0x7c000790, 0xfc0007ff,
6512                             t0, t8, t0);
6513   TESTDSPINST_RD_RT_RS_DSPC("shllv.ph $t4, $t6, $t1", 0xffffffff, 0xffffffff,
6514                             t4, t6, t1);
6515   TESTDSPINST_RD_RT_RS_DSPC("shllv.ph $t0, $t1, $t2", 0xf2f4df1f, 0xcb4ab48f,
6516                             t0, t1, t2);
6517   TESTDSPINST_RD_RT_RS_DSPC("shllv.ph $t2, $t3, $t4", 0x435f909a, 0xaf8f7e18,
6518                             t2, t3, t4);
6519   TESTDSPINST_RD_RT_RS_DSPC("shllv.ph $t4, $t1, $t5", 0x2106ba5f, 0x87df4510,
6520                             t4, t1, t5);
6521   TESTDSPINST_RD_RT_RS_DSPC("shllv.ph $t6, $t7, $t3", 0x246a6376, 0xabf4e8e1,
6522                             t6, t7, t3);
6523   TESTDSPINST_RD_RT_RS_DSPC("shllv.ph $t5, $t3, $t2", 0x1046a1a3, 0xf4c0eeac,
6524                             t5, t3, t2);
6525   TESTDSPINST_RD_RT_RS_DSPC("shllv.ph $t2, $t4, $t8", 0x638ca515, 0x006a54f2,
6526                             t2, t4, t8);
6527   TESTDSPINST_RD_RT_RS_DSPC("shllv.ph $t0, $t8, $t0", 0xf63e7a9d, 0x79f74493,
6528                             t0, t8, t0);
6529   TESTDSPINST_RD_RT_RS_DSPC("shllv.ph $t4, $t6, $t1", 0xbd6845cd, 0x9c09e313,
6530                             t4, t6, t1);
6531
6532   printf("-------- SHLLV_S.PH --------\n");
6533   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.ph $t0, $t1, $t2", 0x7fffffff, 0x00000000,
6534                             t0, t1, t2);
6535   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.ph $t2, $t3, $t4", 0x80000000, 0x00000000,
6536                             t2, t3, t4);
6537   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.ph $t4, $t1, $t5", 0x2fff0000, 0xfabc3401,
6538                             t4, t1, t5);
6539   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.ph $t6, $t7, $t3", 0x2fff0000, 0x73468002,
6540                             t6, t7, t3);
6541   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.ph $t5, $t3, $t2", 0x2fff0000, 0x80000003,
6542                             t5, t3, t2);
6543   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.ph $t2, $t4, $t8", 0x00ff0001, 0xff01ffff,
6544                             t2, t4, t8);
6545   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.ph $t0, $t8, $t0", 0x7fff7004, 0x7fff7fff,
6546                             t0, t8, t0);
6547   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.ph $t4, $t6, $t1", 0x0000c420, 0x00000555,
6548                             t4, t6, t1);
6549   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.ph $t0, $t1, $t2", 0x00000000, 0x00000000,
6550                             t0, t1, t2);
6551   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.ph $t2, $t3, $t4", 0x80000000, 0x80000000,
6552                             t2, t3, t4);
6553   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.ph $t4, $t1, $t5", 0xaaaaaaaa, 0x55555555,
6554                             t4, t1, t5);
6555   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.ph $t6, $t7, $t3", 0x00000018, 0xffff2435,
6556                             t6, t7, t3);
6557   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.ph $t5, $t3, $t2", 0xbabababa, 0xabababab,
6558                             t5, t3, t2);
6559   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.ph $t2, $t4, $t8", 0xf0f0f0f0, 0xfc79b4d2,
6560                             t2, t4, t8);
6561   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.ph $t0, $t8, $t0", 0xfbde3976, 0x00000000,
6562                             t0, t8, t0);
6563   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.ph $t4, $t6, $t1", 0x23534870, 0x00354565,
6564                             t4, t6, t1);
6565   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.ph $t0, $t1, $t2", 0x980b7cde, 0x00086755,
6566                             t0, t1, t2);
6567   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.ph $t2, $t3, $t4", 0x00000018, 0x8f8f8f8f,
6568                             t2, t3, t4);
6569   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.ph $t4, $t1, $t5", 0x92784656, 0xeeeeeeee,
6570                             t4, t1, t5);
6571   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.ph $t6, $t7, $t3", 0xcacacaca, 0x1bdbdbdb,
6572                             t6, t7, t3);
6573   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.ph $t5, $t3, $t2", 0xbacabaca, 0xdecadeca,
6574                             t5, t3, t2);
6575   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.ph $t2, $t4, $t8", 0x12fadeb4, 0x93474bde,
6576                             t2, t4, t8);
6577   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.ph $t0, $t8, $t0", 0x7c000790, 0xfc0007ff,
6578                             t0, t8, t0);
6579   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.ph $t4, $t6, $t1", 0xffffffff, 0xffffffff,
6580                             t4, t6, t1);
6581   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.ph $t0, $t1, $t2", 0xf2f4df1f, 0xcb4ab48f,
6582                             t0, t1, t2);
6583   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.ph $t2, $t3, $t4", 0x435f909a, 0xaf8f7e18,
6584                             t2, t3, t4);
6585   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.ph $t4, $t1, $t5", 0x2106ba5f, 0x87df4510,
6586                             t4, t1, t5);
6587   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.ph $t6, $t7, $t3", 0x246a6376, 0xabf4e8e1,
6588                             t6, t7, t3);
6589   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.ph $t5, $t3, $t2", 0x1046a1a3, 0xf4c0eeac,
6590                             t5, t3, t2);
6591   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.ph $t2, $t4, $t8", 0x638ca515, 0x006a54f2,
6592                             t2, t4, t8);
6593   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.ph $t0, $t8, $t0", 0xf63e7a9d, 0x79f74493,
6594                             t0, t8, t0);
6595   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.ph $t4, $t6, $t1", 0xbd6845cd, 0x9c09e313,
6596                             t4, t6, t1);
6597
6598   printf("-------- SHLLV.QB --------\n");
6599   TESTDSPINST_RD_RT_RS_DSPC("shllv.qb $t0, $t1, $t2", 0x7fffffff, 0x00000000,
6600                             t0, t1, t2);
6601   TESTDSPINST_RD_RT_RS_DSPC("shllv.qb $t2, $t3, $t4", 0x80000000, 0x00000000,
6602                             t2, t3, t4);
6603   TESTDSPINST_RD_RT_RS_DSPC("shllv.qb $t4, $t1, $t5", 0x2fff0000, 0xfabc3401,
6604                             t4, t1, t5);
6605   TESTDSPINST_RD_RT_RS_DSPC("shllv.qb $t6, $t7, $t3", 0x2fff0000, 0x73468002,
6606                             t6, t7, t3);
6607   TESTDSPINST_RD_RT_RS_DSPC("shllv.qb $t5, $t3, $t2", 0x2fff0000, 0x80000003,
6608                             t5, t3, t2);
6609   TESTDSPINST_RD_RT_RS_DSPC("shllv.qb $t2, $t4, $t8", 0x00ff0001, 0xff01ffff,
6610                             t2, t4, t8);
6611   TESTDSPINST_RD_RT_RS_DSPC("shllv.qb $t0, $t8, $t0", 0x7fff7004, 0x7fff7fff,
6612                             t0, t8, t0);
6613   TESTDSPINST_RD_RT_RS_DSPC("shllv.qb $t4, $t6, $t1", 0x0000c420, 0x00000555,
6614                             t4, t6, t1);
6615   TESTDSPINST_RD_RT_RS_DSPC("shllv.qb $t0, $t1, $t2", 0x00000000, 0x9348572b,
6616                             t0, t1, t2);
6617   TESTDSPINST_RD_RT_RS_DSPC("shllv.qb $t2, $t3, $t4", 0x80000000, 0x80023450,
6618                             t2, t3, t4);
6619   TESTDSPINST_RD_RT_RS_DSPC("shllv.qb $t4, $t1, $t5", 0xaaaaaaaa, 0x55555555,
6620                             t4, t1, t5);
6621   TESTDSPINST_RD_RT_RS_DSPC("shllv.qb $t6, $t7, $t3", 0x00000018, 0xffff2435,
6622                             t6, t7, t3);
6623   TESTDSPINST_RD_RT_RS_DSPC("shllv.qb $t5, $t3, $t2", 0xbabababa, 0xabababab,
6624                             t5, t3, t2);
6625   TESTDSPINST_RD_RT_RS_DSPC("shllv.qb $t2, $t4, $t8", 0xf0f0f0f0, 0xfc79b4d2,
6626                             t2, t4, t8);
6627   TESTDSPINST_RD_RT_RS_DSPC("shllv.qb $t0, $t8, $t0", 0xfbde3976, 0x00000000,
6628                             t0, t8, t0);
6629   TESTDSPINST_RD_RT_RS_DSPC("shllv.qb $t4, $t6, $t1", 0x23534870, 0x00354565,
6630                             t4, t6, t1);
6631   TESTDSPINST_RD_RT_RS_DSPC("shllv.qb $t0, $t1, $t2", 0x980b7cde, 0x00086755,
6632                             t0, t1, t2);
6633   TESTDSPINST_RD_RT_RS_DSPC("shllv.qb $t2, $t3, $t4", 0x00000018, 0x8f8f8f8f,
6634                             t2, t3, t4);
6635   TESTDSPINST_RD_RT_RS_DSPC("shllv.qb $t4, $t1, $t5", 0x92784656, 0xeeeeeeee,
6636                             t4, t1, t5);
6637   TESTDSPINST_RD_RT_RS_DSPC("shllv.qb $t6, $t7, $t3", 0xcacacaca, 0x1bdbdbdb,
6638                             t6, t7, t3);
6639   TESTDSPINST_RD_RT_RS_DSPC("shllv.qb $t5, $t3, $t2", 0xbacabaca, 0xdecadeca,
6640                             t5, t3, t2);
6641   TESTDSPINST_RD_RT_RS_DSPC("shllv.qb $t2, $t4, $t8", 0x12fadeb4, 0x93474bde,
6642                             t2, t4, t8);
6643   TESTDSPINST_RD_RT_RS_DSPC("shllv.qb $t0, $t8, $t0", 0x7c000790, 0xfc0007ff,
6644                             t0, t8, t0);
6645   TESTDSPINST_RD_RT_RS_DSPC("shllv.qb $t4, $t6, $t1", 0xffffffff, 0xffffffff,
6646                             t4, t6, t1);
6647   TESTDSPINST_RD_RT_RS_DSPC("shllv.qb $t0, $t1, $t2", 0xf2f4df1f, 0xcb4ab48f,
6648                             t0, t1, t2);
6649   TESTDSPINST_RD_RT_RS_DSPC("shllv.qb $t2, $t3, $t4", 0x435f909a, 0xaf8f7e18,
6650                             t2, t3, t4);
6651   TESTDSPINST_RD_RT_RS_DSPC("shllv.qb $t4, $t1, $t5", 0x2106ba5f, 0x87df4510,
6652                             t4, t1, t5);
6653   TESTDSPINST_RD_RT_RS_DSPC("shllv.qb $t6, $t7, $t3", 0x246a6376, 0xabf4e8e1,
6654                             t6, t7, t3);
6655   TESTDSPINST_RD_RT_RS_DSPC("shllv.qb $t5, $t3, $t2", 0x1046a1a3, 0xf4c0eeac,
6656                             t5, t3, t2);
6657   TESTDSPINST_RD_RT_RS_DSPC("shllv.qb $t2, $t4, $t8", 0x638ca515, 0x006a54f2,
6658                             t2, t4, t8);
6659   TESTDSPINST_RD_RT_RS_DSPC("shllv.qb $t0, $t8, $t0", 0xf63e7a9d, 0x79f74493,
6660                             t0, t8, t0);
6661   TESTDSPINST_RD_RT_RS_DSPC("shllv.qb $t4, $t6, $t1", 0xbd6845cd, 0x9c09e313,
6662                             t4, t6, t1);
6663
6664   printf("-------- SHLLV_S.W --------\n");
6665   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.w $t0, $t1, $t2", 0x7fffffff, 0x00000000,
6666                             t0, t1, t2);
6667   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.w $t2, $t3, $t4", 0x80000000, 0x00000000,
6668                             t2, t3, t4);
6669   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.w $t4, $t1, $t5", 0x2fff0000, 0xfabc3401,
6670                             t4, t1, t5);
6671   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.w $t6, $t7, $t3", 0x2fff0000, 0x73468002,
6672                             t6, t7, t3);
6673   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.w $t5, $t3, $t2", 0x2fff0000, 0x80000003,
6674                             t5, t3, t2);
6675   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.w $t2, $t4, $t8", 0x00ff0001, 0xff01ffff,
6676                             t2, t4, t8);
6677   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.w $t0, $t8, $t0", 0x7fff7004, 0x7fff7fff,
6678                             t0, t8, t0);
6679   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.w $t4, $t6, $t1", 0x0000c420, 0x00000555,
6680                             t4, t6, t1);
6681   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.w $t0, $t1, $t2", 0x00000000, 0x00000000,
6682                             t0, t1, t2);
6683   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.w $t2, $t3, $t4", 0x80000000, 0x80000000,
6684                             t2, t3, t4);
6685   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.w $t4, $t1, $t5", 0xaaaaaaaa, 0x55555555,
6686                             t4, t1, t5);
6687   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.w $t6, $t7, $t3", 0x00000018, 0xffff2435,
6688                             t6, t7, t3);
6689   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.w $t5, $t3, $t2", 0xbabababa, 0xabababab,
6690                             t5, t3, t2);
6691   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.w $t2, $t4, $t8", 0xf0f0f0f0, 0xfc79b4d2,
6692                             t2, t4, t8);
6693   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.w $t0, $t8, $t0", 0xfbde3976, 0x00000000,
6694                             t0, t8, t0);
6695   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.w $t4, $t6, $t1", 0x23534870, 0x00354565,
6696                             t4, t6, t1);
6697   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.w $t0, $t1, $t2", 0x980b7cde, 0x00086755,
6698                             t0, t1, t2);
6699   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.w $t2, $t3, $t4", 0x00000018, 0x8f8f8f8f,
6700                             t2, t3, t4);
6701   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.w $t4, $t1, $t5", 0x92784656, 0xeeeeeeee,
6702                             t4, t1, t5);
6703   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.w $t6, $t7, $t3", 0xcacacaca, 0x1bdbdbdb,
6704                             t6, t7, t3);
6705   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.w $t5, $t3, $t2", 0xbacabaca, 0xdecadeca,
6706                             t5, t3, t2);
6707   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.w $t2, $t4, $t8", 0x12fadeb4, 0x93474bde,
6708                             t2, t4, t8);
6709   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.w $t0, $t8, $t0", 0x7c000790, 0xfc0007ff,
6710                             t0, t8, t0);
6711   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.w $t4, $t6, $t1", 0xffffffff, 0xffffffff,
6712                             t4, t6, t1);
6713   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.w $t0, $t1, $t2", 0xf2f4df1f, 0xcb4ab48f,
6714                             t0, t1, t2);
6715   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.w $t2, $t3, $t4", 0x435f909a, 0xaf8f7e18,
6716                             t2, t3, t4);
6717   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.w $t4, $t1, $t5", 0x2106ba5f, 0x87df4510,
6718                             t4, t1, t5);
6719   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.w $t6, $t7, $t3", 0x246a6376, 0xabf4e8e1,
6720                             t6, t7, t3);
6721   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.w $t5, $t3, $t2", 0x1046a1a3, 0xf4c0eeac,
6722                             t5, t3, t2);
6723   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.w $t2, $t4, $t8", 0x638ca515, 0x006a54f2,
6724                             t2, t4, t8);
6725   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.w $t0, $t8, $t0", 0xf63e7a9d, 0x79f74493,
6726                             t0, t8, t0);
6727   TESTDSPINST_RD_RT_RS_DSPC("shllv_s.w $t4, $t6, $t1", 0xbd6845cd, 0x9c09e313,
6728                             t4, t6, t1);
6729
6730   printf("-------- SHRA.PH --------\n");
6731   TESTDSPINST_RD_RT_SA_NODSPC("shra.ph $t0, $t1,  0", 0x00000000,  0, t0, t1);
6732   TESTDSPINST_RD_RT_SA_NODSPC("shra.ph $t2, $t3,  1", 0x00028632,  1, t2, t3);
6733   TESTDSPINST_RD_RT_SA_NODSPC("shra.ph $t4, $t1,  2", 0xfabc3421,  2, t4, t1);
6734   TESTDSPINST_RD_RT_SA_NODSPC("shra.ph $t6, $t7,  3", 0x734680bc,  3, t6, t7);
6735   TESTDSPINST_RD_RT_SA_NODSPC("shra.ph $t5, $t3,  4", 0x80000000,  4, t5, t3);
6736   TESTDSPINST_RD_RT_SA_NODSPC("shra.ph $t2, $t4,  5", 0xff01ffff,  5, t2, t4);
6737   TESTDSPINST_RD_RT_SA_NODSPC("shra.ph $t0, $t8,  6", 0x7fff7fff,  6, t0, t8);
6738   TESTDSPINST_RD_RT_SA_NODSPC("shra.ph $t4, $t6,  7", 0x00000555,  7, t4, t6);
6739   TESTDSPINST_RD_RT_SA_NODSPC("shra.ph $t0, $t1,  8", 0x00000000,  8, t0, t1);
6740   TESTDSPINST_RD_RT_SA_NODSPC("shra.ph $t2, $t3,  9", 0x80000000,  9, t2, t3);
6741   TESTDSPINST_RD_RT_SA_NODSPC("shra.ph $t4, $t1, 10", 0x55555555, 10, t4, t1);
6742   TESTDSPINST_RD_RT_SA_NODSPC("shra.ph $t6, $t7, 11", 0xffff2435, 11, t6, t7);
6743   TESTDSPINST_RD_RT_SA_NODSPC("shra.ph $t5, $t3, 12", 0xabababab, 12, t5, t3);
6744   TESTDSPINST_RD_RT_SA_NODSPC("shra.ph $t2, $t4, 13", 0xfc79b4d2, 13, t2, t4);
6745   TESTDSPINST_RD_RT_SA_NODSPC("shra.ph $t0, $t8, 14", 0x00000000, 14, t0, t8);
6746   TESTDSPINST_RD_RT_SA_NODSPC("shra.ph $t4, $t6, 15", 0x00354565, 15, t4, t6);
6747   TESTDSPINST_RD_RT_SA_NODSPC("shra.ph $t0, $t1,  0", 0x00086755,  0, t0, t1);
6748   TESTDSPINST_RD_RT_SA_NODSPC("shra.ph $t2, $t3,  1", 0x8f8f8f8f,  1, t2, t3);
6749   TESTDSPINST_RD_RT_SA_NODSPC("shra.ph $t4, $t1,  2", 0xeeeeeeee,  2, t4, t1);
6750   TESTDSPINST_RD_RT_SA_NODSPC("shra.ph $t6, $t7,  3", 0x1bdbdbdb,  3, t6, t7);
6751   TESTDSPINST_RD_RT_SA_NODSPC("shra.ph $t5, $t3,  4", 0xdecadeca,  4, t5, t3);
6752   TESTDSPINST_RD_RT_SA_NODSPC("shra.ph $t2, $t4,  5", 0x93474bde,  5, t2, t4);
6753   TESTDSPINST_RD_RT_SA_NODSPC("shra.ph $t0, $t8,  6", 0xfc0007ff,  6, t0, t8);
6754   TESTDSPINST_RD_RT_SA_NODSPC("shra.ph $t4, $t6,  7", 0xffffffff,  7, t4, t6);
6755   TESTDSPINST_RD_RT_SA_NODSPC("shra.ph $t0, $t1,  8", 0xcb4ab48f,  8, t0, t1);
6756   TESTDSPINST_RD_RT_SA_NODSPC("shra.ph $t2, $t3,  9", 0xaf8f7e18,  9, t2, t3);
6757   TESTDSPINST_RD_RT_SA_NODSPC("shra.ph $t4, $t1, 10", 0x87df4510, 10, t4, t1);
6758   TESTDSPINST_RD_RT_SA_NODSPC("shra.ph $t6, $t7, 11", 0xabf4e8e1, 11, t6, t7);
6759   TESTDSPINST_RD_RT_SA_NODSPC("shra.ph $t5, $t3, 12", 0xf4c0eeac, 12, t5, t3);
6760   TESTDSPINST_RD_RT_SA_NODSPC("shra.ph $t2, $t4, 13", 0x006a54f2, 13, t2, t4);
6761   TESTDSPINST_RD_RT_SA_NODSPC("shra.ph $t0, $t8, 14", 0x79f74493, 14, t0, t8);
6762   TESTDSPINST_RD_RT_SA_NODSPC("shra.ph $t4, $t6, 15", 0x9c09e313, 15, t4, t6);
6763
6764   printf("-------- SHRA_R.PH --------\n");
6765   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.ph $t0, $t1,  0", 0x00000000,  0, t0,
6766                               t1);
6767   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.ph $t2, $t3,  1", 0x00028632,  1, t2,
6768                               t3);
6769   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.ph $t4, $t1,  2", 0xfabc3421,  2, t4,
6770                               t1);
6771   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.ph $t6, $t7,  3", 0x734680bc,  3, t6,
6772                               t7);
6773   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.ph $t5, $t3,  4", 0x80000000,  4, t5,
6774                               t3);
6775   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.ph $t2, $t4,  5", 0xff01ffff,  5, t2,
6776                               t4);
6777   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.ph $t0, $t8,  6", 0x7fff7fff,  6, t0,
6778                               t8);
6779   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.ph $t4, $t6,  7", 0x00000555,  7, t4,
6780                               t6);
6781   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.ph $t0, $t1,  8", 0x00000000,  8, t0,
6782                               t1);
6783   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.ph $t2, $t3,  9", 0x80000000,  9, t2,
6784                               t3);
6785   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.ph $t4, $t1, 10", 0x55555555, 10, t4,
6786                               t1);
6787   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.ph $t6, $t7, 11", 0xffff2435, 11, t6,
6788                               t7);
6789   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.ph $t5, $t3, 12", 0xabababab, 12, t5,
6790                               t3);
6791   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.ph $t2, $t4, 13", 0xfc79b4d2, 13, t2,
6792                               t4);
6793   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.ph $t0, $t8, 14", 0x00000000, 14, t0,
6794                               t8);
6795   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.ph $t4, $t6, 15", 0x00354565, 15, t4,
6796                               t6);
6797   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.ph $t0, $t1,  0", 0x00086755,  0, t0,
6798                               t1);
6799   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.ph $t2, $t3,  1", 0x8f8f8f8f,  1, t2,
6800                               t3);
6801   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.ph $t4, $t1,  2", 0xeeeeeeee,  2, t4,
6802                               t1);
6803   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.ph $t6, $t7,  3", 0x1bdbdbdb,  3, t6,
6804                               t7);
6805   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.ph $t5, $t3,  4", 0xdecadeca,  4, t5,
6806                               t3);
6807   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.ph $t2, $t4,  5", 0x93474bde,  5, t2,
6808                               t4);
6809   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.ph $t0, $t8,  6", 0xfc0007ff,  6, t0,
6810                               t8);
6811   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.ph $t4, $t6,  7", 0xffffffff,  7, t4,
6812                               t6);
6813   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.ph $t0, $t1,  8", 0xcb4ab48f,  8, t0,
6814                               t1);
6815   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.ph $t2, $t3,  9", 0xaf8f7e18,  9, t2,
6816                               t3);
6817   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.ph $t4, $t1, 10", 0x87df4510, 10, t4,
6818                               t1);
6819   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.ph $t6, $t7, 11", 0xabf4e8e1, 11, t6,
6820                               t7);
6821   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.ph $t5, $t3, 12", 0xf4c0eeac, 12, t5,
6822                               t3);
6823   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.ph $t2, $t4, 13", 0x006a54f2, 13, t2,
6824                               t4);
6825   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.ph $t0, $t8, 14", 0x79f74493, 14, t0,
6826                               t8);
6827   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.ph $t4, $t6, 15", 0x9c09e313, 15, t4,
6828                               t6);
6829
6830   printf("-------- SHRA_R.W --------\n");
6831   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.w $t2, $t3,  1", 0x2,  1, t2, t3);
6832   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.w $t2, $t3, 16", 0x80000000, 16, t2, t3);
6833   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.w $t2, $t3,  1", 0x10001,  1, t2, t3);
6834   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.w $t2, $t3, 17", 0x10001, 17, t2, t3);
6835   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.w $t2, $t3, 17", 0x80010001, 17, t2, t3);
6836   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.w $t2, $t3,  0", 0x7fffffff,  0, t2, t3);
6837   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.w $t2, $t3,  1", 0x7fffffff,  1, t2, t3);
6838   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.w $t2, $t3,  2", 0x7ffffffe,  2, t2, t3);
6839   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.w $t0, $t1,  0", 0x00000000,  0, t0, t1);
6840   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.w $t4, $t1,  4", 0xfabc3435,  4, t4, t1);
6841   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.w $t6, $t7, 17", 0x07654cb8, 17, t6, t7);
6842   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.w $t5, $t3, 31", 0xf973437b, 31, t5, t3);
6843   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.w $t2, $t4,  8", 0x00ff0001,  8, t2, t4);
6844   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.w $t0, $t8, 11", 0x7fff7fff, 11, t0, t8);
6845   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.w $t4, $t6, 13", 0x0000c420, 13, t4, t6);
6846   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.w $t0, $t1,  2", 0x00000000,  2, t0, t1);
6847   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.w $t2, $t3,  6", 0x80000000,  6, t2, t3);
6848   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.w $t4, $t1,  7", 0xaaaaaaaa,  7, t4, t1);
6849   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.w $t6, $t7, 19", 0x00000018, 19, t6, t7);
6850   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.w $t5, $t3, 31", 0xbabababa, 31, t5, t3);
6851   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.w $t2, $t4,  4", 0xf0f0f0f0,  4, t2, t4);
6852   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.w $t0, $t8, 12", 0xfbde3976, 12, t0, t8);
6853   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.w $t4, $t6, 10", 0x23534870, 10, t4, t6);
6854   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.w $t0, $t1, 20", 0x980b7cde, 20, t0, t1);
6855   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.w $t2, $t3, 21", 0x00000018, 21, t2, t3);
6856   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.w $t4, $t1, 24", 0x92784656, 24, t4, t1);
6857   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.w $t6, $t7, 27", 0xcacacaca, 27, t6, t7);
6858   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.w $t5, $t3,  1", 0xbacabaca,  1, t5, t3);
6859   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.w $t2, $t4, 18", 0x12fadeb4, 18, t2, t4);
6860   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.w $t0, $t8, 10", 0x7c000790, 10, t0, t8);
6861   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.w $t4, $t6, 16", 0xffffffff, 16, t4, t6);
6862   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.w $t0, $t1,  0", 0xf2f4df1f,  0, t0, t1);
6863   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.w $t2, $t3, 14", 0x435f909a, 14, t2, t3);
6864   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.w $t4, $t1,  5", 0x2106ba5f,  5, t4, t1);
6865   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.w $t6, $t7,  7", 0x246a6376,  7, t6, t7);
6866   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.w $t5, $t3,  9", 0x1046a1a3,  9, t5, t3);
6867   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.w $t2, $t4,  3", 0x638ca515,  3, t2, t4);
6868   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.w $t0, $t8, 15", 0xf63e7a9d, 15, t0, t8);
6869   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.w $t4, $t6, 11", 0xbd6845cd, 11, t4, t6);
6870
6871   printf("-------- SHRAV.PH --------\n");
6872   TESTDSPINST_RD_RS_RT_NODSPC("shrav.ph $t0, $t1, $t2", 0x7fffffff, 0x00000000,
6873                               t0, t1, t2);
6874   TESTDSPINST_RD_RS_RT_NODSPC("shrav.ph $t2, $t3, $t4", 0x80000000, 0x00000000,
6875                               t2, t3, t4);
6876   TESTDSPINST_RD_RS_RT_NODSPC("shrav.ph $t4, $t1, $t5", 0xfabc3435, 0xfabc3421,
6877                               t4, t1, t5);
6878   TESTDSPINST_RD_RS_RT_NODSPC("shrav.ph $t6, $t7, $t3", 0x07654cb8, 0x734680bc,
6879                               t6, t7, t3);
6880   TESTDSPINST_RD_RS_RT_NODSPC("shrav.ph $t5, $t3, $t2", 0xf973437b, 0x80000000,
6881                               t5, t3, t2);
6882   TESTDSPINST_RD_RS_RT_NODSPC("shrav.ph $t2, $t4, $t8", 0x00ff0001, 0xff01ffff,
6883                               t2, t4, t8);
6884   TESTDSPINST_RD_RS_RT_NODSPC("shrav.ph $t0, $t8, $t0", 0x7fff7004, 0x7fff7fff,
6885                               t0, t8, t0);
6886   TESTDSPINST_RD_RS_RT_NODSPC("shrav.ph $t4, $t6, $t1", 0x0000c420, 0x00000555,
6887                               t4, t6, t1);
6888   TESTDSPINST_RD_RS_RT_NODSPC("shrav.ph $t0, $t1, $t2", 0x00000000, 0x00000000,
6889                               t0, t1, t2);
6890   TESTDSPINST_RD_RS_RT_NODSPC("shrav.ph $t2, $t3, $t4", 0x80000000, 0x80000000,
6891                               t2, t3, t4);
6892   TESTDSPINST_RD_RS_RT_NODSPC("shrav.ph $t4, $t1, $t5", 0xaaaaaaaa, 0x55555555,
6893                               t4, t1, t5);
6894   TESTDSPINST_RD_RS_RT_NODSPC("shrav.ph $t6, $t7, $t3", 0x00000018, 0xffff2435,
6895                               t6, t7, t3);
6896   TESTDSPINST_RD_RS_RT_NODSPC("shrav.ph $t5, $t3, $t2", 0xbabababa, 0xabababab,
6897                               t5, t3, t2);
6898   TESTDSPINST_RD_RS_RT_NODSPC("shrav.ph $t2, $t4, $t8", 0xf0f0f0f0, 0xfc79b4d2,
6899                               t2, t4, t8);
6900   TESTDSPINST_RD_RS_RT_NODSPC("shrav.ph $t0, $t8, $t0", 0xfbde3976, 0x00000000,
6901                               t0, t8, t0);
6902   TESTDSPINST_RD_RS_RT_NODSPC("shrav.ph $t4, $t6, $t1", 0x23534870, 0x00354565,
6903                               t4, t6, t1);
6904   TESTDSPINST_RD_RS_RT_NODSPC("shrav.ph $t0, $t1, $t2", 0x980b7cde, 0x00086755,
6905                               t0, t1, t2);
6906   TESTDSPINST_RD_RS_RT_NODSPC("shrav.ph $t2, $t3, $t4", 0x00000018, 0x8f8f8f8f,
6907                               t2, t3, t4);
6908   TESTDSPINST_RD_RS_RT_NODSPC("shrav.ph $t4, $t1, $t5", 0x92784656, 0xeeeeeeee,
6909                               t4, t1, t5);
6910   TESTDSPINST_RD_RS_RT_NODSPC("shrav.ph $t6, $t7, $t3", 0xcacacaca, 0x1bdbdbdb,
6911                               t6, t7, t3);
6912   TESTDSPINST_RD_RS_RT_NODSPC("shrav.ph $t5, $t3, $t2", 0xbacabaca, 0xdecadeca,
6913                               t5, t3, t2);
6914   TESTDSPINST_RD_RS_RT_NODSPC("shrav.ph $t2, $t4, $t8", 0x12fadeb4, 0x93474bde,
6915                               t2, t4, t8);
6916   TESTDSPINST_RD_RS_RT_NODSPC("shrav.ph $t0, $t8, $t0", 0x7c000790, 0xfc0007ff,
6917                               t0, t8, t0);
6918   TESTDSPINST_RD_RS_RT_NODSPC("shrav.ph $t4, $t6, $t1", 0xffffffff, 0xffffffff,
6919                               t4, t6, t1);
6920   TESTDSPINST_RD_RS_RT_NODSPC("shrav.ph $t0, $t1, $t2", 0xf2f4df1f, 0xcb4ab48f,
6921                               t0, t1, t2);
6922   TESTDSPINST_RD_RS_RT_NODSPC("shrav.ph $t2, $t3, $t4", 0x435f909a, 0xaf8f7e18,
6923                               t2, t3, t4);
6924   TESTDSPINST_RD_RS_RT_NODSPC("shrav.ph $t4, $t1, $t5", 0x2106ba5f, 0x87df4510,
6925                               t4, t1, t5);
6926   TESTDSPINST_RD_RS_RT_NODSPC("shrav.ph $t6, $t7, $t3", 0x246a6376, 0xabf4e8e1,
6927                               t6, t7, t3);
6928   TESTDSPINST_RD_RS_RT_NODSPC("shrav.ph $t5, $t3, $t2", 0x1046a1a3, 0xf4c0eeac,
6929                               t5, t3, t2);
6930   TESTDSPINST_RD_RS_RT_NODSPC("shrav.ph $t2, $t4, $t8", 0x638ca515, 0x006a54f2,
6931                               t2, t4, t8);
6932   TESTDSPINST_RD_RS_RT_NODSPC("shrav.ph $t0, $t8, $t0", 0xf63e7a9d, 0x79f74493,
6933                               t0, t8, t0);
6934   TESTDSPINST_RD_RS_RT_NODSPC("shrav.ph $t4, $t6, $t1", 0xbd6845cd, 0x9c09e313,
6935                               t4, t6, t1);
6936
6937   printf("-------- SHRAV_R.PH --------\n");
6938   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.ph $t0, $t1, $t2", 0x7fffffff,
6939                               0x00000000, t0, t1, t2);
6940   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.ph $t2, $t3, $t4", 0x80000000,
6941                               0x00000000, t2, t3, t4);
6942   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.ph $t4, $t1, $t5", 0xfabc3435,
6943                               0xfabc3421, t4, t1, t5);
6944   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.ph $t6, $t7, $t3", 0x07654cb8,
6945                               0x734680bc, t6, t7, t3);
6946   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.ph $t5, $t3, $t2", 0xf973437b,
6947                               0x80000000, t5, t3, t2);
6948   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.ph $t2, $t4, $t8", 0x00ff0001,
6949                               0xff01ffff, t2, t4, t8);
6950   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.ph $t0, $t8, $t0", 0x7fff7004,
6951                               0x7fff7fff, t0, t8, t0);
6952   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.ph $t4, $t6, $t1", 0x0000c420,
6953                               0x00000555, t4, t6, t1);
6954   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.ph $t0, $t1, $t2", 0x00000000,
6955                               0x00000000, t0, t1, t2);
6956   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.ph $t2, $t3, $t4", 0x80000000,
6957                               0x80000000, t2, t3, t4);
6958   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.ph $t4, $t1, $t5", 0xaaaaaaaa,
6959                               0x55555555, t4, t1, t5);
6960   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.ph $t6, $t7, $t3", 0x00000018,
6961                               0xffff2435, t6, t7, t3);
6962   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.ph $t5, $t3, $t2", 0xbabababa,
6963                               0xabababab, t5, t3, t2);
6964   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.ph $t2, $t4, $t8", 0xf0f0f0f0,
6965                               0xfc79b4d2, t2, t4, t8);
6966   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.ph $t0, $t8, $t0", 0xfbde3976,
6967                               0x00000000, t0, t8, t0);
6968   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.ph $t4, $t6, $t1", 0x23534870,
6969                               0x00354565, t4, t6, t1);
6970   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.ph $t0, $t1, $t2", 0x980b7cde,
6971                               0x00086755, t0, t1, t2);
6972   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.ph $t2, $t3, $t4", 0x00000018,
6973                               0x8f8f8f8f, t2, t3, t4);
6974   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.ph $t4, $t1, $t5", 0x92784656,
6975                               0xeeeeeeee, t4, t1, t5);
6976   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.ph $t6, $t7, $t3", 0xcacacaca,
6977                               0x1bdbdbdb, t6, t7, t3);
6978   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.ph $t5, $t3, $t2", 0xbacabaca,
6979                               0xdecadeca, t5, t3, t2);
6980   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.ph $t2, $t4, $t8", 0x12fadeb4,
6981                               0x93474bde, t2, t4, t8);
6982   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.ph $t0, $t8, $t0", 0x7c000790,
6983                               0xfc0007ff, t0, t8, t0);
6984   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.ph $t4, $t6, $t1", 0xffffffff,
6985                               0xffffffff, t4, t6, t1);
6986   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.ph $t0, $t1, $t2", 0xf2f4df1f,
6987                               0xcb4ab48f, t0, t1, t2);
6988   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.ph $t2, $t3, $t4", 0x435f909a,
6989                               0xaf8f7e18, t2, t3, t4);
6990   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.ph $t4, $t1, $t5", 0x2106ba5f,
6991                               0x87df4510, t4, t1, t5);
6992   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.ph $t6, $t7, $t3", 0x246a6376,
6993                               0xabf4e8e1, t6, t7, t3);
6994   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.ph $t5, $t3, $t2", 0x1046a1a3,
6995                               0xf4c0eeac, t5, t3, t2);
6996   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.ph $t2, $t4, $t8", 0x638ca515,
6997                               0x006a54f2, t2, t4, t8);
6998   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.ph $t0, $t8, $t0", 0xf63e7a9d,
6999                               0x79f74493, t0, t8, t0);
7000   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.ph $t4, $t6, $t1", 0xbd6845cd,
7001                               0x9c09e313, t4, t6, t1);
7002
7003   printf("-------- SHRAV_R.W --------\n");
7004   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.w $t0, $t1, $t2", 0x7fffffff,
7005                               0x00000000, t0, t1, t2);
7006   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.w $t2, $t3, $t4", 0x80000000,
7007                               0x00000000, t2, t3, t4);
7008   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.w $t4, $t1, $t5", 0xfabc3435,
7009                               0xfabc3421, t4, t1, t5);
7010   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.w $t6, $t7, $t3", 0x07654cb8,
7011                               0x734680bc, t6, t7, t3);
7012   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.w $t5, $t3, $t2", 0xf973437b,
7013                               0x80000000, t5, t3, t2);
7014   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.w $t2, $t4, $t8", 0x00ff0001,
7015                               0xff01ffff, t2, t4, t8);
7016   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.w $t0, $t8, $t0", 0x7fff7004,
7017                               0x7fff7fff, t0, t8, t0);
7018   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.w $t4, $t6, $t1", 0x0000c420,
7019                               0x00000555, t4, t6, t1);
7020   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.w $t0, $t1, $t2", 0x00000000,
7021                               0x00000000, t0, t1, t2);
7022   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.w $t2, $t3, $t4", 0x80000000,
7023                               0x80000000, t2, t3, t4);
7024   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.w $t4, $t1, $t5", 0xaaaaaaaa,
7025                               0x55555555, t4, t1, t5);
7026   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.w $t6, $t7, $t3", 0x00000018,
7027                               0xffff2435, t6, t7, t3);
7028   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.w $t5, $t3, $t2", 0xbabababa,
7029                               0xabababab, t5, t3, t2);
7030   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.w $t2, $t4, $t8", 0xf0f0f0f0,
7031                               0xfc79b4d2, t2, t4, t8);
7032   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.w $t0, $t8, $t0", 0xfbde3976,
7033                               0x00000000, t0, t8, t0);
7034   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.w $t4, $t6, $t1", 0x23534870,
7035                               0x00354565, t4, t6, t1);
7036   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.w $t0, $t1, $t2", 0x980b7cde,
7037                               0x00086755, t0, t1, t2);
7038   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.w $t2, $t3, $t4", 0x00000018,
7039                               0x8f8f8f8f, t2, t3, t4);
7040   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.w $t4, $t1, $t5", 0x92784656,
7041                               0xeeeeeeee, t4, t1, t5);
7042   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.w $t6, $t7, $t3", 0xcacacaca,
7043                               0x1bdbdbdb, t6, t7, t3);
7044   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.w $t5, $t3, $t2", 0xbacabaca,
7045                               0xdecadeca, t5, t3, t2);
7046   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.w $t2, $t4, $t8", 0x12fadeb4,
7047                               0x93474bde, t2, t4, t8);
7048   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.w $t0, $t8, $t0", 0x7c000790,
7049                               0xfc0007ff, t0, t8, t0);
7050   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.w $t4, $t6, $t1", 0xffffffff,
7051                               0xffffffff, t4, t6, t1);
7052   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.w $t0, $t1, $t2", 0xf2f4df1f,
7053                               0xcb4ab48f, t0, t1, t2);
7054   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.w $t2, $t3, $t4", 0x435f909a,
7055                               0xaf8f7e18, t2, t3, t4);
7056   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.w $t4, $t1, $t5", 0x2106ba5f,
7057                               0x87df4510, t4, t1, t5);
7058   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.w $t6, $t7, $t3", 0x246a6376,
7059                               0xabf4e8e1, t6, t7, t3);
7060   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.w $t5, $t3, $t2", 0x1046a1a3,
7061                               0xf4c0eeac, t5, t3, t2);
7062   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.w $t2, $t4, $t8", 0x638ca515,
7063                               0x006a54f2, t2, t4, t8);
7064   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.w $t0, $t8, $t0", 0xf63e7a9d,
7065                               0x79f74493, t0, t8, t0);
7066   TESTDSPINST_RD_RS_RT_NODSPC("shrav_r.w $t4, $t6, $t1", 0xbd6845cd,
7067                               0x9c09e313, t4, t6, t1);
7068
7069   printf("-------- SHRL.QB --------\n");
7070   TESTDSPINST_RD_RT_SA_NODSPC("shrl.qb $t0, $t1, 1", 0x2fff0000, 1, t0, t1);
7071   TESTDSPINST_RD_RT_SA_NODSPC("shrl.qb $t2, $t3, 2", 0x2fff0000, 2, t2, t3);
7072   TESTDSPINST_RD_RT_SA_NODSPC("shrl.qb $t4, $t1, 3", 0x2fff0000, 3, t4, t1);
7073   TESTDSPINST_RD_RT_SA_NODSPC("shrl.qb $t6, $t7, 4", 0xff460000, 4, t6, t7);
7074   TESTDSPINST_RD_RT_SA_NODSPC("shrl.qb $t5, $t3, 0", 0x80000000, 0, t5, t3);
7075   TESTDSPINST_RD_RT_SA_NODSPC("shrl.qb $t2, $t4, 7", 0xff01ffff, 7, t2, t4);
7076   TESTDSPINST_RD_RT_SA_NODSPC("shrl.qb $t0, $t8, 7", 0x7fff7fff, 7, t0, t8);
7077   TESTDSPINST_RD_RT_SA_NODSPC("shrl.qb $t4, $t6, 0", 0x00000555, 0, t4, t6);
7078   TESTDSPINST_RD_RT_SA_NODSPC("shrl.qb $t0, $t1, 1", 0x00000000, 1, t0, t1);
7079   TESTDSPINST_RD_RT_SA_NODSPC("shrl.qb $t2, $t3, 2", 0x80000000, 2, t2, t3);
7080   TESTDSPINST_RD_RT_SA_NODSPC("shrl.qb $t4, $t1, 3", 0x55555555, 3, t4, t1);
7081   TESTDSPINST_RD_RT_SA_NODSPC("shrl.qb $t6, $t7, 4", 0xffff2435, 4, t6, t7);
7082   TESTDSPINST_RD_RT_SA_NODSPC("shrl.qb $t5, $t3, 5", 0xabababab, 5, t5, t3);
7083   TESTDSPINST_RD_RT_SA_NODSPC("shrl.qb $t2, $t4, 6", 0xfc79b4d2, 6, t2, t4);
7084   TESTDSPINST_RD_RT_SA_NODSPC("shrl.qb $t0, $t8, 7", 0x00000000, 7, t0, t8);
7085   TESTDSPINST_RD_RT_SA_NODSPC("shrl.qb $t4, $t6, 0", 0x00354565, 0, t4, t6);
7086   TESTDSPINST_RD_RT_SA_NODSPC("shrl.qb $t0, $t1, 1", 0x00086755, 1, t0, t1);
7087   TESTDSPINST_RD_RT_SA_NODSPC("shrl.qb $t2, $t3, 2", 0x8f8f8f8f, 2, t2, t3);
7088   TESTDSPINST_RD_RT_SA_NODSPC("shrl.qb $t4, $t1, 3", 0xeeeeeeee, 3, t4, t1);
7089   TESTDSPINST_RD_RT_SA_NODSPC("shrl.qb $t6, $t7, 4", 0x1bdbdbdb, 4, t6, t7);
7090   TESTDSPINST_RD_RT_SA_NODSPC("shrl.qb $t5, $t3, 5", 0xdecadeca, 5, t5, t3);
7091   TESTDSPINST_RD_RT_SA_NODSPC("shrl.qb $t2, $t4, 6", 0x93474bde, 6, t2, t4);
7092   TESTDSPINST_RD_RT_SA_NODSPC("shrl.qb $t0, $t8, 7", 0xfc0007ff, 7, t0, t8);
7093   TESTDSPINST_RD_RT_SA_NODSPC("shrl.qb $t4, $t6, 0", 0xffffffff, 0, t4, t6);
7094   TESTDSPINST_RD_RT_SA_NODSPC("shrl.qb $t0, $t1, 3", 0xcb4ab48f, 3, t0, t1);
7095   TESTDSPINST_RD_RT_SA_NODSPC("shrl.qb $t2, $t3, 4", 0xaf8f7e18, 4, t2, t3);
7096   TESTDSPINST_RD_RT_SA_NODSPC("shrl.qb $t4, $t1, 0", 0x87df4510, 0, t4, t1);
7097   TESTDSPINST_RD_RT_SA_NODSPC("shrl.qb $t6, $t7, 7", 0xabf4e8e1, 7, t6, t7);
7098   TESTDSPINST_RD_RT_SA_NODSPC("shrl.qb $t5, $t3, 7", 0xf4c0eeac, 7, t5, t3);
7099   TESTDSPINST_RD_RT_SA_NODSPC("shrl.qb $t2, $t4, 5", 0x006a54f2, 5, t2, t4);
7100   TESTDSPINST_RD_RT_SA_NODSPC("shrl.qb $t0, $t8, 1", 0x79f74493, 1, t0, t8);
7101   TESTDSPINST_RD_RT_SA_NODSPC("shrl.qb $t4, $t6, 2", 0x9c09e313, 2, t4, t6);
7102
7103   printf("-------- SHRLV.QB -------- \n");
7104   TESTDSPINST_RD_RT_RS_NODSPC("shrlv.qb $t0, $t1, $t2", 0x2fff0000, 0x00000001,
7105                               t0, t1, t2);
7106   TESTDSPINST_RD_RT_RS_NODSPC("shrlv.qb $t2, $t3, $t4", 0x2fff0000, 0x73741802,
7107                               t2, t3, t4);
7108   TESTDSPINST_RD_RT_RS_NODSPC("shrlv.qb $t4, $t1, $t5", 0x2fff0000, 0x80003403,
7109                               t4, t1, t5);
7110   TESTDSPINST_RD_RT_RS_NODSPC("shrlv.qb $t6, $t7, $t3", 0xff460000, 0x73468004,
7111                               t6, t7, t3);
7112   TESTDSPINST_RD_RT_RS_NODSPC("shrlv.qb $t5, $t3, $t2", 0x00008000, 0x80000000,
7113                               t5, t3, t2);
7114   TESTDSPINST_RD_RT_RS_NODSPC("shrlv.qb $t2, $t4, $t8", 0x00010001, 0xffffff07,
7115                               t2, t4, t8);
7116   TESTDSPINST_RD_RT_RS_NODSPC("shrlv.qb $t0, $t8, $t0", 0x7fff7fff, 0x7fff7f07,
7117                               t0, t8, t0);
7118   TESTDSPINST_RD_RT_RS_NODSPC("shrlv.qb $t4, $t6, $t1", 0xffffffff, 0x00000505,
7119                               t4, t6, t1);
7120   TESTDSPINST_RD_RT_RS_NODSPC("shrlv.qb $t0, $t1, $t2", 0xabababab, 0x00000000,
7121                               t0, t1, t2);
7122   TESTDSPINST_RD_RT_RS_NODSPC("shrlv.qb $t2, $t3, $t4", 0xdecadeca, 0x80000000,
7123                               t2, t3, t4);
7124   TESTDSPINST_RD_RT_RS_NODSPC("shrlv.qb $t4, $t1, $t5", 0xbacabaca, 0x55555555,
7125                               t4, t1, t5);
7126   TESTDSPINST_RD_RT_RS_NODSPC("shrlv.qb $t6, $t7, $t3", 0x3545ff80, 0xffff2434,
7127                               t6, t7, t3);
7128   TESTDSPINST_RD_RT_RS_NODSPC("shrlv.qb $t5, $t3, $t2", 0x734680bc, 0xabababa3,
7129                               t5, t3, t2);
7130   TESTDSPINST_RD_RT_RS_NODSPC("shrlv.qb $t2, $t4, $t8", 0xc4dbfe20, 0xfc79b4d2,
7131                               t2, t4, t8);
7132   TESTDSPINST_RD_RT_RS_NODSPC("shrlv.qb $t0, $t8, $t0", 0x00000000, 0x00000000,
7133                               t0, t8, t0);
7134   TESTDSPINST_RD_RT_RS_NODSPC("shrlv.qb $t4, $t3, $t1", 0x55555555, 0x00354561,
7135                               t4, t3, t1);
7136   TESTDSPINST_RD_RT_RS_NODSPC("shrlv.qb $t0, $t1, $t2", 0xad80bce4, 0x00086755,
7137                               t0, t1, t2);
7138   TESTDSPINST_RD_RT_RS_NODSPC("shrlv.qb $t2, $t3, $t4", 0x7f003245, 0x8f8f8f8f,
7139                               t2, t3, t4);
7140   TESTDSPINST_RD_RT_RS_NODSPC("shrlv.qb $t4, $t1, $t5", 0x93474bde, 0xeeeeeeee,
7141                               t4, t1, t5);
7142   TESTDSPINST_RD_RT_RS_NODSPC("shrlv.qb $t6, $t7, $t3", 0xf97343ff, 0x1bdbdbdb,
7143                               t6, t7, t3);
7144   TESTDSPINST_RD_RT_RS_NODSPC("shrlv.qb $t5, $t3, $t2", 0x980b7cde, 0xdecadeca,
7145                               t5, t3, t2);
7146   TESTDSPINST_RD_RT_RS_NODSPC("shrlv.qb $t2, $t4, $t8", 0x0555adec, 0x93474bde,
7147                               t2, t4, t8);
7148   TESTDSPINST_RD_RT_RS_NODSPC("shrlv.qb $t0, $t8, $t0", 0x23534870, 0xfc0007ff,
7149                               t0, t8, t0);
7150   TESTDSPINST_RD_RT_RS_NODSPC("shrlv.qb $t4, $t3, $t1", 0x80003286, 0xffffffff,
7151                               t4, t3, t1);
7152   TESTDSPINST_RD_RT_RS_NODSPC("shrlv.qb $t4, $t6, $t1", 0x4387ffff, 0xdecadeca,
7153                               t4, t6, t1);
7154   TESTDSPINST_RD_RT_RS_NODSPC("shrlv.qb $t0, $t1, $t2", 0x0cd6b508, 0xbacabaca,
7155                               t0, t1, t2);
7156   TESTDSPINST_RD_RT_RS_NODSPC("shrlv.qb $t2, $t3, $t4", 0x6731e282, 0x3545ff80,
7157                               t2, t3, t4);
7158   TESTDSPINST_RD_RT_RS_NODSPC("shrlv.qb $t4, $t1, $t5", 0x26edf28f, 0x734680bc,
7159                               t4, t1, t5);
7160   TESTDSPINST_RD_RT_RS_NODSPC("shrlv.qb $t6, $t7, $t3", 0x4b4ec9ca, 0xc4dbfe20,
7161                               t6, t7, t3);
7162   TESTDSPINST_RD_RT_RS_NODSPC("shrlv.qb $t5, $t3, $t2", 0xc1037fa4, 0x00000000,
7163                               t5, t3, t2);
7164   TESTDSPINST_RD_RT_RS_NODSPC("shrlv.qb $t2, $t4, $t8", 0xcb4ab48f, 0x55555555,
7165                               t2, t4, t8);
7166   TESTDSPINST_RD_RT_RS_NODSPC("shrlv.qb $t0, $t8, $t0", 0xaf8f7e18, 0xad80bce4,
7167                               t0, t8, t0);
7168   TESTDSPINST_RD_RT_RS_NODSPC("shrlv.qb $t4, $t3, $t1", 0x87df4510, 0x7f003245,
7169                               t4, t3, t1);
7170   TESTDSPINST_RD_RT_RS_NODSPC("shrlv.qb $t0, $t1, $t2", 0xabf4e8e1, 0x93474bde,
7171                               t0, t1, t2);
7172   TESTDSPINST_RD_RT_RS_NODSPC("shrlv.qb $t2, $t3, $t4", 0xf4c0eeac, 0xf97343ff,
7173                               t2, t3, t4);
7174   TESTDSPINST_RD_RT_RS_NODSPC("shrlv.qb $t4, $t1, $t5", 0x006a54f2, 0x980b7cde,
7175                               t4, t1, t5);
7176   TESTDSPINST_RD_RT_RS_NODSPC("shrlv.qb $t6, $t7, $t3", 0x79f74493, 0x0555adec,
7177                               t6, t7, t3);
7178   TESTDSPINST_RD_RT_RS_NODSPC("shrlv.qb $t5, $t3, $t2", 0x9c09e313, 0x23534870,
7179                               t5, t3, t2);
7180   TESTDSPINST_RD_RT_RS_NODSPC("shrlv.qb $t2, $t4, $t8", 0x9c09e313, 0x9c09e313,
7181                               t2, t4, t8);
7182   TESTDSPINST_RD_RT_RS_NODSPC("shrlv.qb $t0, $t8, $t0", 0x80000000, 0x80000000,
7183                               t0, t8, t0);
7184   TESTDSPINST_RD_RT_RS_NODSPC("shrlv.qb $t4, $t3, $t1", 0x004d8000, 0x004d8000,
7185                               t4, t3, t1);
7186
7187   printf("-------- SUBQ.PH --------\n");
7188   TESTDSPINST_RD_RS_RT_DSPC("subq.ph $t0, $t1, $t2", 0x00000000, 0x00000000,
7189                             t0, t1, t2);
7190   TESTDSPINST_RD_RS_RT_DSPC("subq.ph $t2, $t3, $t4", 0x045fb232, 0x00028632,
7191                             t2, t3, t4);
7192   TESTDSPINST_RD_RS_RT_DSPC("subq.ph $t4, $t1, $t5", 0xfabc3435, 0xfabc3421,
7193                             t4, t1, t5);
7194   TESTDSPINST_RD_RS_RT_DSPC("subq.ph $t6, $t7, $t3", 0x07654cb8, 0x734680bc,
7195                             t6, t7, t3);
7196   TESTDSPINST_RD_RS_RT_DSPC("subq.ph $t5, $t3, $t2", 0xf973437b, 0x80000000,
7197                             t5, t3, t2);
7198   TESTDSPINST_RD_RS_RT_DSPC("subq.ph $t2, $t4, $t8", 0x00ff0001, 0xff01ffff,
7199                             t2, t4, t8);
7200   TESTDSPINST_RD_RS_RT_DSPC("subq.ph $t0, $t8, $t0", 0x7fff7004, 0x7fff7fff,
7201                             t0, t8, t0);
7202   TESTDSPINST_RD_RS_RT_DSPC("subq.ph $t4, $t6, $t1", 0x0000c420, 0x00000555,
7203                             t4, t6, t1);
7204   TESTDSPINST_RD_RS_RT_DSPC("subq.ph $t0, $t1, $t2", 0x00000000, 0x00000000,
7205                             t0, t1, t2);
7206   TESTDSPINST_RD_RS_RT_DSPC("subq.ph $t2, $t3, $t4", 0x80000000, 0x80000000,
7207                             t2, t3, t4);
7208   TESTDSPINST_RD_RS_RT_DSPC("subq.ph $t4, $t1, $t5", 0xaaaaaaaa, 0x55555555,
7209                             t4, t1, t5);
7210   TESTDSPINST_RD_RS_RT_DSPC("subq.ph $t6, $t7, $t3", 0x00000018, 0xffff2435,
7211                             t6, t7, t3);
7212   TESTDSPINST_RD_RS_RT_DSPC("subq.ph $t5, $t3, $t2", 0xbabababa, 0xabababab,
7213                             t5, t3, t2);
7214   TESTDSPINST_RD_RS_RT_DSPC("subq.ph $t2, $t4, $t8", 0xf0f0f0f0, 0xfc79b4d2,
7215                             t2, t4, t8);
7216   TESTDSPINST_RD_RS_RT_DSPC("subq.ph $t0, $t8, $t0", 0xfbde3976, 0x00000000,
7217                             t0, t8, t0);
7218   TESTDSPINST_RD_RS_RT_DSPC("subq.ph $t4, $t6, $t1", 0x23534870, 0x00354565,
7219                             t4, t6, t1);
7220   TESTDSPINST_RD_RS_RT_DSPC("subq.ph $t0, $t1, $t2", 0x980b7cde, 0x00086755,
7221                             t0, t1, t2);
7222   TESTDSPINST_RD_RS_RT_DSPC("subq.ph $t2, $t3, $t4", 0x00000018, 0x8f8f8f8f,
7223                             t2, t3, t4);
7224   TESTDSPINST_RD_RS_RT_DSPC("subq.ph $t4, $t1, $t5", 0x92784656, 0xeeeeeeee,
7225                             t4, t1, t5);
7226   TESTDSPINST_RD_RS_RT_DSPC("subq.ph $t6, $t7, $t3", 0xcacacaca, 0x1bdbdbdb,
7227                             t6, t7, t3);
7228   TESTDSPINST_RD_RS_RT_DSPC("subq.ph $t5, $t3, $t2", 0xbacabaca, 0xdecadeca,
7229                             t5, t3, t2);
7230   TESTDSPINST_RD_RS_RT_DSPC("subq.ph $t2, $t4, $t8", 0x12fadeb4, 0x93474bde,
7231                             t2, t4, t8);
7232   TESTDSPINST_RD_RS_RT_DSPC("subq.ph $t0, $t8, $t0", 0x7c000790, 0xfc0007ff,
7233                             t0, t8, t0);
7234   TESTDSPINST_RD_RS_RT_DSPC("subq.ph $t4, $t6, $t1", 0xffffffff, 0xffffffff,
7235                             t4, t6, t1);
7236   TESTDSPINST_RD_RS_RT_DSPC("subq.ph $t0, $t1, $t2", 0xf2f4df1f, 0xcb4ab48f,
7237                             t0, t1, t2);
7238   TESTDSPINST_RD_RS_RT_DSPC("subq.ph $t2, $t3, $t4", 0x435f909a, 0xaf8f7e18,
7239                             t2, t3, t4);
7240   TESTDSPINST_RD_RS_RT_DSPC("subq.ph $t4, $t1, $t5", 0x2106ba5f, 0x87df4510,
7241                             t4, t1, t5);
7242   TESTDSPINST_RD_RS_RT_DSPC("subq.ph $t6, $t7, $t3", 0x246a6376, 0xabf4e8e1,
7243                             t6, t7, t3);
7244   TESTDSPINST_RD_RS_RT_DSPC("subq.ph $t5, $t3, $t2", 0x1046a1a3, 0xf4c0eeac,
7245                             t5, t3, t2);
7246   TESTDSPINST_RD_RS_RT_DSPC("subq.ph $t2, $t4, $t8", 0x638ca515, 0x006a54f2,
7247                             t2, t4, t8);
7248   TESTDSPINST_RD_RS_RT_DSPC("subq.ph $t0, $t8, $t0", 0xf63e7a9d, 0x79f74493,
7249                             t0, t8, t0);
7250   TESTDSPINST_RD_RS_RT_DSPC("subq.ph $t4, $t6, $t1", 0xbd6845cd, 0x9c09e313,
7251                             t4, t6, t1);
7252
7253   printf("-------- SUBQ_S.PH --------\n");
7254   TESTDSPINST_RD_RS_RT_DSPC("subq_s.ph $t0, $t1, $t2", 0x00000000, 0x00000000,
7255                             t0, t1, t2);
7256   TESTDSPINST_RD_RS_RT_DSPC("subq_s.ph $t2, $t3, $t4", 0x00020002, 0x00010001,
7257                             t2, t3, t4);
7258   TESTDSPINST_RD_RS_RT_DSPC("subq_s.ph $t4, $t1, $t5", 0x0002fffe, 0x0001ffff,
7259                             t4, t1, t5);
7260   TESTDSPINST_RD_RS_RT_DSPC("subq_s.ph $t6, $t7, $t3", 0x7fff8000, 0x7fff8000,
7261                             t6, t7, t3);
7262   TESTDSPINST_RD_RS_RT_DSPC("subq_s.ph $t5, $t3, $t2", 0x7fff8000, 0x7ffe8001,
7263                             t5, t3, t2);
7264   TESTDSPINST_RD_RS_RT_DSPC("subq_s.ph $t0, $t1, $t2", 0x00000000, 0x00000000,
7265                             t0, t1, t2);
7266   TESTDSPINST_RD_RS_RT_DSPC("subq_s.ph $t2, $t3, $t4", 0x045fb232, 0x00028632,
7267                             t2, t3, t4);
7268   TESTDSPINST_RD_RS_RT_DSPC("subq_s.ph $t4, $t1, $t5", 0xfabc3435, 0xfabc3421,
7269                             t4, t1, t5);
7270   TESTDSPINST_RD_RS_RT_DSPC("subq_s.ph $t6, $t7, $t3", 0x07654cb8, 0x734680bc,
7271                             t6, t7, t3);
7272   TESTDSPINST_RD_RS_RT_DSPC("subq_s.ph $t5, $t3, $t2", 0xf973437b, 0x80000000,
7273                             t5, t3, t2);
7274   TESTDSPINST_RD_RS_RT_DSPC("subq_s.ph $t2, $t4, $t8", 0x00ff0001, 0xff01ffff,
7275                             t2, t4, t8);
7276   TESTDSPINST_RD_RS_RT_DSPC("subq_s.ph $t0, $t8, $t0", 0x7fff7004, 0x7fff7fff,
7277                             t0, t8, t0);
7278   TESTDSPINST_RD_RS_RT_DSPC("subq_s.ph $t4, $t6, $t1", 0x0000c420, 0x00000555,
7279                             t4, t6, t1);
7280   TESTDSPINST_RD_RS_RT_DSPC("subq_s.ph $t0, $t1, $t2", 0x00000000, 0x00000000,
7281                             t0, t1, t2);
7282   TESTDSPINST_RD_RS_RT_DSPC("subq_s.ph $t2, $t3, $t4", 0x80000000, 0x80000000,
7283                             t2, t3, t4);
7284   TESTDSPINST_RD_RS_RT_DSPC("subq_s.ph $t4, $t1, $t5", 0xaaaaaaaa, 0x55555555,
7285                             t4, t1, t5);
7286   TESTDSPINST_RD_RS_RT_DSPC("subq_s.ph $t6, $t7, $t3", 0x00000018, 0xffff2435,
7287                             t6, t7, t3);
7288   TESTDSPINST_RD_RS_RT_DSPC("subq_s.ph $t5, $t3, $t2", 0xbabababa, 0xabababab,
7289                             t5, t3, t2);
7290   TESTDSPINST_RD_RS_RT_DSPC("subq_s.ph $t2, $t4, $t8", 0xf0f0f0f0, 0xfc79b4d2,
7291                             t2, t4, t8);
7292   TESTDSPINST_RD_RS_RT_DSPC("subq_s.ph $t0, $t8, $t0", 0xfbde3976, 0x00000000,
7293                             t0, t8, t0);
7294   TESTDSPINST_RD_RS_RT_DSPC("subq_s.ph $t4, $t6, $t1", 0x23534870, 0x00354565,
7295                             t4, t6, t1);
7296   TESTDSPINST_RD_RS_RT_DSPC("subq_s.ph $t0, $t1, $t2", 0x980b7cde, 0x00086755,
7297                             t0, t1, t2);
7298   TESTDSPINST_RD_RS_RT_DSPC("subq_s.ph $t2, $t3, $t4", 0x00000018, 0x8f8f8f8f,
7299                             t2, t3, t4);
7300   TESTDSPINST_RD_RS_RT_DSPC("subq_s.ph $t4, $t1, $t5", 0x92784656, 0xeeeeeeee,
7301                             t4, t1, t5);
7302   TESTDSPINST_RD_RS_RT_DSPC("subq_s.ph $t6, $t7, $t3", 0xcacacaca, 0x1bdbdbdb,
7303                             t6, t7, t3);
7304   TESTDSPINST_RD_RS_RT_DSPC("subq_s.ph $t5, $t3, $t2", 0xbacabaca, 0xdecadeca,
7305                             t5, t3, t2);
7306   TESTDSPINST_RD_RS_RT_DSPC("subq_s.ph $t2, $t4, $t8", 0x12fadeb4, 0x93474bde,
7307                             t2, t4, t8);
7308   TESTDSPINST_RD_RS_RT_DSPC("subq_s.ph $t0, $t8, $t0", 0x7c000790, 0xfc0007ff,
7309                             t0, t8, t0);
7310   TESTDSPINST_RD_RS_RT_DSPC("subq_s.ph $t4, $t6, $t1", 0xffffffff, 0xffffffff,
7311                             t4, t6, t1);
7312   TESTDSPINST_RD_RS_RT_DSPC("subq_s.ph $t0, $t1, $t2", 0xf2f4df1f, 0xcb4ab48f,
7313                             t0, t1, t2);
7314   TESTDSPINST_RD_RS_RT_DSPC("subq_s.ph $t2, $t3, $t4", 0x435f909a, 0xaf8f7e18,
7315                             t2, t3, t4);
7316   TESTDSPINST_RD_RS_RT_DSPC("subq_s.ph $t4, $t1, $t5", 0x2106ba5f, 0x87df4510,
7317                             t4, t1, t5);
7318   TESTDSPINST_RD_RS_RT_DSPC("subq_s.ph $t6, $t7, $t3", 0x246a6376, 0xabf4e8e1,
7319                             t6, t7, t3);
7320   TESTDSPINST_RD_RS_RT_DSPC("subq_s.ph $t5, $t3, $t2", 0x1046a1a3, 0xf4c0eeac,
7321                             t5, t3, t2);
7322   TESTDSPINST_RD_RS_RT_DSPC("subq_s.ph $t2, $t4, $t8", 0x638ca515, 0x006a54f2,
7323                             t2, t4, t8);
7324   TESTDSPINST_RD_RS_RT_DSPC("subq_s.ph $t0, $t8, $t0", 0xf63e7a9d, 0x79f74493,
7325                             t0, t8, t0);
7326   TESTDSPINST_RD_RS_RT_DSPC("subq_s.ph $t4, $t6, $t1", 0xbd6845cd, 0x9c09e313,
7327                             t4, t6, t1);
7328
7329   printf("-------- SUBQ_S.W --------\n");
7330   TESTDSPINST_RD_RS_RT_DSPC("subq_s.w $t0, $t1, $t2", 0x7fffffff, 0x00000000,
7331                             t0, t1, t2);
7332   TESTDSPINST_RD_RS_RT_DSPC("subq_s.w $t2, $t3, $t4", 0x80000000, 0x00000000,
7333                             t2, t3, t4);
7334   TESTDSPINST_RD_RS_RT_DSPC("subq_s.w $t4, $t1, $t5", 0xfabc3435, 0xfabc3421,
7335                             t4, t1, t5);
7336   TESTDSPINST_RD_RS_RT_DSPC("subq_s.w $t6, $t7, $t3", 0x07654cb8, 0x734680bc,
7337                             t6, t7, t3);
7338   TESTDSPINST_RD_RS_RT_DSPC("subq_s.w $t5, $t3, $t2", 0xf973437b, 0x80000000,
7339                             t5, t3, t2);
7340   TESTDSPINST_RD_RS_RT_DSPC("subq_s.w $t2, $t4, $t8", 0x00ff0001, 0xff01ffff,
7341                             t2, t4, t8);
7342   TESTDSPINST_RD_RS_RT_DSPC("subq_s.w $t0, $t8, $t0", 0x7fff7004, 0x7fff7fff,
7343                             t0, t8, t0);
7344   TESTDSPINST_RD_RS_RT_DSPC("subq_s.w $t4, $t6, $t1", 0x0000c420, 0x00000555,
7345                             t4, t6, t1);
7346   TESTDSPINST_RD_RS_RT_DSPC("subq_s.w $t0, $t1, $t2", 0x00000000, 0x00000000,
7347                             t0, t1, t2);
7348   TESTDSPINST_RD_RS_RT_DSPC("subq_s.w $t2, $t3, $t4", 0x80000000, 0x80000000,
7349                             t2, t3, t4);
7350   TESTDSPINST_RD_RS_RT_DSPC("subq_s.w $t4, $t1, $t5", 0xaaaaaaaa, 0x55555555,
7351                             t4, t1, t5);
7352   TESTDSPINST_RD_RS_RT_DSPC("subq_s.w $t6, $t7, $t3", 0x00000018, 0xffff2435,
7353                             t6, t7, t3);
7354   TESTDSPINST_RD_RS_RT_DSPC("subq_s.w $t5, $t3, $t2", 0xbabababa, 0xabababab,
7355                             t5, t3, t2);
7356   TESTDSPINST_RD_RS_RT_DSPC("subq_s.w $t2, $t4, $t8", 0xf0f0f0f0, 0xfc79b4d2,
7357                             t2, t4, t8);
7358   TESTDSPINST_RD_RS_RT_DSPC("subq_s.w $t0, $t8, $t0", 0xfbde3976, 0x00000000,
7359                             t0, t8, t0);
7360   TESTDSPINST_RD_RS_RT_DSPC("subq_s.w $t4, $t6, $t1", 0x23534870, 0x00354565,
7361                             t4, t6, t1);
7362   TESTDSPINST_RD_RS_RT_DSPC("subq_s.w $t0, $t1, $t2", 0x980b7cde, 0x00086755,
7363                             t0, t1, t2);
7364   TESTDSPINST_RD_RS_RT_DSPC("subq_s.w $t2, $t3, $t4", 0x00000018, 0x8f8f8f8f,
7365                             t2, t3, t4);
7366   TESTDSPINST_RD_RS_RT_DSPC("subq_s.w $t4, $t1, $t5", 0x92784656, 0xeeeeeeee,
7367                             t4, t1, t5);
7368   TESTDSPINST_RD_RS_RT_DSPC("subq_s.w $t6, $t7, $t3", 0xcacacaca, 0x1bdbdbdb,
7369                             t6, t7, t3);
7370   TESTDSPINST_RD_RS_RT_DSPC("subq_s.w $t5, $t3, $t2", 0xbacabaca, 0xdecadeca,
7371                             t5, t3, t2);
7372   TESTDSPINST_RD_RS_RT_DSPC("subq_s.w $t2, $t4, $t8", 0x12fadeb4, 0x93474bde,
7373                             t2, t4, t8);
7374   TESTDSPINST_RD_RS_RT_DSPC("subq_s.w $t0, $t8, $t0", 0x7c000790, 0xfc0007ff,
7375                             t0, t8, t0);
7376   TESTDSPINST_RD_RS_RT_DSPC("subq_s.w $t4, $t6, $t1", 0xffffffff, 0xffffffff,
7377                             t4, t6, t1);
7378   TESTDSPINST_RD_RS_RT_DSPC("subq_s.w $t0, $t1, $t2", 0xf2f4df1f, 0xcb4ab48f,
7379                             t0, t1, t2);
7380   TESTDSPINST_RD_RS_RT_DSPC("subq_s.w $t2, $t3, $t4", 0x435f909a, 0xaf8f7e18,
7381                             t2, t3, t4);
7382   TESTDSPINST_RD_RS_RT_DSPC("subq_s.w $t4, $t1, $t5", 0x2106ba5f, 0x87df4510,
7383                             t4, t1, t5);
7384   TESTDSPINST_RD_RS_RT_DSPC("subq_s.w $t6, $t7, $t3", 0x246a6376, 0xabf4e8e1,
7385                             t6, t7, t3);
7386   TESTDSPINST_RD_RS_RT_DSPC("subq_s.w $t5, $t3, $t2", 0x1046a1a3, 0xf4c0eeac,
7387                             t5, t3, t2);
7388   TESTDSPINST_RD_RS_RT_DSPC("subq_s.w $t2, $t4, $t8", 0x638ca515, 0x006a54f2,
7389                             t2, t4, t8);
7390   TESTDSPINST_RD_RS_RT_DSPC("subq_s.w $t0, $t8, $t0", 0xf63e7a9d, 0x79f74493,
7391                             t0, t8, t0);
7392   TESTDSPINST_RD_RS_RT_DSPC("subq_s.w $t4, $t6, $t1", 0xbd6845cd, 0x9c09e313,
7393                             t4, t6, t1);
7394
7395   printf("-------- SUBU.QB --------\n");
7396   TESTDSPINST_RD_RS_RT_DSPC("subu.qb $t0, $t1, $t2", 0x7fffffff, 0x00000000,
7397                             t0, t1, t2);
7398   TESTDSPINST_RD_RS_RT_DSPC("subu.qb $t2, $t3, $t4", 0x80000000, 0x00000000,
7399                             t2, t3, t4);
7400   TESTDSPINST_RD_RS_RT_DSPC("subu.qb $t4, $t1, $t5", 0xfabc3435, 0xfabc3421,
7401                             t4, t1, t5);
7402   TESTDSPINST_RD_RS_RT_DSPC("subu.qb $t6, $t7, $t3", 0x07654cb8, 0x734680bc,
7403                             t6, t7, t3);
7404   TESTDSPINST_RD_RS_RT_DSPC("subu.qb $t5, $t3, $t2", 0xf973437b, 0x80000000,
7405                             t5, t3, t2);
7406   TESTDSPINST_RD_RS_RT_DSPC("subu.qb $t2, $t4, $t8", 0x00ff0001, 0xff01ffff,
7407                             t2, t4, t8);
7408   TESTDSPINST_RD_RS_RT_DSPC("subu.qb $t0, $t8, $t0", 0x7fff7004, 0x7fff7fff,
7409                             t0, t8, t0);
7410   TESTDSPINST_RD_RS_RT_DSPC("subu.qb $t4, $t6, $t1", 0x0000c420, 0x00000555,
7411                             t4, t6, t1);
7412   TESTDSPINST_RD_RS_RT_DSPC("subu.qb $t0, $t1, $t2", 0x00000000, 0x00000000,
7413                             t0, t1, t2);
7414   TESTDSPINST_RD_RS_RT_DSPC("subu.qb $t2, $t3, $t4", 0x80000000, 0x80000000,
7415                             t2, t3, t4);
7416   TESTDSPINST_RD_RS_RT_DSPC("subu.qb $t4, $t1, $t5", 0xaaaaaaaa, 0x55555555,
7417                             t4, t1, t5);
7418   TESTDSPINST_RD_RS_RT_DSPC("subu.qb $t6, $t7, $t3", 0x00000018, 0xffff2435,
7419                             t6, t7, t3);
7420   TESTDSPINST_RD_RS_RT_DSPC("subu.qb $t5, $t3, $t2", 0xbabababa, 0xabababab,
7421                             t5, t3, t2);
7422   TESTDSPINST_RD_RS_RT_DSPC("subu.qb $t2, $t4, $t8", 0xf0f0f0f0, 0xfc79b4d2,
7423                             t2, t4, t8);
7424   TESTDSPINST_RD_RS_RT_DSPC("subu.qb $t0, $t8, $t0", 0xfbde3976, 0x00000000,
7425                             t0, t8, t0);
7426   TESTDSPINST_RD_RS_RT_DSPC("subu.qb $t4, $t6, $t1", 0x23534870, 0x00354565,
7427                             t4, t6, t1);
7428   TESTDSPINST_RD_RS_RT_DSPC("subu.qb $t0, $t1, $t2", 0x980b7cde, 0x00086755,
7429                             t0, t1, t2);
7430   TESTDSPINST_RD_RS_RT_DSPC("subu.qb $t2, $t3, $t4", 0x00000018, 0x8f8f8f8f,
7431                             t2, t3, t4);
7432   TESTDSPINST_RD_RS_RT_DSPC("subu.qb $t4, $t1, $t5", 0x92784656, 0xeeeeeeee,
7433                             t4, t1, t5);
7434   TESTDSPINST_RD_RS_RT_DSPC("subu.qb $t6, $t7, $t3", 0xcacacaca, 0x1bdbdbdb,
7435                             t6, t7, t3);
7436   TESTDSPINST_RD_RS_RT_DSPC("subu.qb $t5, $t3, $t2", 0xbacabaca, 0xdecadeca,
7437                             t5, t3, t2);
7438   TESTDSPINST_RD_RS_RT_DSPC("subu.qb $t2, $t4, $t8", 0x12fadeb4, 0x93474bde,
7439                             t2, t4, t8);
7440   TESTDSPINST_RD_RS_RT_DSPC("subu.qb $t0, $t8, $t0", 0x7c000790, 0xfc0007ff,
7441                             t0, t8, t0);
7442   TESTDSPINST_RD_RS_RT_DSPC("subu.qb $t4, $t6, $t1", 0xffffffff, 0xffffffff,
7443                             t4, t6, t1);
7444   TESTDSPINST_RD_RS_RT_DSPC("subu.qb $t0, $t1, $t2", 0xf2f4df1f, 0xcb4ab48f,
7445                             t0, t1, t2);
7446   TESTDSPINST_RD_RS_RT_DSPC("subu.qb $t2, $t3, $t4", 0x435f909a, 0xaf8f7e18,
7447                             t2, t3, t4);
7448   TESTDSPINST_RD_RS_RT_DSPC("subu.qb $t4, $t1, $t5", 0x2106ba5f, 0x87df4510,
7449                             t4, t1, t5);
7450   TESTDSPINST_RD_RS_RT_DSPC("subu.qb $t6, $t7, $t3", 0x246a6376, 0xabf4e8e1,
7451                             t6, t7, t3);
7452   TESTDSPINST_RD_RS_RT_DSPC("subu.qb $t5, $t3, $t2", 0x1046a1a3, 0xf4c0eeac,
7453                             t5, t3, t2);
7454   TESTDSPINST_RD_RS_RT_DSPC("subu.qb $t2, $t4, $t8", 0x638ca515, 0x006a54f2,
7455                             t2, t4, t8);
7456   TESTDSPINST_RD_RS_RT_DSPC("subu.qb $t0, $t8, $t0", 0xf63e7a9d, 0x79f74493,
7457                             t0, t8, t0);
7458   TESTDSPINST_RD_RS_RT_DSPC("subu.qb $t4, $t6, $t1", 0xbd6845cd, 0x9c09e313,
7459                             t4, t6, t1);
7460
7461   printf("-------- SUBU_S.QB --------\n");
7462   TESTDSPINST_RD_RS_RT_DSPC("subu_s.qb $t0, $t1, $t2", 0x7fffffff, 0x00000000,
7463                             t0, t1, t2);
7464   TESTDSPINST_RD_RS_RT_DSPC("subu_s.qb $t2, $t3, $t4", 0x80000000, 0x00000000,
7465                             t2, t3, t4);
7466   TESTDSPINST_RD_RS_RT_DSPC("subu_s.qb $t4, $t1, $t5", 0xfabc3435, 0xfabc3421,
7467                             t4, t1, t5);
7468   TESTDSPINST_RD_RS_RT_DSPC("subu_s.qb $t6, $t7, $t3", 0x07654cb8, 0x734680bc,
7469                             t6, t7, t3);
7470   TESTDSPINST_RD_RS_RT_DSPC("subu_s.qb $t5, $t3, $t2", 0xf973437b, 0x80000000,
7471                             t5, t3, t2);
7472   TESTDSPINST_RD_RS_RT_DSPC("subu_s.qb $t2, $t4, $t8", 0x00ff0001, 0xff01ffff,
7473                             t2, t4, t8);
7474   TESTDSPINST_RD_RS_RT_DSPC("subu_s.qb $t0, $t8, $t0", 0x7fff7004, 0x7fff7fff,
7475                             t0, t8, t0);
7476   TESTDSPINST_RD_RS_RT_DSPC("subu_s.qb $t4, $t6, $t1", 0x0000c420, 0x00000555,
7477                             t4, t6, t1);
7478   TESTDSPINST_RD_RS_RT_DSPC("subu_s.qb $t0, $t1, $t2", 0x00000000, 0x00000000,
7479                             t0, t1, t2);
7480   TESTDSPINST_RD_RS_RT_DSPC("subu_s.qb $t2, $t3, $t4", 0x80000000, 0x80000000,
7481                             t2, t3, t4);
7482   TESTDSPINST_RD_RS_RT_DSPC("subu_s.qb $t4, $t1, $t5", 0xaaaaaaaa, 0x55555555,
7483                             t4, t1, t5);
7484   TESTDSPINST_RD_RS_RT_DSPC("subu_s.qb $t6, $t7, $t3", 0x00000018, 0xffff2435,
7485                             t6, t7, t3);
7486   TESTDSPINST_RD_RS_RT_DSPC("subu_s.qb $t5, $t3, $t2", 0xbabababa, 0xabababab,
7487                             t5, t3, t2);
7488   TESTDSPINST_RD_RS_RT_DSPC("subu_s.qb $t2, $t4, $t8", 0xf0f0f0f0, 0xfc79b4d2,
7489                             t2, t4, t8);
7490   TESTDSPINST_RD_RS_RT_DSPC("subu_s.qb $t0, $t8, $t0", 0xfbde3976, 0x00000000,
7491                             t0, t8, t0);
7492   TESTDSPINST_RD_RS_RT_DSPC("subu_s.qb $t4, $t6, $t1", 0x23534870, 0x00354565,
7493                             t4, t6, t1);
7494   TESTDSPINST_RD_RS_RT_DSPC("subu_s.qb $t0, $t1, $t2", 0x980b7cde, 0x00086755,
7495                             t0, t1, t2);
7496   TESTDSPINST_RD_RS_RT_DSPC("subu_s.qb $t2, $t3, $t4", 0x00000018, 0x8f8f8f8f,
7497                             t2, t3, t4);
7498   TESTDSPINST_RD_RS_RT_DSPC("subu_s.qb $t4, $t1, $t5", 0x92784656, 0xeeeeeeee,
7499                             t4, t1, t5);
7500   TESTDSPINST_RD_RS_RT_DSPC("subu_s.qb $t6, $t7, $t3", 0xcacacaca, 0x1bdbdbdb,
7501                             t6, t7, t3);
7502   TESTDSPINST_RD_RS_RT_DSPC("subu_s.qb $t5, $t3, $t2", 0xbacabaca, 0xdecadeca,
7503                             t5, t3, t2);
7504   TESTDSPINST_RD_RS_RT_DSPC("subu_s.qb $t2, $t4, $t8", 0x12fadeb4, 0x93474bde,
7505                             t2, t4, t8);
7506   TESTDSPINST_RD_RS_RT_DSPC("subu_s.qb $t0, $t8, $t0", 0x7c000790, 0xfc0007ff,
7507                             t0, t8, t0);
7508   TESTDSPINST_RD_RS_RT_DSPC("subu_s.qb $t4, $t6, $t1", 0xffffffff, 0xffffffff,
7509                             t4, t6, t1);
7510   TESTDSPINST_RD_RS_RT_DSPC("subu_s.qb $t0, $t1, $t2", 0xf2f4df1f, 0xcb4ab48f,
7511                             t0, t1, t2);
7512   TESTDSPINST_RD_RS_RT_DSPC("subu_s.qb $t2, $t3, $t4", 0x435f909a, 0xaf8f7e18,
7513                             t2, t3, t4);
7514   TESTDSPINST_RD_RS_RT_DSPC("subu_s.qb $t4, $t1, $t5", 0x2106ba5f, 0x87df4510,
7515                             t4, t1, t5);
7516   TESTDSPINST_RD_RS_RT_DSPC("subu_s.qb $t6, $t7, $t3", 0x246a6376, 0xabf4e8e1,
7517                             t6, t7, t3);
7518   TESTDSPINST_RD_RS_RT_DSPC("subu_s.qb $t5, $t3, $t2", 0x1046a1a3, 0xf4c0eeac,
7519                             t5, t3, t2);
7520   TESTDSPINST_RD_RS_RT_DSPC("subu_s.qb $t2, $t4, $t8", 0x638ca515, 0x006a54f2,
7521                             t2, t4, t8);
7522   TESTDSPINST_RD_RS_RT_DSPC("subu_s.qb $t0, $t8, $t0", 0xf63e7a9d, 0x79f74493,
7523                             t0, t8, t0);
7524   TESTDSPINST_RD_RS_RT_DSPC("subu_s.qb $t4, $t6, $t1", 0xbd6845cd, 0x9c09e313,
7525                             t4, t6, t1);
7526#endif
7527
7528   return 0;
7529}