mips32_dspr2.c revision 436e89c602e787e7a27dd6624b09beed41a0da8a
1#include <stdio.h>
2/* Independent tests for each DSP instruction from MIPS32 DSP ASEr2 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 dspr2; \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", instruction, out, \
56          RTval, dspCtrl);                                                 \
57}
58
59#define TESTDSPINST_RD_RT_NODSPC(instruction, RTval, RD, RT)        \
60{                                                                   \
61   int out = 0xdeadbeef;                                            \
62   __asm__ volatile(                                                \
63      ".set dspr2; \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", instruction, out, RTval); \
73}
74
75#define TESTDSPINST_RD_RT_RS_NODSPC(instruction, RTval, RSval)               \
76{                                                                            \
77   int out = 0;                                                              \
78   __asm__ __volatile__(                                                     \
79      ".set dspr2; \n\t"                                                     \
80      "move $t1, %1 \n\t"                                                    \
81      "move $t2, %2 \n\t"                                                    \
82      instruction" $t0, $t1, $t2 \n\t"                                       \
83      "move %0, $t0 \n\t"                                                    \
84      : "=&r" (out)                                                          \
85      : "r" (RTval), "r" (RSval)                                             \
86      : "t0", "t1", "t2"                                                     \
87   );                                                                        \
88   printf("%s   out=0x%08x, RTval=0x%08x, RSval=0x%08x\n", instruction, out, \
89          RTval, RSval);                                                     \
90}
91
92#define TESTDSPINST_RD_RS_RT_DSPC(instruction, RSval, RTval, RD, RS, RT)       \
93{                                                                              \
94   int out = 0xdeadbeef;                                                       \
95   int dspCtrl = 0x0;                                                          \
96   __asm__ volatile(                                                           \
97      ".set dspr2; \n\t"                                                       \
98      "li $" #RD ", 0 \n\t"                                                    \
99      "wrdsp $zero, 0x3f \n\t"                                                 \
100      "move $" #RS ", %2 \n\t"                                                 \
101      "move $" #RT ", %3 \n\t"                                                 \
102      instruction " \n\t"                                                      \
103      "move %0, $" #RD " \n\t"                                                 \
104      "rddsp %1, 0x3f \n\t"                                                    \
105      : "=&r" (out), "=&r" (dspCtrl)                                           \
106      : "r" (RSval), "r"(RTval)                                                \
107      : #RD, #RS, #RT                                                          \
108   );                                                                          \
109   printf("%s :: rs 0x%08x rt 0x%08x out 0x%08x DSPCtrl 0x%08x\n", instruction,\
110          RSval, RTval, out, dspCtrl);                                         \
111}
112
113#define TESTDSPINST_BPOSGE32(instruction, RDval, POSval, RD, POSreg) \
114{                                                                    \
115   unsigned int out = 0;                                             \
116   __asm__ volatile(                                                 \
117      ".set dspr2; \n\t"                                             \
118      "move $" #POSreg ", %1 \n\t"                                   \
119      "wrdsp $" #POSreg ", 0x3f \n\t"                                \
120      "move $" #RD ", %2 \n\t"                                       \
121      instruction" end"instruction#RDval" \n\t"                      \
122      "nop \n\t"                                                     \
123      "addi $" #RD ", $" #RD", 5 \n\t"                               \
124      "end"instruction#RDval": \n\t"                                 \
125      "addi $" #RD ", $" #RD", 1 \n\t"                               \
126      "move %0, $" #RD " \n\t"                                       \
127      : "=&r" (out)                                                  \
128      : "r" (POSval), "r" (RDval)                                    \
129      : #RD, #POSreg                                                 \
130      );                                                             \
131      printf(instruction" :: %d, POSval: %d\n", out, POSval);        \
132}
133
134#define TESTDSPINST_RS_RT_DSPC(instruction, RSval, RTval, RS, RT)            \
135{                                                                            \
136   int dspCtrl = 0x0;                                                        \
137   __asm__ volatile(                                                         \
138      ".set dspr2; \n\t"                                                     \
139      "wrdsp $zero, 0x3f \n\t"                                               \
140      "move $" #RS ", %1 \n\t"                                               \
141      "move $" #RT ", %2 \n\t"                                               \
142      instruction " \n\t"                                                    \
143      "rddsp %0, 0x3f \n\t"                                                  \
144      : "=&r" (dspCtrl)                                                      \
145      : "r" (RSval), "r"(RTval)                                              \
146      : #RS, #RT                                                             \
147   );                                                                        \
148   printf("%s :: rs 0x%08x rt 0x%08x DSPCtrl 0x%08x \n", instruction, RSval, \
149          RTval, dspCtrl);                                                   \
150}
151
152#define TESTDSPINST_RD_RS_RT_NODSPC(instruction, RSval, RTval, RD, RS, RT)     \
153{                                                                              \
154   int out = 0xdeadbeef;                                                       \
155   __asm__ volatile(                                                           \
156      ".set dspr2; \n\t"                                                       \
157      "li $" #RD ", 0 \n\t"                                                    \
158      "move $" #RS ", %1 \n\t"                                                 \
159      "move $" #RT ", %2 \n\t"                                                 \
160      instruction " \n\t"                                                      \
161      "move %0, $" #RD " \n\t"                                                 \
162      : "=&r" (out)                                                            \
163      : "r" (RSval), "r"(RTval)                                                \
164      : #RD, #RS, #RT                                                          \
165   );                                                                          \
166   printf("%s :: rs 0x%08x rt 0x%08x out 0x%08x\n", instruction, RSval, RTval, \
167          out);                                                                \
168}
169
170#define TESTDSPINST_AC_RS_RT_DSPC(instruction, ac, RSval, RTval, HIval, LOval, \
171                                  RS, RT)                                      \
172{                                                                              \
173   int out_hi = 0xdeadbeef;                                                    \
174   int out_lo = 0xdeadbeef;                                                    \
175   int dspCtrl = 0x0;                                                          \
176   __asm__ volatile(                                                           \
177      ".set dspr2; \n\t"                                                       \
178      "move $" #RS ", %5 \n\t"                                                 \
179      "move $" #RT ", %6 \n\t"                                                 \
180      "mthi $" #RS", $" ac " \n\t"                                             \
181      "mtlo $" #RT", $" ac " \n\t"                                             \
182      "move $" #RS ", %3 \n\t"                                                 \
183      "move $" #RT ", %4 \n\t"                                                 \
184      "wrdsp $zero, 0x3f \n\t"                                                 \
185      instruction " \n\t"                                                      \
186      "rddsp %2, 0x3f \n\t"                                                    \
187      "mfhi %0, $" ac " \n\t"                                                  \
188      "mflo %1, $" ac " \n\t"                                                  \
189      : "=&r" (out_hi), "=&r" (out_lo), "=&r" (dspCtrl)                        \
190      : "r" (RSval), "r"(RTval), "r" (HIval), "r"(LOval)                       \
191      : #RS, #RT                                                               \
192   );                                                                          \
193   printf("%s :: rs 0x%08x rt 0x%08x inHI 0x%08x inLO 0x%08x outHI 0x%08x "    \
194          "outLO 0x%08x dspCtrl 0x%08x\n",instruction, RSval, RTval, HIval,    \
195          LOval, out_hi, out_lo, dspCtrl);\
196}
197
198#define TESTDSPINST_AC_RS_RT_NODSPC(instruction, HIval, LOval, RSval, RTval) \
199{                                                                            \
200   int HIout = 0;                                                            \
201   int LOout = 0;                                                            \
202   __asm__ __volatile__(                                                     \
203      ".set dspr2; \n\t"                                                     \
204      "li $t0, 0 \n\t"                                                       \
205      "li $t1, 0 \n\t"                                                       \
206      "mthi %2, $ac0 \n\t"                                                   \
207      "mtlo %3, $ac0 \n\t"                                                   \
208      "move $t0, %4 \n\t"                                                    \
209      "move $t1, %5 \n\t"                                                    \
210      instruction" $ac0, $t0, $t1 \n\t"                                      \
211      "mfhi %0, $ac0 \n\t"                                                   \
212      "mflo %1, $ac0 \n\t"                                                   \
213      : "=&r" (HIout), "=&r" (LOout)                                         \
214      : "r" (HIval), "r" (LOval), "r" (RSval), "r" (RTval)                   \
215      : "t0", "t1"                                                           \
216   );                                                                        \
217   printf("%s   HIout=0x%08x, LOout=0x%08x, HIin=0x%08x, LOin=0x%08x, "      \
218          "RSval=0x%08x, RTval=0x%08x\n", instruction, HIout, LOout, HIval,  \
219          LOval, RSval, RTval);                                              \
220}
221
222#define TESTDSPINST_EXT(instruction, ac, RT, HIval, LOval, size, pos) \
223{                                                                     \
224   int out = 0xdeadbeef;                                              \
225   int dspCtrl = 0x0;                                                 \
226   __asm__ volatile(                                                  \
227      ".set dspr2; \n\t"                                              \
228      "move $" #RT ", %2 \n\t"                                        \
229      "wrdsp $" #RT ", 0x3f \n\t"                                     \
230      "move $" #RT ", %3 \n\t"                                        \
231      "mthi $" #RT", $" ac " \n\t"                                    \
232      "move $" #RT ", %4 \n\t"                                        \
233      "mtlo $" #RT", $" ac " \n\t"                                    \
234      instruction " \n\t"                                             \
235      "rddsp %1, 0x3f \n\t"                                           \
236      "move %0, $" #RT " \n\t"                                        \
237      : "=&r" (out), "=&r" (dspCtrl)                                  \
238      : "r" (pos), "r" (HIval), "r" (LOval)                           \
239      : #RT                                                           \
240   );                                                                 \
241   printf("%s :: rt 0x%08x %s 0x%08x%08x size %2d DSPCtrl 0x%08x\n",  \
242          instruction, out, ac, HIval, LOval, size, dspCtrl);         \
243}
244
245#define TESTDSPINST_EXTV(instruction, ac, RT, HIval, LOval, RS, RSval, pos) \
246{                                                                           \
247   int out = 0xdeadbeef;                                                    \
248   int dspCtrl = 0x0;                                                       \
249   __asm__ volatile(                                                        \
250      ".set dspr2; \n\t"                                                    \
251      "move $" #RS ", %5 \n\t"                                              \
252      "move $" #RT ", %2 \n\t"                                              \
253      "wrdsp $" #RT ", 0x3f \n\t"                                           \
254      "move $" #RT ", %3 \n\t"                                              \
255      "mthi $" #RT", $" ac " \n\t"                                          \
256      "move $" #RT ", %4 \n\t"                                              \
257      "mtlo $" #RT", $" ac " \n\t"                                          \
258      instruction " \n\t"                                                   \
259      "rddsp %1, 0x3f \n\t"                                                 \
260      "move %0, $" #RT " \n\t"                                              \
261      : "=&r" (out), "=&r" (dspCtrl)                                        \
262      : "r" (pos), "r" (HIval), "r" (LOval), "r" (RSval)                    \
263      : #RT, #RS                                                            \
264   );                                                                       \
265   printf("%s :: rt 0x%08x %s 0x%08x%08x rs 0x%08x DSPCtrl 0x%08x\n",       \
266          instruction, out, ac, HIval, LOval, RSval, dspCtrl);              \
267}
268
269#define TESTDSPINST_INSV(instruction, RTval, RSval, RT, RS, _pos, _size)       \
270{                                                                              \
271   unsigned int out;                                                           \
272   __asm__ volatile(                                                           \
273      ".set dspr2; \n\t"                                                       \
274      "move $" #RS ", %3 \n\t"                                                 \
275      "wrdsp $" #RS ", 0x1 \n\t"                                               \
276      "move $" #RS ", %4 \n\t"                                                 \
277      "wrdsp $" #RS ", 0x2 \n\t"                                               \
278      "move $" #RS", %1 \n\t"                                                  \
279      "move $" #RT", %2 \n\t"                                                  \
280      "insv $" #RT ", $" #RS " \n\t"                                           \
281      "move %0, $" #RT " \n\t"                                                 \
282     : "=&r" (out)                                                             \
283     : "r" (RSval), "r" (RTval), "r" (_pos), "r" (_size)                       \
284     : #RS, #RT                                                                \
285   );                                                                          \
286   printf("insv :: out: 0x%08x rtIN 0x%08x rsIN 0x%08x posI %2d sizeI %2d \n", \
287         out, RTval, RSval, _pos, _size>>7);                                   \
288}
289
290#define TESTDSPINST_LWX(index, RT, RS)                 \
291{                                                      \
292    unsigned int out;                                  \
293   __asm__ volatile(                                   \
294      ".set dspr2; \n\t"                               \
295     "move $" #RS", %1 \n\t"                           \
296     "move $" #RT", %2 \n\t"                           \
297     "lwx %0, $" #RT "($"#RS") \n\t"                   \
298    : "=&r" (out)                                      \
299    : "r" (mem), "r" (index)                           \
300    : #RT, #RS, "memory"                               \
301    );                                                 \
302   printf("lwx :: out: 0x%08x mem[%d]\n", out, index); \
303}
304
305#define TESTDSPINST_LHX(index, RT, RS)                 \
306{                                                      \
307    unsigned int out;                                  \
308   __asm__ volatile(                                   \
309      ".set dspr2; \n\t"                               \
310     "move $" #RS", %1 \n\t"                           \
311     "move $" #RT", %2 \n\t"                           \
312     "lhx %0, $" #RT "($"#RS") \n\t"                   \
313    : "=&r" (out)                                      \
314    : "r" (mem), "r" (index)                           \
315    : #RT, #RS, "memory"                               \
316    );                                                 \
317   printf("lhx :: out: 0x%08x mem[%d]\n", out, index); \
318}
319
320#define TESTDSPINST_LBUX(index, RT, RS)                 \
321{                                                       \
322    unsigned int out;                                   \
323   __asm__ volatile(                                    \
324      ".set dspr2; \n\t"                                \
325     "move $" #RS", %1 \n\t"                            \
326     "move $" #RT", %2 \n\t"                            \
327     "lbux %0, $" #RT "($"#RS") \n\t"                   \
328    : "=&r" (out)                                       \
329    : "r" (mem), "r" (index)                            \
330    : #RT, #RS, "memory"                                \
331    );                                                  \
332   printf("lbux :: out: 0x%08x mem[%d]\n", out, index); \
333}
334
335#define TESTDSPINST_HILO(ac, RSval_hi, RSval_lo)                             \
336{                                                                            \
337   unsigned int HI = 0xdeadbeef;                                             \
338   unsigned int LO = 0xdeadbeef;                                             \
339   __asm__ volatile(                                                         \
340      ".set dspr2; \n\t"                                                     \
341      "move $t0, %2 \n\t"                                                    \
342      "move $t1, %3 \n\t"                                                    \
343      "mthi $t0, $" ac " \n\t"                                               \
344      "mtlo $t1, $" ac " \n\t"                                               \
345      "mfhi %0, $" ac " \n\t"                                                \
346      "mflo %1, $" ac " \n\t"                                                \
347     : "=&r" (HI), "=&r" (LO)                                                \
348     : "r" (RSval_hi), "r" (RSval_lo)                                        \
349     : "t0", "t1"                                                            \
350   );                                                                        \
351   printf("rs_hi: 0x%08x rs_lo: 0x%08x %s out HI: 0x%08x, out LO: 0x%08x\n", \
352          RSval_hi, RSval_lo, ac, HI, LO);                                   \
353}
354
355#define TESTDSPINST_MTHLIP(instruction, ac, HIval, LOval, RSval, RS, pos) \
356{                                                                         \
357   unsigned int outHI;                                                    \
358   unsigned int outLO;                                                    \
359   unsigned int dspCtrl;                                                  \
360   __asm__ volatile(                                                      \
361      ".set dspr2; \n\t"                                                  \
362      "move $" #RS ", %3 \n\t"                                            \
363      "mthi $" #RS", $" ac " \n\t"                                        \
364      "move $" #RS ", %4 \n\t"                                            \
365      "mtlo $" #RS", $" ac " \n\t"                                        \
366      "move $" #RS ", %5 \n\t"                                            \
367      "wrdsp $" #RS ", 0x1 \n\t"                                          \
368      "move $" #RS ", %6 \n\t"                                            \
369      instruction " \n\t"                                                 \
370      "mfhi %0, $" ac " \n\t"                                             \
371      "mflo %1, $" ac " \n\t"                                             \
372      "rddsp %2, 0x1 \n\t"                                                \
373     : "=&r" (outHI), "=&r" (outLO), "=&r" (dspCtrl)                      \
374     : "r" (HIval), "r" (LOval), "r" (pos), "r" (RSval)                   \
375     : #RS                                                                \
376   );                                                                     \
377   printf("mthlip :: acIn: 0x%08x%08x rsIn 0x%08x posIn 0x%08x acOut "    \
378          "0x%08x%08x posOut 0x%08x\n", HIval, LOval, RSval, pos, outHI,  \
379          outLO, dspCtrl);                                                \
380}
381
382#define TESTDSPINST_PICK(instruction, instruction1, RSval, RTval, RD, RS, RT) \
383{                                                                             \
384   int out = 0xdeadbeef;                                                      \
385   int dspCtrl1 = 0x0;                                                        \
386   __asm__ volatile(                                                          \
387      ".set dspr2; \n\t"                                                      \
388      "li $" #RD ", 0 \n\t"                                                   \
389      "wrdsp $zero, 0x1f \n\t"                                                \
390      "move $" #RS ", %2 \n\t"                                                \
391      "move $" #RT ", %3 \n\t"                                                \
392      instruction1 " \n\t"                                                    \
393      "rddsp %1, 0x1f \n\t"                                                   \
394      instruction " \n\t"                                                     \
395      "move %0, $" #RD " \n\t"                                                \
396      : "=&r" (out), "=&r" (dspCtrl1)                                         \
397      : "r" (RSval), "r"(RTval)                                               \
398      : #RD, #RS, #RT                                                         \
399   );                                                                         \
400   printf("%s :: %s rs 0x%08x rt 0x%08x out 0x%08x DSPCtrl1 0x%x\n",          \
401        instruction, instruction1, RSval, RTval, out, dspCtrl1);              \
402}
403
404#define TESTDSPINST_RADDU_W_QB(instruction, RSval, RD, RS)          \
405{                                                                   \
406   int out = 0xdeadbeef;                                            \
407   __asm__ volatile(                                                \
408      ".set dspr2; \n\t"                                            \
409      "move $" #RS ", %1 \n\t"                                      \
410      instruction " \n\t"                                           \
411      "move %0, $" #RD " \n\t"                                      \
412      : "=&r" (out)                                                 \
413      : "r" (RSval)                                                 \
414      : #RD, #RS                                                    \
415   );                                                               \
416   printf("%s :: out 0x%08x rs 0x%08x\n", instruction, out, RSval); \
417}
418
419#define TESTDSPINST_RDDSPWRDSP(REGval, mask)                               \
420{                                                                          \
421   int out = 0xdeadbeef;                                                   \
422   __asm__ volatile(                                                       \
423      ".set dspr2; \n\t"                                                   \
424      "move $t0, %1 \n\t"                                                  \
425      "wrdsp $t0, " #mask " \n\t"                                          \
426      "rddsp %0, " #mask " \n\t"                                           \
427      : "=&r" (out)                                                        \
428      : "r" (REGval)                                                       \
429      : "t0"                                                               \
430   );                                                                      \
431   printf("outVal 0x%08x inVal 0x%08x mask 0x%08x \n", out, REGval, mask); \
432}
433
434#define TESTDSPINST_RD_IMM_NODSPC(instruction, Imm, RD)           \
435{                                                                 \
436   int out = 0xdeadbeef;                                          \
437   __asm__ volatile(                                              \
438      ".set dspr2; \n\t"                                          \
439      "li $" #RD ", 0 \n\t"                                       \
440      instruction " \n\t"                                         \
441      "move %0, $" #RD " \n\t"                                    \
442      : "=&r" (out)                                               \
443      :                                                           \
444      : #RD                                                       \
445   );                                                             \
446   printf("%s :: rd 0x%08x imm 0x%08x\n", instruction, out, Imm); \
447}
448
449#define TESTDSPINST_SHILO(ac, HIval, LOval, shift)                             \
450{                                                                              \
451   int outHI = 0xdeadbeef;                                                     \
452   int outLO = 0xdeadbeef;                                                     \
453   __asm__ volatile(                                                           \
454      ".set dspr2; \n\t"                                                       \
455      "move $t0, %2 \n\t"                                                      \
456      "move $t1, %3 \n\t"                                                      \
457      "mthi $t0, $" ac " \n\t"                                                 \
458      "mtlo $t1, $" ac " \n\t"                                                 \
459      "shilo $" ac ", " #shift " \n\t"                                         \
460      "mfhi %0, $" ac " \n\t"                                                  \
461      "mflo %1, $" ac " \n\t"                                                  \
462      : "=&r" (outHI), "=&r" (outLO)                                           \
463      : "r" (HIval), "r" (LOval)                                               \
464      : "t0", "t1"                                                             \
465   );                                                                          \
466   printf("shilo %s, %3d inAcc = 0x%08x%08x outAcc = 0x%08x%08x\n", ac, shift, \
467          HIval, LOval, outHI, outLO);                                         \
468}
469
470#define TESTDSP_SHILOV(ac, HIval, LOval, RSval, RS)                         \
471{                                                                           \
472   int outHI = 0xdeadbeef;                                                  \
473   int outLO = 0xdeadbeef;                                                  \
474   __asm__ volatile(                                                        \
475      ".set dspr2; \n\t"                                                    \
476      "move $" #RS ", %2 \n\t"                                              \
477      "mthi $" #RS ", $" ac " \n\t"                                         \
478      "move $" #RS ", %3 \n\t"                                              \
479      "mtlo $t1, $" ac " \n\t"                                              \
480      "move $" #RS ", %4 \n\t"                                              \
481      "shilov $" ac ", $" #RS " \n\t"                                       \
482      "mfhi %0, $" ac " \n\t"                                               \
483      "mflo %1, $" ac " \n\t"                                               \
484      : "=&r" (outHI), "=&r" (outLO)                                        \
485      : "r" (HIval), "r" (LOval), "r" (RSval)                               \
486      : #RS                                                                 \
487   );                                                                       \
488   printf("shilov %s, rs 0x%08x inAcc = 0x%08x%08x outAcc = 0x%08x%08x\n",  \
489           ac, RSval, HIval, LOval, outHI, outLO);                          \
490}
491
492#define TESTDSPINST_RD_RT_SA_DSPC(instruction, RTval, SAval, RD, RT)        \
493{                                                                           \
494   int out = 0xdeadbeef;                                                    \
495   int dspCtrl = 0x0;                                                       \
496   __asm__ volatile(                                                        \
497      ".set dspr2; \n\t"                                                    \
498      "li $" #RD ", 0 \n\t"                                                 \
499      "wrdsp $zero, 0x3f \n\t"                                              \
500      "move $" #RT ", %2 \n\t"                                              \
501      instruction " \n\t"                                                   \
502      "rddsp %1, 0x3f \n\t"                                                 \
503      "move %0, $" #RD " \n\t"                                              \
504      : "=&r" (out), "=&r" (dspCtrl)                                        \
505      : "r"(RTval)                                                          \
506      : #RD, #RT                                                            \
507   );                                                                       \
508   printf("%s :: rd 0x%08x rt 0x%08x sa %2d DSPCtrl 0x%08x\n", instruction, \
509          out, RTval, SAval, dspCtrl);                                      \
510}
511
512#define TESTDSPINST_RD_RT_SA_NODSPC(instruction, RTval, SAval, RD, RT)   \
513{                                                                        \
514   int out = 0xdeadbeef;                                                 \
515   __asm__ volatile(                                                     \
516      ".set dspr2; \n\t"                                                 \
517      "li $" #RD ", 0 \n\t"                                              \
518      "move $" #RT ", %1 \n\t"                                           \
519      instruction " \n\t"                                                \
520      "move %0, $" #RD " \n\t"                                           \
521      : "=&r" (out)                                                      \
522      : "r"(RTval)                                                       \
523      : #RD, #RT                                                         \
524   );                                                                    \
525   printf("%s :: rd 0x%08x rt 0x%08x sa %2d\n", instruction, out, RTval, \
526          SAval);                                                        \
527}
528
529#define TESTDSPINST_RT_RS_SA_NODSPC(instruction, RSval, RTval, SAval, RT, RS) \
530{                                                                             \
531   int out = 0xdeadbeef;                                                      \
532   __asm__ volatile(                                                          \
533      ".set dspr2; \n\t"                                                      \
534      "move $" #RS ", %1 \n\t"                                                \
535      "move $" #RT ", %2 \n\t"                                                \
536      instruction " \n\t"                                                     \
537      "move %0, $" #RT " \n\t"                                                \
538      : "=&r" (out)                                                           \
539      : "r" (RSval), "r"(RTval)                                               \
540      : #RS, #RT                                                              \
541   );                                                                         \
542   printf("%s :: rt 0x%08x rs 0x%08x out 0x%08x \n", instruction, RTval,      \
543          RSval, out);                                                        \
544}
545
546int main(int argc, char **argv)
547{
548#if (__mips==32) && (__mips_isa_rev>=2)
549   printf("-------- ABSQ_S.QB --------\n");
550   TESTDSPINST_RD_RT_DSPC("absq_s.qb $t0, $t1", 0x00000000, t0, t1);
551   TESTDSPINST_RD_RT_DSPC("absq_s.qb $t2, $t3", 0x00000286, t2, t3);
552   TESTDSPINST_RD_RT_DSPC("absq_s.qb $t4, $t1", 0xfabc2435, t4, t1);
553   TESTDSPINST_RD_RT_DSPC("absq_s.qb $t6, $t7", 0x734680bc, t6, t7);
554   TESTDSPINST_RD_RT_DSPC("absq_s.qb $t5, $t3", 0x80000000, t5, t3);
555   TESTDSPINST_RD_RT_DSPC("absq_s.qb $t2, $t4", 0xffffffff, t2, t4);
556   TESTDSPINST_RD_RT_DSPC("absq_s.qb $t0, $t8", 0xfff45fff, t0, t8);
557   TESTDSPINST_RD_RT_DSPC("absq_s.qb $t4, $t4", 0x00000555, t4, t4);
558   TESTDSPINST_RD_RT_DSPC("absq_s.qb $t0, $t1", 0x23534870, t0, t1);
559   TESTDSPINST_RD_RT_DSPC("absq_s.qb $t2, $t3", 0x0555adec, t2, t3);
560   TESTDSPINST_RD_RT_DSPC("absq_s.qb $t4, $t1", 0x980b7cde, t4, t1);
561   TESTDSPINST_RD_RT_DSPC("absq_s.qb $t6, $t7", 0xf973437b, t6, t7);
562   TESTDSPINST_RD_RT_DSPC("absq_s.qb $t5, $t3", 0x93474bde, t5, t3);
563   TESTDSPINST_RD_RT_DSPC("absq_s.qb $t2, $t4", 0x55555555, t2, t4);
564   TESTDSPINST_RD_RT_DSPC("absq_s.qb $t0, $t8", 0xc4dbfe20, t0, t8);
565   TESTDSPINST_RD_RT_DSPC("absq_s.qb $t4, $t4", 0x734680bc, t4, t4);
566   TESTDSPINST_RD_RT_DSPC("absq_s.qb $t0, $t1", 0x00354565, t0, t1);
567   TESTDSPINST_RD_RT_DSPC("absq_s.qb $t2, $t3", 0xbacabaca, t2, t3);
568   TESTDSPINST_RD_RT_DSPC("absq_s.qb $t4, $t1", 0xdecadeca, t4, t1);
569   TESTDSPINST_RD_RT_DSPC("absq_s.qb $t6, $t7", 0x00000286, t6, t7);
570   TESTDSPINST_RD_RT_DSPC("absq_s.qb $t5, $t3", 0xabababab, t5, t3);
571   TESTDSPINST_RD_RT_DSPC("absq_s.qb $t2, $t4", 0x00086755, t2, t4);
572   TESTDSPINST_RD_RT_DSPC("absq_s.qb $t0, $t8", 0x8f8f8f80, t0, t8);
573   TESTDSPINST_RD_RT_DSPC("absq_s.qb $t4, $t4", 0xeeeeeeee, t4, t4);
574   TESTDSPINST_RD_RT_DSPC("absq_s.qb $t0, $t1", 0x1bdbdbdb, t0, t1);
575   TESTDSPINST_RD_RT_DSPC("absq_s.qb $t2, $t3", 0xdecadeca, t2, t3);
576   TESTDSPINST_RD_RT_DSPC("absq_s.qb $t4, $t1", 0x93474bde, t4, t1);
577   TESTDSPINST_RD_RT_DSPC("absq_s.qb $t6, $t7", 0xfabfabfa, t6, t7);
578   TESTDSPINST_RD_RT_DSPC("absq_s.qb $t5, $t3", 0x083b3571, t5, t3);
579   TESTDSPINST_RD_RT_DSPC("absq_s.qb $t2, $t4", 0xb9743941, t2, t4);
580   TESTDSPINST_RD_RT_DSPC("absq_s.qb $t0, $t8", 0xbc80f924, t0, t8);
581   TESTDSPINST_RD_RT_DSPC("absq_s.qb $t4, $t4", 0xcc3c201c, t4, t4);
582   TESTDSPINST_RD_RT_DSPC("absq_s.qb $t0, $t1", 0x1ebaf88e, t0, t1);
583   TESTDSPINST_RD_RT_DSPC("absq_s.qb $t2, $t3", 0x722d5e20, t2, t3);
584   TESTDSPINST_RD_RT_DSPC("absq_s.qb $t4, $t1", 0xa1d6f791, t4, t1);
585   TESTDSPINST_RD_RT_DSPC("absq_s.qb $t6, $t7", 0x7b11bee7, t6, t7);
586   TESTDSPINST_RD_RT_DSPC("absq_s.qb $t5, $t3", 0xa5631488, t5, t3);
587   TESTDSPINST_RD_RT_DSPC("absq_s.qb $t2, $t4", 0xb10bcc65, t2, t4);
588   TESTDSPINST_RD_RT_DSPC("absq_s.qb $t0, $t8", 0x73f39fca, t0, t8);
589   TESTDSPINST_RD_RT_DSPC("absq_s.qb $t4, $t4", 0x80808080, t4, t4);
590
591   printf("-------- ADDQH.PH --------\n");
592   TESTDSPINST_RD_RS_RT_NODSPC("addqh.ph $t0, $t1, $t2", 0x00000000, 0x00000000,
593                               t0, t1, t2);
594   TESTDSPINST_RD_RS_RT_NODSPC("addqh.ph $t2, $t3, $t4", 0x00045fb2, 0x00000286,
595                               t2, t3, t4);
596   TESTDSPINST_RD_RS_RT_NODSPC("addqh.ph $t4, $t1, $t5", 0x00002435, 0xffff3421,
597                               t4, t1, t5);
598   TESTDSPINST_RD_RS_RT_NODSPC("addqh.ph $t6, $t7, $t3", 0x07654cb8, 0x734680bc,
599                               t6, t7, t3);
600   TESTDSPINST_RD_RS_RT_NODSPC("addqh.ph $t5, $t3, $t2", 0xf973437b, 0x80000000,
601                               t5, t3, t2);
602   TESTDSPINST_RD_RS_RT_NODSPC("addqh.ph $t2, $t4, $t8", 0x00010001, 0xffffffff,
603                               t2, t4, t8);
604   TESTDSPINST_RD_RS_RT_NODSPC("addqh.ph $t0, $t8, $t0", 0x7fff7fff, 0x7fff7fff,
605                               t0, t8, t0);
606   TESTDSPINST_RD_RS_RT_NODSPC("addqh.ph $t4, $t6, $t1", 0x0000c420, 0x00000555,
607                               t4, t6, t1);
608   TESTDSPINST_RD_RS_RT_NODSPC("addqh.ph $t2, $t3, $t4", 0x00000004, 1073741824,
609                               t2, t3, t4);
610   TESTDSPINST_RD_RS_RT_NODSPC("addqh.ph $t4, $t1, $t5", 0x80002435, 0x80003421,
611                               t4, t1, t5);
612   TESTDSPINST_RD_RS_RT_NODSPC("addqh.ph $t6, $t7, $t3", 0x76548000, 0x73468000,
613                               t6, t7, t3);
614   TESTDSPINST_RD_RS_RT_NODSPC("addqh.ph $t5, $t3, $t2", 0x80000000, 0x80000000,
615                               t5, t3, t2);
616   TESTDSPINST_RD_RS_RT_NODSPC("addqh.ph $t2, $t4, $t8", 0x00010001, 0xffffffff,
617                               t2, t4, t8);
618   TESTDSPINST_RD_RS_RT_NODSPC("addqh.ph $t0, $t8, $t0", 0x7fff7fff, 0x7fff7fff,
619                               t0, t8, t0);
620   TESTDSPINST_RD_RS_RT_NODSPC("addqh.ph $t4, $t6, $t1", 0x0000c420, 0x00000555,
621                               t4, t6, t1);
622   TESTDSPINST_RD_RS_RT_NODSPC("addqh.ph $t0, $t1, $t2", 0x00000000, 0x00000000,
623                               t0, t1, t2);
624   TESTDSPINST_RD_RS_RT_NODSPC("addqh.ph $t2, $t3, $t4", 0x80000000, 0x80000000,
625                               t2, t3, t4);
626   TESTDSPINST_RD_RS_RT_NODSPC("addqh.ph $t4, $t1, $t5", 0xaaaaaaaa, 0x55555555,
627                               t4, t1, t5);
628   TESTDSPINST_RD_RS_RT_NODSPC("addqh.ph $t6, $t7, $t3", 0x00000018, 0xffff2435,
629                               t6, t7, t3);
630   TESTDSPINST_RD_RS_RT_NODSPC("addqh.ph $t5, $t3, $t2", 0xbabababa, 0xabababab,
631                               t5, t3, t2);
632   TESTDSPINST_RD_RS_RT_NODSPC("addqh.ph $t2, $t4, $t8", 0xf0f0f0f0, 0xfc79b4d2,
633                               t2, t4, t8);
634   TESTDSPINST_RD_RS_RT_NODSPC("addqh.ph $t0, $t8, $t0", 0xfbde3976, 0x00000000,
635                               t0, t8, t0);
636   TESTDSPINST_RD_RS_RT_NODSPC("addqh.ph $t4, $t6, $t1", 0x23534870, 0x00354565,
637                               t4, t6, t1);
638   TESTDSPINST_RD_RS_RT_NODSPC("addqh.ph $t0, $t1, $t2", 0x980b7cde, 0x00086755,
639                               t0, t1, t2);
640   TESTDSPINST_RD_RS_RT_NODSPC("addqh.ph $t2, $t3, $t4", 0x00000018, 0x8f8f8f8f,
641                               t2, t3, t4);
642   TESTDSPINST_RD_RS_RT_NODSPC("addqh.ph $t4, $t1, $t5", 0x92784656, 0xeeeeeeee,
643                               t4, t1, t5);
644   TESTDSPINST_RD_RS_RT_NODSPC("addqh.ph $t6, $t7, $t3", 0xcacacaca, 0x1bdbdbdb,
645                               t6, t7, t3);
646   TESTDSPINST_RD_RS_RT_NODSPC("addqh.ph $t5, $t3, $t2", 0xbacabaca, 0xdecadeca,
647                               t5, t3, t2);
648   TESTDSPINST_RD_RS_RT_NODSPC("addqh.ph $t2, $t4, $t8", 0x12fadeb4, 0x93474bde,
649                               t2, t4, t8);
650   TESTDSPINST_RD_RS_RT_NODSPC("addqh.ph $t0, $t8, $t0", 0x7c000790, 0xfc0007ff,
651                               t0, t8, t0);
652   TESTDSPINST_RD_RS_RT_NODSPC("addqh.ph $t4, $t6, $t1", 0xffffffff, 0xffffffff,
653                               t4, t6, t1);
654   TESTDSPINST_RD_RS_RT_NODSPC("addqh.ph $t0, $t1, $t2", 0xf2f4df1f, 0xcb4ab48f,
655                               t0, t1, t2);
656   TESTDSPINST_RD_RS_RT_NODSPC("addqh.ph $t2, $t3, $t4", 0x435f909a, 0xaf8f7e18,
657                               t2, t3, t4);
658   TESTDSPINST_RD_RS_RT_NODSPC("addqh.ph $t4, $t1, $t5", 0x2106ba5f, 0x87df4510,
659                               t4, t1, t5);
660   TESTDSPINST_RD_RS_RT_NODSPC("addqh.ph $t6, $t7, $t3", 0x246a6376, 0xabf4e8e1,
661                               t6, t7, t3);
662   TESTDSPINST_RD_RS_RT_NODSPC("addqh.ph $t5, $t3, $t2", 0x1046a1a3, 0xf4c0eeac,
663                               t5, t3, t2);
664   TESTDSPINST_RD_RS_RT_NODSPC("addqh.ph $t2, $t4, $t8", 0x638ca515, 0x006a54f2,
665                               t2, t4, t8);
666   TESTDSPINST_RD_RS_RT_NODSPC("addqh.ph $t0, $t8, $t0", 0xf63e7a9d, 0x79f74493,
667                               t0, t8, t0);
668   TESTDSPINST_RD_RS_RT_NODSPC("addqh.ph $t4, $t6, $t1", 0xbd6845cd, 0x9c09e313,
669                               t4, t6, t1);
670
671   printf("-------- ADDQH_R.PH --------\n");
672   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.ph $t0, $t1, $t2", 0x00000000,
673                               0x00000000, t0, t1, t2);
674   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.ph $t2, $t3, $t4", 0x00045fb2,
675                               0x00000286, t2, t3, t4);
676   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.ph $t4, $t1, $t5", 0x00002435,
677                               0xffff3421, t4, t1, t5);
678   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.ph $t6, $t7, $t3", 0x07654cb8,
679                               0x734680bc, t6, t7, t3);
680   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.ph $t5, $t3, $t2", 0xf973437b,
681                               0x80000000, t5, t3, t2);
682   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.ph $t2, $t4, $t8", 0x00010001,
683                               0xffffffff, t2, t4, t8);
684   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.ph $t0, $t8, $t0", 0x7fff7fff,
685                               0x7fff7fff, t0, t8, t0);
686   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.ph $t4, $t6, $t1", 0x0000c420,
687                               0x00000555, t4, t6, t1);
688   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.ph $t2, $t3, $t4", 0x00000004,
689                               1073741824, t2, t3, t4);
690   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.ph $t4, $t1, $t5", 0x80002435,
691                               0x80003421, t4, t1, t5);
692   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.ph $t6, $t7, $t3", 0x76548000,
693                               0x73468000, t6, t7, t3);
694   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.ph $t5, $t3, $t2", 0x80000000,
695                               0x80000000, t5, t3, t2);
696   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.ph $t2, $t4, $t8", 0x00010001,
697                               0xffffffff, t2, t4, t8);
698   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.ph $t0, $t8, $t0", 0x7fff7fff,
699                               0x7fff7fff, t0, t8, t0);
700   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.ph $t4, $t6, $t1", 0x0000c420,
701                               0x00000555, t4, t6, t1);
702   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.ph $t0, $t1, $t2", 0x00000000,
703                               0x00000000, t0, t1, t2);
704   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.ph $t2, $t3, $t4", 0x80000000,
705                               0x80000000, t2, t3, t4);
706   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.ph $t4, $t1, $t5", 0xaaaaaaaa,
707                               0x55555555, t4, t1, t5);
708   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.ph $t6, $t7, $t3", 0x00000018,
709                               0xffff2435, t6, t7, t3);
710   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.ph $t5, $t3, $t2", 0xbabababa,
711                               0xabababab, t5, t3, t2);
712   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.ph $t2, $t4, $t8", 0xf0f0f0f0,
713                               0xfc79b4d2, t2, t4, t8);
714   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.ph $t0, $t8, $t0", 0xfbde3976,
715                               0x00000000, t0, t8, t0);
716   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.ph $t4, $t6, $t1", 0x23534870,
717                               0x00354565, t4, t6, t1);
718   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.ph $t0, $t1, $t2", 0x980b7cde,
719                               0x00086755, t0, t1, t2);
720   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.ph $t2, $t3, $t4", 0x00000018,
721                               0x8f8f8f8f, t2, t3, t4);
722   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.ph $t4, $t1, $t5", 0x92784656,
723                               0xeeeeeeee, t4, t1, t5);
724   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.ph $t6, $t7, $t3", 0xcacacaca,
725                               0x1bdbdbdb, t6, t7, t3);
726   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.ph $t5, $t3, $t2", 0xbacabaca,
727                               0xdecadeca, t5, t3, t2);
728   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.ph $t2, $t4, $t8", 0x12fadeb4,
729                               0x93474bde, t2, t4, t8);
730   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.ph $t0, $t8, $t0", 0x7c000790,
731                               0xfc0007ff, t0, t8, t0);
732   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.ph $t4, $t6, $t1", 0xffffffff,
733                               0xffffffff, t4, t6, t1);
734   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.ph $t0, $t1, $t2", 0xf2f4df1f,
735                               0xcb4ab48f, t0, t1, t2);
736   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.ph $t2, $t3, $t4", 0x435f909a,
737                               0xaf8f7e18, t2, t3, t4);
738   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.ph $t4, $t1, $t5", 0x2106ba5f,
739                               0x87df4510, t4, t1, t5);
740   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.ph $t6, $t7, $t3", 0x246a6376,
741                               0xabf4e8e1, t6, t7, t3);
742   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.ph $t5, $t3, $t2", 0x1046a1a3,
743                               0xf4c0eeac, t5, t3, t2);
744   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.ph $t2, $t4, $t8", 0x638ca515,
745                               0x006a54f2, t2, t4, t8);
746   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.ph $t0, $t8, $t0", 0xf63e7a9d,
747                               0x79f74493, t0, t8, t0);
748   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.ph $t4, $t6, $t1", 0xbd6845cd,
749                               0x9c09e313, t4, t6, t1);
750
751   printf("-------- ADDQH.W --------\n");
752   TESTDSPINST_RD_RS_RT_NODSPC("addqh.w $t0, $t1, $t2", 0x00000000, 0x00000000,
753                               t0, t1, t2);
754   TESTDSPINST_RD_RS_RT_NODSPC("addqh.w $t2, $t3, $t4", 0x00045fb2, 0x00000286,
755                               t2, t3, t4);
756   TESTDSPINST_RD_RS_RT_NODSPC("addqh.w $t4, $t1, $t5", 0x00002435, 0xffff3421,
757                               t4, t1, t5);
758   TESTDSPINST_RD_RS_RT_NODSPC("addqh.w $t6, $t7, $t3", 0x07654cb8, 0x734680bc,
759                               t6, t7, t3);
760   TESTDSPINST_RD_RS_RT_NODSPC("addqh.w $t5, $t3, $t2", 0xf973437b, 0x80000000,
761                               t5, t3, t2);
762   TESTDSPINST_RD_RS_RT_NODSPC("addqh.w $t2, $t4, $t8", 0x00010001, 0xffffffff,
763                               t2, t4, t8);
764   TESTDSPINST_RD_RS_RT_NODSPC("addqh.w $t0, $t8, $t0", 0x7fff7fff, 0x7fff7fff,
765                               t0, t8, t0);
766   TESTDSPINST_RD_RS_RT_NODSPC("addqh.w $t4, $t6, $t1", 0x0000c420, 0x00000555,
767                               t4, t6, t1);
768   TESTDSPINST_RD_RS_RT_NODSPC("addqh.w $t2, $t3, $t4", 0x00000004, 1073741824,
769                               t2, t3, t4);
770   TESTDSPINST_RD_RS_RT_NODSPC("addqh.w $t4, $t1, $t5", 0x80002435, 0x80003421,
771                               t4, t1, t5);
772   TESTDSPINST_RD_RS_RT_NODSPC("addqh.w $t6, $t7, $t3", 0x76548000, 0x73468000,
773                               t6, t7, t3);
774   TESTDSPINST_RD_RS_RT_NODSPC("addqh.w $t5, $t3, $t2", 0x80000000, 0x80000000,
775                               t5, t3, t2);
776   TESTDSPINST_RD_RS_RT_NODSPC("addqh.w $t2, $t4, $t8", 0x00010001, 0xffffffff,
777                               t2, t4, t8);
778   TESTDSPINST_RD_RS_RT_NODSPC("addqh.w $t0, $t8, $t0", 0x7fff7fff, 0x7fff7fff,
779                               t0, t8, t0);
780   TESTDSPINST_RD_RS_RT_NODSPC("addqh.w $t4, $t6, $t1", 0x0000c420, 0x00000555,
781                               t4, t6, t1);
782   TESTDSPINST_RD_RS_RT_NODSPC("addqh.w $t0, $t1, $t2", 0x00000000, 0x00000000,
783                               t0, t1, t2);
784   TESTDSPINST_RD_RS_RT_NODSPC("addqh.w $t2, $t3, $t4", 0x80000000, 0x80000000,
785                               t2, t3, t4);
786   TESTDSPINST_RD_RS_RT_NODSPC("addqh.w $t4, $t1, $t5", 0xaaaaaaaa, 0x55555555,
787                               t4, t1, t5);
788   TESTDSPINST_RD_RS_RT_NODSPC("addqh.w $t6, $t7, $t3", 0x00000018, 0xffff2435,
789                               t6, t7, t3);
790   TESTDSPINST_RD_RS_RT_NODSPC("addqh.w $t5, $t3, $t2", 0xbabababa, 0xabababab,
791                               t5, t3, t2);
792   TESTDSPINST_RD_RS_RT_NODSPC("addqh.w $t2, $t4, $t8", 0xf0f0f0f0, 0xfc79b4d2,
793                               t2, t4, t8);
794   TESTDSPINST_RD_RS_RT_NODSPC("addqh.w $t0, $t8, $t0", 0xfbde3976, 0x00000000,
795                               t0, t8, t0);
796   TESTDSPINST_RD_RS_RT_NODSPC("addqh.w $t4, $t6, $t1", 0x23534870, 0x00354565,
797                               t4, t6, t1);
798   TESTDSPINST_RD_RS_RT_NODSPC("addqh.w $t0, $t1, $t2", 0x980b7cde, 0x00086755,
799                               t0, t1, t2);
800   TESTDSPINST_RD_RS_RT_NODSPC("addqh.w $t2, $t3, $t4", 0x00000018, 0x8f8f8f8f,
801                               t2, t3, t4);
802   TESTDSPINST_RD_RS_RT_NODSPC("addqh.w $t4, $t1, $t5", 0x92784656, 0xeeeeeeee,
803                               t4, t1, t5);
804   TESTDSPINST_RD_RS_RT_NODSPC("addqh.w $t6, $t7, $t3", 0xcacacaca, 0x1bdbdbdb,
805                               t6, t7, t3);
806   TESTDSPINST_RD_RS_RT_NODSPC("addqh.w $t5, $t3, $t2", 0xbacabaca, 0xdecadeca,
807                               t5, t3, t2);
808   TESTDSPINST_RD_RS_RT_NODSPC("addqh.w $t2, $t4, $t8", 0x12fadeb4, 0x93474bde,
809                               t2, t4, t8);
810   TESTDSPINST_RD_RS_RT_NODSPC("addqh.w $t0, $t8, $t0", 0x7c000790, 0xfc0007ff,
811                               t0, t8, t0);
812   TESTDSPINST_RD_RS_RT_NODSPC("addqh.w $t4, $t6, $t1", 0xffffffff, 0xffffffff,
813                               t4, t6, t1);
814   TESTDSPINST_RD_RS_RT_NODSPC("addqh.w $t0, $t1, $t2", 0xf2f4df1f, 0xcb4ab48f,
815                               t0, t1, t2);
816   TESTDSPINST_RD_RS_RT_NODSPC("addqh.w $t2, $t3, $t4", 0x435f909a, 0xaf8f7e18,
817                               t2, t3, t4);
818   TESTDSPINST_RD_RS_RT_NODSPC("addqh.w $t4, $t1, $t5", 0x2106ba5f, 0x87df4510,
819                               t4, t1, t5);
820   TESTDSPINST_RD_RS_RT_NODSPC("addqh.w $t6, $t7, $t3", 0x246a6376, 0xabf4e8e1,
821                               t6, t7, t3);
822   TESTDSPINST_RD_RS_RT_NODSPC("addqh.w $t5, $t3, $t2", 0x1046a1a3, 0xf4c0eeac,
823                               t5, t3, t2);
824   TESTDSPINST_RD_RS_RT_NODSPC("addqh.w $t2, $t4, $t8", 0x638ca515, 0x006a54f2,
825                               t2, t4, t8);
826   TESTDSPINST_RD_RS_RT_NODSPC("addqh.w $t0, $t8, $t0", 0xf63e7a9d, 0x79f74493,
827                               t0, t8, t0);
828   TESTDSPINST_RD_RS_RT_NODSPC("addqh.w $t4, $t6, $t1", 0xbd6845cd, 0x9c09e313,
829                               t4, t6, t1);
830
831   printf("-------- ADDQH_R.W --------\n");
832   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.w $t0, $t1, $t2", 0x00000000,
833                               0x00000000, t0, t1, t2);
834   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.w $t2, $t3, $t4", 0x00045fb2,
835                               0x00000286, t2, t3, t4);
836   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.w $t4, $t1, $t5", 0x00002435,
837                               0xffff3421, t4, t1, t5);
838   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.w $t6, $t7, $t3", 0x07654cb8,
839                               0x734680bc, t6, t7, t3);
840   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.w $t5, $t3, $t2", 0xf973437b,
841                               0x80000000, t5, t3, t2);
842   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.w $t2, $t4, $t8", 0x00010001,
843                               0xffffffff, t2, t4, t8);
844   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.w $t0, $t8, $t0", 0x7fff7fff,
845                               0x7fff7fff, t0, t8, t0);
846   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.w $t4, $t6, $t1", 0x0000c420,
847                               0x00000555, t4, t6, t1);
848   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.w $t2, $t3, $t4", 0x00000004,
849                               1073741824, t2, t3, t4);
850   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.w $t4, $t1, $t5", 0x80002435,
851                               0x80003421, t4, t1, t5);
852   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.w $t6, $t7, $t3", 0x76548000,
853                               0x73468000, t6, t7, t3);
854   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.w $t5, $t3, $t2", 0x80000000,
855                               0x80000000, t5, t3, t2);
856   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.w $t2, $t4, $t8", 0x00010001,
857                               0xffffffff, t2, t4, t8);
858   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.w $t0, $t8, $t0", 0x7fff7fff,
859                               0x7fff7fff, t0, t8, t0);
860   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.w $t4, $t6, $t1", 0x0000c420,
861                               0x00000555, t4, t6, t1);
862   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.w $t0, $t1, $t2", 0x00000000,
863                               0x00000000, t0, t1, t2);
864   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.w $t2, $t3, $t4", 0x80000000,
865                               0x80000000, t2, t3, t4);
866   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.w $t4, $t1, $t5", 0xaaaaaaaa,
867                               0x55555555, t4, t1, t5);
868   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.w $t6, $t7, $t3", 0x00000018,
869                               0xffff2435, t6, t7, t3);
870   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.w $t5, $t3, $t2", 0xbabababa,
871                               0xabababab, t5, t3, t2);
872   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.w $t2, $t4, $t8", 0xf0f0f0f0,
873                               0xfc79b4d2, t2, t4, t8);
874   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.w $t0, $t8, $t0", 0xfbde3976,
875                               0x00000000, t0, t8, t0);
876   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.w $t4, $t6, $t1", 0x23534870,
877                               0x00354565, t4, t6, t1);
878   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.w $t0, $t1, $t2", 0x980b7cde,
879                               0x00086755, t0, t1, t2);
880   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.w $t2, $t3, $t4", 0x00000018,
881                               0x8f8f8f8f, t2, t3, t4);
882   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.w $t4, $t1, $t5", 0x92784656,
883                               0xeeeeeeee, t4, t1, t5);
884   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.w $t6, $t7, $t3", 0xcacacaca,
885                               0x1bdbdbdb, t6, t7, t3);
886   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.w $t5, $t3, $t2", 0xbacabaca,
887                               0xdecadeca, t5, t3, t2);
888   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.w $t2, $t4, $t8", 0x12fadeb4,
889                               0x93474bde, t2, t4, t8);
890   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.w $t0, $t8, $t0", 0x7c000790,
891                               0xfc0007ff, t0, t8, t0);
892   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.w $t4, $t6, $t1", 0xffffffff,
893                               0xffffffff, t4, t6, t1);
894   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.w $t0, $t1, $t2", 0xf2f4df1f,
895                               0xcb4ab48f, t0, t1, t2);
896   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.w $t2, $t3, $t4", 0x435f909a,
897                               0xaf8f7e18, t2, t3, t4);
898   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.w $t4, $t1, $t5", 0x2106ba5f,
899                               0x87df4510, t4, t1, t5);
900   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.w $t6, $t7, $t3", 0x246a6376,
901                               0xabf4e8e1, t6, t7, t3);
902   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.w $t5, $t3, $t2", 0x1046a1a3,
903                               0xf4c0eeac, t5, t3, t2);
904   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.w $t2, $t4, $t8", 0x638ca515,
905                               0x006a54f2, t2, t4, t8);
906   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.w $t0, $t8, $t0", 0xf63e7a9d,
907                               0x79f74493, t0, t8, t0);
908   TESTDSPINST_RD_RS_RT_NODSPC("addqh_r.w $t4, $t6, $t1", 0xbd6845cd,
909                               0x9c09e313, t4, t6, t1);
910
911   printf("-------- ADDU.PH --------\n");
912   TESTDSPINST_RD_RS_RT_DSPC("addu.ph $t0, $t1, $t2", 0x00000000, 0x00000000,
913                             t0, t1, t2);
914   TESTDSPINST_RD_RS_RT_DSPC("addu.ph $t2, $t3, $t4", 0x00045fb2, 0x00000286,
915                             t2, t3, t4);
916   TESTDSPINST_RD_RS_RT_DSPC("addu.ph $t4, $t1, $t5", 0x00002435, 0xffff3421,
917                             t4, t1, t5);
918   TESTDSPINST_RD_RS_RT_DSPC("addu.ph $t6, $t7, $t3", 0x07654cb8, 0x734680bc,
919                             t6, t7, t3);
920   TESTDSPINST_RD_RS_RT_DSPC("addu.ph $t5, $t3, $t2", 0xf973437b, 0x80000000,
921                             t5, t3, t2);
922   TESTDSPINST_RD_RS_RT_DSPC("addu.ph $t2, $t4, $t8", 0x00010001, 0xffffffff,
923                             t2, t4, t8);
924   TESTDSPINST_RD_RS_RT_DSPC("addu.ph $t0, $t8, $t0", 0x7fff7fff, 0x7fff7fff,
925                             t0, t8, t0);
926   TESTDSPINST_RD_RS_RT_DSPC("addu.ph $t4, $t6, $t1", 0x0000c420, 0x00000555,
927                             t4, t6, t1);
928   TESTDSPINST_RD_RS_RT_DSPC("addu.ph $t2, $t3, $t4", 0x00000004, 1073741824,
929                             t2, t3, t4);
930   TESTDSPINST_RD_RS_RT_DSPC("addu.ph $t4, $t1, $t5", 0x80002435, 0x80003421,
931                             t4, t1, t5);
932   TESTDSPINST_RD_RS_RT_DSPC("addu.ph $t6, $t7, $t3", 0x76548000, 0x73468000,
933                             t6, t7, t3);
934   TESTDSPINST_RD_RS_RT_DSPC("addu.ph $t5, $t3, $t2", 0x80000000, 0x80000000,
935                             t5, t3, t2);
936   TESTDSPINST_RD_RS_RT_DSPC("addu.ph $t2, $t4, $t8", 0x00010001, 0xffffffff,
937                             t2, t4, t8);
938   TESTDSPINST_RD_RS_RT_DSPC("addu.ph $t0, $t8, $t0", 0x7fff7fff, 0x7fff7fff,
939                             t0, t8, t0);
940   TESTDSPINST_RD_RS_RT_DSPC("addu.ph $t4, $t6, $t1", 0x0000c420, 0x00000555,
941                             t4, t6, t1);
942   TESTDSPINST_RD_RS_RT_DSPC("addu.ph $t0, $t1, $t2", 0x00000000, 0x00000000,
943                             t0, t1, t2);
944   TESTDSPINST_RD_RS_RT_DSPC("addu.ph $t2, $t3, $t4", 0x80000000, 0x80000000,
945                             t2, t3, t4);
946   TESTDSPINST_RD_RS_RT_DSPC("addu.ph $t4, $t1, $t5", 0xaaaaaaaa, 0x55555555,
947                             t4, t1, t5);
948   TESTDSPINST_RD_RS_RT_DSPC("addu.ph $t6, $t7, $t3", 0x00000018, 0xffff2435,
949                             t6, t7, t3);
950   TESTDSPINST_RD_RS_RT_DSPC("addu.ph $t5, $t3, $t2", 0xbabababa, 0xabababab,
951                             t5, t3, t2);
952   TESTDSPINST_RD_RS_RT_DSPC("addu.ph $t2, $t4, $t8", 0xf0f0f0f0, 0xfc79b4d2,
953                             t2, t4, t8);
954   TESTDSPINST_RD_RS_RT_DSPC("addu.ph $t0, $t8, $t0", 0xfbde3976, 0x00000000,
955                             t0, t8, t0);
956   TESTDSPINST_RD_RS_RT_DSPC("addu.ph $t4, $t6, $t1", 0x23534870, 0x00354565,
957                             t4, t6, t1);
958   TESTDSPINST_RD_RS_RT_DSPC("addu.ph $t0, $t1, $t2", 0x980b7cde, 0x00086755,
959                             t0, t1, t2);
960   TESTDSPINST_RD_RS_RT_DSPC("addu.ph $t2, $t3, $t4", 0x00000018, 0x8f8f8f8f,
961                             t2, t3, t4);
962   TESTDSPINST_RD_RS_RT_DSPC("addu.ph $t4, $t1, $t5", 0x92784656, 0xeeeeeeee,
963                             t4, t1, t5);
964   TESTDSPINST_RD_RS_RT_DSPC("addu.ph $t6, $t7, $t3", 0xcacacaca, 0x1bdbdbdb,
965                             t6, t7, t3);
966   TESTDSPINST_RD_RS_RT_DSPC("addu.ph $t5, $t3, $t2", 0xbacabaca, 0xdecadeca,
967                             t5, t3, t2);
968   TESTDSPINST_RD_RS_RT_DSPC("addu.ph $t2, $t4, $t8", 0x12fadeb4, 0x93474bde,
969                             t2, t4, t8);
970   TESTDSPINST_RD_RS_RT_DSPC("addu.ph $t0, $t8, $t0", 0x7c000790, 0xfc0007ff,
971                             t0, t8, t0);
972   TESTDSPINST_RD_RS_RT_DSPC("addu.ph $t4, $t6, $t1", 0xffffffff, 0xffffffff,
973                             t4, t6, t1);
974   TESTDSPINST_RD_RS_RT_DSPC("addu.ph $t0, $t1, $t2", 0xf2f4df1f, 0xcb4ab48f,
975                             t0, t1, t2);
976   TESTDSPINST_RD_RS_RT_DSPC("addu.ph $t2, $t3, $t4", 0x435f909a, 0xaf8f7e18,
977                             t2, t3, t4);
978   TESTDSPINST_RD_RS_RT_DSPC("addu.ph $t4, $t1, $t5", 0x2106ba5f, 0x87df4510,
979                             t4, t1, t5);
980   TESTDSPINST_RD_RS_RT_DSPC("addu.ph $t6, $t7, $t3", 0x246a6376, 0xabf4e8e1,
981                             t6, t7, t3);
982   TESTDSPINST_RD_RS_RT_DSPC("addu.ph $t5, $t3, $t2", 0x1046a1a3, 0xf4c0eeac,
983                             t5, t3, t2);
984   TESTDSPINST_RD_RS_RT_DSPC("addu.ph $t2, $t4, $t8", 0x638ca515, 0x006a54f2,
985                             t2, t4, t8);
986   TESTDSPINST_RD_RS_RT_DSPC("addu.ph $t0, $t8, $t0", 0xf63e7a9d, 0x79f74493,
987                             t0, t8, t0);
988   TESTDSPINST_RD_RS_RT_DSPC("addu.ph $t4, $t6, $t1", 0xbd6845cd, 0x9c09e313,
989                             t4, t6, t1);
990
991   printf("-------- ADDU_S.PH --------\n");
992   TESTDSPINST_RD_RS_RT_DSPC("addu_s.ph $t0, $t1, $t2", 0x00000000, 0x00000000,
993                             t0, t1, t2);
994   TESTDSPINST_RD_RS_RT_DSPC("addu_s.ph $t2, $t3, $t4", 0x00045fb2, 0x00000286,
995                             t2, t3, t4);
996   TESTDSPINST_RD_RS_RT_DSPC("addu_s.ph $t4, $t1, $t5", 0x00002435, 0xffff3421,
997                             t4, t1, t5);
998   TESTDSPINST_RD_RS_RT_DSPC("addu_s.ph $t6, $t7, $t3", 0x07654cb8, 0x734680bc,
999                             t6, t7, t3);
1000   TESTDSPINST_RD_RS_RT_DSPC("addu_s.ph $t5, $t3, $t2", 0xf973437b, 0x80000000,
1001                             t5, t3, t2);
1002   TESTDSPINST_RD_RS_RT_DSPC("addu_s.ph $t2, $t4, $t8", 0x00010001, 0xffffffff,
1003                             t2, t4, t8);
1004   TESTDSPINST_RD_RS_RT_DSPC("addu_s.ph $t0, $t8, $t0", 0x7fff7fff, 0x7fff7fff,
1005                             t0, t8, t0);
1006   TESTDSPINST_RD_RS_RT_DSPC("addu_s.ph $t4, $t6, $t1", 0x0000c420, 0x00000555,
1007                             t4, t6, t1);
1008   TESTDSPINST_RD_RS_RT_DSPC("addu_s.ph $t2, $t3, $t4", 0x00000004, 1073741824,
1009                             t2, t3, t4);
1010   TESTDSPINST_RD_RS_RT_DSPC("addu_s.ph $t4, $t1, $t5", 0x80002435, 0x80003421,
1011                             t4, t1, t5);
1012   TESTDSPINST_RD_RS_RT_DSPC("addu_s.ph $t6, $t7, $t3", 0x76548000, 0x73468000,
1013                             t6, t7, t3);
1014   TESTDSPINST_RD_RS_RT_DSPC("addu_s.ph $t5, $t3, $t2", 0x80000000, 0x80000000,
1015                             t5, t3, t2);
1016   TESTDSPINST_RD_RS_RT_DSPC("addu_s.ph $t2, $t4, $t8", 0x00010001, 0xffffffff,
1017                             t2, t4, t8);
1018   TESTDSPINST_RD_RS_RT_DSPC("addu_s.ph $t0, $t8, $t0", 0x7fff7fff, 0x7fff7fff,
1019                             t0, t8, t0);
1020   TESTDSPINST_RD_RS_RT_DSPC("addu_s.ph $t4, $t6, $t1", 0x0000c420, 0x00000555,
1021                             t4, t6, t1);
1022   TESTDSPINST_RD_RS_RT_DSPC("addu_s.ph $t0, $t1, $t2", 0x00000000, 0x00000000,
1023                             t0, t1, t2);
1024   TESTDSPINST_RD_RS_RT_DSPC("addu_s.ph $t2, $t3, $t4", 0x80000000, 0x80000000,
1025                             t2, t3, t4);
1026   TESTDSPINST_RD_RS_RT_DSPC("addu_s.ph $t4, $t1, $t5", 0xaaaaaaaa, 0x55555555,
1027                             t4, t1, t5);
1028   TESTDSPINST_RD_RS_RT_DSPC("addu_s.ph $t6, $t7, $t3", 0x00000018, 0xffff2435,
1029                             t6, t7, t3);
1030   TESTDSPINST_RD_RS_RT_DSPC("addu_s.ph $t5, $t3, $t2", 0xbabababa, 0xabababab,
1031                             t5, t3, t2);
1032   TESTDSPINST_RD_RS_RT_DSPC("addu_s.ph $t2, $t4, $t8", 0xf0f0f0f0, 0xfc79b4d2,
1033                             t2, t4, t8);
1034   TESTDSPINST_RD_RS_RT_DSPC("addu_s.ph $t0, $t8, $t0", 0xfbde3976, 0x00000000,
1035                             t0, t8, t0);
1036   TESTDSPINST_RD_RS_RT_DSPC("addu_s.ph $t4, $t6, $t1", 0x23534870, 0x00354565,
1037                             t4, t6, t1);
1038   TESTDSPINST_RD_RS_RT_DSPC("addu_s.ph $t0, $t1, $t2", 0x980b7cde, 0x00086755,
1039                             t0, t1, t2);
1040   TESTDSPINST_RD_RS_RT_DSPC("addu_s.ph $t2, $t3, $t4", 0x00000018, 0x8f8f8f8f,
1041                             t2, t3, t4);
1042   TESTDSPINST_RD_RS_RT_DSPC("addu_s.ph $t4, $t1, $t5", 0x92784656, 0xeeeeeeee,
1043                             t4, t1, t5);
1044   TESTDSPINST_RD_RS_RT_DSPC("addu_s.ph $t6, $t7, $t3", 0xcacacaca, 0x1bdbdbdb,
1045                             t6, t7, t3);
1046   TESTDSPINST_RD_RS_RT_DSPC("addu_s.ph $t5, $t3, $t2", 0xbacabaca, 0xdecadeca,
1047                             t5, t3, t2);
1048   TESTDSPINST_RD_RS_RT_DSPC("addu_s.ph $t2, $t4, $t8", 0x12fadeb4, 0x93474bde,
1049                             t2, t4, t8);
1050   TESTDSPINST_RD_RS_RT_DSPC("addu_s.ph $t0, $t8, $t0", 0x7c000790, 0xfc0007ff,
1051                             t0, t8, t0);
1052   TESTDSPINST_RD_RS_RT_DSPC("addu_s.ph $t4, $t6, $t1", 0xffffffff, 0xffffffff,
1053                             t4, t6, t1);
1054   TESTDSPINST_RD_RS_RT_DSPC("addu_s.ph $t0, $t1, $t2", 0xf2f4df1f, 0xcb4ab48f,
1055                             t0, t1, t2);
1056   TESTDSPINST_RD_RS_RT_DSPC("addu_s.ph $t2, $t3, $t4", 0x435f909a, 0xaf8f7e18,
1057                             t2, t3, t4);
1058   TESTDSPINST_RD_RS_RT_DSPC("addu_s.ph $t4, $t1, $t5", 0x2106ba5f, 0x87df4510,
1059                             t4, t1, t5);
1060   TESTDSPINST_RD_RS_RT_DSPC("addu_s.ph $t6, $t7, $t3", 0x246a6376, 0xabf4e8e1,
1061                             t6, t7, t3);
1062   TESTDSPINST_RD_RS_RT_DSPC("addu_s.ph $t5, $t3, $t2", 0x1046a1a3, 0xf4c0eeac,
1063                             t5, t3, t2);
1064   TESTDSPINST_RD_RS_RT_DSPC("addu_s.ph $t2, $t4, $t8", 0x638ca515, 0x006a54f2,
1065                             t2, t4, t8);
1066   TESTDSPINST_RD_RS_RT_DSPC("addu_s.ph $t0, $t8, $t0", 0xf63e7a9d, 0x79f74493,
1067                             t0, t8, t0);
1068   TESTDSPINST_RD_RS_RT_DSPC("addu_s.ph $t4, $t6, $t1", 0xbd6845cd, 0x9c09e313,
1069                             t4, t6, t1);
1070
1071   printf("-------- ADDUH.QB --------\n");
1072   TESTDSPINST_RD_RS_RT_NODSPC("adduh.qb $t0, $t1, $t2", 0x00000000, 0x00000000,
1073                               t0, t1, t2);
1074   TESTDSPINST_RD_RS_RT_NODSPC("adduh.qb $t2, $t3, $t4", 0x00045fb2, 0x00000286,
1075                               t2, t3, t4);
1076   TESTDSPINST_RD_RS_RT_NODSPC("adduh.qb $t4, $t1, $t5", 0x00002435, 0xffff3421,
1077                               t4, t1, t5);
1078   TESTDSPINST_RD_RS_RT_NODSPC("adduh.qb $t6, $t7, $t3", 0x07654cb8, 0x734680bc,
1079                               t6, t7, t3);
1080   TESTDSPINST_RD_RS_RT_NODSPC("adduh.qb $t5, $t3, $t2", 0xf973437b, 0x80000000,
1081                               t5, t3, t2);
1082   TESTDSPINST_RD_RS_RT_NODSPC("adduh.qb $t2, $t4, $t8", 0x00010001, 0xffffffff,
1083                               t2, t4, t8);
1084   TESTDSPINST_RD_RS_RT_NODSPC("adduh.qb $t0, $t8, $t0", 0x7fff7fff, 0x7fff7fff,
1085                               t0, t8, t0);
1086   TESTDSPINST_RD_RS_RT_NODSPC("adduh.qb $t4, $t6, $t1", 0x0000c420, 0x00000555,
1087                               t4, t6, t1);
1088   TESTDSPINST_RD_RS_RT_NODSPC("adduh.qb $t2, $t3, $t4", 0x00000004, 1073741824,
1089                               t2, t3, t4);
1090   TESTDSPINST_RD_RS_RT_NODSPC("adduh.qb $t4, $t1, $t5", 0x80002435, 0x80003421,
1091                               t4, t1, t5);
1092   TESTDSPINST_RD_RS_RT_NODSPC("adduh.qb $t6, $t7, $t3", 0x76548000, 0x73468000,
1093                               t6, t7, t3);
1094   TESTDSPINST_RD_RS_RT_NODSPC("adduh.qb $t5, $t3, $t2", 0x80000000, 0x80000000,
1095                               t5, t3, t2);
1096   TESTDSPINST_RD_RS_RT_NODSPC("adduh.qb $t2, $t4, $t8", 0x00010001, 0xffffffff,
1097                               t2, t4, t8);
1098   TESTDSPINST_RD_RS_RT_NODSPC("adduh.qb $t0, $t8, $t0", 0x7fff7fff, 0x7fff7fff,
1099                               t0, t8, t0);
1100   TESTDSPINST_RD_RS_RT_NODSPC("adduh.qb $t4, $t6, $t1", 0x0000c420, 0x00000555,
1101                               t4, t6, t1);
1102   TESTDSPINST_RD_RS_RT_NODSPC("adduh.qb $t0, $t1, $t2", 0x00000000, 0x00000000,
1103                               t0, t1, t2);
1104   TESTDSPINST_RD_RS_RT_NODSPC("adduh.qb $t2, $t3, $t4", 0x80000000, 0x80000000,
1105                               t2, t3, t4);
1106   TESTDSPINST_RD_RS_RT_NODSPC("adduh.qb $t4, $t1, $t5", 0xaaaaaaaa, 0x55555555,
1107                               t4, t1, t5);
1108   TESTDSPINST_RD_RS_RT_NODSPC("adduh.qb $t6, $t7, $t3", 0x00000018, 0xffff2435,
1109                               t6, t7, t3);
1110   TESTDSPINST_RD_RS_RT_NODSPC("adduh.qb $t5, $t3, $t2", 0xbabababa, 0xabababab,
1111                               t5, t3, t2);
1112   TESTDSPINST_RD_RS_RT_NODSPC("adduh.qb $t2, $t4, $t8", 0xf0f0f0f0, 0xfc79b4d2,
1113                               t2, t4, t8);
1114   TESTDSPINST_RD_RS_RT_NODSPC("adduh.qb $t0, $t8, $t0", 0xfbde3976, 0x00000000,
1115                               t0, t8, t0);
1116   TESTDSPINST_RD_RS_RT_NODSPC("adduh.qb $t4, $t6, $t1", 0x23534870, 0x00354565,
1117                               t4, t6, t1);
1118   TESTDSPINST_RD_RS_RT_NODSPC("adduh.qb $t0, $t1, $t2", 0x980b7cde, 0x00086755,
1119                               t0, t1, t2);
1120   TESTDSPINST_RD_RS_RT_NODSPC("adduh.qb $t2, $t3, $t4", 0x00000018, 0x8f8f8f8f,
1121                               t2, t3, t4);
1122   TESTDSPINST_RD_RS_RT_NODSPC("adduh.qb $t4, $t1, $t5", 0x92784656, 0xeeeeeeee,
1123                               t4, t1, t5);
1124   TESTDSPINST_RD_RS_RT_NODSPC("adduh.qb $t6, $t7, $t3", 0xcacacaca, 0x1bdbdbdb,
1125                               t6, t7, t3);
1126   TESTDSPINST_RD_RS_RT_NODSPC("adduh.qb $t5, $t3, $t2", 0xbacabaca, 0xdecadeca,
1127                               t5, t3, t2);
1128   TESTDSPINST_RD_RS_RT_NODSPC("adduh.qb $t2, $t4, $t8", 0x12fadeb4, 0x93474bde,
1129                               t2, t4, t8);
1130   TESTDSPINST_RD_RS_RT_NODSPC("adduh.qb $t0, $t8, $t0", 0x7c000790, 0xfc0007ff,
1131                               t0, t8, t0);
1132   TESTDSPINST_RD_RS_RT_NODSPC("adduh.qb $t4, $t6, $t1", 0xffffffff, 0xffffffff,
1133                               t4, t6, t1);
1134   TESTDSPINST_RD_RS_RT_NODSPC("adduh.qb $t0, $t1, $t2", 0xf2f4df1f, 0xcb4ab48f,
1135                               t0, t1, t2);
1136   TESTDSPINST_RD_RS_RT_NODSPC("adduh.qb $t2, $t3, $t4", 0x435f909a, 0xaf8f7e18,
1137                               t2, t3, t4);
1138   TESTDSPINST_RD_RS_RT_NODSPC("adduh.qb $t4, $t1, $t5", 0x2106ba5f, 0x87df4510,
1139                               t4, t1, t5);
1140   TESTDSPINST_RD_RS_RT_NODSPC("adduh.qb $t6, $t7, $t3", 0x246a6376, 0xabf4e8e1,
1141                               t6, t7, t3);
1142   TESTDSPINST_RD_RS_RT_NODSPC("adduh.qb $t5, $t3, $t2", 0x1046a1a3, 0xf4c0eeac,
1143                               t5, t3, t2);
1144   TESTDSPINST_RD_RS_RT_NODSPC("adduh.qb $t2, $t4, $t8", 0x638ca515, 0x006a54f2,
1145                               t2, t4, t8);
1146   TESTDSPINST_RD_RS_RT_NODSPC("adduh.qb $t0, $t8, $t0", 0xf63e7a9d, 0x79f74493,
1147                               t0, t8, t0);
1148   TESTDSPINST_RD_RS_RT_NODSPC("adduh.qb $t4, $t6, $t1", 0xbd6845cd, 0x9c09e313,
1149                               t4, t6, t1);
1150
1151   printf("-------- ADDUH_R.QB --------\n");
1152   TESTDSPINST_RD_RS_RT_NODSPC("adduh_r.qb $t0, $t1, $t2", 0x00000000,
1153                               0x00000000, t0, t1, t2);
1154   TESTDSPINST_RD_RS_RT_NODSPC("adduh_r.qb $t2, $t3, $t4", 0x00045fb2,
1155                               0x00000286, t2, t3, t4);
1156   TESTDSPINST_RD_RS_RT_NODSPC("adduh_r.qb $t4, $t1, $t5", 0x00002435,
1157                               0xffff3421, t4, t1, t5);
1158   TESTDSPINST_RD_RS_RT_NODSPC("adduh_r.qb $t6, $t7, $t3", 0x07654cb8,
1159                               0x734680bc, t6, t7, t3);
1160   TESTDSPINST_RD_RS_RT_NODSPC("adduh_r.qb $t5, $t3, $t2", 0xf973437b,
1161                               0x80000000, t5, t3, t2);
1162   TESTDSPINST_RD_RS_RT_NODSPC("adduh_r.qb $t2, $t4, $t8", 0x00010001,
1163                               0xffffffff, t2, t4, t8);
1164   TESTDSPINST_RD_RS_RT_NODSPC("adduh_r.qb $t0, $t8, $t0", 0x7fff7fff,
1165                               0x7fff7fff, t0, t8, t0);
1166   TESTDSPINST_RD_RS_RT_NODSPC("adduh_r.qb $t4, $t6, $t1", 0x0000c420,
1167                               0x00000555, t4, t6, t1);
1168   TESTDSPINST_RD_RS_RT_NODSPC("adduh_r.qb $t2, $t3, $t4", 0x00000004,
1169                               1073741824, t2, t3, t4);
1170   TESTDSPINST_RD_RS_RT_NODSPC("adduh_r.qb $t4, $t1, $t5", 0x80002435,
1171                               0x80003421, t4, t1, t5);
1172   TESTDSPINST_RD_RS_RT_NODSPC("adduh_r.qb $t6, $t7, $t3", 0x76548000,
1173                               0x73468000, t6, t7, t3);
1174   TESTDSPINST_RD_RS_RT_NODSPC("adduh_r.qb $t5, $t3, $t2", 0x80000000,
1175                               0x80000000, t5, t3, t2);
1176   TESTDSPINST_RD_RS_RT_NODSPC("adduh_r.qb $t2, $t4, $t8", 0x00010001,
1177                               0xffffffff, t2, t4, t8);
1178   TESTDSPINST_RD_RS_RT_NODSPC("adduh_r.qb $t0, $t8, $t0", 0x7fff7fff,
1179                               0x7fff7fff, t0, t8, t0);
1180   TESTDSPINST_RD_RS_RT_NODSPC("adduh_r.qb $t4, $t6, $t1", 0x0000c420,
1181                               0x00000555, t4, t6, t1);
1182   TESTDSPINST_RD_RS_RT_NODSPC("adduh_r.qb $t0, $t1, $t2", 0x00000000,
1183                               0x00000000, t0, t1, t2);
1184   TESTDSPINST_RD_RS_RT_NODSPC("adduh_r.qb $t2, $t3, $t4", 0x80000000,
1185                               0x80000000, t2, t3, t4);
1186   TESTDSPINST_RD_RS_RT_NODSPC("adduh_r.qb $t4, $t1, $t5", 0xaaaaaaaa,
1187                               0x55555555, t4, t1, t5);
1188   TESTDSPINST_RD_RS_RT_NODSPC("adduh_r.qb $t6, $t7, $t3", 0x00000018,
1189                               0xffff2435, t6, t7, t3);
1190   TESTDSPINST_RD_RS_RT_NODSPC("adduh_r.qb $t5, $t3, $t2", 0xbabababa,
1191                               0xabababab, t5, t3, t2);
1192   TESTDSPINST_RD_RS_RT_NODSPC("adduh_r.qb $t2, $t4, $t8", 0xf0f0f0f0,
1193                               0xfc79b4d2, t2, t4, t8);
1194   TESTDSPINST_RD_RS_RT_NODSPC("adduh_r.qb $t0, $t8, $t0", 0xfbde3976,
1195                               0x00000000, t0, t8, t0);
1196   TESTDSPINST_RD_RS_RT_NODSPC("adduh_r.qb $t4, $t6, $t1", 0x23534870,
1197                               0x00354565, t4, t6, t1);
1198   TESTDSPINST_RD_RS_RT_NODSPC("adduh_r.qb $t0, $t1, $t2", 0x980b7cde,
1199                               0x00086755, t0, t1, t2);
1200   TESTDSPINST_RD_RS_RT_NODSPC("adduh_r.qb $t2, $t3, $t4", 0x00000018,
1201                               0x8f8f8f8f, t2, t3, t4);
1202   TESTDSPINST_RD_RS_RT_NODSPC("adduh_r.qb $t4, $t1, $t5", 0x92784656,
1203                               0xeeeeeeee, t4, t1, t5);
1204   TESTDSPINST_RD_RS_RT_NODSPC("adduh_r.qb $t6, $t7, $t3", 0xcacacaca,
1205                               0x1bdbdbdb, t6, t7, t3);
1206   TESTDSPINST_RD_RS_RT_NODSPC("adduh_r.qb $t5, $t3, $t2", 0xbacabaca,
1207                               0xdecadeca, t5, t3, t2);
1208   TESTDSPINST_RD_RS_RT_NODSPC("adduh_r.qb $t2, $t4, $t8", 0x12fadeb4,
1209                               0x93474bde, t2, t4, t8);
1210   TESTDSPINST_RD_RS_RT_NODSPC("adduh_r.qb $t0, $t8, $t0", 0x7c000790,
1211                               0xfc0007ff, t0, t8, t0);
1212   TESTDSPINST_RD_RS_RT_NODSPC("adduh_r.qb $t4, $t6, $t1", 0xffffffff,
1213                               0xffffffff, t4, t6, t1);
1214   TESTDSPINST_RD_RS_RT_NODSPC("adduh_r.qb $t0, $t1, $t2", 0xf2f4df1f,
1215                               0xcb4ab48f, t0, t1, t2);
1216   TESTDSPINST_RD_RS_RT_NODSPC("adduh_r.qb $t2, $t3, $t4", 0x435f909a,
1217                               0xaf8f7e18, t2, t3, t4);
1218   TESTDSPINST_RD_RS_RT_NODSPC("adduh_r.qb $t4, $t1, $t5", 0x2106ba5f,
1219                               0x87df4510, t4, t1, t5);
1220   TESTDSPINST_RD_RS_RT_NODSPC("adduh_r.qb $t6, $t7, $t3", 0x246a6376,
1221                               0xabf4e8e1, t6, t7, t3);
1222   TESTDSPINST_RD_RS_RT_NODSPC("adduh_r.qb $t5, $t3, $t2", 0x1046a1a3,
1223                               0xf4c0eeac, t5, t3, t2);
1224   TESTDSPINST_RD_RS_RT_NODSPC("adduh_r.qb $t2, $t4, $t8", 0x638ca515,
1225                               0x006a54f2, t2, t4, t8);
1226   TESTDSPINST_RD_RS_RT_NODSPC("adduh_r.qb $t0, $t8, $t0", 0xf63e7a9d,
1227                               0x79f74493, t0, t8, t0);
1228   TESTDSPINST_RD_RS_RT_NODSPC("adduh_r.qb $t4, $t6, $t1", 0xbd6845cd,
1229                               0x9c09e313, t4, t6, t1);
1230
1231   printf("-------- APPEND --------\n");
1232   TESTDSPINST_RT_RS_SA_NODSPC("append $t0, $t1,  0", 0x00000000, 0x0fffffff,
1233                               0, t0, t1);
1234   TESTDSPINST_RT_RS_SA_NODSPC("append $t2, $t3,  1", 0x00045fb2, 0x00000286,
1235                               1, t2, t3);
1236   TESTDSPINST_RT_RS_SA_NODSPC("append $t4, $t1,  4", 0xfabc2435, 0x0ffb3421,
1237                               4, t4, t1);
1238   TESTDSPINST_RT_RS_SA_NODSPC("append $t6, $t7, 17", 0x07654cb8, 0x734680bc,
1239                               17, t6, t7);
1240   TESTDSPINST_RT_RS_SA_NODSPC("append $t5, $t3, 31", 0xf973437b, 0x80000000,
1241                               31, t5, t3);
1242   TESTDSPINST_RT_RS_SA_NODSPC("append $t2, $t4,  8", 0x00010001, 0xffffffff,
1243                               8, t2, t4);
1244   TESTDSPINST_RT_RS_SA_NODSPC("append $t0, $t8, 11", 0x7fff7fff, 0x7fff7fff,
1245                               11, t0, t8);
1246   TESTDSPINST_RT_RS_SA_NODSPC("append $t4, $t6, 13", 0x0000c420, 0x00000555,
1247                               13, t4, t6);
1248   TESTDSPINST_RT_RS_SA_NODSPC("append $t0, $t1,  2", 0x00000000, 0x00000000,
1249                               2, t0, t1);
1250   TESTDSPINST_RT_RS_SA_NODSPC("append $t2, $t3,  6", 0x80000000, 0x80000000,
1251                               6, t2, t3);
1252   TESTDSPINST_RT_RS_SA_NODSPC("append $t4, $t1,  7", 0xaaaaaaaa, 0x55555555,
1253                               7, t4, t1);
1254   TESTDSPINST_RT_RS_SA_NODSPC("append $t6, $t7, 19", 0x00000018, 0xffff2435,
1255                               19, t6, t7);
1256   TESTDSPINST_RT_RS_SA_NODSPC("append $t5, $t3, 31", 0xbabababa, 0xabababab,
1257                               31, t5, t3);
1258   TESTDSPINST_RT_RS_SA_NODSPC("append $t2, $t4,  4", 0xf0f0f0f0, 0xfc79b4d2,
1259                               4, t2, t4);
1260   TESTDSPINST_RT_RS_SA_NODSPC("append $t0, $t8, 12", 0xfbde3976, 0x00000000,
1261                               12, t0, t8);
1262   TESTDSPINST_RT_RS_SA_NODSPC("append $t4, $t6, 10", 0x23534870, 0x00354565,
1263                               10, t4, t6);
1264   TESTDSPINST_RT_RS_SA_NODSPC("append $t0, $t1, 20", 0x980b7cde, 0x00086755,
1265                               20, t0, t1);
1266   TESTDSPINST_RT_RS_SA_NODSPC("append $t2, $t3, 21", 0x00000018, 0x8f8f8f8f,
1267                               21, t2, t3);
1268   TESTDSPINST_RT_RS_SA_NODSPC("append $t4, $t1, 24", 0x92784656, 0xeeeeeeee,
1269                               24, t4, t1);
1270   TESTDSPINST_RT_RS_SA_NODSPC("append $t6, $t7, 27", 0xcacacaca, 0x1bdbdbdb,
1271                               27, t6, t7);
1272   TESTDSPINST_RT_RS_SA_NODSPC("append $t5, $t3,  1", 0xbacabaca, 0xdecadeca,
1273                               1, t5, t3);
1274   TESTDSPINST_RT_RS_SA_NODSPC("append $t2, $t4, 18", 0x12fadeb4, 0x93474bde,
1275                               18, t2, t4);
1276   TESTDSPINST_RT_RS_SA_NODSPC("append $t0, $t8, 10", 0x7c000790, 0xfc0007ff,
1277                               10, t0, t8);
1278   TESTDSPINST_RT_RS_SA_NODSPC("append $t4, $t6, 16", 0xffffffff, 0xffffffff,
1279                               16, t4, t6);
1280   TESTDSPINST_RT_RS_SA_NODSPC("append $t0, $t1,  0", 0xf2f4df1f, 0xcb4ab48f,
1281                               0, t0, t1);
1282   TESTDSPINST_RT_RS_SA_NODSPC("append $t2, $t3, 14", 0x435f909a, 0xaf8f7e18,
1283                               14, t2, t3);
1284   TESTDSPINST_RT_RS_SA_NODSPC("append $t4, $t1,  5", 0x2106ba5f, 0x87df4510,
1285                               5, t4, t1);
1286   TESTDSPINST_RT_RS_SA_NODSPC("append $t6, $t7,  7", 0x246a6376, 0xabf4e8e1,
1287                               7, t6, t7);
1288   TESTDSPINST_RT_RS_SA_NODSPC("append $t5, $t3,  9", 0x1046a1a3, 0xf4c0eeac,
1289                               9, t5, t3);
1290   TESTDSPINST_RT_RS_SA_NODSPC("append $t2, $t4,  3", 0x638ca515, 0x006a54f2,
1291                               3, t2, t4);
1292   TESTDSPINST_RT_RS_SA_NODSPC("append $t0, $t8, 15", 0xf63e7a9d, 0x79f74493,
1293                               15, t0, t8);
1294   TESTDSPINST_RT_RS_SA_NODSPC("append $t4, $t6, 11", 0xbd6845cd, 0x9c09e313,
1295                               1, t4, t6);
1296
1297   printf("-------- BALIGN --------\n");
1298   TESTDSPINST_RT_RS_SA_NODSPC("balign $t0, $t1,  0", 0x00000000, 0x0fffffff, 0,
1299                               t0, t1);
1300   TESTDSPINST_RT_RS_SA_NODSPC("balign $t2, $t3,  1", 0x00045fb2, 0x00000286, 1,
1301                               t2, t3);
1302   TESTDSPINST_RT_RS_SA_NODSPC("balign $t6, $t7,  3", 0x07654cb8, 0x734680bc, 3,
1303                               t6, t7);
1304   TESTDSPINST_RT_RS_SA_NODSPC("balign $t5, $t3,  0", 0xf973437b, 0x80000000, 0,
1305                               t5, t3);
1306   TESTDSPINST_RT_RS_SA_NODSPC("balign $t2, $t4,  1", 0x00010001, 0xffffffff, 1,
1307                               t2, t4);
1308   TESTDSPINST_RT_RS_SA_NODSPC("balign $t4, $t6,  3", 0x0000c420, 0x00000555, 3,
1309                               t4, t6);
1310   TESTDSPINST_RT_RS_SA_NODSPC("balign $t0, $t1,  0", 0x00000000, 0x00000000, 0,
1311                               t0, t1);
1312   TESTDSPINST_RT_RS_SA_NODSPC("balign $t2, $t3,  1", 0x80000000, 0x80000000, 1,
1313                               t2, t3);
1314   TESTDSPINST_RT_RS_SA_NODSPC("balign $t6, $t7,  3", 0x00000018, 0xffff2435, 3,
1315                               t6, t7);
1316   TESTDSPINST_RT_RS_SA_NODSPC("balign $t5, $t3,  0", 0xbabababa, 0xabababab, 0,
1317                               t5, t3);
1318   TESTDSPINST_RT_RS_SA_NODSPC("balign $t2, $t4,  1", 0xf0f0f0f0, 0xfc79b4d2, 1,
1319                               t2, t4);
1320   TESTDSPINST_RT_RS_SA_NODSPC("balign $t4, $t6,  3", 0x23534870, 0x00354565, 3,
1321                               t4, t6);
1322   TESTDSPINST_RT_RS_SA_NODSPC("balign $t0, $t1,  0", 0x980b7cde, 0x00086755, 0,
1323                               t0, t1);
1324   TESTDSPINST_RT_RS_SA_NODSPC("balign $t2, $t3,  1", 0x00000018, 0x8f8f8f8f, 1,
1325                               t2, t3);
1326   TESTDSPINST_RT_RS_SA_NODSPC("balign $t6, $t7,  3", 0xcacacaca, 0x1bdbdbdb, 3,
1327                               t6, t7);
1328   TESTDSPINST_RT_RS_SA_NODSPC("balign $t5, $t3,  0", 0xbacabaca, 0xdecadeca, 0,
1329                               t5, t3);
1330   TESTDSPINST_RT_RS_SA_NODSPC("balign $t2, $t4,  1", 0x12fadeb4, 0x93474bde, 1,
1331                               t2, t4);
1332   TESTDSPINST_RT_RS_SA_NODSPC("balign $t4, $t6,  3", 0xffffffff, 0xffffffff, 3,
1333                               t4, t6);
1334   TESTDSPINST_RT_RS_SA_NODSPC("balign $t0, $t1,  0", 0xf2f4df1f, 0xcb4ab48f, 0,
1335                               t0, t1);
1336   TESTDSPINST_RT_RS_SA_NODSPC("balign $t2, $t3,  1", 0x435f909a, 0xaf8f7e18, 1,
1337                               t2, t3);
1338   TESTDSPINST_RT_RS_SA_NODSPC("balign $t6, $t7,  3", 0x246a6376, 0xabf4e8e1, 3,
1339                               t6, t7);
1340   TESTDSPINST_RT_RS_SA_NODSPC("balign $t5, $t3,  0", 0x1046a1a3, 0xf4c0eeac, 0,
1341                               t5, t3);
1342   TESTDSPINST_RT_RS_SA_NODSPC("balign $t2, $t4,  1", 0x638ca515, 0x006a54f2, 1,
1343                               t2, t4);
1344   TESTDSPINST_RT_RS_SA_NODSPC("balign $t4, $t6,  3", 0xbd6845cd, 0x9c09e313, 3,
1345                               t4, t6);
1346
1347   printf("-------- CMPGDU.EQ.QB --------\n");
1348   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.eq.qb $t0, $t1, $t2", 0x00000000,
1349                             0x00000000, t0, t1, t2);
1350   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.eq.qb $t2, $t3, $t4", 0x00045fb2,
1351                             0x00000286, t2, t3, t4);
1352   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.eq.qb $t4, $t1, $t5", 0x00002435,
1353                             0xffff3421, t4, t1, t5);
1354   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.eq.qb $t6, $t7, $t3", 0x07654cb8,
1355                             0x734680bc, t6, t7, t3);
1356   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.eq.qb $t5, $t3, $t2", 0xf973437b,
1357                             0x80000000, t5, t3, t2);
1358   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.eq.qb $t2, $t4, $t8", 0x00010001,
1359                             0xffffffff, t2, t4, t8);
1360   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.eq.qb $t0, $t8, $t0", 0x7fff7fff,
1361                             0x7fff7fff, t0, t8, t0);
1362   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.eq.qb $t4, $t6, $t1", 0x0000c420,
1363                             0x00000555, t4, t6, t1);
1364   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.eq.qb $t2, $t3, $t4", 0x00000004,
1365                             1073741824, t2, t3, t4);
1366   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.eq.qb $t4, $t1, $t5", 0x80002435,
1367                             0x80003421, t4, t1, t5);
1368   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.eq.qb $t6, $t7, $t3", 0x76548000,
1369                             0x73468000, t6, t7, t3);
1370   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.eq.qb $t5, $t3, $t2", 0x80000000,
1371                             0x80000000, t5, t3, t2);
1372   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.eq.qb $t2, $t4, $t8", 0x00010001,
1373                             0xffffffff, t2, t4, t8);
1374   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.eq.qb $t0, $t8, $t0", 0x7fff7fff,
1375                             0x7fff7fff, t0, t8, t0);
1376   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.eq.qb $t4, $t6, $t1", 0x0000c420,
1377                             0x00000555, t4, t6, t1);
1378   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.eq.qb $t0, $t1, $t2", 0x00000000,
1379                             0x00000000, t0, t1, t2);
1380   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.eq.qb $t2, $t3, $t4", 0x80000000,
1381                             0x80000000, t2, t3, t4);
1382   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.eq.qb $t4, $t1, $t5", 0xaaaaaaaa,
1383                             0x55555555, t4, t1, t5);
1384   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.eq.qb $t6, $t7, $t3", 0x00000018,
1385                             0xffff2435, t6, t7, t3);
1386   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.eq.qb $t5, $t3, $t2", 0xbabababa,
1387                             0xabababab, t5, t3, t2);
1388   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.eq.qb $t2, $t4, $t8", 0xf0f0f0f0,
1389                             0xfc79b4d2, t2, t4, t8);
1390   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.eq.qb $t0, $t8, $t0", 0xfbde3976,
1391                             0x00000000, t0, t8, t0);
1392   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.eq.qb $t4, $t6, $t1", 0x23534870,
1393                             0x00354565, t4, t6, t1);
1394   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.eq.qb $t0, $t1, $t2", 0x980b7cde,
1395                             0x00086755, t0, t1, t2);
1396   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.eq.qb $t2, $t3, $t4", 0x00000018,
1397                             0x8f8f8f8f, t2, t3, t4);
1398   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.eq.qb $t4, $t1, $t5", 0x92784656,
1399                             0xeeeeeeee, t4, t1, t5);
1400   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.eq.qb $t6, $t7, $t3", 0xcacacaca,
1401                             0x1bdbdbdb, t6, t7, t3);
1402   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.eq.qb $t5, $t3, $t2", 0xbacabaca,
1403                             0xdecadeca, t5, t3, t2);
1404   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.eq.qb $t2, $t4, $t8", 0x12fadeb4,
1405                             0x93474bde, t2, t4, t8);
1406   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.eq.qb $t0, $t8, $t0", 0x7c000790,
1407                             0xfc0007ff, t0, t8, t0);
1408   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.eq.qb $t4, $t6, $t1", 0xffffffff,
1409                             0xffffffff, t4, t6, t1);
1410   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.eq.qb $t0, $t1, $t2", 0xf2f4df1f,
1411                             0xcb4ab48f, t0, t1, t2);
1412   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.eq.qb $t2, $t3, $t4", 0x435f909a,
1413                             0xaf8f7e18, t2, t3, t4);
1414   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.eq.qb $t4, $t1, $t5", 0x2106ba5f,
1415                             0x87df4510, t4, t1, t5);
1416   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.eq.qb $t6, $t7, $t3", 0x246a6376,
1417                             0xabf4e8e1, t6, t7, t3);
1418   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.eq.qb $t5, $t3, $t2", 0x1046a1a3,
1419                             0xf4c0eeac, t5, t3, t2);
1420   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.eq.qb $t2, $t4, $t8", 0x638ca515,
1421                             0x006a54f2, t2, t4, t8);
1422   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.eq.qb $t0, $t8, $t0", 0xf63e7a9d,
1423                             0x79f74493, t0, t8, t0);
1424   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.eq.qb $t4, $t6, $t1", 0xbd6845cd,
1425                             0x9c09e313, t4, t6, t1);
1426
1427   printf("-------- CMPGDU.LT.QB --------\n");
1428   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.lt.qb $t0, $t1, $t2", 0x00000000,
1429                             0x00000000, t0, t1, t2);
1430   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.lt.qb $t2, $t3, $t4", 0x00045fb2,
1431                             0x00000286, t2, t3, t4);
1432   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.lt.qb $t4, $t1, $t5", 0x00002435,
1433                             0xffff3421, t4, t1, t5);
1434   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.lt.qb $t6, $t7, $t3", 0x07654cb8,
1435                             0x734680bc, t6, t7, t3);
1436   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.lt.qb $t5, $t3, $t2", 0xf973437b,
1437                             0x80000000, t5, t3, t2);
1438   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.lt.qb $t2, $t4, $t8", 0x00010001,
1439                             0xffffffff, t2, t4, t8);
1440   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.lt.qb $t0, $t8, $t0", 0x7fff7fff,
1441                             0x7fff7fff, t0, t8, t0);
1442   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.lt.qb $t4, $t6, $t1", 0x0000c420,
1443                             0x00000555, t4, t6, t1);
1444   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.lt.qb $t2, $t3, $t4", 0x00000004,
1445                             1073741824, t2, t3, t4);
1446   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.lt.qb $t4, $t1, $t5", 0x80002435,
1447                             0x80003421, t4, t1, t5);
1448   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.lt.qb $t6, $t7, $t3", 0x76548000,
1449                             0x73468000, t6, t7, t3);
1450   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.lt.qb $t5, $t3, $t2", 0x80000000,
1451                             0x80000000, t5, t3, t2);
1452   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.lt.qb $t2, $t4, $t8", 0x00010001,
1453                             0xffffffff, t2, t4, t8);
1454   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.lt.qb $t0, $t8, $t0", 0x7fff7fff,
1455                             0x7fff7fff, t0, t8, t0);
1456   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.lt.qb $t4, $t6, $t1", 0x0000c420,
1457                             0x00000555, t4, t6, t1);
1458   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.lt.qb $t0, $t1, $t2", 0x00000000,
1459                             0x00000000, t0, t1, t2);
1460   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.lt.qb $t2, $t3, $t4", 0x80000000,
1461                             0x80000000, t2, t3, t4);
1462   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.lt.qb $t4, $t1, $t5", 0xaaaaaaaa,
1463                             0x55555555, t4, t1, t5);
1464   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.lt.qb $t6, $t7, $t3", 0x00000018,
1465                             0xffff2435, t6, t7, t3);
1466   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.lt.qb $t5, $t3, $t2", 0xbabababa,
1467                             0xabababab, t5, t3, t2);
1468   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.lt.qb $t2, $t4, $t8", 0xf0f0f0f0,
1469                             0xfc79b4d2, t2, t4, t8);
1470   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.lt.qb $t0, $t8, $t0", 0xfbde3976,
1471                             0x00000000, t0, t8, t0);
1472   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.lt.qb $t4, $t6, $t1", 0x23534870,
1473                             0x00354565, t4, t6, t1);
1474   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.lt.qb $t0, $t1, $t2", 0x980b7cde,
1475                             0x00086755, t0, t1, t2);
1476   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.lt.qb $t2, $t3, $t4", 0x00000018,
1477                             0x8f8f8f8f, t2, t3, t4);
1478   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.lt.qb $t4, $t1, $t5", 0x92784656,
1479                             0xeeeeeeee, t4, t1, t5);
1480   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.lt.qb $t6, $t7, $t3", 0xcacacaca,
1481                             0x1bdbdbdb, t6, t7, t3);
1482   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.lt.qb $t5, $t3, $t2", 0xbacabaca,
1483                             0xdecadeca, t5, t3, t2);
1484   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.lt.qb $t2, $t4, $t8", 0x12fadeb4,
1485                             0x93474bde, t2, t4, t8);
1486   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.lt.qb $t0, $t8, $t0", 0x7c000790,
1487                             0xfc0007ff, t0, t8, t0);
1488   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.lt.qb $t4, $t6, $t1", 0xffffffff,
1489                             0xffffffff, t4, t6, t1);
1490   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.lt.qb $t0, $t1, $t2", 0xf2f4df1f,
1491                             0xcb4ab48f, t0, t1, t2);
1492   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.lt.qb $t2, $t3, $t4", 0x435f909a,
1493                             0xaf8f7e18, t2, t3, t4);
1494   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.lt.qb $t4, $t1, $t5", 0x2106ba5f,
1495                             0x87df4510, t4, t1, t5);
1496   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.lt.qb $t6, $t7, $t3", 0x246a6376,
1497                             0xabf4e8e1, t6, t7, t3);
1498   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.lt.qb $t5, $t3, $t2", 0x1046a1a3,
1499                             0xf4c0eeac, t5, t3, t2);
1500   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.lt.qb $t2, $t4, $t8", 0x638ca515,
1501                             0x006a54f2, t2, t4, t8);
1502   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.lt.qb $t0, $t8, $t0", 0xf63e7a9d,
1503                             0x79f74493, t0, t8, t0);
1504   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.lt.qb $t4, $t6, $t1", 0xbd6845cd,
1505                             0x9c09e313, t4, t6, t1);
1506
1507   printf("-------- CMPGDU.LE.QB --------\n");
1508   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.le.qb $t0, $t1, $t2", 0x00000000,
1509                             0x00000000, t0, t1, t2);
1510   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.le.qb $t2, $t3, $t4", 0x00045fb2,
1511                             0x00000286, t2, t3, t4);
1512   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.le.qb $t4, $t1, $t5", 0x00002435,
1513                             0xffff3421, t4, t1, t5);
1514   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.le.qb $t6, $t7, $t3", 0x07654cb8,
1515                             0x734680bc, t6, t7, t3);
1516   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.le.qb $t5, $t3, $t2", 0xf973437b,
1517                             0x80000000, t5, t3, t2);
1518   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.le.qb $t2, $t4, $t8", 0x00010001,
1519                             0xffffffff, t2, t4, t8);
1520   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.le.qb $t0, $t8, $t0", 0x7fff7fff,
1521                             0x7fff7fff, t0, t8, t0);
1522   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.le.qb $t4, $t6, $t1", 0x0000c420,
1523                             0x00000555, t4, t6, t1);
1524   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.le.qb $t2, $t3, $t4", 0x00000004,
1525                             1073741824, t2, t3, t4);
1526   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.le.qb $t4, $t1, $t5", 0x80002435,
1527                             0x80003421, t4, t1, t5);
1528   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.le.qb $t6, $t7, $t3", 0x76548000,
1529                             0x73468000, t6, t7, t3);
1530   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.le.qb $t5, $t3, $t2", 0x80000000,
1531                             0x80000000, t5, t3, t2);
1532   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.le.qb $t2, $t4, $t8", 0x00010001,
1533                             0xffffffff, t2, t4, t8);
1534   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.le.qb $t0, $t8, $t0", 0x7fff7fff,
1535                             0x7fff7fff, t0, t8, t0);
1536   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.le.qb $t4, $t6, $t1", 0x0000c420,
1537                             0x00000555, t4, t6, t1);
1538   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.le.qb $t0, $t1, $t2", 0x00000000,
1539                             0x00000000, t0, t1, t2);
1540   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.le.qb $t2, $t3, $t4", 0x80000000,
1541                             0x80000000, t2, t3, t4);
1542   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.le.qb $t4, $t1, $t5", 0xaaaaaaaa,
1543                             0x55555555, t4, t1, t5);
1544   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.le.qb $t6, $t7, $t3", 0x00000018,
1545                             0xffff2435, t6, t7, t3);
1546   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.le.qb $t5, $t3, $t2", 0xbabababa,
1547                             0xabababab, t5, t3, t2);
1548   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.le.qb $t2, $t4, $t8", 0xf0f0f0f0,
1549                             0xfc79b4d2, t2, t4, t8);
1550   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.le.qb $t0, $t8, $t0", 0xfbde3976,
1551                             0x00000000, t0, t8, t0);
1552   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.le.qb $t4, $t6, $t1", 0x23534870,
1553                             0x00354565, t4, t6, t1);
1554   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.le.qb $t0, $t1, $t2", 0x980b7cde,
1555                             0x00086755, t0, t1, t2);
1556   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.le.qb $t2, $t3, $t4", 0x00000018,
1557                             0x8f8f8f8f, t2, t3, t4);
1558   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.le.qb $t4, $t1, $t5", 0x92784656,
1559                             0xeeeeeeee, t4, t1, t5);
1560   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.le.qb $t6, $t7, $t3", 0xcacacaca,
1561                             0x1bdbdbdb, t6, t7, t3);
1562   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.le.qb $t5, $t3, $t2", 0xbacabaca,
1563                             0xdecadeca, t5, t3, t2);
1564   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.le.qb $t2, $t4, $t8", 0x12fadeb4,
1565                             0x93474bde, t2, t4, t8);
1566   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.le.qb $t0, $t8, $t0", 0x7c000790,
1567                             0xfc0007ff, t0, t8, t0);
1568   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.le.qb $t4, $t6, $t1", 0xffffffff,
1569                             0xffffffff, t4, t6, t1);
1570   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.le.qb $t0, $t1, $t2", 0xf2f4df1f,
1571                             0xcb4ab48f, t0, t1, t2);
1572   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.le.qb $t2, $t3, $t4", 0x435f909a,
1573                             0xaf8f7e18, t2, t3, t4);
1574   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.le.qb $t4, $t1, $t5", 0x2106ba5f,
1575                             0x87df4510, t4, t1, t5);
1576   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.le.qb $t6, $t7, $t3", 0x246a6376,
1577                             0xabf4e8e1, t6, t7, t3);
1578   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.le.qb $t5, $t3, $t2", 0x1046a1a3,
1579                             0xf4c0eeac, t5, t3, t2);
1580   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.le.qb $t2, $t4, $t8", 0x638ca515,
1581                             0x006a54f2, t2, t4, t8);
1582   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.le.qb $t0, $t8, $t0", 0xf63e7a9d,
1583                             0x79f74493, t0, t8, t0);
1584   TESTDSPINST_RD_RS_RT_DSPC("cmpgdu.le.qb $t4, $t6, $t1", 0xbd6845cd,
1585                             0x9c09e313, t4, t6, t1);
1586
1587   printf("-------- DPA.W.PH --------\n");
1588   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0xffffffff, 0x00000000, 0x3277ffff,
1589                               0x4387ffff);
1590   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0x00000000, 0x00000000, 0x00000004,
1591                               0x00000005);
1592   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0xffffffff, 0xffffffff, 0x80000000,
1593                               0x80000000);
1594   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0xeeeeffff, 0x00002345, 0x3277ffff,
1595                               0x4387ffff);
1596   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0xffffaaaa, 0x12340000, 0x3277ffff,
1597                               0x4387ffff);
1598   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0x00000000, 0x00000000, 0x80000000,
1599                               0x80000000);
1600   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0xffffffff, 0x80008000, 0x80000000,
1601                               0x80000000);
1602   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0x00000000, 0x00000000, 0x80000004,
1603                               0x00000005);
1604   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0xffffffff, 0xffffffff, 0x80008000,
1605                               0x4387ffff);
1606   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0xeeeeffff, 0x00002345, 0x80008000,
1607                               0x80008000);
1608   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0xffffaaaa, 0x12340000, 0x3277ffff,
1609                               0x4387ffff);
1610   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0x00000000, 0x00000000, 0x80008000,
1611                               0x80008000);
1612   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0xffffffff, 0x00000000, 0x3277ffff,
1613                               0x4387ffff);
1614   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0x80000000, 0xffff0000, 0x3277eeee,
1615                               0x80008000);
1616   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0xffffffff, 0x00000000, 0x80000000,
1617                               0x80000000);
1618   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0x0000ffff, 0xffff0000, 0x3277eeee,
1619                               0x4387ffff);
1620   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0xffffffff, 0x0000ffff, 0x80008000,
1621                               0x4387ffff);
1622   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0xffff1234, 0x00000000, 0xffff3277,
1623                               0x4387ffff);
1624   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0x5678ffff, 0x3277ffff, 0x80000000,
1625                               0x80000000);
1626   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0xffffffff, 0x00000000, 0xffff3277,
1627                               0xffff6543);
1628   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0xffffffff, 0xffffffff, 0xffffffff,
1629                               0xffffffff);
1630   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0xffffbbbb, 0xeeee0000, 0x80008000,
1631                               0x4387ffff);
1632   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0xffffffff, 0x34560000, 0x3277ffff,
1633                               0x4387cccc);
1634   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0xbbbbffff, 0x0000ffff, 0xeeeeffff,
1635                               0x4387ffff);
1636   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0x12345678, 0xffffffff, 0xffffffff,
1637                               0xffffffff);
1638   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0xffffbbbb, 0x12345678, 0x80008000,
1639                               0x4387ffff);
1640   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0xffffffff, 0x34560000, 0x87654321,
1641                               0x80008000);
1642   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0xbbbbffff, 0x0000ffff, 0xeeeeffff,
1643                               0x80000000);
1644   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0xffffaaaa, 0x12340000, 0x3277ffff,
1645                               0x4387ffff);
1646   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0x80000000, 0x00000000, 0x80008000,
1647                               0x80008000);
1648   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0xffffffff, 0x80008000, 0x3277ffff,
1649                               0x4387ffff);
1650   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0x0000ffff, 0xffff0000, 0x3277eeee,
1651                               0x4387ffff);
1652   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", -24, 120, -24, 120);
1653   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 140, 120, 140, 120);
1654   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0x00000004, 1073741824, 0x00000004,
1655                               1073741824);
1656   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", (1<<31)+1, (1<<31)+2, (1<<31)+1,
1657                               (1<<31)+2);
1658   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0x80002431, 0x4b908000, 0x80002431,
1659                               0x4b908000);
1660   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0x004d8000, 0x800027cc, 0x004d8000,
1661                               0x800027cc);
1662   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0xf6a3fa3c, 0x083b3571, 0xf6a3fa3c,
1663                               0x083b3571);
1664   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0xbf17fb9a, 0xb9743941, 0xbf17fb9a,
1665                               0xb9743941);
1666   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0x2c0bd024, 0xbce5f924, 0x2c0bd024,
1667                               0xbce5f924);
1668   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0x3e976e2e, 0xcc3c201c, 0x3e976e2e,
1669                               0xcc3c201c);
1670   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0xb4bfb365, 0x1ebaf88e, 0xb4bfb365,
1671                               0x1ebaf88e);
1672   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0x288593c0, 0x722d5e20, 0x288593c0,
1673                               0x722d5e20);
1674   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0x4d7ff5b4, 0xa1d6f791, 0x4d7ff5b4,
1675                               0xa1d6f791);
1676   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0x4557be13, 0x7b11bee7, 0x4557be13,
1677                               0x7b11bee7);
1678   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0xadcf5772, 0xa5631488, 0xadcf5772,
1679                               0xa5631488);
1680   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0x989a7235, 0xb10bcc65, 0x989a7235,
1681                               0xb10bcc65);
1682   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0x4d6f393a, 0x73f39fca, 0x4d6f393a,
1683                               0x73f39fca);
1684   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0x24a3291e, 0x5648e540, 0x24a3291e,
1685                               0x5648e540);
1686   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0xdd91eebf, 0xc54f79e6, 0xdd91eebf,
1687                               0xc54f79e6);
1688   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0xf7ce2ec6, 0x5fc92974, 0xf7ce2ec6,
1689                               0x5fc92974);
1690   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0xbc1083e8, 0x7e08184e, 0xbc1083e8,
1691                               0x7e08184e);
1692   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0xa617cc31, 0x71c8315f, 0xa617cc31,
1693                               0x71c8315f);
1694   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0xdfe1e8f0, 0x9493110e, 0xdfe1e8f0,
1695                               0x9493110e);
1696   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0x31458a23, 0xbb246228, 0x31458a23,
1697                               0xbb246228);
1698   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0x848af791, 0x339d8d88, 0x848af791,
1699                               0x339d8d88);
1700   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0xda3bacdc, 0x70974249, 0xda3bacdc,
1701                               0x70974249);
1702   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0x649d5cbd, 0x8a8d4e7d, 0x649d5cbd,
1703                               0x8a8d4e7d);
1704   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0xc0c8c881, 0xeb1b4335, 0xc0c8c881,
1705                               0xeb1b4335);
1706   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0x7dd81a20, 0x0cd6b508, 0x7dd81a20,
1707                               0x0cd6b508);
1708   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0x00000000, 0x6731e282, 0x00000000,
1709                               0x6731e282);
1710   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0xffffffff, 0xb6edf28f, 0xffffffff,
1711                               0xb6edf28f);
1712   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0x00000000, 0x4b4ec9ca, 0x00000000,
1713                               0x4b4ec9ca);
1714   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0xffffffff, 0xc1037fa4, 0xffffffff,
1715                               0xc1037fa4);
1716   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0xffffffff, 0xcb4ab48f, 0xffffffff,
1717                               0xcb4ab48f);
1718   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0xffffffff, 0xaf8f7e18, 0xffffffff,
1719                               0xaf8f7e18);
1720   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0xffffffff, 0x87df4510, 0xffffffff,
1721                               0x87df4510);
1722   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0xffffffff, 0xabf4e8e1, 0xffffffff,
1723                               0xabf4e8e1);
1724   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0xffffffff, 0xf4c0eeac, 0xffffffff,
1725                               0xf4c0eeac);
1726   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0x00000000, 0x006a54f2, 0x00000000,
1727                               0x006a54f2);
1728   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0x00000000, 0x79f74493, 0x00000000,
1729                               0x79f74493);
1730   TESTDSPINST_AC_RS_RT_NODSPC("dpa.w.ph", 0xffffffff, 0x9c09e313, 0xffffffff,
1731                               0x9c09e313);
1732
1733   printf("-------- DPAQX_S.W.PH -------- \n");
1734   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac3, $t4, $t5", "ac3", 0x00000000,
1735                             0x00000000, 0xffffffff, 0x80000000, t4, t5);
1736   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac0, $t0, $t1", "ac0", 0x00000004,
1737                             1073741824, 0x00000000, 0x00000006, t0, t1);
1738   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac1, $t2, $t3", "ac1", 0x80002435,
1739                             0x80003421, 0x00000000, 1073741824, t2, t3);
1740   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac3, $t6, $t7", "ac3", 0x76548000,
1741                             0x73468000, 0x00000000, 0x7fffffff, t6, t7);
1742   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac0, $t5, $t3", "ac0", 0x80000000,
1743                             0x80000000, 0x00000000, 0x00000001, t5, t3);
1744   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac1, $t2, $t4", "ac1", 0x00010001,
1745                             0xffffffff, 0xffffffff, 0xffffffff, t2, t4);
1746   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac2, $t0, $t8", "ac2", 0x7fff7fff,
1747                             0x7fff7fff, 0xffffffff, 0xffffffff, t0, t8);
1748   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac0, $t0, $t1", "ac0", 0x0000c420,
1749                             0x00000555, 0x00000000, 0x0fde3126, t0, t1);
1750   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac1, $t2, $t3", "ac1", 0x00000000,
1751                             0x00000000, 0x00000000, 0x55555555, t2, t3);
1752   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac2, $t4, $t1", "ac2", 0x80000000,
1753                             0x80000000, 0xffffffff, 0xffff2435, t4, t1);
1754   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac3, $t6, $t7", "ac3", 0xaaaaaaaa,
1755                             0x55555555, 0xffffffff, 0xabababab, t6, t7);
1756   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac0, $t5, $t3", "ac0", 0x00000018,
1757                             0xffff2435, 0xffffffff, 0xfc79b4d2, t5, t3);
1758   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac1, $t2, $t4", "ac1", 0xbabababa,
1759                             0xabababab, 0x00000000, 0x00000000, t2, t4);
1760   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac2, $t0, $t8", "ac2", 0xf0f0f0f0,
1761                             0xfc79b4d2, 0x00000000, 0x00000000, t0, t8);
1762   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac3, $t4, $t5", "ac3", 0xfbde3976,
1763                             0x00000000, 0x00000000, 0x12349876, t4, t5);
1764   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac0, $t0, $t1", "ac0", 0x23534870,
1765                             0x00354565, 0x00000000, 0x00354565, t0, t1);
1766   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac1, $t2, $t3", "ac1", 0x980b7cde,
1767                             0x00086755, 0x00000000, 0x00086755, t2, t3);
1768   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac2, $t4, $t1", "ac2", 0x00000018,
1769                             0x8f8f8f8f, 0xffffffff, 0x8f8f8f8f, t4, t1);
1770   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac3, $t6, $t7", "ac3", 0x92784656,
1771                             0xeeeeeeee, 0xffffffff, 0xeeeeeeee, t6, t7);
1772   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac0, $t5, $t3", "ac0", 0xcacacaca,
1773                             0x1bdbdbdb, 0x00000000, 0x1bdbdbdb, t5, t3);
1774   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac1, $t2, $t4", "ac1", 0xbacabaca,
1775                             0xdecadeca, 0xffffffff, 0xdecadeca, t2, t4);
1776   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac2, $t0, $t8", "ac2", 0x12fadeb4,
1777                             0x93474bde, 0xffffffff, 0x93474bde, t0, t8);
1778   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac3, $t4, $t5", "ac3", 0x7c000790,
1779                             0xfc0007ff, 0xffffffff, 0xfabfabfa, t4, t5);
1780   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac2, $t0, $t8", "ac2", 0xffffffff,
1781                             0xffffffff, 0x00000000, 0x083b3571, t0, t8);
1782   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac0, $t0, $t1", "ac0", 0x24a3291e,
1783                             0x5648e540, 0xffffffff, 0xb9743941, t0, t1);
1784   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac1, $t2, $t3", "ac1", 0xdd91eebf,
1785                             0xc54f79e6, 0xffffffff, 0xbce5f924, t2, t3);
1786   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac2, $t4, $t1", "ac2", 0xf7ce2ec6,
1787                             0x5fc92974, 0xffffffff, 0xcc3c201c, t4, t1);
1788   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac3, $t6, $t7", "ac3", 0xbc1083e8,
1789                             0x7e08184e, 0x00000000, 0x1ebaf88e, t6, t7);
1790   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac0, $t5, $t3", "ac0", 0xa617cc31,
1791                             0x71c8315f, 0x00000000, 0x722d5e20, t5, t3);
1792   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac1, $t2, $t4", "ac1", 0xdfe1e8f0,
1793                             0x9493110e, 0xffffffff, 0xa1d6f791, t2, t4);
1794   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac2, $t0, $t8", "ac2", 0x31458a23,
1795                             0xbb246228, 0x00000000, 0x7b11bee7, t0, t8);
1796   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac3, $t4, $t5", "ac3", 0x848af791,
1797                             0x339d8d88, 0xffffffff, 0xa5631488, t4, t5);
1798   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac0, $t0, $t1", "ac0", 0xda3bacdc,
1799                             0x70974249, 0xffffffff, 0xb10bcc65, t0, t1);
1800   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac1, $t2, $t3", "ac1", 0x649d5cbd,
1801                             0x8a8d4e7d, 0x00000000, 0x73f39fca, t2, t3);
1802   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac2, $t4, $t1", "ac2", 0xc0c8c881,
1803                             0xeb1b4335, 0x00000000, 0x5648e540, t4, t1);
1804   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac3, $t6, $t7", "ac3", 0x7dd81a20,
1805                             0x0cd6b508, 0xffffffff, 0xc54f79e6, t6, t7);
1806   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac0, $t5, $t3", "ac0", 0x7fff7fff,
1807                             0x6731e282, 0x00000000, 0x5fc92974, t5, t3);
1808   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac1, $t2, $t4", "ac1", 0x00000555,
1809                             0xb6edf28f, 0x00000000, 0x7e08184e, t2, t4);
1810   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac2, $t0, $t8", "ac2", 0x00000000,
1811                             0x4b4ec9ca, 0x00000000, 0x71c8315f, t0, t8);
1812   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac3, $t4, $t5", "ac3", 0x80000000,
1813                             0xc1037fa4, 0xffffffff, 0x9493110e, t4, t5);
1814   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac1, $t2, $t4", "ac1", 0x55555555,
1815                             0xcb4ab48f, 0xffffffff, 0xbb246228, t2, t4);
1816   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac2, $t0, $t8", "ac2", 0xffff8000,
1817                             0xaf8f8000, 0x00000000, 0x339d8d88, t0, t8);
1818   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac0, $t0, $t1", "ac0", 0xabababab,
1819                             0x87df4510, 0x00000000, 0x70974249, t0, t1);
1820   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac1, $t2, $t3", "ac1", 0xfc79b4d2,
1821                             0xabf4e8e1, 0xffffffff, 0x8a8d4e7d, t2, t3);
1822   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac2, $t4, $t1", "ac2", 0x00000000,
1823                             0xf4c0eeac, 0xffffffff, 0xeb1b4335, t4, t1);
1824   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac3, $t6, $t7", "ac3", 0x00354565,
1825                             0x006a54f2, 0x00000000, 0x0cd6b508, t6, t7);
1826   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac0, $t5, $t3", "ac0", 0x00086755,
1827                             0x79f74493, 0x00000000, 0x6731e282, t5, t3);
1828   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_s.w.ph $ac1, $t2, $t4", "ac1", 0xffff8000,
1829                             0x9c098000, 0xffffffff, 0xb6edf28f, t2, t4);
1830
1831   printf("-------- DPAQX_SA.W.PH -------- \n");
1832   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac3, $t4, $t5", "ac3", 0x00000000,
1833                             0x00000000, 0xffffffff, 0x80000000, t4, t5);
1834   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac0, $t0, $t1", "ac0", 0x00000004,
1835                             1073741824, 0x00000000, 0x00000006, t0, t1);
1836   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac1, $t2, $t3", "ac1", 0x80002435,
1837                             0x80003421, 0x00000000, 1073741824, t2, t3);
1838   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac3, $t6, $t7", "ac3", 0x76548000,
1839                             0x73468000, 0x00000000, 0x7fffffff, t6, t7);
1840   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac0, $t5, $t3", "ac0", 0x80000000,
1841                             0x80000000, 0x00000000, 0x00000001, t5, t3);
1842   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac1, $t2, $t4", "ac1", 0x00010001,
1843                             0xffffffff, 0xffffffff, 0xffffffff, t2, t4);
1844   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac2, $t0, $t8", "ac2", 0x7fff7fff,
1845                             0x7fff7fff, 0xffffffff, 0xffffffff, t0, t8);
1846   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac0, $t0, $t1", "ac0", 0x0000c420,
1847                             0x00000555, 0x00000000, 0x0fde3126, t0, t1);
1848   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac1, $t2, $t3", "ac1", 0x00000000,
1849                             0x00000000, 0x00000000, 0x55555555, t2, t3);
1850   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac2, $t4, $t1", "ac2", 0x80000000,
1851                             0x80000000, 0xffffffff, 0xffff2435, t4, t1);
1852   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac3, $t6, $t7", "ac3", 0xaaaaaaaa,
1853                             0x55555555, 0xffffffff, 0xabababab, t6, t7);
1854   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac0, $t5, $t3", "ac0", 0x00000018,
1855                             0xffff2435, 0xffffffff, 0xfc79b4d2, t5, t3);
1856   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac1, $t2, $t4", "ac1", 0xbabababa,
1857                             0xabababab, 0x00000000, 0x00000000, t2, t4);
1858   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac2, $t0, $t8", "ac2", 0xf0f0f0f0,
1859                             0xfc79b4d2, 0x00000000, 0x00000000, t0, t8);
1860   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac3, $t4, $t5", "ac3", 0xfbde3976,
1861                             0x00000000, 0x00000000, 0x12349876, t4, t5);
1862   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac0, $t0, $t1", "ac0", 0x23534870,
1863                             0x00354565, 0x00000000, 0x00354565, t0, t1);
1864   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac1, $t2, $t3", "ac1", 0x980b7cde,
1865                             0x00086755, 0x00000000, 0x00086755, t2, t3);
1866   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac2, $t4, $t1", "ac2", 0x00000018,
1867                             0x8f8f8f8f, 0xffffffff, 0x8f8f8f8f, t4, t1);
1868   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac3, $t6, $t7", "ac3", 0x92784656,
1869                             0xeeeeeeee, 0xffffffff, 0xeeeeeeee, t6, t7);
1870   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac0, $t5, $t3", "ac0", 0xcacacaca,
1871                             0x1bdbdbdb, 0x00000000, 0x1bdbdbdb, t5, t3);
1872   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac1, $t2, $t4", "ac1", 0xbacabaca,
1873                             0xdecadeca, 0xffffffff, 0xdecadeca, t2, t4);
1874   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac2, $t0, $t8", "ac2", 0x12fadeb4,
1875                             0x93474bde, 0xffffffff, 0x93474bde, t0, t8);
1876   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac3, $t4, $t5", "ac3", 0x7c000790,
1877                             0xfc0007ff, 0xffffffff, 0xfabfabfa, t4, t5);
1878   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac2, $t0, $t8", "ac2", 0xffffffff,
1879                             0xffffffff, 0x00000000, 0x083b3571, t0, t8);
1880   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac0, $t0, $t1", "ac0", 0x24a3291e,
1881                             0x5648e540, 0xffffffff, 0xb9743941, t0, t1);
1882   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac1, $t2, $t3", "ac1", 0xdd91eebf,
1883                             0xc54f79e6, 0xffffffff, 0xbce5f924, t2, t3);
1884   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac2, $t4, $t1", "ac2", 0xf7ce2ec6,
1885                             0x5fc92974, 0xffffffff, 0xcc3c201c, t4, t1);
1886   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac3, $t6, $t7", "ac3", 0xbc1083e8,
1887                             0x7e08184e, 0x00000000, 0x1ebaf88e, t6, t7);
1888   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac0, $t5, $t3", "ac0", 0xa617cc31,
1889                             0x71c8315f, 0x00000000, 0x722d5e20, t5, t3);
1890   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac1, $t2, $t4", "ac1", 0xdfe1e8f0,
1891                             0x9493110e, 0xffffffff, 0xa1d6f791, t2, t4);
1892   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac2, $t0, $t8", "ac2", 0x31458a23,
1893                             0xbb246228, 0x00000000, 0x7b11bee7, t0, t8);
1894   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac3, $t4, $t5", "ac3", 0x848af791,
1895                             0x339d8d88, 0xffffffff, 0xa5631488, t4, t5);
1896   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac0, $t0, $t1", "ac0", 0xda3bacdc,
1897                             0x70974249, 0xffffffff, 0xb10bcc65, t0, t1);
1898   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac1, $t2, $t3", "ac1", 0x649d5cbd,
1899                             0x8a8d4e7d, 0x00000000, 0x73f39fca, t2, t3);
1900   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac2, $t4, $t1", "ac2", 0xc0c8c881,
1901                             0xeb1b4335, 0x00000000, 0x5648e540, t4, t1);
1902   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac3, $t6, $t7", "ac3", 0x7dd81a20,
1903                             0x0cd6b508, 0xffffffff, 0xc54f79e6, t6, t7);
1904   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac0, $t5, $t3", "ac0", 0x7fff7fff,
1905                             0x6731e282, 0x00000000, 0x5fc92974, t5, t3);
1906   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac1, $t2, $t4", "ac1", 0x00000555,
1907                             0xb6edf28f, 0x00000000, 0x7e08184e, t2, t4);
1908   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac2, $t0, $t8", "ac2", 0x00000000,
1909                             0x4b4ec9ca, 0x00000000, 0x71c8315f, t0, t8);
1910   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac3, $t4, $t5", "ac3", 0x80000000,
1911                             0xc1037fa4, 0xffffffff, 0x9493110e, t4, t5);
1912   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac1, $t2, $t4", "ac1", 0x55555555,
1913                             0xcb4ab48f, 0xffffffff, 0xbb246228, t2, t4);
1914   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac2, $t0, $t8", "ac2", 0xffff8000,
1915                             0xaf8f8000, 0x00000000, 0x339d8d88, t0, t8);
1916   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac0, $t0, $t1", "ac0", 0xabababab,
1917                             0x87df4510, 0x00000000, 0x70974249, t0, t1);
1918   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac1, $t2, $t3", "ac1", 0xfc79b4d2,
1919                             0xabf4e8e1, 0xffffffff, 0x8a8d4e7d, t2, t3);
1920   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac2, $t4, $t1", "ac2", 0x00000000,
1921                             0xf4c0eeac, 0xffffffff, 0xeb1b4335, t4, t1);
1922   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac3, $t6, $t7", "ac3", 0x00354565,
1923                             0x006a54f2, 0x00000000, 0x0cd6b508, t6, t7);
1924   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac0, $t5, $t3", "ac0", 0x00086755,
1925                             0x79f74493, 0x00000000, 0x6731e282, t5, t3);
1926   TESTDSPINST_AC_RS_RT_DSPC("dpaqx_sa.w.ph $ac1, $t2, $t4", "ac1", 0xffff8000,
1927                             0x9c098000, 0xffffffff, 0xb6edf28f, t2, t4);
1928
1929   printf("-------- DPAX.W.PH --------\n");
1930   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0xffffffff, 0x00000000, 0x3277ffff,
1931                               0x4387ffff);
1932   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0x00000000, 0x00000000, 0x00000004,
1933                               0x00000005);
1934   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0xffffffff, 0xffffffff, 0x80000000,
1935                               0x80000000);
1936   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0xeeeeffff, 0x00002345, 0x3277ffff,
1937                               0x4387ffff);
1938   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0xffffaaaa, 0x12340000, 0x3277ffff,
1939                               0x4387ffff);
1940   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0x00000000, 0x00000000, 0x80000000,
1941                               0x80000000);
1942   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0xffffffff, 0x80008000, 0x80000000,
1943                               0x80000000);
1944   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0x00000000, 0x00000000, 0x80000004,
1945                               0x00000005);
1946   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0xffffffff, 0xffffffff, 0x80008000,
1947                               0x4387ffff);
1948   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0xeeeeffff, 0x00002345, 0x80008000,
1949                               0x80008000);
1950   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0xffffaaaa, 0x12340000, 0x3277ffff,
1951                               0x4387ffff);
1952   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0x00000000, 0x00000000, 0x80008000,
1953                               0x80008000);
1954   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0xffffffff, 0x00000000, 0x3277ffff,
1955                               0x4387ffff);
1956   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0x80000000, 0xffff0000, 0x3277eeee,
1957                               0x80008000);
1958   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0xffffffff, 0x00000000, 0x80000000,
1959                               0x80000000);
1960   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0x0000ffff, 0xffff0000, 0x3277eeee,
1961                               0x4387ffff);
1962   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0xffffffff, 0x0000ffff, 0x80008000,
1963                               0x4387ffff);
1964   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0xffff1234, 0x00000000, 0xffff3277,
1965                               0x4387ffff);
1966   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0x5678ffff, 0x3277ffff, 0x80000000,
1967                               0x80000000);
1968   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0xffffffff, 0x00000000, 0xffff3277,
1969                               0xffff6543);
1970   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0xffffffff, 0xffffffff, 0xffffffff,
1971                               0xffffffff);
1972   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0xffffbbbb, 0xeeee0000, 0x80008000,
1973                               0x4387ffff);
1974   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0xffffffff, 0x34560000, 0x3277ffff,
1975                               0x4387cccc);
1976   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0xbbbbffff, 0x0000ffff, 0xeeeeffff,
1977                               0x4387ffff);
1978   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0x12345678, 0xffffffff, 0xffffffff,
1979                               0xffffffff);
1980   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0xffffbbbb, 0x12345678, 0x80008000,
1981                               0x4387ffff);
1982   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0xffffffff, 0x34560000, 0x87654321,
1983                               0x80008000);
1984   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0xbbbbffff, 0x0000ffff, 0xeeeeffff,
1985                               0x80000000);
1986   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0xffffaaaa, 0x12340000, 0x3277ffff,
1987                               0x4387ffff);
1988   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0x80000000, 0x00000000, 0x80008000,
1989                               0x80008000);
1990   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0xffffffff, 0x80008000, 0x3277ffff,
1991                               0x4387ffff);
1992   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0x0000ffff, 0xffff0000, 0x3277eeee,
1993                               0x4387ffff);
1994   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", -24, 120, -24, 120);
1995   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 140, 120, 140, 120);
1996   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0x00000004, 1073741824, 0x00000004,
1997                               1073741824);
1998   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", (1<<31)+1, (1<<31)+2, (1<<31)+1,
1999                               (1<<31)+2);
2000   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0x80002431, 0x4b908000, 0x80002431,
2001                               0x4b908000);
2002   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0x004d8000, 0x800027cc, 0x004d8000,
2003                               0x800027cc);
2004   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0xf6a3fa3c, 0x083b3571, 0xf6a3fa3c,
2005                               0x083b3571);
2006   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0xbf17fb9a, 0xb9743941, 0xbf17fb9a,
2007                               0xb9743941);
2008   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0x2c0bd024, 0xbce5f924, 0x2c0bd024,
2009                               0xbce5f924);
2010   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0x3e976e2e, 0xcc3c201c, 0x3e976e2e,
2011                               0xcc3c201c);
2012   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0xb4bfb365, 0x1ebaf88e, 0xb4bfb365,
2013                               0x1ebaf88e);
2014   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0x288593c0, 0x722d5e20, 0x288593c0,
2015                               0x722d5e20);
2016   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0x4d7ff5b4, 0xa1d6f791, 0x4d7ff5b4,
2017                               0xa1d6f791);
2018   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0x4557be13, 0x7b11bee7, 0x4557be13,
2019                               0x7b11bee7);
2020   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0xadcf5772, 0xa5631488, 0xadcf5772,
2021                               0xa5631488);
2022   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0x989a7235, 0xb10bcc65, 0x989a7235,
2023                               0xb10bcc65);
2024   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0x4d6f393a, 0x73f39fca, 0x4d6f393a,
2025                               0x73f39fca);
2026   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0x24a3291e, 0x5648e540, 0x24a3291e,
2027                               0x5648e540);
2028   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0xdd91eebf, 0xc54f79e6, 0xdd91eebf,
2029                               0xc54f79e6);
2030   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0xf7ce2ec6, 0x5fc92974, 0xf7ce2ec6,
2031                               0x5fc92974);
2032   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0xbc1083e8, 0x7e08184e, 0xbc1083e8,
2033                               0x7e08184e);
2034   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0xa617cc31, 0x71c8315f, 0xa617cc31,
2035                               0x71c8315f);
2036   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0xdfe1e8f0, 0x9493110e, 0xdfe1e8f0,
2037                               0x9493110e);
2038   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0x31458a23, 0xbb246228, 0x31458a23,
2039                               0xbb246228);
2040   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0x848af791, 0x339d8d88, 0x848af791,
2041                               0x339d8d88);
2042   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0xda3bacdc, 0x70974249, 0xda3bacdc,
2043                               0x70974249);
2044   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0x649d5cbd, 0x8a8d4e7d, 0x649d5cbd,
2045                               0x8a8d4e7d);
2046   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0xc0c8c881, 0xeb1b4335, 0xc0c8c881,
2047                               0xeb1b4335);
2048   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0x7dd81a20, 0x0cd6b508, 0x7dd81a20,
2049                               0x0cd6b508);
2050   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0x00000000, 0x6731e282, 0x00000000,
2051                               0x6731e282);
2052   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0xffffffff, 0xb6edf28f, 0xffffffff,
2053                               0xb6edf28f);
2054   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0x00000000, 0x4b4ec9ca, 0x00000000,
2055                               0x4b4ec9ca);
2056   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0xffffffff, 0xc1037fa4, 0xffffffff,
2057                               0xc1037fa4);
2058   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0xffffffff, 0xcb4ab48f, 0xffffffff,
2059                               0xcb4ab48f);
2060   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0xffffffff, 0xaf8f7e18, 0xffffffff,
2061                               0xaf8f7e18);
2062   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0xffffffff, 0x87df4510, 0xffffffff,
2063                               0x87df4510);
2064   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0xffffffff, 0xabf4e8e1, 0xffffffff,
2065                               0xabf4e8e1);
2066   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0xffffffff, 0xf4c0eeac, 0xffffffff,
2067                               0xf4c0eeac);
2068   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0x00000000, 0x006a54f2, 0x00000000,
2069                               0x006a54f2);
2070   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0x00000000, 0x79f74493, 0x00000000,
2071                               0x79f74493);
2072   TESTDSPINST_AC_RS_RT_NODSPC("dpax.w.ph", 0xffffffff, 0x9c09e313, 0xffffffff,
2073                               0x9c09e313);
2074
2075   printf("-------- DPS.W.PH --------\n");
2076   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0xffffffff, 0x00000000, 0x3277ffff,
2077                               0x4387ffff);
2078   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0x00000000, 0x00000000, 0x00000004,
2079                               0x00000005);
2080   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0xffffffff, 0xffffffff, 0x80000000,
2081                               0x80000000);
2082   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0xeeeeffff, 0x00002345, 0x3277ffff,
2083                               0x4387ffff);
2084   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0xffffaaaa, 0x12340000, 0x3277ffff,
2085                               0x4387ffff);
2086   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0x00000000, 0x00000000, 0x80000000,
2087                               0x80000000);
2088   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0xffffffff, 0x80008000, 0x80000000,
2089                               0x80000000);
2090   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0x00000000, 0x00000000, 0x80000004,
2091                               0x00000005);
2092   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0xffffffff, 0xffffffff, 0x80008000,
2093                               0x4387ffff);
2094   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0xeeeeffff, 0x00002345, 0x80008000,
2095                               0x80008000);
2096   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0xffffaaaa, 0x12340000, 0x3277ffff,
2097                               0x4387ffff);
2098   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0x00000000, 0x00000000, 0x80008000,
2099                               0x80008000);
2100   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0xffffffff, 0x00000000, 0x3277ffff,
2101                               0x4387ffff);
2102   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0x80000000, 0xffff0000, 0x3277eeee,
2103                               0x80008000);
2104   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0xffffffff, 0x00000000, 0x80000000,
2105                               0x80000000);
2106   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0x0000ffff, 0xffff0000, 0x3277eeee,
2107                               0x4387ffff);
2108   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0xffffffff, 0x0000ffff, 0x80008000,
2109                               0x4387ffff);
2110   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0xffff1234, 0x00000000, 0xffff3277,
2111                               0x4387ffff);
2112   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0x5678ffff, 0x3277ffff, 0x80000000,
2113                               0x80000000);
2114   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0xffffffff, 0x00000000, 0xffff3277,
2115                               0xffff6543);
2116   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0xffffffff, 0xffffffff, 0xffffffff,
2117                               0xffffffff);
2118   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0xffffbbbb, 0xeeee0000, 0x80008000,
2119                               0x4387ffff);
2120   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0xffffffff, 0x34560000, 0x3277ffff,
2121                               0x4387cccc);
2122   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0xbbbbffff, 0x0000ffff, 0xeeeeffff,
2123                               0x4387ffff);
2124   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0x12345678, 0xffffffff, 0xffffffff,
2125                               0xffffffff);
2126   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0xffffbbbb, 0x12345678, 0x80008000,
2127                               0x4387ffff);
2128   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0xffffffff, 0x34560000, 0x87654321,
2129                               0x80008000);
2130   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0xbbbbffff, 0x0000ffff, 0xeeeeffff,
2131                               0x80000000);
2132   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0xffffaaaa, 0x12340000, 0x3277ffff,
2133                               0x4387ffff);
2134   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0x80000000, 0x00000000, 0x80008000,
2135                               0x80008000);
2136   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0xffffffff, 0x80008000, 0x3277ffff,
2137                               0x4387ffff);
2138   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0x0000ffff, 0xffff0000, 0x3277eeee,
2139                               0x4387ffff);
2140   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", -24, 120, -24, 120);
2141   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 140, 120, 140, 120);
2142   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0x00000004, 1073741824, 0x00000004,
2143                               1073741824);
2144   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", (1<<31)+1, (1<<31)+2, (1<<31)+1,
2145                               (1<<31)+2);
2146   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0x80002431, 0x4b908000, 0x80002431,
2147                               0x4b908000);
2148   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0x004d8000, 0x800027cc, 0x004d8000,
2149                               0x800027cc);
2150   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0xf6a3fa3c, 0x083b3571, 0xf6a3fa3c,
2151                               0x083b3571);
2152   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0xbf17fb9a, 0xb9743941, 0xbf17fb9a,
2153                               0xb9743941);
2154   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0x2c0bd024, 0xbce5f924, 0x2c0bd024,
2155                               0xbce5f924);
2156   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0x3e976e2e, 0xcc3c201c, 0x3e976e2e,
2157                               0xcc3c201c);
2158   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0xb4bfb365, 0x1ebaf88e, 0xb4bfb365,
2159                               0x1ebaf88e);
2160   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0x288593c0, 0x722d5e20, 0x288593c0,
2161                               0x722d5e20);
2162   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0x4d7ff5b4, 0xa1d6f791, 0x4d7ff5b4,
2163                               0xa1d6f791);
2164   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0x4557be13, 0x7b11bee7, 0x4557be13,
2165                               0x7b11bee7);
2166   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0xadcf5772, 0xa5631488, 0xadcf5772,
2167                               0xa5631488);
2168   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0x989a7235, 0xb10bcc65, 0x989a7235,
2169                               0xb10bcc65);
2170   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0x4d6f393a, 0x73f39fca, 0x4d6f393a,
2171                               0x73f39fca);
2172   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0x24a3291e, 0x5648e540, 0x24a3291e,
2173                               0x5648e540);
2174   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0xdd91eebf, 0xc54f79e6, 0xdd91eebf,
2175                               0xc54f79e6);
2176   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0xf7ce2ec6, 0x5fc92974, 0xf7ce2ec6,
2177                               0x5fc92974);
2178   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0xbc1083e8, 0x7e08184e, 0xbc1083e8,
2179                               0x7e08184e);
2180   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0xa617cc31, 0x71c8315f, 0xa617cc31,
2181                               0x71c8315f);
2182   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0xdfe1e8f0, 0x9493110e, 0xdfe1e8f0,
2183                               0x9493110e);
2184   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0x31458a23, 0xbb246228, 0x31458a23,
2185                               0xbb246228);
2186   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0x848af791, 0x339d8d88, 0x848af791,
2187                               0x339d8d88);
2188   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0xda3bacdc, 0x70974249, 0xda3bacdc,
2189                               0x70974249);
2190   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0x649d5cbd, 0x8a8d4e7d, 0x649d5cbd,
2191                               0x8a8d4e7d);
2192   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0xc0c8c881, 0xeb1b4335, 0xc0c8c881,
2193                               0xeb1b4335);
2194   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0x7dd81a20, 0x0cd6b508, 0x7dd81a20,
2195                               0x0cd6b508);
2196   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0x00000000, 0x6731e282, 0x00000000,
2197                               0x6731e282);
2198   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0xffffffff, 0xb6edf28f, 0xffffffff,
2199                               0xb6edf28f);
2200   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0x00000000, 0x4b4ec9ca, 0x00000000,
2201                               0x4b4ec9ca);
2202   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0xffffffff, 0xc1037fa4, 0xffffffff,
2203                               0xc1037fa4);
2204   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0xffffffff, 0xcb4ab48f, 0xffffffff,
2205                               0xcb4ab48f);
2206   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0xffffffff, 0xaf8f7e18, 0xffffffff,
2207                               0xaf8f7e18);
2208   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0xffffffff, 0x87df4510, 0xffffffff,
2209                               0x87df4510);
2210   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0xffffffff, 0xabf4e8e1, 0xffffffff,
2211                               0xabf4e8e1);
2212   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0xffffffff, 0xf4c0eeac, 0xffffffff,
2213                               0xf4c0eeac);
2214   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0x00000000, 0x006a54f2, 0x00000000,
2215                               0x006a54f2);
2216   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0x00000000, 0x79f74493, 0x00000000,
2217                               0x79f74493);
2218   TESTDSPINST_AC_RS_RT_NODSPC("dps.w.ph", 0xffffffff, 0x9c09e313, 0xffffffff,
2219                               0x9c09e313);
2220
2221   printf("-------- DPSQX_S.W.PH -------- \n");
2222   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac3, $t4, $t5", "ac3", 0x00000000,
2223                             0x00000000, 0xffffffff, 0x80000000, t4, t5);
2224   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac0, $t0, $t1", "ac0", 0x00000004,
2225                             1073741824, 0x00000000, 0x00000006, t0, t1);
2226   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac1, $t2, $t3", "ac1", 0x80002435,
2227                             0x80003421, 0x00000000, 1073741824, t2, t3);
2228   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac3, $t6, $t7", "ac3", 0x76548000,
2229                             0x73468000, 0x00000000, 0x7fffffff, t6, t7);
2230   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac0, $t5, $t3", "ac0", 0x80000000,
2231                             0x80000000, 0x00000000, 0x00000001, t5, t3);
2232   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac1, $t2, $t4", "ac1", 0x00010001,
2233                             0xffffffff, 0xffffffff, 0xffffffff, t2, t4);
2234   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac2, $t0, $t8", "ac2", 0x7fff7fff,
2235                             0x7fff7fff, 0xffffffff, 0xffffffff, t0, t8);
2236   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac0, $t0, $t1", "ac0", 0x0000c420,
2237                             0x00000555, 0x00000000, 0x0fde3126, t0, t1);
2238   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac1, $t2, $t3", "ac1", 0x00000000,
2239                             0x00000000, 0x00000000, 0x55555555, t2, t3);
2240   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac2, $t4, $t1", "ac2", 0x80000000,
2241                             0x80000000, 0xffffffff, 0xffff2435, t4, t1);
2242   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac3, $t6, $t7", "ac3", 0xaaaaaaaa,
2243                             0x55555555, 0xffffffff, 0xabababab, t6, t7);
2244   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac0, $t5, $t3", "ac0", 0x00000018,
2245                             0xffff2435, 0xffffffff, 0xfc79b4d2, t5, t3);
2246   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac1, $t2, $t4", "ac1", 0xbabababa,
2247                             0xabababab, 0x00000000, 0x00000000, t2, t4);
2248   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac2, $t0, $t8", "ac2", 0xf0f0f0f0,
2249                             0xfc79b4d2, 0x00000000, 0x00000000, t0, t8);
2250   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac3, $t4, $t5", "ac3", 0xfbde3976,
2251                             0x00000000, 0x00000000, 0x12349876, t4, t5);
2252   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac0, $t0, $t1", "ac0", 0x23534870,
2253                             0x00354565, 0x00000000, 0x00354565, t0, t1);
2254   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac1, $t2, $t3", "ac1", 0x980b7cde,
2255                             0x00086755, 0x00000000, 0x00086755, t2, t3);
2256   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac2, $t4, $t1", "ac2", 0x00000018,
2257                             0x8f8f8f8f, 0xffffffff, 0x8f8f8f8f, t4, t1);
2258   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac3, $t6, $t7", "ac3", 0x92784656,
2259                             0xeeeeeeee, 0xffffffff, 0xeeeeeeee, t6, t7);
2260   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac0, $t5, $t3", "ac0", 0xcacacaca,
2261                             0x1bdbdbdb, 0x00000000, 0x1bdbdbdb, t5, t3);
2262   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac1, $t2, $t4", "ac1", 0xbacabaca,
2263                             0xdecadeca, 0xffffffff, 0xdecadeca, t2, t4);
2264   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac2, $t0, $t8", "ac2", 0x12fadeb4,
2265                             0x93474bde, 0xffffffff, 0x93474bde, t0, t8);
2266   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac3, $t4, $t5", "ac3", 0x7c000790,
2267                             0xfc0007ff, 0xffffffff, 0xfabfabfa, t4, t5);
2268   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac2, $t0, $t8", "ac2", 0xffffffff,
2269                             0xffffffff, 0x00000000, 0x083b3571, t0, t8);
2270   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac0, $t0, $t1", "ac0", 0x24a3291e,
2271                             0x5648e540, 0xffffffff, 0xb9743941, t0, t1);
2272   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac1, $t2, $t3", "ac1", 0xdd91eebf,
2273                             0xc54f79e6, 0xffffffff, 0xbce5f924, t2, t3);
2274   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac2, $t4, $t1", "ac2", 0xf7ce2ec6,
2275                             0x5fc92974, 0xffffffff, 0xcc3c201c, t4, t1);
2276   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac3, $t6, $t7", "ac3", 0xbc1083e8,
2277                             0x7e08184e, 0x00000000, 0x1ebaf88e, t6, t7);
2278   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac0, $t5, $t3", "ac0", 0xa617cc31,
2279                             0x71c8315f, 0x00000000, 0x722d5e20, t5, t3);
2280   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac1, $t2, $t4", "ac1", 0xdfe1e8f0,
2281                             0x9493110e, 0xffffffff, 0xa1d6f791, t2, t4);
2282   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac2, $t0, $t8", "ac2", 0x31458a23,
2283                             0xbb246228, 0x00000000, 0x7b11bee7, t0, t8);
2284   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac3, $t4, $t5", "ac3", 0x848af791,
2285                             0x339d8d88, 0xffffffff, 0xa5631488, t4, t5);
2286   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac0, $t0, $t1", "ac0", 0xda3bacdc,
2287                             0x70974249, 0xffffffff, 0xb10bcc65, t0, t1);
2288   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac1, $t2, $t3", "ac1", 0x649d5cbd,
2289                             0x8a8d4e7d, 0x00000000, 0x73f39fca, t2, t3);
2290   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac2, $t4, $t1", "ac2", 0xc0c8c881,
2291                             0xeb1b4335, 0x00000000, 0x5648e540, t4, t1);
2292   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac3, $t6, $t7", "ac3", 0x7dd81a20,
2293                             0x0cd6b508, 0xffffffff, 0xc54f79e6, t6, t7);
2294   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac0, $t5, $t3", "ac0", 0x7fff7fff,
2295                             0x6731e282, 0x00000000, 0x5fc92974, t5, t3);
2296   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac1, $t2, $t4", "ac1", 0x00000555,
2297                             0xb6edf28f, 0x00000000, 0x7e08184e, t2, t4);
2298   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac2, $t0, $t8", "ac2", 0x00000000,
2299                             0x4b4ec9ca, 0x00000000, 0x71c8315f, t0, t8);
2300   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac3, $t4, $t5", "ac3", 0x80000000,
2301                             0xc1037fa4, 0xffffffff, 0x9493110e, t4, t5);
2302   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac1, $t2, $t4", "ac1", 0x55555555,
2303                             0xcb4ab48f, 0xffffffff, 0xbb246228, t2, t4);
2304   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac2, $t0, $t8", "ac2", 0xffff8000,
2305                             0xaf8f8000, 0x00000000, 0x339d8d88, t0, t8);
2306   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac0, $t0, $t1", "ac0", 0xabababab,
2307                             0x87df4510, 0x00000000, 0x70974249, t0, t1);
2308   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac1, $t2, $t3", "ac1", 0xfc79b4d2,
2309                             0xabf4e8e1, 0xffffffff, 0x8a8d4e7d, t2, t3);
2310   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac2, $t4, $t1", "ac2", 0x00000000,
2311                             0xf4c0eeac, 0xffffffff, 0xeb1b4335, t4, t1);
2312   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac3, $t6, $t7", "ac3", 0x00354565,
2313                             0x006a54f2, 0x00000000, 0x0cd6b508, t6, t7);
2314   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac0, $t5, $t3", "ac0", 0x00086755,
2315                             0x79f74493, 0x00000000, 0x6731e282, t5, t3);
2316   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_s.w.ph $ac1, $t2, $t4", "ac1", 0xffff8000,
2317                             0x9c098000, 0xffffffff, 0xb6edf28f, t2, t4);
2318
2319   printf("-------- DPSQX_SA.W.PH -------- \n");
2320   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac3, $t4, $t5", "ac3", 0x00000000,
2321                             0x00000000, 0xffffffff, 0x80000000, t4, t5);
2322   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac0, $t0, $t1", "ac0", 0x00000004,
2323                             1073741824, 0x00000000, 0x00000006, t0, t1);
2324   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac1, $t2, $t3", "ac1", 0x80002435,
2325                             0x80003421, 0x00000000, 1073741824, t2, t3);
2326   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac3, $t6, $t7", "ac3", 0x76548000,
2327                             0x73468000, 0x00000000, 0x7fffffff, t6, t7);
2328   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac0, $t5, $t3", "ac0", 0x80000000,
2329                             0x80000000, 0x00000000, 0x00000001, t5, t3);
2330   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac1, $t2, $t4", "ac1", 0x00010001,
2331                             0xcfffefff, 0xffffffff, 0xffffffff, t2, t4);
2332   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac2, $t0, $t8", "ac2", 0x7fff7fff,
2333                             0x7fff7fff, 0xffffffff, 0xffffffff, t0, t8);
2334   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac0, $t0, $t1", "ac0", 0x0000c420,
2335                             0x00000555, 0x00000000, 0x0fde3126, t0, t1);
2336   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac1, $t2, $t3", "ac1", 0x00000000,
2337                             0x00000000, 0x00000000, 0x55555555, t2, t3);
2338   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac2, $t4, $t1", "ac2", 0x80000000,
2339                             0x80000000, 0xffffffff, 0xffff2435, t4, t1);
2340   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac3, $t6, $t7", "ac3", 0xaaaaaaaa,
2341                             0x55555555, 0xffffffff, 0xabababab, t6, t7);
2342   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac0, $t5, $t3", "ac0", 0x00000018,
2343                             0xfbff2435, 0xffffffff, 0xfc79b4d2, t5, t3);
2344   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac1, $t2, $t4", "ac1", 0xbabababa,
2345                             0xabababab, 0x00000000, 0x00000000, t2, t4);
2346   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac2, $t0, $t8", "ac2", 0xf0f0f0f0,
2347                             0xfc79b4d2, 0x00000000, 0x00000000, t0, t8);
2348   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac3, $t4, $t5", "ac3", 0xfbde3976,
2349                             0x00000000, 0x00000000, 0x12349876, t4, t5);
2350   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac0, $t0, $t1", "ac0", 0x23534870,
2351                             0x00354565, 0x00000000, 0x00354565, t0, t1);
2352   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac1, $t2, $t3", "ac1", 0x980b7cde,
2353                             0x00086755, 0x00000000, 0x00086755, t2, t3);
2354   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac2, $t4, $t1", "ac2", 0x00000018,
2355                             0x8f8f8f8f, 0xffffffff, 0x8f8f8f8f, t4, t1);
2356   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac3, $t6, $t7", "ac3", 0x92784656,
2357                             0xeeeeeeee, 0xffffffff, 0xeeeeeeee, t6, t7);
2358   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac0, $t5, $t3", "ac0", 0xcacacaca,
2359                             0x1bdbdbdb, 0x00000000, 0x1bdbdbdb, t5, t3);
2360   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac1, $t2, $t4", "ac1", 0xbacabaca,
2361                             0xdecadeca, 0xffffffff, 0xdecadeca, t2, t4);
2362   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac2, $t0, $t8", "ac2", 0x12fadeb4,
2363                             0x93474bde, 0xffffffff, 0x93474bde, t0, t8);
2364   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac3, $t4, $t5", "ac3", 0x7c000790,
2365                             0xfc0007ff, 0xffffffff, 0xfabfabfa, t4, t5);
2366   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac2, $t0, $t8", "ac2", 0xbfff54ff,
2367                             0xfb32ff01, 0x00000000, 0x083b3571, t0, t8);
2368   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac0, $t0, $t1", "ac0", 0x24a3291e,
2369                             0x5648e540, 0xffffffff, 0xb9743941, t0, t1);
2370   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac1, $t2, $t3", "ac1", 0xdd91eebf,
2371                             0xc54f79e6, 0xffffffff, 0xbce5f924, t2, t3);
2372   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac2, $t4, $t1", "ac2", 0xf7ce2ec6,
2373                             0x5fc92974, 0xffffffff, 0xcc3c201c, t4, t1);
2374   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac3, $t6, $t7", "ac3", 0xbc1083e8,
2375                             0x7e08184e, 0x00000000, 0x1ebaf88e, t6, t7);
2376   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac0, $t5, $t3", "ac0", 0xa617cc31,
2377                             0x71c8315f, 0x00000000, 0x722d5e20, t5, t3);
2378   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac1, $t2, $t4", "ac1", 0xdfe1e8f0,
2379                             0x9493110e, 0xffffffff, 0xa1d6f791, t2, t4);
2380   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac2, $t0, $t8", "ac2", 0x31458a23,
2381                             0xbb246228, 0x00000000, 0x7b11bee7, t0, t8);
2382   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac3, $t4, $t5", "ac3", 0x848af791,
2383                             0x339d8d88, 0xffffffff, 0xa5631488, t4, t5);
2384   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac0, $t0, $t1", "ac0", 0xda3bacdc,
2385                             0x70974249, 0xffffffff, 0xb10bcc65, t0, t1);
2386   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac1, $t2, $t3", "ac1", 0x649d5cbd,
2387                             0x8a8d4e7d, 0x00000000, 0x73f39fca, t2, t3);
2388   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac2, $t4, $t1", "ac2", 0xc0c8c881,
2389                             0xeb1b4335, 0x00000000, 0x5648e540, t4, t1);
2390   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac3, $t6, $t7", "ac3", 0x7dd81a20,
2391                             0x0cd6b508, 0xffffffff, 0xc54f79e6, t6, t7);
2392   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac0, $t5, $t3", "ac0", 0x7fff7fff,
2393                             0x6731e282, 0x00000000, 0x5fc92974, t5, t3);
2394   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac1, $t2, $t4", "ac1", 0x00000555,
2395                             0xb6edf28f, 0x00000000, 0x7e08184e, t2, t4);
2396   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac2, $t0, $t8", "ac2", 0x00000000,
2397                             0x4b4ec9ca, 0x00000000, 0x71c8315f, t0, t8);
2398   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac3, $t4, $t5", "ac3", 0x80000000,
2399                             0xc1037fa4, 0xffffffff, 0x9493110e, t4, t5);
2400   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac1, $t2, $t4", "ac1", 0x55555555,
2401                             0xcb4ab48f, 0xffffffff, 0xbb246228, t2, t4);
2402   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac2, $t0, $t8", "ac2", 0x0fff8000,
2403                             0xaf8f8000, 0x00000000, 0x339d8d88, t0, t8);
2404   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac0, $t0, $t1", "ac0", 0xabababab,
2405                             0x87df4510, 0x00000000, 0x70974249, t0, t1);
2406   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac1, $t2, $t3", "ac1", 0xfc79b4d2,
2407                             0xabf4e8e1, 0xffffffff, 0x8a8d4e7d, t2, t3);
2408   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac2, $t4, $t1", "ac2", 0x00000000,
2409                             0xf4c0eeac, 0xffffffff, 0xeb1b4335, t4, t1);
2410   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac3, $t6, $t7", "ac3", 0x00354565,
2411                             0x006a54f2, 0x00000000, 0x0cd6b508, t6, t7);
2412   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac0, $t5, $t3", "ac0", 0x00086755,
2413                             0x79f74493, 0x00000000, 0x6731e282, t5, t3);
2414   TESTDSPINST_AC_RS_RT_DSPC("dpsqx_sa.w.ph $ac1, $t2, $t4", "ac1", 0x98548000,
2415                             0x9c098000, 0xffffffff, 0xb6edf28f, t2, t4);
2416
2417   printf("-------- DPSX.W.PH --------\n");
2418   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0xffffffff, 0x00000000, 0x3277ffff,
2419                               0x4387ffff);
2420   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0x00000000, 0x00000000, 0x00000004,
2421                               0x00000005);
2422   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0xffffffff, 0xffffffff, 0x80000000,
2423                               0x80000000);
2424   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0xeeeeffff, 0x00002345, 0x3277ffff,
2425                               0x4387ffff);
2426   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0xffffaaaa, 0x12340000, 0x3277ffff,
2427                               0x4387ffff);
2428   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0x00000000, 0x00000000, 0x80000000,
2429                               0x80000000);
2430   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0xffffffff, 0x80008000, 0x80000000,
2431                               0x80000000);
2432   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0x00000000, 0x00000000, 0x80000004,
2433                               0x00000005);
2434   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0xffffffff, 0xffffffff, 0x80008000,
2435                               0x4387ffff);
2436   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0xeeeeffff, 0x00002345, 0x80008000,
2437                               0x80008000);
2438   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0xffffaaaa, 0x12340000, 0x3277ffff,
2439                               0x4387ffff);
2440   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0x00000000, 0x00000000, 0x80008000,
2441                               0x80008000);
2442   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0xffffffff, 0x00000000, 0x3277ffff,
2443                               0x4387ffff);
2444   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0x80000000, 0xffff0000, 0x3277eeee,
2445                               0x80008000);
2446   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0xffffffff, 0x00000000, 0x80000000,
2447                               0x80000000);
2448   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0x0000ffff, 0xffff0000, 0x3277eeee,
2449                               0x4387ffff);
2450   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0xffffffff, 0x0000ffff, 0x80008000,
2451                               0x4387ffff);
2452   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0xffff1234, 0x00000000, 0xffff3277,
2453                               0x4387ffff);
2454   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0x5678ffff, 0x3277ffff, 0x80000000,
2455                               0x80000000);
2456   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0xffffffff, 0x00000000, 0xffff3277,
2457                               0xffff6543);
2458   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0xffffffff, 0xffffffff, 0xffffffff,
2459                               0xffffffff);
2460   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0xffffbbbb, 0xeeee0000, 0x80008000,
2461                               0x4387ffff);
2462   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0xffffffff, 0x34560000, 0x3277ffff,
2463                               0x4387cccc);
2464   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0xbbbbffff, 0x0000ffff, 0xeeeeffff,
2465                               0x4387ffff);
2466   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0x12345678, 0xffffffff, 0xffffffff,
2467                               0xffffffff);
2468   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0xffffbbbb, 0x12345678, 0x80008000,
2469                               0x4387ffff);
2470   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0xffffffff, 0x34560000, 0x87654321,
2471                               0x80008000);
2472   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0xbbbbffff, 0x0000ffff, 0xeeeeffff,
2473                               0x80000000);
2474   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0xffffaaaa, 0x12340000, 0x3277ffff,
2475                               0x4387ffff);
2476   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0x80000000, 0x00000000, 0x80008000,
2477                               0x80008000);
2478   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0xffffffff, 0x80008000, 0x3277ffff,
2479                               0x4387ffff);
2480   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0x0000ffff, 0xffff0000, 0x3277eeee,
2481                               0x4387ffff);
2482   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", -24, 120, -24, 120);
2483   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 140, 120, 140, 120);
2484   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0x00000004, 1073741824, 0x00000004,
2485                               1073741824);
2486   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", (1<<31)+1, (1<<31)+2, (1<<31)+1,
2487                               (1<<31)+2);
2488   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0x80002431, 0x4b908000, 0x80002431,
2489                               0x4b908000);
2490   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0x004d8000, 0x800027cc, 0x004d8000,
2491                               0x800027cc);
2492   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0xf6a3fa3c, 0x083b3571, 0xf6a3fa3c,
2493                               0x083b3571);
2494   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0xbf17fb9a, 0xb9743941, 0xbf17fb9a,
2495                               0xb9743941);
2496   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0x2c0bd024, 0xbce5f924, 0x2c0bd024,
2497                               0xbce5f924);
2498   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0x3e976e2e, 0xcc3c201c, 0x3e976e2e,
2499                               0xcc3c201c);
2500   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0xb4bfb365, 0x1ebaf88e, 0xb4bfb365,
2501                               0x1ebaf88e);
2502   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0x288593c0, 0x722d5e20, 0x288593c0,
2503                               0x722d5e20);
2504   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0x4d7ff5b4, 0xa1d6f791, 0x4d7ff5b4,
2505                               0xa1d6f791);
2506   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0x4557be13, 0x7b11bee7, 0x4557be13,
2507                               0x7b11bee7);
2508   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0xadcf5772, 0xa5631488, 0xadcf5772,
2509                               0xa5631488);
2510   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0x989a7235, 0xb10bcc65, 0x989a7235,
2511                               0xb10bcc65);
2512   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0x4d6f393a, 0x73f39fca, 0x4d6f393a,
2513                               0x73f39fca);
2514   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0x24a3291e, 0x5648e540, 0x24a3291e,
2515                               0x5648e540);
2516   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0xdd91eebf, 0xc54f79e6, 0xdd91eebf,
2517                               0xc54f79e6);
2518   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0xf7ce2ec6, 0x5fc92974, 0xf7ce2ec6,
2519                               0x5fc92974);
2520   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0xbc1083e8, 0x7e08184e, 0xbc1083e8,
2521                               0x7e08184e);
2522   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0xa617cc31, 0x71c8315f, 0xa617cc31,
2523                               0x71c8315f);
2524   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0xdfe1e8f0, 0x9493110e, 0xdfe1e8f0,
2525                               0x9493110e);
2526   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0x31458a23, 0xbb246228, 0x31458a23,
2527                               0xbb246228);
2528   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0x848af791, 0x339d8d88, 0x848af791,
2529                               0x339d8d88);
2530   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0xda3bacdc, 0x70974249, 0xda3bacdc,
2531                               0x70974249);
2532   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0x649d5cbd, 0x8a8d4e7d, 0x649d5cbd,
2533                               0x8a8d4e7d);
2534   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0xc0c8c881, 0xeb1b4335, 0xc0c8c881,
2535                               0xeb1b4335);
2536   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0x7dd81a20, 0x0cd6b508, 0x7dd81a20,
2537                               0x0cd6b508);
2538   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0x00000000, 0x6731e282, 0x00000000,
2539                               0x6731e282);
2540   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0xffffffff, 0xb6edf28f, 0xffffffff,
2541                               0xb6edf28f);
2542   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0x00000000, 0x4b4ec9ca, 0x00000000,
2543                               0x4b4ec9ca);
2544   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0xffffffff, 0xc1037fa4, 0xffffffff,
2545                               0xc1037fa4);
2546   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0xffffffff, 0xcb4ab48f, 0xffffffff,
2547                               0xcb4ab48f);
2548   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0xffffffff, 0xaf8f7e18, 0xffffffff,
2549                               0xaf8f7e18);
2550   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0xffffffff, 0x87df4510, 0xffffffff,
2551                               0x87df4510);
2552   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0xffffffff, 0xabf4e8e1, 0xffffffff,
2553                               0xabf4e8e1);
2554   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0xffffffff, 0xf4c0eeac, 0xffffffff,
2555                               0xf4c0eeac);
2556   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0x00000000, 0x006a54f2, 0x00000000,
2557                               0x006a54f2);
2558   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0x00000000, 0x79f74493, 0x00000000,
2559                               0x79f74493);
2560   TESTDSPINST_AC_RS_RT_NODSPC("dpsx.w.ph", 0xffffffff, 0x9c09e313, 0xffffffff,
2561                               0x9c09e313);
2562
2563   printf("-------- MUL.PH --------\n");
2564   TESTDSPINST_RD_RS_RT_DSPC("mul.ph $t0, $t1, $t2", 0x00000000, 0x00000000, t0,
2565                             t1, t2);
2566   TESTDSPINST_RD_RS_RT_DSPC("mul.ph $t2, $t3, $t4", 0x00045fb2, 0x00000286, t2,
2567                             t3, t4);
2568   TESTDSPINST_RD_RS_RT_DSPC("mul.ph $t4, $t1, $t5", 0x00002435, 0xffff3421, t4,
2569                             t1, t5);
2570   TESTDSPINST_RD_RS_RT_DSPC("mul.ph $t6, $t7, $t3", 0x07654cb8, 0x734680bc, t6,
2571                             t7, t3);
2572   TESTDSPINST_RD_RS_RT_DSPC("mul.ph $t5, $t3, $t2", 0xf973437b, 0x80000000, t5,
2573                             t3, t2);
2574   TESTDSPINST_RD_RS_RT_DSPC("mul.ph $t2, $t4, $t8", 0x00010001, 0xffffffff, t2,
2575                             t4, t8);
2576   TESTDSPINST_RD_RS_RT_DSPC("mul.ph $t0, $t8, $t0", 0x7fff7fff, 0x7fff7fff, t0,
2577                             t8, t0);
2578   TESTDSPINST_RD_RS_RT_DSPC("mul.ph $t4, $t6, $t1", 0x0000c420, 0x00000555, t4,
2579                             t6, t1);
2580   TESTDSPINST_RD_RS_RT_DSPC("mul.ph $t2, $t3, $t4", 0x00000004, 1073741824, t2,
2581                             t3, t4);
2582   TESTDSPINST_RD_RS_RT_DSPC("mul.ph $t4, $t1, $t5", 0x80002435, 0x80003421, t4,
2583                             t1, t5);
2584   TESTDSPINST_RD_RS_RT_DSPC("mul.ph $t6, $t7, $t3", 0x76548000, 0x73468000, t6,
2585                             t7, t3);
2586   TESTDSPINST_RD_RS_RT_DSPC("mul.ph $t5, $t3, $t2", 0x80000000, 0x80000000, t5,
2587                             t3, t2);
2588   TESTDSPINST_RD_RS_RT_DSPC("mul.ph $t2, $t4, $t8", 0x00010001, 0xffffffff, t2,
2589                             t4, t8);
2590   TESTDSPINST_RD_RS_RT_DSPC("mul.ph $t0, $t8, $t0", 0x7fff7fff, 0x7fff7fff, t0,
2591                             t8, t0);
2592   TESTDSPINST_RD_RS_RT_DSPC("mul.ph $t4, $t6, $t1", 0x0000c420, 0x00000555, t4,
2593                             t6, t1);
2594   TESTDSPINST_RD_RS_RT_DSPC("mul.ph $t0, $t1, $t2", 0x00000000, 0x00000000, t0,
2595                             t1, t2);
2596   TESTDSPINST_RD_RS_RT_DSPC("mul.ph $t2, $t3, $t4", 0x80000000, 0x80000000, t2,
2597                             t3, t4);
2598   TESTDSPINST_RD_RS_RT_DSPC("mul.ph $t4, $t1, $t5", 0xaaaaaaaa, 0x55555555, t4,
2599                             t1, t5);
2600   TESTDSPINST_RD_RS_RT_DSPC("mul.ph $t6, $t7, $t3", 0x00000018, 0xffff2435, t6,
2601                             t7, t3);
2602   TESTDSPINST_RD_RS_RT_DSPC("mul.ph $t5, $t3, $t2", 0xbabababa, 0xabababab, t5,
2603                             t3, t2);
2604   TESTDSPINST_RD_RS_RT_DSPC("mul.ph $t2, $t4, $t8", 0xf0f0f0f0, 0xfc79b4d2, t2,
2605                             t4, t8);
2606   TESTDSPINST_RD_RS_RT_DSPC("mul.ph $t0, $t8, $t0", 0xfbde3976, 0x00000000, t0,
2607                             t8, t0);
2608   TESTDSPINST_RD_RS_RT_DSPC("mul.ph $t4, $t6, $t1", 0x23534870, 0x00354565, t4,
2609                             t6, t1);
2610   TESTDSPINST_RD_RS_RT_DSPC("mul.ph $t0, $t1, $t2", 0x980b7cde, 0x00086755, t0,
2611                             t1, t2);
2612   TESTDSPINST_RD_RS_RT_DSPC("mul.ph $t2, $t3, $t4", 0x00000018, 0x8f8f8f8f, t2,
2613                             t3, t4);
2614   TESTDSPINST_RD_RS_RT_DSPC("mul.ph $t4, $t1, $t5", 0x92784656, 0xeeeeeeee, t4,
2615                             t1, t5);
2616   TESTDSPINST_RD_RS_RT_DSPC("mul.ph $t6, $t7, $t3", 0xcacacaca, 0x1bdbdbdb, t6,
2617                             t7, t3);
2618   TESTDSPINST_RD_RS_RT_DSPC("mul.ph $t5, $t3, $t2", 0xbacabaca, 0xdecadeca, t5,
2619                             t3, t2);
2620   TESTDSPINST_RD_RS_RT_DSPC("mul.ph $t2, $t4, $t8", 0x12fadeb4, 0x93474bde, t2,
2621                             t4, t8);
2622   TESTDSPINST_RD_RS_RT_DSPC("mul.ph $t0, $t8, $t0", 0x7c000790, 0xfc0007ff, t0,
2623                             t8, t0);
2624   TESTDSPINST_RD_RS_RT_DSPC("mul.ph $t4, $t6, $t1", 0xffffffff, 0xffffffff, t4,
2625                             t6, t1);
2626   TESTDSPINST_RD_RS_RT_DSPC("mul.ph $t0, $t1, $t2", 0xf2f4df1f, 0xcb4ab48f, t0,
2627                             t1, t2);
2628   TESTDSPINST_RD_RS_RT_DSPC("mul.ph $t2, $t3, $t4", 0x435f909a, 0xaf8f7e18, t2,
2629                             t3, t4);
2630   TESTDSPINST_RD_RS_RT_DSPC("mul.ph $t4, $t1, $t5", 0x2106ba5f, 0x87df4510, t4,
2631                             t1, t5);
2632   TESTDSPINST_RD_RS_RT_DSPC("mul.ph $t6, $t7, $t3", 0x246a6376, 0xabf4e8e1, t6,
2633                             t7, t3);
2634   TESTDSPINST_RD_RS_RT_DSPC("mul.ph $t5, $t3, $t2", 0x1046a1a3, 0xf4c0eeac, t5,
2635                             t3, t2);
2636   TESTDSPINST_RD_RS_RT_DSPC("mul.ph $t2, $t4, $t8", 0x638ca515, 0x006a54f2, t2,
2637                             t4, t8);
2638   TESTDSPINST_RD_RS_RT_DSPC("mul.ph $t0, $t8, $t0", 0xf63e7a9d, 0x79f74493, t0,
2639                             t8, t0);
2640   TESTDSPINST_RD_RS_RT_DSPC("mul.ph $t4, $t6, $t1", 0xbd6845cd, 0x9c09e313, t4,
2641                             t6, t1);
2642
2643   printf("-------- MUL_S.PH --------\n");
2644   TESTDSPINST_RD_RS_RT_DSPC("mul_s.ph $t0, $t1, $t2", 0x00000000, 0x00000000,
2645                             t0, t1, t2);
2646   TESTDSPINST_RD_RS_RT_DSPC("mul_s.ph $t2, $t3, $t4", 0x00045fb2, 0x00000286,
2647                             t2, t3, t4);
2648   TESTDSPINST_RD_RS_RT_DSPC("mul_s.ph $t4, $t1, $t5", 0x00002435, 0xffff3421,
2649                             t4, t1, t5);
2650   TESTDSPINST_RD_RS_RT_DSPC("mul_s.ph $t6, $t7, $t3", 0x07654cb8, 0x734680bc,
2651                             t6, t7, t3);
2652   TESTDSPINST_RD_RS_RT_DSPC("mul_s.ph $t5, $t3, $t2", 0xf973437b, 0x80000000,
2653                             t5, t3, t2);
2654   TESTDSPINST_RD_RS_RT_DSPC("mul_s.ph $t2, $t4, $t8", 0x00010001, 0xffffffff,
2655                             t2, t4, t8);
2656   TESTDSPINST_RD_RS_RT_DSPC("mul_s.ph $t0, $t8, $t0", 0x7fff7fff, 0x7fff7fff,
2657                             t0, t8, t0);
2658   TESTDSPINST_RD_RS_RT_DSPC("mul_s.ph $t4, $t6, $t1", 0x0000c420, 0x00000555,
2659                             t4, t6, t1);
2660   TESTDSPINST_RD_RS_RT_DSPC("mul_s.ph $t2, $t3, $t4", 0x00000004, 1073741824,
2661                             t2, t3, t4);
2662   TESTDSPINST_RD_RS_RT_DSPC("mul_s.ph $t4, $t1, $t5", 0x80002435, 0x80003421,
2663                             t4, t1, t5);
2664   TESTDSPINST_RD_RS_RT_DSPC("mul_s.ph $t6, $t7, $t3", 0x76548000, 0x73468000,
2665                             t6, t7, t3);
2666   TESTDSPINST_RD_RS_RT_DSPC("mul_s.ph $t5, $t3, $t2", 0x80000000, 0x80000000,
2667                             t5, t3, t2);
2668   TESTDSPINST_RD_RS_RT_DSPC("mul_s.ph $t2, $t4, $t8", 0x00010001, 0xffffffff,
2669                             t2, t4, t8);
2670   TESTDSPINST_RD_RS_RT_DSPC("mul_s.ph $t0, $t8, $t0", 0x7fff7fff, 0x7fff7fff,
2671                             t0, t8, t0);
2672   TESTDSPINST_RD_RS_RT_DSPC("mul_s.ph $t4, $t6, $t1", 0x0000c420, 0x00000555,
2673                             t4, t6, t1);
2674   TESTDSPINST_RD_RS_RT_DSPC("mul_s.ph $t0, $t1, $t2", 0x00000000, 0x00000000,
2675                             t0, t1, t2);
2676   TESTDSPINST_RD_RS_RT_DSPC("mul_s.ph $t2, $t3, $t4", 0x80000000, 0x80000000,
2677                             t2, t3, t4);
2678   TESTDSPINST_RD_RS_RT_DSPC("mul_s.ph $t4, $t1, $t5", 0xaaaaaaaa, 0x55555555,
2679                             t4, t1, t5);
2680   TESTDSPINST_RD_RS_RT_DSPC("mul_s.ph $t6, $t7, $t3", 0x00000018, 0xffff2435,
2681                             t6, t7, t3);
2682   TESTDSPINST_RD_RS_RT_DSPC("mul_s.ph $t5, $t3, $t2", 0xbabababa, 0xabababab,
2683                             t5, t3, t2);
2684   TESTDSPINST_RD_RS_RT_DSPC("mul_s.ph $t2, $t4, $t8", 0xf0f0f0f0, 0xfc79b4d2,
2685                             t2, t4, t8);
2686   TESTDSPINST_RD_RS_RT_DSPC("mul_s.ph $t0, $t8, $t0", 0xfbde3976, 0x00000000,
2687                             t0, t8, t0);
2688   TESTDSPINST_RD_RS_RT_DSPC("mul_s.ph $t4, $t6, $t1", 0x23534870, 0x00354565,
2689                             t4, t6, t1);
2690   TESTDSPINST_RD_RS_RT_DSPC("mul_s.ph $t0, $t1, $t2", 0x980b7cde, 0x00086755,
2691                             t0, t1, t2);
2692   TESTDSPINST_RD_RS_RT_DSPC("mul_s.ph $t2, $t3, $t4", 0x00000018, 0x8f8f8f8f,
2693                             t2, t3, t4);
2694   TESTDSPINST_RD_RS_RT_DSPC("mul_s.ph $t4, $t1, $t5", 0x92784656, 0xeeeeeeee,
2695                             t4, t1, t5);
2696   TESTDSPINST_RD_RS_RT_DSPC("mul_s.ph $t6, $t7, $t3", 0xcacacaca, 0x1bdbdbdb,
2697                             t6, t7, t3);
2698   TESTDSPINST_RD_RS_RT_DSPC("mul_s.ph $t5, $t3, $t2", 0xbacabaca, 0xdecadeca,
2699                             t5, t3, t2);
2700   TESTDSPINST_RD_RS_RT_DSPC("mul_s.ph $t2, $t4, $t8", 0x12fadeb4, 0x93474bde,
2701                             t2, t4, t8);
2702   TESTDSPINST_RD_RS_RT_DSPC("mul_s.ph $t0, $t8, $t0", 0x7c000790, 0xfc0007ff,
2703                             t0, t8, t0);
2704   TESTDSPINST_RD_RS_RT_DSPC("mul_s.ph $t4, $t6, $t1", 0xffffffff, 0xffffffff,
2705                             t4, t6, t1);
2706   TESTDSPINST_RD_RS_RT_DSPC("mul_s.ph $t0, $t1, $t2", 0xf2f4df1f, 0xcb4ab48f,
2707                             t0, t1, t2);
2708   TESTDSPINST_RD_RS_RT_DSPC("mul_s.ph $t2, $t3, $t4", 0x435f909a, 0xaf8f7e18,
2709                             t2, t3, t4);
2710   TESTDSPINST_RD_RS_RT_DSPC("mul_s.ph $t4, $t1, $t5", 0x2106ba5f, 0x87df4510,
2711                             t4, t1, t5);
2712   TESTDSPINST_RD_RS_RT_DSPC("mul_s.ph $t6, $t7, $t3", 0x246a6376, 0xabf4e8e1,
2713                             t6, t7, t3);
2714   TESTDSPINST_RD_RS_RT_DSPC("mul_s.ph $t5, $t3, $t2", 0x1046a1a3, 0xf4c0eeac,
2715                             t5, t3, t2);
2716   TESTDSPINST_RD_RS_RT_DSPC("mul_s.ph $t2, $t4, $t8", 0x638ca515, 0x006a54f2,
2717                             t2, t4, t8);
2718   TESTDSPINST_RD_RS_RT_DSPC("mul_s.ph $t0, $t8, $t0", 0xf63e7a9d, 0x79f74493,
2719                             t0, t8, t0);
2720   TESTDSPINST_RD_RS_RT_DSPC("mul_s.ph $t4, $t6, $t1", 0xbd6845cd, 0x9c09e313,
2721                             t4, t6, t1);
2722
2723   printf("-------- MULQ_S.PH --------\n");
2724   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.ph $t0, $t1, $t2", 0x00000000, 0x00000000,
2725                             t0, t1, t2);
2726   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.ph $t2, $t3, $t4", 0x00045fb2, 0x00000286,
2727                             t2, t3, t4);
2728   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.ph $t4, $t1, $t5", 0x00002435, 0xffff3421,
2729                             t4, t1, t5);
2730   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.ph $t6, $t7, $t3", 0x07654cb8, 0x734680bc,
2731                             t6, t7, t3);
2732   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.ph $t5, $t3, $t2", 0xf973437b, 0x80000000,
2733                             t5, t3, t2);
2734   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.ph $t2, $t4, $t8", 0x00010001, 0xffffffff,
2735                             t2, t4, t8);
2736   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.ph $t0, $t8, $t0", 0x7fff7fff, 0x7fff7fff,
2737                             t0, t8, t0);
2738   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.ph $t4, $t6, $t1", 0x0000c420, 0x00000555,
2739                             t4, t6, t1);
2740   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.ph $t2, $t3, $t4", 0x00000004, 1073741824,
2741                             t2, t3, t4);
2742   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.ph $t4, $t1, $t5", 0x80002435, 0x80003421,
2743                             t4, t1, t5);
2744   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.ph $t6, $t7, $t3", 0x76548000, 0x73468000,
2745                             t6, t7, t3);
2746   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.ph $t5, $t3, $t2", 0x80000000, 0x80000000,
2747                             t5, t3, t2);
2748   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.ph $t2, $t4, $t8", 0x00010001, 0xffffffff,
2749                             t2, t4, t8);
2750   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.ph $t0, $t8, $t0", 0x7fff7fff, 0x7fff7fff,
2751                             t0, t8, t0);
2752   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.ph $t4, $t6, $t1", 0x0000c420, 0x00000555,
2753                             t4, t6, t1);
2754   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.ph $t0, $t1, $t2", 0x00000000, 0x00000000,
2755                             t0, t1, t2);
2756   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.ph $t2, $t3, $t4", 0x80000000, 0x80000000,
2757                             t2, t3, t4);
2758   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.ph $t4, $t1, $t5", 0xaaaaaaaa, 0x55555555,
2759                             t4, t1, t5);
2760   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.ph $t6, $t7, $t3", 0x00000018, 0xffff2435,
2761                             t6, t7, t3);
2762   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.ph $t5, $t3, $t2", 0xbabababa, 0xabababab,
2763                             t5, t3, t2);
2764   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.ph $t2, $t4, $t8", 0xf0f0f0f0, 0xfc79b4d2,
2765                             t2, t4, t8);
2766   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.ph $t0, $t8, $t0", 0xfbde3976, 0x00000000,
2767                             t0, t8, t0);
2768   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.ph $t4, $t6, $t1", 0x23534870, 0x00354565,
2769                             t4, t6, t1);
2770   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.ph $t0, $t1, $t2", 0x980b7cde, 0x00086755,
2771                             t0, t1, t2);
2772   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.ph $t2, $t3, $t4", 0x00000018, 0x8f8f8f8f,
2773                             t2, t3, t4);
2774   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.ph $t4, $t1, $t5", 0x92784656, 0xeeeeeeee,
2775                             t4, t1, t5);
2776   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.ph $t6, $t7, $t3", 0xcacacaca, 0x1bdbdbdb,
2777                             t6, t7, t3);
2778   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.ph $t5, $t3, $t2", 0xbacabaca, 0xdecadeca,
2779                             t5, t3, t2);
2780   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.ph $t2, $t4, $t8", 0x12fadeb4, 0x93474bde,
2781                             t2, t4, t8);
2782   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.ph $t0, $t8, $t0", 0x7c000790, 0xfc0007ff,
2783                             t0, t8, t0);
2784   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.ph $t4, $t6, $t1", 0xffffffff, 0xffffffff,
2785                             t4, t6, t1);
2786   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.ph $t0, $t1, $t2", 0xf2f4df1f, 0xcb4ab48f,
2787                             t0, t1, t2);
2788   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.ph $t2, $t3, $t4", 0x435f909a, 0xaf8f7e18,
2789                             t2, t3, t4);
2790   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.ph $t4, $t1, $t5", 0x2106ba5f, 0x87df4510,
2791                             t4, t1, t5);
2792   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.ph $t6, $t7, $t3", 0x246a6376, 0xabf4e8e1,
2793                             t6, t7, t3);
2794   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.ph $t5, $t3, $t2", 0x1046a1a3, 0xf4c0eeac,
2795                             t5, t3, t2);
2796   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.ph $t2, $t4, $t8", 0x638ca515, 0x006a54f2,
2797                             t2, t4, t8);
2798   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.ph $t0, $t8, $t0", 0xf63e7a9d, 0x79f74493,
2799                             t0, t8, t0);
2800   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.ph $t4, $t6, $t1", 0xbd6845cd, 0x9c09e313,
2801                             t4, t6, t1);
2802
2803   printf("-------- MULQ_RS.W --------\n");
2804   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.w $t0, $t1, $t2", 0x00000000, 0x00000000,
2805                             t0, t1, t2);
2806   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.w $t2, $t3, $t4", 0x00045fb2, 0x00000286,
2807                             t2, t3, t4);
2808   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.w $t4, $t1, $t5", 0x00002435, 0xffff3421,
2809                             t4, t1, t5);
2810   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.w $t6, $t7, $t3", 0x07654cb8, 0x734680bc,
2811                             t6, t7, t3);
2812   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.w $t5, $t3, $t2", 0xf973437b, 0x80000000,
2813                             t5, t3, t2);
2814   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.w $t2, $t4, $t8", 0x00010001, 0xffffffff,
2815                             t2, t4, t8);
2816   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.w $t0, $t8, $t0", 0x7fff7fff, 0x7fff7fff,
2817                             t0, t8, t0);
2818   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.w $t4, $t6, $t1", 0x0000c420, 0x00000555,
2819                             t4, t6, t1);
2820   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.w $t2, $t3, $t4", 0x00000004, 1073741824,
2821                             t2, t3, t4);
2822   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.w $t4, $t1, $t5", 0x80002435, 0x80003421,
2823                             t4, t1, t5);
2824   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.w $t6, $t7, $t3", 0x76548000, 0x73468000,
2825                             t6, t7, t3);
2826   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.w $t5, $t3, $t2", 0x80000000, 0x80000000,
2827                             t5, t3, t2);
2828   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.w $t2, $t4, $t8", 0x00010001, 0xffffffff,
2829                             t2, t4, t8);
2830   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.w $t0, $t8, $t0", 0x7fff7fff, 0x7fff7fff,
2831                             t0, t8, t0);
2832   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.w $t4, $t6, $t1", 0x0000c420, 0x00000555,
2833                             t4, t6, t1);
2834   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.w $t0, $t1, $t2", 0x00000000, 0x00000000,
2835                             t0, t1, t2);
2836   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.w $t2, $t3, $t4", 0x80000000, 0x80000000,
2837                             t2, t3, t4);
2838   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.w $t4, $t1, $t5", 0xaaaaaaaa, 0x55555555,
2839                             t4, t1, t5);
2840   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.w $t6, $t7, $t3", 0x00000018, 0xffff2435,
2841                             t6, t7, t3);
2842   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.w $t5, $t3, $t2", 0xbabababa, 0xabababab,
2843                             t5, t3, t2);
2844   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.w $t2, $t4, $t8", 0xf0f0f0f0, 0xfc79b4d2,
2845                             t2, t4, t8);
2846   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.w $t0, $t8, $t0", 0xfbde3976, 0x00000000,
2847                             t0, t8, t0);
2848   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.w $t4, $t6, $t1", 0x23534870, 0x00354565,
2849                             t4, t6, t1);
2850   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.w $t0, $t1, $t2", 0x980b7cde, 0x00086755,
2851                             t0, t1, t2);
2852   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.w $t2, $t3, $t4", 0x00000018, 0x8f8f8f8f,
2853                             t2, t3, t4);
2854   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.w $t4, $t1, $t5", 0x92784656, 0xeeeeeeee,
2855                             t4, t1, t5);
2856   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.w $t6, $t7, $t3", 0xcacacaca, 0x1bdbdbdb,
2857                             t6, t7, t3);
2858   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.w $t5, $t3, $t2", 0xbacabaca, 0xdecadeca,
2859                             t5, t3, t2);
2860   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.w $t2, $t4, $t8", 0x12fadeb4, 0x93474bde,
2861                             t2, t4, t8);
2862   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.w $t0, $t8, $t0", 0x7c000790, 0xfc0007ff,
2863                             t0, t8, t0);
2864   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.w $t4, $t6, $t1", 0xffffffff, 0xffffffff,
2865                             t4, t6, t1);
2866   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.w $t0, $t1, $t2", 0xf2f4df1f, 0xcb4ab48f,
2867                             t0, t1, t2);
2868   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.w $t2, $t3, $t4", 0x435f909a, 0xaf8f7e18,
2869                             t2, t3, t4);
2870   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.w $t4, $t1, $t5", 0x2106ba5f, 0x87df4510,
2871                             t4, t1, t5);
2872   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.w $t6, $t7, $t3", 0x246a6376, 0xabf4e8e1,
2873                             t6, t7, t3);
2874   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.w $t5, $t3, $t2", 0x1046a1a3, 0xf4c0eeac,
2875                             t5, t3, t2);
2876   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.w $t2, $t4, $t8", 0x638ca515, 0x006a54f2,
2877                             t2, t4, t8);
2878   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.w $t0, $t8, $t0", 0xf63e7a9d, 0x79f74493,
2879                             t0, t8, t0);
2880   TESTDSPINST_RD_RS_RT_DSPC("mulq_rs.w $t4, $t6, $t1", 0xbd6845cd, 0x9c09e313,
2881                             t4, t6, t1);
2882
2883   printf("-------- MULQ_S.W --------\n");
2884   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.w $t0, $t1, $t2", 0x00000000, 0x00000000,
2885                             t0, t1, t2);
2886   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.w $t2, $t3, $t4", 0x00045fb2, 0x00000286,
2887                             t2, t3, t4);
2888   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.w $t4, $t1, $t5", 0x00002435, 0xffff3421,
2889                             t4, t1, t5);
2890   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.w $t6, $t7, $t3", 0x07654cb8, 0x734680bc,
2891                             t6, t7, t3);
2892   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.w $t5, $t3, $t2", 0xf973437b, 0x80000000,
2893                             t5, t3, t2);
2894   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.w $t2, $t4, $t8", 0x00010001, 0xffffffff,
2895                             t2, t4, t8);
2896   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.w $t0, $t8, $t0", 0x7fff7fff, 0x7fff7fff,
2897                             t0, t8, t0);
2898   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.w $t4, $t6, $t1", 0x0000c420, 0x00000555,
2899                             t4, t6, t1);
2900   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.w $t2, $t3, $t4", 0x00000004, 1073741824,
2901                             t2, t3, t4);
2902   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.w $t4, $t1, $t5", 0x80002435, 0x80003421,
2903                             t4, t1, t5);
2904   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.w $t6, $t7, $t3", 0x76548000, 0x73468000,
2905                             t6, t7, t3);
2906   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.w $t5, $t3, $t2", 0x80000000, 0x80000000,
2907                             t5, t3, t2);
2908   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.w $t2, $t4, $t8", 0x00010001, 0xffffffff,
2909                             t2, t4, t8);
2910   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.w $t0, $t8, $t0", 0x7fff7fff, 0x7fff7fff,
2911                             t0, t8, t0);
2912   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.w $t4, $t6, $t1", 0x0000c420, 0x00000555,
2913                             t4, t6, t1);
2914   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.w $t0, $t1, $t2", 0x00000000, 0x00000000,
2915                             t0, t1, t2);
2916   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.w $t2, $t3, $t4", 0x80000000, 0x80000000,
2917                             t2, t3, t4);
2918   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.w $t4, $t1, $t5", 0xaaaaaaaa, 0x55555555,
2919                             t4, t1, t5);
2920   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.w $t6, $t7, $t3", 0x00000018, 0xffff2435,
2921                             t6, t7, t3);
2922   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.w $t5, $t3, $t2", 0xbabababa, 0xabababab,
2923                             t5, t3, t2);
2924   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.w $t2, $t4, $t8", 0xf0f0f0f0, 0xfc79b4d2,
2925                             t2, t4, t8);
2926   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.w $t0, $t8, $t0", 0xfbde3976, 0x00000000,
2927                             t0, t8, t0);
2928   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.w $t4, $t6, $t1", 0x23534870, 0x00354565,
2929                             t4, t6, t1);
2930   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.w $t0, $t1, $t2", 0x980b7cde, 0x00086755,
2931                             t0, t1, t2);
2932   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.w $t2, $t3, $t4", 0x00000018, 0x8f8f8f8f,
2933                             t2, t3, t4);
2934   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.w $t4, $t1, $t5", 0x92784656, 0xeeeeeeee,
2935                             t4, t1, t5);
2936   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.w $t6, $t7, $t3", 0xcacacaca, 0x1bdbdbdb,
2937                             t6, t7, t3);
2938   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.w $t5, $t3, $t2", 0xbacabaca, 0xdecadeca,
2939                             t5, t3, t2);
2940   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.w $t2, $t4, $t8", 0x12fadeb4, 0x93474bde,
2941                             t2, t4, t8);
2942   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.w $t0, $t8, $t0", 0x7c000790, 0xfc0007ff,
2943                             t0, t8, t0);
2944   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.w $t4, $t6, $t1", 0xffffffff, 0xffffffff,
2945                             t4, t6, t1);
2946   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.w $t0, $t1, $t2", 0xf2f4df1f, 0xcb4ab48f,
2947                             t0, t1, t2);
2948   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.w $t2, $t3, $t4", 0x435f909a, 0xaf8f7e18,
2949                             t2, t3, t4);
2950   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.w $t4, $t1, $t5", 0x2106ba5f, 0x87df4510,
2951                             t4, t1, t5);
2952   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.w $t6, $t7, $t3", 0x246a6376, 0xabf4e8e1,
2953                             t6, t7, t3);
2954   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.w $t5, $t3, $t2", 0x1046a1a3, 0xf4c0eeac,
2955                             t5, t3, t2);
2956   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.w $t2, $t4, $t8", 0x638ca515, 0x006a54f2,
2957                             t2, t4, t8);
2958   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.w $t0, $t8, $t0", 0xf63e7a9d, 0x79f74493,
2959                             t0, t8, t0);
2960   TESTDSPINST_RD_RS_RT_DSPC("mulq_s.w $t4, $t6, $t1", 0xbd6845cd, 0x9c09e313,
2961                             t4, t6, t1);
2962
2963   printf("-------- MULSA.W.PH --------\n");
2964   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0xffffffff, 0x00000000, 0x3277ffff,
2965                               0x4387ffff);
2966   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0x00000000, 0x00000000, 0x00000004,
2967                               0x00000005);
2968   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0xffffffff, 0xffffffff, 0x80000000,
2969                               0x80000000);
2970   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0xeeeeffff, 0x00002345, 0x3277ffff,
2971                               0x4387ffff);
2972   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0xffffaaaa, 0x12340000, 0x3277ffff,
2973                               0x4387ffff);
2974   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0x00000000, 0x00000000, 0x80000000,
2975                               0x80000000);
2976   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0xffffffff, 0x80008000, 0x80000000,
2977                               0x80000000);
2978   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0x00000000, 0x00000000, 0x80000004,
2979                               0x00000005);
2980   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0xffffffff, 0xffffffff, 0x80008000,
2981                               0x4387ffff);
2982   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0xeeeeffff, 0x00002345, 0x80008000,
2983                               0x80008000);
2984   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0xffffaaaa, 0x12340000, 0x3277ffff,
2985                               0x4387ffff);
2986   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0x00000000, 0x00000000, 0x80008000,
2987                               0x80008000);
2988   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0xffffffff, 0x00000000, 0x3277ffff,
2989                               0x4387ffff);
2990   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0x80000000, 0xffff0000, 0x3277eeee,
2991                               0x80008000);
2992   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0xffffffff, 0x00000000, 0x80000000,
2993                               0x80000000);
2994   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0x0000ffff, 0xffff0000, 0x3277eeee,
2995                               0x4387ffff);
2996   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0xffffffff, 0x0000ffff, 0x80008000,
2997                               0x4387ffff);
2998   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0xffff1234, 0x00000000, 0xffff3277,
2999                               0x4387ffff);
3000   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0x5678ffff, 0x3277ffff, 0x80000000,
3001                               0x80000000);
3002   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0xffffffff, 0x00000000, 0xffff3277,
3003                               0xffff6543);
3004   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0xffffffff, 0xffffffff, 0xffffffff,
3005                               0xffffffff);
3006   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0xffffbbbb, 0xeeee0000, 0x80008000,
3007                               0x4387ffff);
3008   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0xffffffff, 0x34560000, 0x3277ffff,
3009                               0x4387cccc);
3010   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0xbbbbffff, 0x0000ffff, 0xeeeeffff,
3011                               0x4387ffff);
3012   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0x12345678, 0xffffffff, 0xffffffff,
3013                               0xffffffff);
3014   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0xffffbbbb, 0x12345678, 0x80008000,
3015                               0x4387ffff);
3016   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0xffffffff, 0x34560000, 0x87654321,
3017                               0x80008000);
3018   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0xbbbbffff, 0x0000ffff, 0xeeeeffff,
3019                               0x80000000);
3020   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0xffffaaaa, 0x12340000, 0x3277ffff,
3021                               0x4387ffff);
3022   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0x80000000, 0x00000000, 0x80008000,
3023                               0x80008000);
3024   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0xffffffff, 0x80008000, 0x3277ffff,
3025                               0x4387ffff);
3026   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0x0000ffff, 0xffff0000, 0x3277eeee,
3027                               0x4387ffff);
3028   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", -24, 120, -24, 120);
3029   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 140, 120, 140, 120);
3030   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0x00000004, 1073741824, 0x00000004,
3031                               1073741824);
3032   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", (1<<31)+1, (1<<31)+2, (1<<31)+1,
3033                               (1<<31)+2);
3034   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0x80002431, 0x4b908000, 0x80002431,
3035                               0x4b908000);
3036   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0x004d8000, 0x800027cc, 0x004d8000,
3037                               0x800027cc);
3038   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0xf6a3fa3c, 0x083b3571, 0xf6a3fa3c,
3039                               0x083b3571);
3040   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0xbf17fb9a, 0xb9743941, 0xbf17fb9a,
3041                               0xb9743941);
3042   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0x2c0bd024, 0xbce5f924, 0x2c0bd024,
3043                               0xbce5f924);
3044   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0x3e976e2e, 0xcc3c201c, 0x3e976e2e,
3045                               0xcc3c201c);
3046   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0xb4bfb365, 0x1ebaf88e, 0xb4bfb365,
3047                               0x1ebaf88e);
3048   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0x288593c0, 0x722d5e20, 0x288593c0,
3049                               0x722d5e20);
3050   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0x4d7ff5b4, 0xa1d6f791, 0x4d7ff5b4,
3051                               0xa1d6f791);
3052   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0x4557be13, 0x7b11bee7, 0x4557be13,
3053                               0x7b11bee7);
3054   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0xadcf5772, 0xa5631488, 0xadcf5772,
3055                               0xa5631488);
3056   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0x989a7235, 0xb10bcc65, 0x989a7235,
3057                               0xb10bcc65);
3058   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0x4d6f393a, 0x73f39fca, 0x4d6f393a,
3059                               0x73f39fca);
3060   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0x24a3291e, 0x5648e540, 0x24a3291e,
3061                               0x5648e540);
3062   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0xdd91eebf, 0xc54f79e6, 0xdd91eebf,
3063                               0xc54f79e6);
3064   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0xf7ce2ec6, 0x5fc92974, 0xf7ce2ec6,
3065                               0x5fc92974);
3066   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0xbc1083e8, 0x7e08184e, 0xbc1083e8,
3067                               0x7e08184e);
3068   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0xa617cc31, 0x71c8315f, 0xa617cc31,
3069                               0x71c8315f);
3070   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0xdfe1e8f0, 0x9493110e, 0xdfe1e8f0,
3071                               0x9493110e);
3072   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0x31458a23, 0xbb246228, 0x31458a23,
3073                               0xbb246228);
3074   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0x848af791, 0x339d8d88, 0x848af791,
3075                               0x339d8d88);
3076   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0xda3bacdc, 0x70974249, 0xda3bacdc,
3077                               0x70974249);
3078   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0x649d5cbd, 0x8a8d4e7d, 0x649d5cbd,
3079                               0x8a8d4e7d);
3080   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0xc0c8c881, 0xeb1b4335, 0xc0c8c881,
3081                               0xeb1b4335);
3082   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0x7dd81a20, 0x0cd6b508, 0x7dd81a20,
3083                               0x0cd6b508);
3084   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0x00000000, 0x6731e282, 0x00000000,
3085                               0x6731e282);
3086   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0xffffffff, 0xb6edf28f, 0xffffffff,
3087                               0xb6edf28f);
3088   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0x00000000, 0x4b4ec9ca, 0x00000000,
3089                               0x4b4ec9ca);
3090   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0xffffffff, 0xc1037fa4, 0xffffffff,
3091                               0xc1037fa4);
3092   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0xffffffff, 0xcb4ab48f, 0xffffffff,
3093                               0xcb4ab48f);
3094   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0xffffffff, 0xaf8f7e18, 0xffffffff,
3095                               0xaf8f7e18);
3096   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0xffffffff, 0x87df4510, 0xffffffff,
3097                               0x87df4510);
3098   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0xffffffff, 0xabf4e8e1, 0xffffffff,
3099                               0xabf4e8e1);
3100   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0xffffffff, 0xf4c0eeac, 0xffffffff,
3101                               0xf4c0eeac);
3102   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0x00000000, 0x006a54f2, 0x00000000,
3103                               0x006a54f2);
3104   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0x00000000, 0x79f74493, 0x00000000,
3105                               0x79f74493);
3106   TESTDSPINST_AC_RS_RT_NODSPC("mulsa.w.ph", 0xffffffff, 0x9c09e313, 0xffffffff,
3107                               0x9c09e313);
3108
3109   printf("-------- PRECR.QB.PH --------\n");
3110   TESTDSPINST_RD_RS_RT_NODSPC("precr.qb.ph $t0, $t1, $t2", 0x00000000,
3111                               0x00000000, t0, t1, t2);
3112   TESTDSPINST_RD_RS_RT_NODSPC("precr.qb.ph $t2, $t3, $t4", 0x045fb232,
3113                               0x00028632, t2, t3, t4);
3114   TESTDSPINST_RD_RS_RT_NODSPC("precr.qb.ph $t4, $t1, $t5", 0xfabc3435,
3115                               0xfabc3421, t4, t1, t5);
3116   TESTDSPINST_RD_RS_RT_NODSPC("precr.qb.ph $t6, $t7, $t3", 0x07654cb8,
3117                               0x734680bc, t6, t7, t3);
3118   TESTDSPINST_RD_RS_RT_NODSPC("precr.qb.ph $t5, $t3, $t2", 0xf973437b,
3119                               0x80000000, t5, t3, t2);
3120   TESTDSPINST_RD_RS_RT_NODSPC("precr.qb.ph $t2, $t4, $t8", 0x00ff0001,
3121                               0xff01ffff, t2, t4, t8);
3122   TESTDSPINST_RD_RS_RT_NODSPC("precr.qb.ph $t0, $t8, $t0", 0x7fff7fff,
3123                               0x7fff7fff, t0, t8, t0);
3124   TESTDSPINST_RD_RS_RT_NODSPC("precr.qb.ph $t4, $t6, $t1", 0x0000c420,
3125                               0x00000555, t4, t6, t1);
3126   TESTDSPINST_RD_RS_RT_NODSPC("precr.qb.ph $t0, $t1, $t2", 0x00000000,
3127                               0x00000000, t0, t1, t2);
3128   TESTDSPINST_RD_RS_RT_NODSPC("precr.qb.ph $t2, $t3, $t4", 0x80000000,
3129                               0x80000000, t2, t3, t4);
3130   TESTDSPINST_RD_RS_RT_NODSPC("precr.qb.ph $t4, $t1, $t5", 0xaaaaaaaa,
3131                               0x55555555, t4, t1, t5);
3132   TESTDSPINST_RD_RS_RT_NODSPC("precr.qb.ph $t6, $t7, $t3", 0x00000018,
3133                               0xffff2435, t6, t7, t3);
3134   TESTDSPINST_RD_RS_RT_NODSPC("precr.qb.ph $t5, $t3, $t2", 0xbabababa,
3135                               0xabababab, t5, t3, t2);
3136   TESTDSPINST_RD_RS_RT_NODSPC("precr.qb.ph $t2, $t4, $t8", 0xf0f0f0f0,
3137                               0xfc79b4d2, t2, t4, t8);
3138   TESTDSPINST_RD_RS_RT_NODSPC("precr.qb.ph $t0, $t8, $t0", 0xfbde3976,
3139                               0x00000000, t0, t8, t0);
3140   TESTDSPINST_RD_RS_RT_NODSPC("precr.qb.ph $t4, $t6, $t1", 0x23534870,
3141                               0x00354565, t4, t6, t1);
3142   TESTDSPINST_RD_RS_RT_NODSPC("precr.qb.ph $t0, $t1, $t2", 0x980b7cde,
3143                               0x00086755, t0, t1, t2);
3144   TESTDSPINST_RD_RS_RT_NODSPC("precr.qb.ph $t2, $t3, $t4", 0x00000018,
3145                               0x8f8f8f8f, t2, t3, t4);
3146   TESTDSPINST_RD_RS_RT_NODSPC("precr.qb.ph $t4, $t1, $t5", 0x92784656,
3147                               0xeeeeeeee, t4, t1, t5);
3148   TESTDSPINST_RD_RS_RT_NODSPC("precr.qb.ph $t6, $t7, $t3", 0xcacacaca,
3149                               0x1bdbdbdb, t6, t7, t3);
3150   TESTDSPINST_RD_RS_RT_NODSPC("precr.qb.ph $t5, $t3, $t2", 0xbacabaca,
3151                               0xdecadeca, t5, t3, t2);
3152   TESTDSPINST_RD_RS_RT_NODSPC("precr.qb.ph $t2, $t4, $t8", 0x12fadeb4,
3153                               0x93474bde, t2, t4, t8);
3154   TESTDSPINST_RD_RS_RT_NODSPC("precr.qb.ph $t0, $t8, $t0", 0x7c000790,
3155                               0xfc0007ff, t0, t8, t0);
3156   TESTDSPINST_RD_RS_RT_NODSPC("precr.qb.ph $t4, $t6, $t1", 0xffffffff,
3157                               0xffffffff, t4, t6, t1);
3158   TESTDSPINST_RD_RS_RT_NODSPC("precr.qb.ph $t0, $t1, $t2", 0xf2f4df1f,
3159                               0xcb4ab48f, t0, t1, t2);
3160   TESTDSPINST_RD_RS_RT_NODSPC("precr.qb.ph $t2, $t3, $t4", 0x435f909a,
3161                               0xaf8f7e18, t2, t3, t4);
3162   TESTDSPINST_RD_RS_RT_NODSPC("precr.qb.ph $t4, $t1, $t5", 0x2106ba5f,
3163                               0x87df4510, t4, t1, t5);
3164   TESTDSPINST_RD_RS_RT_NODSPC("precr.qb.ph $t6, $t7, $t3", 0x246a6376,
3165                               0xabf4e8e1, t6, t7, t3);
3166   TESTDSPINST_RD_RS_RT_NODSPC("precr.qb.ph $t5, $t3, $t2", 0x1046a1a3,
3167                               0xf4c0eeac, t5, t3, t2);
3168   TESTDSPINST_RD_RS_RT_NODSPC("precr.qb.ph $t2, $t4, $t8", 0x638ca515,
3169                               0x006a54f2, t2, t4, t8);
3170   TESTDSPINST_RD_RS_RT_NODSPC("precr.qb.ph $t0, $t8, $t0", 0xf63e7a9d,
3171                               0x79f74493, t0, t8, t0);
3172   TESTDSPINST_RD_RS_RT_NODSPC("precr.qb.ph $t4, $t6, $t1", 0xbd6845cd,
3173                               0x9c09e313, t4, t6, t1);
3174
3175   printf("-------- PRECR_SRA.PH.W --------\n");
3176   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra.ph.w $t0, $t1,  0", 0x00000000,
3177                               0x00000000,  0, t0, t1);
3178   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra.ph.w $t2, $t3,  1", 0x045fb232,
3179                               0x00028632,  1, t2, t3);
3180   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra.ph.w $t4, $t1,  4", 0xfabc3435,
3181                               0xfabc3421,  4, t4, t1);
3182   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra.ph.w $t6, $t7, 17", 0x07654cb8,
3183                               0x734680bc, 17, t6, t7);
3184   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra.ph.w $t5, $t3, 31", 0xf973437b,
3185                               0x80000000, 31, t5, t3);
3186   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra.ph.w $t2, $t4,  8", 0x00ff0001,
3187                               0xff01ffff,  8, t2, t4);
3188   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra.ph.w $t0, $t8, 11", 0x7fff7fff,
3189                               0x7fff7fff, 11, t0, t8);
3190   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra.ph.w $t4, $t6, 13", 0x0000c420,
3191                               0x00000555, 13, t4, t6);
3192   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra.ph.w $t0, $t1,  2", 0x00000000,
3193                               0x00000000,  2, t0, t1);
3194   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra.ph.w $t2, $t3,  6", 0x80000000,
3195                               0x80000000,  6, t2, t3);
3196   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra.ph.w $t4, $t1,  7", 0xaaaaaaaa,
3197                               0x55555555,  7, t4, t1);
3198   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra.ph.w $t6, $t7, 19", 0x00000018,
3199                               0xffff2435, 19, t6, t7);
3200   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra.ph.w $t5, $t3, 31", 0xbabababa,
3201                               0xabababab, 31, t5, t3);
3202   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra.ph.w $t2, $t4,  4", 0xf0f0f0f0,
3203                               0xfc79b4d2,  4, t2, t4);
3204   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra.ph.w $t0, $t8, 12", 0xfbde3976,
3205                               0x00000000, 12, t0, t8);
3206   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra.ph.w $t4, $t6, 10", 0x23534870,
3207                               0x00354565, 10, t4, t6);
3208   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra.ph.w $t0, $t1, 20", 0x980b7cde,
3209                               0x00086755, 20, t0, t1);
3210   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra.ph.w $t2, $t3, 21", 0x00000018,
3211                               0x8f8f8f8f, 21, t2, t3);
3212   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra.ph.w $t4, $t1, 24", 0x92784656,
3213                               0xeeeeeeee, 24, t4, t1);
3214   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra.ph.w $t6, $t7, 27", 0xcacacaca,
3215                               0x1bdbdbdb, 27, t6, t7);
3216   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra.ph.w $t5, $t3,  1", 0xbacabaca,
3217                               0xdecadeca,  1, t5, t3);
3218   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra.ph.w $t2, $t4, 18", 0x12fadeb4,
3219                               0x93474bde, 18, t2, t4);
3220   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra.ph.w $t0, $t8, 10", 0x7c000790,
3221                               0xfc0007ff, 10, t0, t8);
3222   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra.ph.w $t4, $t6, 16", 0xffffffff,
3223                               0xffffffff, 16, t4, t6);
3224   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra.ph.w $t0, $t1,  0", 0xf2f4df1f,
3225                               0xcb4ab48f,  0, t0, t1);
3226   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra.ph.w $t2, $t3, 14", 0x435f909a,
3227                               0xaf8f7e18, 14, t2, t3);
3228   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra.ph.w $t4, $t1,  5", 0x2106ba5f,
3229                               0x87df4510,  5, t4, t1);
3230   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra.ph.w $t6, $t7,  7", 0x246a6376,
3231                               0xabf4e8e1,  7, t6, t7);
3232   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra.ph.w $t5, $t3,  9", 0x1046a1a3,
3233                               0xf4c0eeac,  9, t5, t3);
3234   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra.ph.w $t2, $t4,  3", 0x638ca515,
3235                               0x006a54f2,  3, t2, t4);
3236   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra.ph.w $t0, $t8, 15", 0xf63e7a9d,
3237                               0x79f74493, 15, t0, t8);
3238   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra.ph.w $t4, $t6, 11", 0xbd6845cd,
3239                               0x9c09e313, 11, t4, t6);
3240
3241   printf("-------- PRECR_SRA_R.PH.W --------\n");
3242   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra_r.ph.w $t0, $t1,  0", 0x00000000,
3243                               0x00000000,  0, t0, t1);
3244   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra_r.ph.w $t2, $t3,  1", 0x045fb232,
3245                               0x00028632,  1, t2, t3);
3246   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra_r.ph.w $t4, $t1,  4", 0xfabc3435,
3247                               0xfabc3421,  4, t4, t1);
3248   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra_r.ph.w $t6, $t7, 17", 0x07654cb8,
3249                               0x734680bc, 17, t6, t7);
3250   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra_r.ph.w $t5, $t3, 31", 0xf973437b,
3251                               0x80000000, 31, t5, t3);
3252   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra_r.ph.w $t2, $t4,  8", 0x00ff0001,
3253                               0xff01ffff,  8, t2, t4);
3254   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra_r.ph.w $t0, $t8, 11", 0x7fff7fff,
3255                               0x7fff7fff, 11, t0, t8);
3256   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra_r.ph.w $t4, $t6, 13", 0x0000c420,
3257                               0x00000555, 13, t4, t6);
3258   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra_r.ph.w $t0, $t1,  2", 0x00000000,
3259                               0x00000000,  2, t0, t1);
3260   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra_r.ph.w $t2, $t3,  6", 0x80000000,
3261                               0x80000000,  6, t2, t3);
3262   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra_r.ph.w $t4, $t1,  7", 0xaaaaaaaa,
3263                               0x55555555,  7, t4, t1);
3264   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra_r.ph.w $t6, $t7, 19", 0x00000018,
3265                               0xffff2435, 19, t6, t7);
3266   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra_r.ph.w $t5, $t3, 31", 0xbabababa,
3267                               0xabababab, 31, t5, t3);
3268   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra_r.ph.w $t2, $t4,  4", 0xf0f0f0f0,
3269                               0xfc79b4d2,  4, t2, t4);
3270   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra_r.ph.w $t0, $t8, 12", 0xfbde3976,
3271                               0x00000000, 12, t0, t8);
3272   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra_r.ph.w $t4, $t6, 10", 0x23534870,
3273                               0x00354565, 10, t4, t6);
3274   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra_r.ph.w $t0, $t1, 20", 0x980b7cde,
3275                               0x00086755, 20, t0, t1);
3276   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra_r.ph.w $t2, $t3, 21", 0x00000018,
3277                               0x8f8f8f8f, 21, t2, t3);
3278   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra_r.ph.w $t4, $t1, 24", 0x92784656,
3279                               0xeeeeeeee, 24, t4, t1);
3280   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra_r.ph.w $t6, $t7, 27", 0xcacacaca,
3281                               0x1bdbdbdb, 27, t6, t7);
3282   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra_r.ph.w $t5, $t3,  1", 0xbacabaca,
3283                               0xdecadeca,  1, t5, t3);
3284   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra_r.ph.w $t2, $t4, 18", 0x12fadeb4,
3285                               0x93474bde, 18, t2, t4);
3286   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra_r.ph.w $t0, $t8, 10", 0x7c000790,
3287                               0xfc0007ff, 10, t0, t8);
3288   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra_r.ph.w $t4, $t6, 16", 0xffffffff,
3289                               0xffffffff, 16, t4, t6);
3290   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra_r.ph.w $t0, $t1,  0", 0xf2f4df1f,
3291                               0xcb4ab48f,  0, t0, t1);
3292   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra_r.ph.w $t2, $t3, 14", 0x435f909a,
3293                               0xaf8f7e18, 14, t2, t3);
3294   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra_r.ph.w $t4, $t1,  5", 0x2106ba5f,
3295                               0x87df4510,  5, t4, t1);
3296   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra_r.ph.w $t6, $t7,  7", 0x246a6376,
3297                               0xabf4e8e1,  7, t6, t7);
3298   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra_r.ph.w $t5, $t3,  9", 0x1046a1a3,
3299                               0xf4c0eeac,  9, t5, t3);
3300   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra_r.ph.w $t2, $t4,  3", 0x638ca515,
3301                               0x006a54f2,  3, t2, t4);
3302   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra_r.ph.w $t0, $t8, 15", 0xf63e7a9d,
3303                               0x79f74493, 15, t0, t8);
3304   TESTDSPINST_RT_RS_SA_NODSPC("precr_sra_r.ph.w $t4, $t6, 11", 0xbd6845cd,
3305                               0x9c09e313, 11, t4, t6);
3306
3307   printf("-------- PREPEND --------\n");
3308   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  3", 0xffff86fc, 0xfffffe02,
3309                               3, t0, t1);
3310   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0x00000000, 0xfffffe06,
3311                               0, t0, t1);
3312   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  3", 0x7fffffff, 0x80000000,
3313                               3, t0, t1);
3314   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0x80000000, 0x00000000,
3315                               0, t0, t1);
3316   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0x00000000, 0xffffff23,
3317                               0, t0, t1);
3318   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  7", 0xff76947a, 0x00000000,
3319                               7, t0, t1);
3320   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0x00000035, 0xffffffc0,
3321                               0, t0, t1);
3322   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0x80000000, 0x01130b02,
3323                               0, t0, t1);
3324   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0x7ffffffe, 0xc0000001,
3325                               0, t0, t1);
3326   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0x7fffffff, 0x7fffffff,
3327                               0, t0, t1);
3328   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0x1a75980e, 0x1b4c3c1e,
3329                               0, t0, t1);
3330   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  1", 0xffffffff, 0x7ffffffc,
3331                               1, t0, t1);
3332   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 13", 0xc0000003, 0x00000000,
3333                               13, t0, t1);
3334   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  1", 0xfffffffe, 0x00000000,
3335                               1, t0, t1);
3336   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 31", 0x1ffffffe, 0x7fffffff,
3337                               31, t0, t1);
3338   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0x00000000, 0x00000000,
3339                               0, t0, t1);
3340   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 31", 0x7fffffff, 0xfffffda8,
3341                               31, t0, t1);
3342   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 12", 0xc0000007, 0xfffff6b2,
3343                               12, t0, t1);
3344   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  1", 0x002a923e, 0x1ffffff8,
3345                               1, t0, t1);
3346   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 31", 0xfffffee4, 0x00000010,
3347                               31, t0, t1);
3348   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 31", 0xf8034c6b, 0xfb766d64,
3349                               31, t0, t1);
3350   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  4", 0x7ffffffb, 0x0000002b,
3351                               4, t0, t1);
3352   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0xfffffffa, 0x7fffffff,
3353                               0, t0, t1);
3354   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  9", 0x55555555, 0x7fffffff,
3355                               9, t0, t1);
3356   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 18", 0x80000000, 0x80000005,
3357                               18, t0, t1);
3358   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0x7fffffff, 0x000004fc,
3359                               0, t0, t1);
3360   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 31", 0x0035d189, 0x80000000,
3361                               31, t0, t1);
3362   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0x8000007f, 0xff00ff00,
3363                               0, t0, t1);
3364   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 12", 0x00000000, 0x03557af6,
3365                               12, t0, t1);
3366   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0x000000e3, 0x0008f4ab,
3367                               0, t0, t1);
3368   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  2", 0x00000000, 0x00000000,
3369                               2, t0, t1);
3370   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  3", 0x0f0f0f0f, 0x00000003,
3371                               3, t0, t1);
3372   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0x002559bf, 0xdb6db6db,
3373                               0, t0, t1);
3374   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  2", 0x66666666, 0x7fffff80,
3375                               2, t0, t1);
3376   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 30", 0x80000000, 0xfa17edf5,
3377                               30, t0, t1);
3378   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  7", 0xc0000001, 0x00003cb5,
3379                               7, t0, t1);
3380   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0xc71c71c7, 0x00000335,
3381                               0, t0, t1);
3382   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0x8000001f, 0xfffffef3,
3383                               0, t0, t1);
3384   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 12", 0x00000006, 0x80000002,
3385                               12, t0, t1);
3386   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 15", 0xffffffd5, 0xf8c02863,
3387                               15, t0, t1);
3388   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 25", 0x33299df8, 0x000011fb,
3389                               25, t0, t1);
3390   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 12", 0x00000000, 0xc000000f,
3391                               12, t0, t1);
3392   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 31", 0x00000001, 0x00000000,
3393                               31, t0, t1);
3394   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  5", 0x7ffffffb, 0x7ffffffd,
3395                               5, t0, t1);
3396   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 25", 0x80000000, 0x7fffffff,
3397                               25, t0, t1);
3398   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  4", 0x0ffffffc, 0x0ffffffc,
3399                               4, t0, t1);
3400   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 31", 0xfffffe6a, 0xc000001f,
3401                               31, t0, t1);
3402   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  2", 0xfeb380e9, 0x7ffffffd,
3403                               2, t0, t1);
3404   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  1", 0x7ffffffa, 0x00000000,
3405                               1, t0, t1);
3406   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  2", 0x8000000f, 0xdb6db6db,
3407                               2, t0, t1);
3408   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 24", 0xfffd232e, 0x00001548,
3409                               24, t0, t1);
3410   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  1", 0xc000001f, 0x00000000,
3411                               1, t0, t1);
3412   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 22", 0x33333333, 0x00000000,
3413                               22, t0, t1);
3414   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 30", 0x0000db1b, 0xc0000001,
3415                               30, t0, t1);
3416   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 10", 0xffffffff, 0xe0000007,
3417                               10, t0, t1);
3418   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  1", 0x00000000, 0xffffff5f,
3419                               1, t0, t1);
3420   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 31", 0x0d2efcd1, 0x8000003f,
3421                               31, t0, t1);
3422   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  7", 0x00000000, 0xffffff6d,
3423                               7, t0, t1);
3424   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  1", 0x00081a70, 0xe4606c5a,
3425                               1, t0, t1);
3426   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 31", 0x80000000, 0xe0000003,
3427                               31, t0, t1);
3428   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0x00000000, 0xfff9ab12,
3429                               0, t0, t1);
3430   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 31", 0x80000000, 0x7fffffff,
3431                               31, t0, t1);
3432   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 17", 0xffffd894, 0x00000000,
3433                               17, t0, t1);
3434   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 31", 0x0ffffffe, 0xfff6ab08,
3435                               31, t0, t1);
3436   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 30", 0x80000000, 0x00000000,
3437                               30, t0, t1);
3438   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 14", 0x7fffffff, 0x00000006,
3439                               14, t0, t1);
3440   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  2", 0x80000000, 0x7fffffff,
3441                               2, t0, t1);
3442   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 10", 0xfffff23b, 0x00000000,
3443                               10, t0, t1);
3444   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 31", 0x80000000, 0x80000000,
3445                               31, t0, t1);
3446   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0x00000011, 0x7fffffff,
3447                               0, t0, t1);
3448   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  1", 0xfffffffa, 0x1c71c71c,
3449                               1, t0, t1);
3450   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  1", 0xcccccccc, 0xf8000001,
3451                               1, t0, t1);
3452   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 31", 0x80000000, 0x80000000,
3453                               31, t0, t1);
3454   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0xfdb739b8, 0x000000e1,
3455                               0, t0, t1);
3456   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 19", 0x7fffffff, 0x80000000,
3457                               19, t0, t1);
3458   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  1", 0xfffff216, 0x80000000,
3459                               1, t0, t1);
3460   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 31", 0x3ffffff8, 0x00000000,
3461                               31, t0, t1);
3462   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0xfea7a4f9, 0xfffffffe,
3463                               0, t0, t1);
3464   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 31", 0x7fffffff, 0x7fffffff,
3465                               31, t0, t1);
3466   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 25", 0x7fffffff, 0x00000006,
3467                               25, t0, t1);
3468   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  8", 0x7fffffff, 0x8e38e38e,
3469                               8, t0, t1);
3470   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 31", 0x00000000, 0xfffffffe,
3471                               31, t0, t1);
3472   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0x7fffffff, 0x00000000,
3473                               0, t0, t1);
3474   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 30", 0x80000000, 0xffffffd3,
3475                               30, t0, t1);
3476   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0xf0000001, 0x00000006,
3477                               0, t0, t1);
3478   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 21", 0xfffffff8, 0x00000002,
3479                               21, t0, t1);
3480   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  8", 0x66666666, 0x49249249,
3481                               8, t0, t1);
3482   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 31", 0x7fffffff, 0x000000ff,
3483                               31, t0, t1);
3484   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0x1ffffff8, 0x80000001,
3485                               0, t0, t1);
3486   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 31", 0xe0000003, 0xffffffcb,
3487                               31, t0, t1);
3488   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  2", 0xfffb2342, 0x0000001f,
3489                               2, t0, t1);
3490   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  1", 0x80000000, 0xfffffffe,
3491                               1, t0, t1);
3492   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0x03fffffe, 0x00000c17,
3493                               0, t0, t1);
3494   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  1", 0x00000000, 0xc0000003,
3495                               1, t0, t1);
3496   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 13", 0x03fffffe, 0xfffd39d5,
3497                               13, t0, t1);
3498   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  6", 0x0003192a, 0x0000d270,
3499                               6, t0, t1);
3500   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 21", 0x3ffffffe, 0x00000000,
3501                               21, t0, t1);
3502   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  2", 0x80000000, 0x80000000,
3503                               2, t0, t1);
3504   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 31", 0x1ffffff0, 0xff62154e,
3505                               31, t0, t1);
3506   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 13", 0x7fffffff, 0xffffff2e,
3507                               13, t0, t1);
3508   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  1", 0xf8000001, 0x80000000,
3509                               1, t0, t1);
3510   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 27", 0x7fffffff, 0xe0000003,
3511                               27, t0, t1);
3512   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 15", 0xe000000f, 0x0000368b,
3513                               15, t0, t1);
3514   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 25", 0x7fffffff, 0x80000000,
3515                               25, t0, t1);
3516   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 10", 0x0000029c, 0x00001460,
3517                               10, t0, t1);
3518   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 19", 0xfdd559c5, 0x000acd42,
3519                               19, t0, t1);
3520   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  3", 0x3ffffff8, 0x0081575f,
3521                               3, t0, t1);
3522   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0xffffed07, 0x00000000,
3523                               0, t0, t1);
3524   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  3", 0x7fffffff, 0x00000002,
3525                               3, t0, t1);
3526   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  6", 0x3fffffe0, 0x07fffffe,
3527                               6, t0, t1);
3528   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0x000a559a, 0x7fffffff,
3529                               0, t0, t1);
3530   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  1", 0x1e4c379a, 0x00000ae6,
3531                               1, t0, t1);
3532   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  1", 0x00000001, 0xfffffff0,
3533                               1, t0, t1);
3534   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  4", 0x0000bcb1, 0xfffffffe,
3535                               4, t0, t1);
3536   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  1", 0x002192fc, 0x7fffffff,
3537                               1, t0, t1);
3538   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  1", 0x00000000, 0xfffff7e4,
3539                               1, t0, t1);
3540   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0x7ffffff0, 0x00000000,
3541                               0, t0, t1);
3542   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  2", 0x7ffffff8, 0x80000007,
3543                               2, t0, t1);
3544   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 31", 0xfffffffa, 0xfffffffa,
3545                               31, t0, t1);
3546   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0x7ffffffa, 0x7fffffff,
3547                               0, t0, t1);
3548   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0x00000000, 0x7ffffff0,
3549                               0, t0, t1);
3550   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 31", 0x8000001f, 0x000000ff,
3551                               31, t0, t1);
3552   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 27", 0x00000000, 0x00000000,
3553                               27, t0, t1);
3554   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  1", 0x00107408, 0x07fffffc,
3555                               1, t0, t1);
3556   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 31", 0x7fffffff, 0x7fffffff,
3557                               31, t0, t1);
3558   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 31", 0xaaaaaaaa, 0xffffe12e,
3559                               31, t0, t1);
3560   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 14", 0xf8000001, 0x00000000,
3561                               14, t0, t1);
3562   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0x29fc2bb3, 0x80000000,
3563                               0, t0, t1);
3564   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 27", 0x000036c7, 0xfffffd48,
3565                               27, t0, t1);
3566   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0xffffffba, 0x0f0f0f0f,
3567                               0, t0, t1);
3568   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 30", 0xffffc303, 0x80000005,
3569                               30, t0, t1);
3570   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  7", 0xffff0000, 0x00000003,
3571                               7, t0, t1);
3572   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 29", 0xf0000003, 0xfffffffe,
3573                               29, t0, t1);
3574   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 31", 0x00000005, 0xfff4bf84,
3575                               31, t0, t1);
3576   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0xfffcc6a5, 0x7fffffff,
3577                               0, t0, t1);
3578   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0xe0000003, 0x66666666,
3579                               0, t0, t1);
3580   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  3", 0x00000000, 0x00000827,
3581                               3, t0, t1);
3582   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  4", 0x80000000, 0x7fffffff,
3583                               4, t0, t1);
3584   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0xe0000003, 0x80000000,
3585                               0, t0, t1);
3586   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 25", 0x80000000, 0x92492492,
3587                               25, t0, t1);
3588   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0x000001f9, 0x1ce10bb3,
3589                               0, t0, t1);
3590   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 17", 0x00000000, 0x3ffffffc,
3591                               17, t0, t1);
3592   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 30", 0xfffffffe, 0x00001ca3,
3593                               30, t0, t1);
3594   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 27", 0x00000de7, 0xfff0eda7,
3595                               27, t0, t1);
3596   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  1", 0x0ffffffc, 0x00000000,
3597                               1, t0, t1);
3598   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  1", 0x01e63dae, 0x8000007f,
3599                               1, t0, t1);
3600   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  3", 0x80000000, 0x000072d7,
3601                               3, t0, t1);
3602   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 31", 0x000d0717, 0xfffffffa,
3603                               31, t0, t1);
3604   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  9", 0xfffffff8, 0x80000000,
3605                               9, t0, t1);
3606   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0x00000000, 0x00000000,
3607                               0, t0, t1);
3608   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 31", 0x00006000, 0xf0000003,
3609                               31, t0, t1);
3610   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  7", 0x7fffffff, 0x07fffffc,
3611                               7, t0, t1);
3612   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 10", 0x7fffffff, 0x00000000,
3613                               10, t0, t1);
3614   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  1", 0xffffffd8, 0x00000003,
3615                               1, t0, t1);
3616   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 10", 0x7fffffff, 0x7fffffff,
3617                               10, t0, t1);
3618   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0x0000003f, 0x0000003f,
3619                               0, t0, t1);
3620   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  8", 0xfe67cb2a, 0x00000000,
3621                               8, t0, t1);
3622   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 11", 0x0000a3af, 0x7fffffff,
3623                               11, t0, t1);
3624   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0x80000000, 0xe0000003,
3625                               0, t0, t1);
3626   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  9", 0x33333333, 0x00000007,
3627                               9, t0, t1);
3628   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 22", 0x00000022, 0xfffffff1,
3629                               22, t0, t1);
3630   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  4", 0xffffe940, 0x00a6984a,
3631                               4, t0, t1);
3632   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  6", 0x80000000, 0x00000000,
3633                               6, t0, t1);
3634   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0xffffe59b, 0x80000000,
3635                               0, t0, t1);
3636   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  5", 0x80000000, 0x80000000,
3637                               5, t0, t1);
3638   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 22", 0x00000000, 0x7fffffc0,
3639                               22, t0, t1);
3640   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 14", 0x00000334, 0x8000007f,
3641                               14, t0, t1);
3642   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0x7ffffff0, 0xfffffffe,
3643                               0, t0, t1);
3644   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  4", 0xff00ff00, 0x00000000,
3645                               4, t0, t1);
3646   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 17", 0x3ffffffe, 0x80000000,
3647                               17, t0, t1);
3648   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 31", 0x80000000, 0x80000000,
3649                               31, t0, t1);
3650   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  8", 0x2b9440fc, 0x00000001,
3651                               8, t0, t1);
3652   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 10", 0x00000002, 0xffffd5c8,
3653                               10, t0, t1);
3654   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0xfff138af, 0x80000000,
3655                               0, t0, t1);
3656   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 16", 0x00000000, 0x00000000,
3657                               16, t0, t1);
3658   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  8", 0x00000002, 0xe38e38e3,
3659                               8, t0, t1);
3660   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0xf4911d04, 0x8000007f,
3661                               0, t0, t1);
3662   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0x7ffffff0, 0x00000000,
3663                               0, t0, t1);
3664   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  8", 0xffe21573, 0xffffe109,
3665                               8, t0, t1);
3666   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0x7fffffff, 0xc890ef17,
3667                               0, t0, t1);
3668   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  6", 0x80000001, 0xfffdb214,
3669                               6, t0, t1);
3670   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 28", 0xfee9b599, 0x00000000,
3671                               28, t0, t1);
3672   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  1", 0xffffe956, 0x0000016c,
3673                               1, t0, t1);
3674   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  9", 0xffee2d5e, 0x00000000,
3675                               9, t0, t1);
3676   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0xfffffffe, 0x00000000,
3677                               0, t0, t1);
3678   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  7", 0xfffff66c, 0xfffff66c,
3679                               7, t0, t1);
3680   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 15", 0x00000fb4, 0x80000000,
3681                               15, t0, t1);
3682   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  3", 0x00000000, 0x7fffffff,
3683                               3, t0, t1);
3684   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0x00000735, 0xffffffff,
3685                               0, t0, t1);
3686   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  3", 0x80000000, 0x1ffffffc,
3687                               3, t0, t1);
3688   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 24", 0xffffb926, 0x00000000,
3689                               24, t0, t1);
3690   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0x00002b8d, 0x8000007f,
3691                               0, t0, t1);
3692   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  2", 0x00000000, 0x00000017,
3693                               2, t0, t1);
3694   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0x80000000, 0xff9a0952,
3695                               0, t0, t1);
3696   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0x0f76e7cf, 0x0f76e7cf,
3697                               0, t0, t1);
3698   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 31", 0x7fffffff, 0x1c71c71c,
3699                               31, t0, t1);
3700   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  6", 0x80000001, 0xfffffffa,
3701                               6, t0, t1);
3702   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 10", 0xfffff747, 0x0000000f,
3703                               10, t0, t1);
3704   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 10", 0xe0000007, 0xe0000007,
3705                               10, t0, t1);
3706   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 27", 0xffff6c3a, 0xffffffed,
3707                               27, t0, t1);
3708   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 29", 0x7fffffff, 0x00008c98,
3709                               29, t0, t1);
3710   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0x80000004, 0x00000000,
3711                               0, t0, t1);
3712   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0x00000128, 0x0000003c,
3713                               0, t0, t1);
3714   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  3", 0x00161769, 0x00de5fe1,
3715                               3, t0, t1);
3716   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 22", 0xffffff80, 0xf0000007,
3717                               22, t0, t1);
3718   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 15", 0x00000e92, 0x7fffffff,
3719                               15, t0, t1);
3720   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 31", 0x00000000, 0x0000ffff,
3721                               31, t0, t1);
3722   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 31", 0xe0000001, 0x7fffffff,
3723                               31, t0, t1);
3724   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  6", 0x7fffffff, 0x00000000,
3725                               6, t0, t1);
3726   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 31", 0xfffffe0c, 0xfffffe0c,
3727                               31, t0, t1);
3728   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  1", 0x80000000, 0x00084488,
3729                               1, t0, t1);
3730   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  2", 0x80000000, 0x7fffffff,
3731                               2, t0, t1);
3732   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 31", 0x80000000, 0x80000000,
3733                               31, t0, t1);
3734   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 14", 0x00000000, 0xfffffffe,
3735                               14, t0, t1);
3736   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 31", 0xc71c71c7, 0x00000000,
3737                               31, t0, t1);
3738   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 15", 0x80000000, 0x00000000,
3739                               15, t0, t1);
3740   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  1", 0x07fffffc, 0x0001594b,
3741                               1, t0, t1);
3742   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  8", 0x80000000, 0x80000000,
3743                               8, t0, t1);
3744   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0x1ffffff0, 0x8000007f,
3745                               0, t0, t1);
3746   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  2", 0xffca0d15, 0x7ffffff8,
3747                               2, t0, t1);
3748   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 31", 0xfffffffc, 0x00000000,
3749                               31, t0, t1);
3750   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  4", 0x00000002, 0x80000000,
3751                               4, t0, t1);
3752   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 22", 0x80000000, 0x00293c72,
3753                               22, t0, t1);
3754   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 10", 0xffffff58, 0xffffff80,
3755                               10, t0, t1);
3756   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  3", 0x00ff00ff, 0x80000000,
3757                               3, t0, t1);
3758   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 31", 0xffffff80, 0xf0f0f0f0,
3759                               31, t0, t1);
3760   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 19", 0x000037a4, 0x0012b63d,
3761                               19, t0, t1);
3762   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  7", 0x3ffffff8, 0xfffffff8,
3763                               7, t0, t1);
3764   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 29", 0x00000000, 0xffff4929,
3765                               29, t0, t1);
3766   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  1", 0xfffffff0, 0xf8000003,
3767                               1, t0, t1);
3768   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 24", 0x00000000, 0x7fffffff,
3769                               24, t0, t1);
3770   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 15", 0x00000007, 0x00000009,
3771                               15, t0, t1);
3772   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 15", 0xffffff9d, 0xffffffe0,
3773                               15, t0, t1);
3774   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 25", 0xfffe3d99, 0x80000000,
3775                               25, t0, t1);
3776   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  7", 0x00000000, 0x00000000,
3777                               7, t0, t1);
3778   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 31", 0x80000005, 0xfef34c96,
3779                               31, t0, t1);
3780   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 29", 0xffffffe8, 0x7fffffff,
3781                               29, t0, t1);
3782   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 31", 0x00000000, 0x0ffffff8,
3783                               31, t0, t1);
3784   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0x7ffffffe, 0xff0fceda,
3785                               0, t0, t1);
3786   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0x00000000, 0x0002e398,
3787                               0, t0, t1);
3788   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0x00000000, 0x00000000,
3789                               0, t0, t1);
3790   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t2, $t3,  1", 0x045fb232, 0x00028632,
3791                               1, t2, t3);
3792   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t4, $t1,  4", 0xfabc3435, 0xfabc3421,
3793                               4, t4, t1);
3794   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t6, $t7, 17", 0x07654cb8, 0x734680bc,
3795                               17, t6, t7);
3796   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t5, $t3, 31", 0xf973437b, 0x80000000,
3797                               31, t5, t3);
3798   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t2, $t4,  8", 0x00ff0001, 0xff01ffff,
3799                               8, t2, t4);
3800   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t8, 11", 0x7fff7fff, 0x7fff7fff,
3801                               11, t0, t8);
3802   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t4, $t6, 13", 0x0000c420, 0x00000555,
3803                               13, t4, t6);
3804   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  2", 0x00000000, 0x00000000,
3805                               2, t0, t1);
3806   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t2, $t3,  6", 0x80000000, 0x80000000,
3807                               6, t2, t3);
3808   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t4, $t1,  7", 0xaaaaaaaa, 0x55555555,
3809                               7, t4, t1);
3810   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t6, $t7, 19", 0x00000018, 0xffff2435,
3811                               19, t6, t7);
3812   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t5, $t3, 31", 0xbabababa, 0xabababab,
3813                               31, t5, t3);
3814   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t2, $t4,  4", 0xf0f0f0f0, 0xfc79b4d2,
3815                               4, t2, t4);
3816   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t8, 12", 0xfbde3976, 0x00000000,
3817                               12, t0, t8);
3818   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t4, $t6, 10", 0x23534870, 0x00354565,
3819                               10, t4, t6);
3820   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1, 20", 0x980b7cde, 0x00086755,
3821                               20, t0, t1);
3822   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t2, $t3, 21", 0x00000018, 0x8f8f8f8f,
3823                               21, t2, t3);
3824   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t4, $t1, 24", 0x92784656, 0xeeeeeeee,
3825                               24, t4, t1);
3826   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t6, $t7, 27", 0xcacacaca, 0x1bdbdbdb,
3827                               27, t6, t7);
3828   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t5, $t3,  1", 0xbacabaca, 0xdecadeca,
3829                               1, t5, t3);
3830   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t2, $t4, 18", 0x12fadeb4, 0x93474bde,
3831                               18, t2, t4);
3832   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t8, 10", 0x7c000790, 0xfc0007ff,
3833                               10, t0, t8);
3834   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t4, $t6, 16", 0xffffffff, 0xffffffff,
3835                               16, t4, t6);
3836   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t1,  0", 0xf2f4df1f, 0xcb4ab48f,
3837                               0, t0, t1);
3838   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t2, $t3, 14", 0x435f909a, 0xaf8f7e18,
3839                               14, t2, t3);
3840   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t4, $t1,  5", 0x2106ba5f, 0x87df4510,
3841                               5, t4, t1);
3842   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t6, $t7,  7", 0x246a6376, 0xabf4e8e1,
3843                               7, t6, t7);
3844   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t5, $t3,  9", 0x1046a1a3, 0xf4c0eeac,
3845                               9, t5, t3);
3846   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t2, $t4,  3", 0x638ca515, 0x006a54f2,
3847                               3, t2, t4);
3848   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t0, $t8, 15", 0xf63e7a9d, 0x79f74493,
3849                               15, t0, t8);
3850   TESTDSPINST_RT_RS_SA_NODSPC("prepend $t4, $t6, 11", 0xbd6845cd, 0x9c09e313,
3851                               11, t4, t6);
3852
3853   printf("-------- SHRA.QB --------\n");
3854   TESTDSPINST_RD_RT_SA_NODSPC("shra.qb $t0, $t1, 1", 0x00000000, 1, t0, t1);
3855   TESTDSPINST_RD_RT_SA_NODSPC("shra.qb $t2, $t3, 2", 0x00028632, 2, t2, t3);
3856   TESTDSPINST_RD_RT_SA_NODSPC("shra.qb $t4, $t1, 3", 0xfabc3421, 3, t4, t1);
3857   TESTDSPINST_RD_RT_SA_NODSPC("shra.qb $t6, $t7, 4", 0x734680bc, 4, t6, t7);
3858   TESTDSPINST_RD_RT_SA_NODSPC("shra.qb $t5, $t3, 0", 0x80000000, 0, t5, t3);
3859   TESTDSPINST_RD_RT_SA_NODSPC("shra.qb $t2, $t4, 7", 0xff01ffff, 7, t2, t4);
3860   TESTDSPINST_RD_RT_SA_NODSPC("shra.qb $t0, $t8, 7", 0x7fff7fff, 7, t0, t8);
3861   TESTDSPINST_RD_RT_SA_NODSPC("shra.qb $t4, $t6, 0", 0x00000555, 0, t4, t6);
3862   TESTDSPINST_RD_RT_SA_NODSPC("shra.qb $t0, $t1, 1", 0x00000000, 1, t0, t1);
3863   TESTDSPINST_RD_RT_SA_NODSPC("shra.qb $t2, $t3, 2", 0x80000000, 2, t2, t3);
3864   TESTDSPINST_RD_RT_SA_NODSPC("shra.qb $t4, $t1, 3", 0x55555555, 3, t4, t1);
3865   TESTDSPINST_RD_RT_SA_NODSPC("shra.qb $t6, $t7, 4", 0xffff2435, 4, t6, t7);
3866   TESTDSPINST_RD_RT_SA_NODSPC("shra.qb $t5, $t3, 5", 0xabababab, 5, t5, t3);
3867   TESTDSPINST_RD_RT_SA_NODSPC("shra.qb $t2, $t4, 6", 0xfc79b4d2, 6, t2, t4);
3868   TESTDSPINST_RD_RT_SA_NODSPC("shra.qb $t0, $t8, 7", 0x00000000, 7, t0, t8);
3869   TESTDSPINST_RD_RT_SA_NODSPC("shra.qb $t4, $t6, 0", 0x00354565, 0, t4, t6);
3870   TESTDSPINST_RD_RT_SA_NODSPC("shra.qb $t0, $t1, 1", 0x00086755, 1, t0, t1);
3871   TESTDSPINST_RD_RT_SA_NODSPC("shra.qb $t2, $t3, 2", 0x8f8f8f8f, 2, t2, t3);
3872   TESTDSPINST_RD_RT_SA_NODSPC("shra.qb $t4, $t1, 3", 0xeeeeeeee, 3, t4, t1);
3873   TESTDSPINST_RD_RT_SA_NODSPC("shra.qb $t6, $t7, 4", 0x1bdbdbdb, 4, t6, t7);
3874   TESTDSPINST_RD_RT_SA_NODSPC("shra.qb $t5, $t3, 5", 0xdecadeca, 5, t5, t3);
3875   TESTDSPINST_RD_RT_SA_NODSPC("shra.qb $t2, $t4, 6", 0x93474bde, 6, t2, t4);
3876   TESTDSPINST_RD_RT_SA_NODSPC("shra.qb $t0, $t8, 7", 0xfc0007ff, 7, t0, t8);
3877   TESTDSPINST_RD_RT_SA_NODSPC("shra.qb $t4, $t6, 0", 0xffffffff, 0, t4, t6);
3878   TESTDSPINST_RD_RT_SA_NODSPC("shra.qb $t0, $t1, 3", 0xcb4ab48f, 3, t0, t1);
3879   TESTDSPINST_RD_RT_SA_NODSPC("shra.qb $t2, $t3, 4", 0xaf8f7e18, 4, t2, t3);
3880   TESTDSPINST_RD_RT_SA_NODSPC("shra.qb $t4, $t1, 0", 0x87df4510, 0, t4, t1);
3881   TESTDSPINST_RD_RT_SA_NODSPC("shra.qb $t6, $t7, 7", 0xabf4e8e1, 7, t6, t7);
3882   TESTDSPINST_RD_RT_SA_NODSPC("shra.qb $t5, $t3, 7", 0xf4c0eeac, 7, t5, t3);
3883   TESTDSPINST_RD_RT_SA_NODSPC("shra.qb $t2, $t4, 5", 0x006a54f2, 5, t2, t4);
3884   TESTDSPINST_RD_RT_SA_NODSPC("shra.qb $t0, $t8, 1", 0x79f74493, 1, t0, t8);
3885   TESTDSPINST_RD_RT_SA_NODSPC("shra.qb $t4, $t6, 2", 0x9c09e313, 2, t4, t6);
3886
3887   printf("-------- SHRA_R.QB --------\n");
3888   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.qb $t0, $t1, 1", 0x00000000, 1, t0, t1);
3889   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.qb $t2, $t3, 2", 0x00028632, 2, t2, t3);
3890   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.qb $t4, $t1, 3", 0xfabc3421, 3, t4, t1);
3891   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.qb $t6, $t7, 4", 0x734680bc, 4, t6, t7);
3892   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.qb $t5, $t3, 0", 0x80000000, 0, t5, t3);
3893   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.qb $t2, $t4, 7", 0xff01ffff, 7, t2, t4);
3894   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.qb $t0, $t8, 7", 0x7fff7fff, 7, t0, t8);
3895   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.qb $t4, $t6, 0", 0x00000555, 0, t4, t6);
3896   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.qb $t0, $t1, 1", 0x00000000, 1, t0, t1);
3897   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.qb $t2, $t3, 2", 0x80000000, 2, t2, t3);
3898   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.qb $t4, $t1, 3", 0x55555555, 3, t4, t1);
3899   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.qb $t6, $t7, 4", 0xffff2435, 4, t6, t7);
3900   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.qb $t5, $t3, 5", 0xabababab, 5, t5, t3);
3901   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.qb $t2, $t4, 6", 0xfc79b4d2, 6, t2, t4);
3902   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.qb $t0, $t8, 7", 0x00000000, 7, t0, t8);
3903   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.qb $t4, $t6, 0", 0x00354565, 0, t4, t6);
3904   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.qb $t0, $t1, 1", 0x00086755, 1, t0, t1);
3905   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.qb $t2, $t3, 2", 0x8f8f8f8f, 2, t2, t3);
3906   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.qb $t4, $t1, 3", 0xeeeeeeee, 3, t4, t1);
3907   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.qb $t6, $t7, 4", 0x1bdbdbdb, 4, t6, t7);
3908   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.qb $t5, $t3, 5", 0xdecadeca, 5, t5, t3);
3909   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.qb $t2, $t4, 6", 0x93474bde, 6, t2, t4);
3910   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.qb $t0, $t8, 7", 0xfc0007ff, 7, t0, t8);
3911   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.qb $t4, $t6, 0", 0xffffffff, 0, t4, t6);
3912   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.qb $t0, $t1, 3", 0xcb4ab48f, 3, t0, t1);
3913   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.qb $t2, $t3, 4", 0xaf8f7e18, 4, t2, t3);
3914   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.qb $t4, $t1, 0", 0x87df4510, 0, t4, t1);
3915   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.qb $t6, $t7, 7", 0xabf4e8e1, 7, t6, t7);
3916   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.qb $t5, $t3, 7", 0xf4c0eeac, 7, t5, t3);
3917   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.qb $t2, $t4, 5", 0x006a54f2, 5, t2, t4);
3918   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.qb $t0, $t8, 1", 0x79f74493, 1, t0, t8);
3919   TESTDSPINST_RD_RT_SA_NODSPC("shra_r.qb $t4, $t6, 2", 0x9c09e313, 2, t4, t6);
3920
3921   printf("-------- SHRAV.QB --------\n");
3922   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x3277ffff, 0x00000001);
3923   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x00000005, 0x73741802);
3924   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x00000000, 0x80003403);
3925   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x4387ffff, 0x73468004);
3926   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x4387ffff, 0x80000000);
3927   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x80000000, 0xffffff07);
3928   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x80000000, 0x7fff7f07);
3929   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x00000005, 0x00000505);
3930   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x4387ffff, 0x00000000);
3931   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x80008000, 0x80000000);
3932   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x4387ffff, 0x55555555);
3933   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x80008000, 0xffff2434);
3934   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0xffff4387, 0xabababa3);
3935   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x80008000, 0xfc79b4d2);
3936   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x80000000, 0x00000000);
3937   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x43871234, 0x00354561);
3938   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x1234ffff, 0x00086755);
3939   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x4387ffff, 0x8f8f8f8f);
3940   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x80000000, 0xeeeeeeee);
3941   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0xffff6543, 0x1bdbdbdb);
3942   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0xffffffff, 0xdecadeca);
3943   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0xffff4387, 0x93474bde);
3944   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x4387cccc, 0xfc0007ff);
3945   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x4387ffff, 0xffffffff);
3946   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0xffffffff, 0xdecadeca);
3947   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x4387ffff, 0xbacabaca);
3948   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x80008000, 0x3545ff80);
3949   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x80000000, 0x734680bc);
3950   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x4387ffff, 0xc4dbfe20);
3951   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x80008000, 0x00000000);
3952   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x4387ffff, 0x55555555);
3953   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0xffff4387, 0xad80bce4);
3954   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x7fffffff, 0x00000000);
3955   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x80000000, 0x00000000);
3956   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0xfabc3435, 0xfabc3421);
3957   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x07654cb8, 0x734680bc);
3958   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0xf973437b, 0x80000000);
3959   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x00ff0001, 0xff01ffff);
3960   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x7fff7004, 0x7fff7fff);
3961   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x0000c420, 0x00000555);
3962   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x00000000, 0x00000000);
3963   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x80000000, 0x80000000);
3964   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0xaaaaaaaa, 0x55555555);
3965   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x00000018, 0xffff2435);
3966   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0xbabababa, 0xabababab);
3967   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0xf0f0f0f0, 0xfc79b4d2);
3968   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0xfbde3976, 0x00000000);
3969   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x23534870, 0x00354565);
3970   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x980b7cde, 0x00086755);
3971   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x00000018, 0x8f8f8f8f);
3972   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x92784656, 0xeeeeeeee);
3973   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0xcacacaca, 0x1bdbdbdb);
3974   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0xbacabaca, 0xdecadeca);
3975   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x12fadeb4, 0x93474bde);
3976   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x7c000790, 0xfc0007ff);
3977   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0xffffffff, 0xffffffff);
3978   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0xf2f4df1f, 0xcb4ab48f);
3979   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x435f909a, 0xaf8f7e18);
3980   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x2106ba5f, 0x87df4510);
3981   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x246a6376, 0xabf4e8e1);
3982   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x1046a1a3, 0xf4c0eeac);
3983   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0x638ca515, 0x006a54f2);
3984   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0xf63e7a9d, 0x79f74493);
3985   TESTDSPINST_RD_RT_RS_NODSPC("shrav.qb", 0xbd6845cd, 0x9c09e313);
3986
3987   printf("-------- SHRAV_R.QB --------\n");
3988   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x3277ffff, 0x00000001);
3989   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x00000005, 0x73741802);
3990   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x00000000, 0x80003403);
3991   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x4387ffff, 0x73468004);
3992   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x4387ffff, 0x80000000);
3993   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x80000000, 0xffffff07);
3994   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x80000000, 0x7fff7f07);
3995   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x00000005, 0x00000505);
3996   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x4387ffff, 0x00000000);
3997   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x80008000, 0x80000000);
3998   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x4387ffff, 0x55555555);
3999   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x80008000, 0xffff2434);
4000   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0xffff4387, 0xabababa3);
4001   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x80008000, 0xfc79b4d2);
4002   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x80000000, 0x00000000);
4003   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x43871234, 0x00354561);
4004   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x1234ffff, 0x00086755);
4005   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x4387ffff, 0x8f8f8f8f);
4006   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x80000000, 0xeeeeeeee);
4007   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0xffff6543, 0x1bdbdbdb);
4008   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0xffffffff, 0xdecadeca);
4009   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0xffff4387, 0x93474bde);
4010   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x4387cccc, 0xfc0007ff);
4011   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x4387ffff, 0xffffffff);
4012   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0xffffffff, 0xdecadeca);
4013   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x4387ffff, 0xbacabaca);
4014   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x80008000, 0x3545ff80);
4015   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x80000000, 0x734680bc);
4016   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x4387ffff, 0xc4dbfe20);
4017   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x80008000, 0x00000000);
4018   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x4387ffff, 0x55555555);
4019   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0xffff4387, 0xad80bce4);
4020   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x7fffffff, 0x00000000);
4021   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x80000000, 0x00000000);
4022   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0xfabc3435, 0xfabc3421);
4023   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x07654cb8, 0x734680bc);
4024   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0xf973437b, 0x80000000);
4025   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x00ff0001, 0xff01ffff);
4026   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x7fff7004, 0x7fff7fff);
4027   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x0000c420, 0x00000555);
4028   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x00000000, 0x00000000);
4029   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x80000000, 0x80000000);
4030   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0xaaaaaaaa, 0x55555555);
4031   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x00000018, 0xffff2435);
4032   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0xbabababa, 0xabababab);
4033   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0xf0f0f0f0, 0xfc79b4d2);
4034   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0xfbde3976, 0x00000000);
4035   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x23534870, 0x00354565);
4036   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x980b7cde, 0x00086755);
4037   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x00000018, 0x8f8f8f8f);
4038   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x92784656, 0xeeeeeeee);
4039   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0xcacacaca, 0x1bdbdbdb);
4040   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0xbacabaca, 0xdecadeca);
4041   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x12fadeb4, 0x93474bde);
4042   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x7c000790, 0xfc0007ff);
4043   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0xffffffff, 0xffffffff);
4044   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0xf2f4df1f, 0xcb4ab48f);
4045   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x435f909a, 0xaf8f7e18);
4046   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x2106ba5f, 0x87df4510);
4047   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x246a6376, 0xabf4e8e1);
4048   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x1046a1a3, 0xf4c0eeac);
4049   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0x638ca515, 0x006a54f2);
4050   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0xf63e7a9d, 0x79f74493);
4051   TESTDSPINST_RD_RT_RS_NODSPC("shrav_r.qb", 0xbd6845cd, 0x9c09e313);
4052
4053   printf("-------- SHRL.PH --------\n");
4054   TESTDSPINST_RD_RT_SA_NODSPC("shrl.ph $t0, $t1,  0", 0x00000000,  0, t0, t1);
4055   TESTDSPINST_RD_RT_SA_NODSPC("shrl.ph $t2, $t3,  1", 0x00028632,  1, t2, t3);
4056   TESTDSPINST_RD_RT_SA_NODSPC("shrl.ph $t4, $t1,  2", 0xfabc3421,  2, t4, t1);
4057   TESTDSPINST_RD_RT_SA_NODSPC("shrl.ph $t6, $t7,  3", 0x734680bc,  3, t6, t7);
4058   TESTDSPINST_RD_RT_SA_NODSPC("shrl.ph $t5, $t3,  4", 0x80000000,  4, t5, t3);
4059   TESTDSPINST_RD_RT_SA_NODSPC("shrl.ph $t2, $t4,  5", 0xff01ffff,  5, t2, t4);
4060   TESTDSPINST_RD_RT_SA_NODSPC("shrl.ph $t0, $t8,  6", 0x7fff7fff,  6, t0, t8);
4061   TESTDSPINST_RD_RT_SA_NODSPC("shrl.ph $t4, $t6,  7", 0x00000555,  7, t4, t6);
4062   TESTDSPINST_RD_RT_SA_NODSPC("shrl.ph $t0, $t1,  8", 0x00000000,  8, t0, t1);
4063   TESTDSPINST_RD_RT_SA_NODSPC("shrl.ph $t2, $t3,  9", 0x80000000,  9, t2, t3);
4064   TESTDSPINST_RD_RT_SA_NODSPC("shrl.ph $t4, $t1, 10", 0x55555555, 10, t4, t1);
4065   TESTDSPINST_RD_RT_SA_NODSPC("shrl.ph $t6, $t7, 11", 0xffff2435, 11, t6, t7);
4066   TESTDSPINST_RD_RT_SA_NODSPC("shrl.ph $t5, $t3, 12", 0xabababab, 12, t5, t3);
4067   TESTDSPINST_RD_RT_SA_NODSPC("shrl.ph $t2, $t4, 13", 0xfc79b4d2, 13, t2, t4);
4068   TESTDSPINST_RD_RT_SA_NODSPC("shrl.ph $t0, $t8, 14", 0x00000000, 14, t0, t8);
4069   TESTDSPINST_RD_RT_SA_NODSPC("shrl.ph $t4, $t6, 15", 0x00354565, 15, t4, t6);
4070   TESTDSPINST_RD_RT_SA_NODSPC("shrl.ph $t0, $t1,  0", 0x00086755,  0, t0, t1);
4071   TESTDSPINST_RD_RT_SA_NODSPC("shrl.ph $t2, $t3,  1", 0x8f8f8f8f,  1, t2, t3);
4072   TESTDSPINST_RD_RT_SA_NODSPC("shrl.ph $t4, $t1,  2", 0xeeeeeeee,  2, t4, t1);
4073   TESTDSPINST_RD_RT_SA_NODSPC("shrl.ph $t6, $t7,  3", 0x1bdbdbdb,  3, t6, t7);
4074   TESTDSPINST_RD_RT_SA_NODSPC("shrl.ph $t5, $t3,  4", 0xdecadeca,  4, t5, t3);
4075   TESTDSPINST_RD_RT_SA_NODSPC("shrl.ph $t2, $t4,  5", 0x93474bde,  5, t2, t4);
4076   TESTDSPINST_RD_RT_SA_NODSPC("shrl.ph $t0, $t8,  6", 0xfc0007ff,  6, t0, t8);
4077   TESTDSPINST_RD_RT_SA_NODSPC("shrl.ph $t4, $t6,  7", 0xffffffff,  7, t4, t6);
4078   TESTDSPINST_RD_RT_SA_NODSPC("shrl.ph $t0, $t1,  8", 0xcb4ab48f,  8, t0, t1);
4079   TESTDSPINST_RD_RT_SA_NODSPC("shrl.ph $t2, $t3,  9", 0xaf8f7e18,  9, t2, t3);
4080   TESTDSPINST_RD_RT_SA_NODSPC("shrl.ph $t4, $t1, 10", 0x87df4510, 10, t4, t1);
4081   TESTDSPINST_RD_RT_SA_NODSPC("shrl.ph $t6, $t7, 11", 0xabf4e8e1, 11, t6, t7);
4082   TESTDSPINST_RD_RT_SA_NODSPC("shrl.ph $t5, $t3, 12", 0xf4c0eeac, 12, t5, t3);
4083   TESTDSPINST_RD_RT_SA_NODSPC("shrl.ph $t2, $t4, 13", 0x006a54f2, 13, t2, t4);
4084   TESTDSPINST_RD_RT_SA_NODSPC("shrl.ph $t0, $t8, 14", 0x79f74493, 14, t0, t8);
4085   TESTDSPINST_RD_RT_SA_NODSPC("shrl.ph $t4, $t6, 15", 0x9c09e313, 15, t4, t6);
4086
4087   printf("-------- SHRLV.PH --------\n");
4088   TESTDSPINST_RD_RS_RT_NODSPC("shrlv.ph $t0, $t1, $t2", 0x7fffffff, 0x00000000,
4089                               t0, t1, t2);
4090   TESTDSPINST_RD_RS_RT_NODSPC("shrlv.ph $t2, $t3, $t4", 0x80000000, 0x00000000,
4091                               t2, t3, t4);
4092   TESTDSPINST_RD_RS_RT_NODSPC("shrlv.ph $t4, $t1, $t5", 0xfabc3435, 0xfabc3421,
4093                               t4, t1, t5);
4094   TESTDSPINST_RD_RS_RT_NODSPC("shrlv.ph $t6, $t7, $t3", 0x07654cb8, 0x734680bc,
4095                               t6, t7, t3);
4096   TESTDSPINST_RD_RS_RT_NODSPC("shrlv.ph $t5, $t3, $t2", 0xf973437b, 0x80000000,
4097                               t5, t3, t2);
4098   TESTDSPINST_RD_RS_RT_NODSPC("shrlv.ph $t2, $t4, $t8", 0x00ff0001, 0xff01ffff,
4099                               t2, t4, t8);
4100   TESTDSPINST_RD_RS_RT_NODSPC("shrlv.ph $t0, $t8, $t0", 0x7fff7004, 0x7fff7fff,
4101                               t0, t8, t0);
4102   TESTDSPINST_RD_RS_RT_NODSPC("shrlv.ph $t4, $t6, $t1", 0x0000c420, 0x00000555,
4103                               t4, t6, t1);
4104   TESTDSPINST_RD_RS_RT_NODSPC("shrlv.ph $t0, $t1, $t2", 0x00000000, 0x00000000,
4105                               t0, t1, t2);
4106   TESTDSPINST_RD_RS_RT_NODSPC("shrlv.ph $t2, $t3, $t4", 0x80000000, 0x80000000,
4107                               t2, t3, t4);
4108   TESTDSPINST_RD_RS_RT_NODSPC("shrlv.ph $t4, $t1, $t5", 0xaaaaaaaa, 0x55555555,
4109                               t4, t1, t5);
4110   TESTDSPINST_RD_RS_RT_NODSPC("shrlv.ph $t6, $t7, $t3", 0x00000018, 0xffff2435,
4111                               t6, t7, t3);
4112   TESTDSPINST_RD_RS_RT_NODSPC("shrlv.ph $t5, $t3, $t2", 0xbabababa, 0xabababab,
4113                               t5, t3, t2);
4114   TESTDSPINST_RD_RS_RT_NODSPC("shrlv.ph $t2, $t4, $t8", 0xf0f0f0f0, 0xfc79b4d2,
4115                               t2, t4, t8);
4116   TESTDSPINST_RD_RS_RT_NODSPC("shrlv.ph $t0, $t8, $t0", 0xfbde3976, 0x00000000,
4117                               t0, t8, t0);
4118   TESTDSPINST_RD_RS_RT_NODSPC("shrlv.ph $t4, $t6, $t1", 0x23534870, 0x00354565,
4119                               t4, t6, t1);
4120   TESTDSPINST_RD_RS_RT_NODSPC("shrlv.ph $t0, $t1, $t2", 0x980b7cde, 0x00086755,
4121                               t0, t1, t2);
4122   TESTDSPINST_RD_RS_RT_NODSPC("shrlv.ph $t2, $t3, $t4", 0x00000018, 0x8f8f8f8f,
4123                               t2, t3, t4);
4124   TESTDSPINST_RD_RS_RT_NODSPC("shrlv.ph $t4, $t1, $t5", 0x92784656, 0xeeeeeeee,
4125                               t4, t1, t5);
4126   TESTDSPINST_RD_RS_RT_NODSPC("shrlv.ph $t6, $t7, $t3", 0xcacacaca, 0x1bdbdbdb,
4127                               t6, t7, t3);
4128   TESTDSPINST_RD_RS_RT_NODSPC("shrlv.ph $t5, $t3, $t2", 0xbacabaca, 0xdecadeca,
4129                               t5, t3, t2);
4130   TESTDSPINST_RD_RS_RT_NODSPC("shrlv.ph $t2, $t4, $t8", 0x12fadeb4, 0x93474bde,
4131                               t2, t4, t8);
4132   TESTDSPINST_RD_RS_RT_NODSPC("shrlv.ph $t0, $t8, $t0", 0x7c000790, 0xfc0007ff,
4133                               t0, t8, t0);
4134   TESTDSPINST_RD_RS_RT_NODSPC("shrlv.ph $t4, $t6, $t1", 0xffffffff, 0xffffffff,
4135                               t4, t6, t1);
4136   TESTDSPINST_RD_RS_RT_NODSPC("shrlv.ph $t0, $t1, $t2", 0xf2f4df1f, 0xcb4ab48f,
4137                               t0, t1, t2);
4138   TESTDSPINST_RD_RS_RT_NODSPC("shrlv.ph $t2, $t3, $t4", 0x435f909a, 0xaf8f7e18,
4139                               t2, t3, t4);
4140   TESTDSPINST_RD_RS_RT_NODSPC("shrlv.ph $t4, $t1, $t5", 0x2106ba5f, 0x87df4510,
4141                               t4, t1, t5);
4142   TESTDSPINST_RD_RS_RT_NODSPC("shrlv.ph $t6, $t7, $t3", 0x246a6376, 0xabf4e8e1,
4143                               t6, t7, t3);
4144   TESTDSPINST_RD_RS_RT_NODSPC("shrlv.ph $t5, $t3, $t2", 0x1046a1a3, 0xf4c0eeac,
4145                               t5, t3, t2);
4146   TESTDSPINST_RD_RS_RT_NODSPC("shrlv.ph $t2, $t4, $t8", 0x638ca515, 0x006a54f2,
4147                               t2, t4, t8);
4148   TESTDSPINST_RD_RS_RT_NODSPC("shrlv.ph $t0, $t8, $t0", 0xf63e7a9d, 0x79f74493,
4149                               t0, t8, t0);
4150   TESTDSPINST_RD_RS_RT_NODSPC("shrlv.ph $t4, $t6, $t1", 0xbd6845cd, 0x9c09e313,
4151                               t4, t6, t1);
4152
4153   printf("-------- SUBQH.PH --------\n");
4154   TESTDSPINST_RD_RS_RT_NODSPC("subqh.ph $t0, $t1, $t2", 0x7fffffff, 0x00000000,
4155                               t0, t1, t2);
4156   TESTDSPINST_RD_RS_RT_NODSPC("subqh.ph $t2, $t3, $t4", 0x80000000, 0x00000000,
4157                               t2, t3, t4);
4158   TESTDSPINST_RD_RS_RT_NODSPC("subqh.ph $t4, $t1, $t5", 0xfabc3435, 0xfabc3421,
4159                               t4, t1, t5);
4160   TESTDSPINST_RD_RS_RT_NODSPC("subqh.ph $t6, $t7, $t3", 0x07654cb8, 0x734680bc,
4161                               t6, t7, t3);
4162   TESTDSPINST_RD_RS_RT_NODSPC("subqh.ph $t5, $t3, $t2", 0xf973437b, 0x80000000,
4163                               t5, t3, t2);
4164   TESTDSPINST_RD_RS_RT_NODSPC("subqh.ph $t2, $t4, $t8", 0x00ff0001, 0xff01ffff,
4165                               t2, t4, t8);
4166   TESTDSPINST_RD_RS_RT_NODSPC("subqh.ph $t0, $t8, $t0", 0x7fff7004, 0x7fff7fff,
4167                               t0, t8, t0);
4168   TESTDSPINST_RD_RS_RT_NODSPC("subqh.ph $t4, $t6, $t1", 0x0000c420, 0x00000555,
4169                               t4, t6, t1);
4170   TESTDSPINST_RD_RS_RT_NODSPC("subqh.ph $t0, $t1, $t2", 0x00000000, 0x00000000,
4171                               t0, t1, t2);
4172   TESTDSPINST_RD_RS_RT_NODSPC("subqh.ph $t2, $t3, $t4", 0x80000000, 0x80000000,
4173                               t2, t3, t4);
4174   TESTDSPINST_RD_RS_RT_NODSPC("subqh.ph $t4, $t1, $t5", 0xaaaaaaaa, 0x55555555,
4175                               t4, t1, t5);
4176   TESTDSPINST_RD_RS_RT_NODSPC("subqh.ph $t6, $t7, $t3", 0x00000018, 0xffff2435,
4177                               t6, t7, t3);
4178   TESTDSPINST_RD_RS_RT_NODSPC("subqh.ph $t5, $t3, $t2", 0xbabababa, 0xabababab,
4179                               t5, t3, t2);
4180   TESTDSPINST_RD_RS_RT_NODSPC("subqh.ph $t2, $t4, $t8", 0xf0f0f0f0, 0xfc79b4d2,
4181                               t2, t4, t8);
4182   TESTDSPINST_RD_RS_RT_NODSPC("subqh.ph $t0, $t8, $t0", 0xfbde3976, 0x00000000,
4183                               t0, t8, t0);
4184   TESTDSPINST_RD_RS_RT_NODSPC("subqh.ph $t4, $t6, $t1", 0x23534870, 0x00354565,
4185                               t4, t6, t1);
4186   TESTDSPINST_RD_RS_RT_NODSPC("subqh.ph $t0, $t1, $t2", 0x980b7cde, 0x00086755,
4187                               t0, t1, t2);
4188   TESTDSPINST_RD_RS_RT_NODSPC("subqh.ph $t2, $t3, $t4", 0x00000018, 0x8f8f8f8f,
4189                               t2, t3, t4);
4190   TESTDSPINST_RD_RS_RT_NODSPC("subqh.ph $t4, $t1, $t5", 0x92784656, 0xeeeeeeee,
4191                               t4, t1, t5);
4192   TESTDSPINST_RD_RS_RT_NODSPC("subqh.ph $t6, $t7, $t3", 0xcacacaca, 0x1bdbdbdb,
4193                               t6, t7, t3);
4194   TESTDSPINST_RD_RS_RT_NODSPC("subqh.ph $t5, $t3, $t2", 0xbacabaca, 0xdecadeca,
4195                               t5, t3, t2);
4196   TESTDSPINST_RD_RS_RT_NODSPC("subqh.ph $t2, $t4, $t8", 0x12fadeb4, 0x93474bde,
4197                               t2, t4, t8);
4198   TESTDSPINST_RD_RS_RT_NODSPC("subqh.ph $t0, $t8, $t0", 0x7c000790, 0xfc0007ff,
4199                               t0, t8, t0);
4200   TESTDSPINST_RD_RS_RT_NODSPC("subqh.ph $t4, $t6, $t1", 0xffffffff, 0xffffffff,
4201                               t4, t6, t1);
4202   TESTDSPINST_RD_RS_RT_NODSPC("subqh.ph $t0, $t1, $t2", 0xf2f4df1f, 0xcb4ab48f,
4203                               t0, t1, t2);
4204   TESTDSPINST_RD_RS_RT_NODSPC("subqh.ph $t2, $t3, $t4", 0x435f909a, 0xaf8f7e18,
4205                               t2, t3, t4);
4206   TESTDSPINST_RD_RS_RT_NODSPC("subqh.ph $t4, $t1, $t5", 0x2106ba5f, 0x87df4510,
4207                               t4, t1, t5);
4208   TESTDSPINST_RD_RS_RT_NODSPC("subqh.ph $t6, $t7, $t3", 0x246a6376, 0xabf4e8e1,
4209                               t6, t7, t3);
4210   TESTDSPINST_RD_RS_RT_NODSPC("subqh.ph $t5, $t3, $t2", 0x1046a1a3, 0xf4c0eeac,
4211                               t5, t3, t2);
4212   TESTDSPINST_RD_RS_RT_NODSPC("subqh.ph $t2, $t4, $t8", 0x638ca515, 0x006a54f2,
4213                               t2, t4, t8);
4214   TESTDSPINST_RD_RS_RT_NODSPC("subqh.ph $t0, $t8, $t0", 0xf63e7a9d, 0x79f74493,
4215                               t0, t8, t0);
4216   TESTDSPINST_RD_RS_RT_NODSPC("subqh.ph $t4, $t6, $t1", 0xbd6845cd, 0x9c09e313,
4217                               t4, t6, t1);
4218
4219   printf("-------- SUBQH_R.PH --------\n");
4220   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.ph $t0, $t1, $t2", 0x7fffffff,
4221                               0x00000000, t0, t1, t2);
4222   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.ph $t2, $t3, $t4", 0x80000000,
4223                               0x00000000, t2, t3, t4);
4224   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.ph $t4, $t1, $t5", 0xfabc3435,
4225                               0xfabc3421, t4, t1, t5);
4226   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.ph $t6, $t7, $t3", 0x07654cb8,
4227                               0x734680bc, t6, t7, t3);
4228   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.ph $t5, $t3, $t2", 0xf973437b,
4229                               0x80000000, t5, t3, t2);
4230   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.ph $t2, $t4, $t8", 0x00ff0001,
4231                               0xff01ffff, t2, t4, t8);
4232   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.ph $t0, $t8, $t0", 0x7fff7004,
4233                               0x7fff7fff, t0, t8, t0);
4234   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.ph $t4, $t6, $t1", 0x0000c420,
4235                               0x00000555, t4, t6, t1);
4236   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.ph $t0, $t1, $t2", 0x00000000,
4237                               0x00000000, t0, t1, t2);
4238   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.ph $t2, $t3, $t4", 0x80000000,
4239                               0x80000000, t2, t3, t4);
4240   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.ph $t4, $t1, $t5", 0xaaaaaaaa,
4241                               0x55555555, t4, t1, t5);
4242   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.ph $t6, $t7, $t3", 0x00000018,
4243                               0xffff2435, t6, t7, t3);
4244   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.ph $t5, $t3, $t2", 0xbabababa,
4245                               0xabababab, t5, t3, t2);
4246   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.ph $t2, $t4, $t8", 0xf0f0f0f0,
4247                               0xfc79b4d2, t2, t4, t8);
4248   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.ph $t0, $t8, $t0", 0xfbde3976,
4249                               0x00000000, t0, t8, t0);
4250   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.ph $t4, $t6, $t1", 0x23534870,
4251                               0x00354565, t4, t6, t1);
4252   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.ph $t0, $t1, $t2", 0x980b7cde,
4253                               0x00086755, t0, t1, t2);
4254   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.ph $t2, $t3, $t4", 0x00000018,
4255                               0x8f8f8f8f, t2, t3, t4);
4256   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.ph $t4, $t1, $t5", 0x92784656,
4257                               0xeeeeeeee, t4, t1, t5);
4258   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.ph $t6, $t7, $t3", 0xcacacaca,
4259                               0x1bdbdbdb, t6, t7, t3);
4260   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.ph $t5, $t3, $t2", 0xbacabaca,
4261                               0xdecadeca, t5, t3, t2);
4262   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.ph $t2, $t4, $t8", 0x12fadeb4,
4263                               0x93474bde, t2, t4, t8);
4264   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.ph $t0, $t8, $t0", 0x7c000790,
4265                               0xfc0007ff, t0, t8, t0);
4266   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.ph $t4, $t6, $t1", 0xffffffff,
4267                               0xffffffff, t4, t6, t1);
4268   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.ph $t0, $t1, $t2", 0xf2f4df1f,
4269                               0xcb4ab48f, t0, t1, t2);
4270   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.ph $t2, $t3, $t4", 0x435f909a,
4271                               0xaf8f7e18, t2, t3, t4);
4272   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.ph $t4, $t1, $t5", 0x2106ba5f,
4273                               0x87df4510, t4, t1, t5);
4274   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.ph $t6, $t7, $t3", 0x246a6376,
4275                               0xabf4e8e1, t6, t7, t3);
4276   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.ph $t5, $t3, $t2", 0x1046a1a3,
4277                               0xf4c0eeac, t5, t3, t2);
4278   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.ph $t2, $t4, $t8", 0x638ca515,
4279                               0x006a54f2, t2, t4, t8);
4280   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.ph $t0, $t8, $t0", 0xf63e7a9d,
4281                               0x79f74493, t0, t8, t0);
4282   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.ph $t4, $t6, $t1", 0xbd6845cd,
4283                               0x9c09e313, t4, t6, t1);
4284
4285   printf("-------- SUBQH.W --------\n");
4286   TESTDSPINST_RD_RS_RT_NODSPC("subqh.w $t0, $t1, $t2", 0x7fffffff, 0x00000000,
4287                               t0, t1, t2);
4288   TESTDSPINST_RD_RS_RT_NODSPC("subqh.w $t2, $t3, $t4", 0x80000000, 0x00000000,
4289                               t2, t3, t4);
4290   TESTDSPINST_RD_RS_RT_NODSPC("subqh.w $t4, $t1, $t5", 0xfabc3435, 0xfabc3421,
4291                               t4, t1, t5);
4292   TESTDSPINST_RD_RS_RT_NODSPC("subqh.w $t6, $t7, $t3", 0x07654cb8, 0x734680bc,
4293                               t6, t7, t3);
4294   TESTDSPINST_RD_RS_RT_NODSPC("subqh.w $t5, $t3, $t2", 0xf973437b, 0x80000000,
4295                               t5, t3, t2);
4296   TESTDSPINST_RD_RS_RT_NODSPC("subqh.w $t2, $t4, $t8", 0x00ff0001, 0xff01ffff,
4297                               t2, t4, t8);
4298   TESTDSPINST_RD_RS_RT_NODSPC("subqh.w $t0, $t8, $t0", 0x7fff7004, 0x7fff7fff,
4299                               t0, t8, t0);
4300   TESTDSPINST_RD_RS_RT_NODSPC("subqh.w $t4, $t6, $t1", 0x0000c420, 0x00000555,
4301                               t4, t6, t1);
4302   TESTDSPINST_RD_RS_RT_NODSPC("subqh.w $t0, $t1, $t2", 0x00000000, 0x00000000,
4303                               t0, t1, t2);
4304   TESTDSPINST_RD_RS_RT_NODSPC("subqh.w $t2, $t3, $t4", 0x80000000, 0x80000000,
4305                               t2, t3, t4);
4306   TESTDSPINST_RD_RS_RT_NODSPC("subqh.w $t4, $t1, $t5", 0xaaaaaaaa, 0x55555555,
4307                               t4, t1, t5);
4308   TESTDSPINST_RD_RS_RT_NODSPC("subqh.w $t6, $t7, $t3", 0x00000018, 0xffff2435,
4309                               t6, t7, t3);
4310   TESTDSPINST_RD_RS_RT_NODSPC("subqh.w $t5, $t3, $t2", 0xbabababa, 0xabababab,
4311                               t5, t3, t2);
4312   TESTDSPINST_RD_RS_RT_NODSPC("subqh.w $t2, $t4, $t8", 0xf0f0f0f0, 0xfc79b4d2,
4313                               t2, t4, t8);
4314   TESTDSPINST_RD_RS_RT_NODSPC("subqh.w $t0, $t8, $t0", 0xfbde3976, 0x00000000,
4315                               t0, t8, t0);
4316   TESTDSPINST_RD_RS_RT_NODSPC("subqh.w $t4, $t6, $t1", 0x23534870, 0x00354565,
4317                               t4, t6, t1);
4318   TESTDSPINST_RD_RS_RT_NODSPC("subqh.w $t0, $t1, $t2", 0x980b7cde, 0x00086755,
4319                               t0, t1, t2);
4320   TESTDSPINST_RD_RS_RT_NODSPC("subqh.w $t2, $t3, $t4", 0x00000018, 0x8f8f8f8f,
4321                               t2, t3, t4);
4322   TESTDSPINST_RD_RS_RT_NODSPC("subqh.w $t4, $t1, $t5", 0x92784656, 0xeeeeeeee,
4323                               t4, t1, t5);
4324   TESTDSPINST_RD_RS_RT_NODSPC("subqh.w $t6, $t7, $t3", 0xcacacaca, 0x1bdbdbdb,
4325                               t6, t7, t3);
4326   TESTDSPINST_RD_RS_RT_NODSPC("subqh.w $t5, $t3, $t2", 0xbacabaca, 0xdecadeca,
4327                               t5, t3, t2);
4328   TESTDSPINST_RD_RS_RT_NODSPC("subqh.w $t2, $t4, $t8", 0x12fadeb4, 0x93474bde,
4329                               t2, t4, t8);
4330   TESTDSPINST_RD_RS_RT_NODSPC("subqh.w $t0, $t8, $t0", 0x7c000790, 0xfc0007ff,
4331                               t0, t8, t0);
4332   TESTDSPINST_RD_RS_RT_NODSPC("subqh.w $t4, $t6, $t1", 0xffffffff, 0xffffffff,
4333                               t4, t6, t1);
4334   TESTDSPINST_RD_RS_RT_NODSPC("subqh.w $t0, $t1, $t2", 0xf2f4df1f, 0xcb4ab48f,
4335                               t0, t1, t2);
4336   TESTDSPINST_RD_RS_RT_NODSPC("subqh.w $t2, $t3, $t4", 0x435f909a, 0xaf8f7e18,
4337                               t2, t3, t4);
4338   TESTDSPINST_RD_RS_RT_NODSPC("subqh.w $t4, $t1, $t5", 0x2106ba5f, 0x87df4510,
4339                               t4, t1, t5);
4340   TESTDSPINST_RD_RS_RT_NODSPC("subqh.w $t6, $t7, $t3", 0x246a6376, 0xabf4e8e1,
4341                               t6, t7, t3);
4342   TESTDSPINST_RD_RS_RT_NODSPC("subqh.w $t5, $t3, $t2", 0x1046a1a3, 0xf4c0eeac,
4343                               t5, t3, t2);
4344   TESTDSPINST_RD_RS_RT_NODSPC("subqh.w $t2, $t4, $t8", 0x638ca515, 0x006a54f2,
4345                               t2, t4, t8);
4346   TESTDSPINST_RD_RS_RT_NODSPC("subqh.w $t0, $t8, $t0", 0xf63e7a9d, 0x79f74493,
4347                               t0, t8, t0);
4348   TESTDSPINST_RD_RS_RT_NODSPC("subqh.w $t4, $t6, $t1", 0xbd6845cd, 0x9c09e313,
4349                               t4, t6, t1);
4350
4351   printf("-------- SUBQH_R.W --------\n");
4352   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.w $t0, $t1, $t2", 0x7fffffff,
4353                               0x00000000, t0, t1, t2);
4354   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.w $t2, $t3, $t4", 0x80000000,
4355                               0x00000000, t2, t3, t4);
4356   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.w $t4, $t1, $t5", 0xfabc3435,
4357                               0xfabc3421, t4, t1, t5);
4358   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.w $t6, $t7, $t3", 0x07654cb8,
4359                               0x734680bc, t6, t7, t3);
4360   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.w $t5, $t3, $t2", 0xf973437b,
4361                               0x80000000, t5, t3, t2);
4362   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.w $t2, $t4, $t8", 0x00ff0001,
4363                               0xff01ffff, t2, t4, t8);
4364   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.w $t0, $t8, $t0", 0x7fff7004,
4365                               0x7fff7fff, t0, t8, t0);
4366   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.w $t4, $t6, $t1", 0x0000c420,
4367                               0x00000555, t4, t6, t1);
4368   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.w $t0, $t1, $t2", 0x00000000,
4369                               0x00000000, t0, t1, t2);
4370   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.w $t2, $t3, $t4", 0x80000000,
4371                               0x80000000, t2, t3, t4);
4372   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.w $t4, $t1, $t5", 0xaaaaaaaa,
4373                               0x55555555, t4, t1, t5);
4374   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.w $t6, $t7, $t3", 0x00000018,
4375                               0xffff2435, t6, t7, t3);
4376   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.w $t5, $t3, $t2", 0xbabababa,
4377                               0xabababab, t5, t3, t2);
4378   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.w $t2, $t4, $t8", 0xf0f0f0f0,
4379                               0xfc79b4d2, t2, t4, t8);
4380   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.w $t0, $t8, $t0", 0xfbde3976,
4381                               0x00000000, t0, t8, t0);
4382   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.w $t4, $t6, $t1", 0x23534870,
4383                               0x00354565, t4, t6, t1);
4384   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.w $t0, $t1, $t2", 0x980b7cde,
4385                               0x00086755, t0, t1, t2);
4386   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.w $t2, $t3, $t4", 0x00000018,
4387                               0x8f8f8f8f, t2, t3, t4);
4388   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.w $t4, $t1, $t5", 0x92784656,
4389                               0xeeeeeeee, t4, t1, t5);
4390   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.w $t6, $t7, $t3", 0xcacacaca,
4391                               0x1bdbdbdb, t6, t7, t3);
4392   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.w $t5, $t3, $t2", 0xbacabaca,
4393                               0xdecadeca, t5, t3, t2);
4394   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.w $t2, $t4, $t8", 0x12fadeb4,
4395                               0x93474bde, t2, t4, t8);
4396   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.w $t0, $t8, $t0", 0x7c000790,
4397                               0xfc0007ff, t0, t8, t0);
4398   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.w $t4, $t6, $t1", 0xffffffff,
4399                               0xffffffff, t4, t6, t1);
4400   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.w $t0, $t1, $t2", 0xf2f4df1f,
4401                               0xcb4ab48f, t0, t1, t2);
4402   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.w $t2, $t3, $t4", 0x435f909a,
4403                               0xaf8f7e18, t2, t3, t4);
4404   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.w $t4, $t1, $t5", 0x2106ba5f,
4405                               0x87df4510, t4, t1, t5);
4406   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.w $t6, $t7, $t3", 0x246a6376,
4407                               0xabf4e8e1, t6, t7, t3);
4408   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.w $t5, $t3, $t2", 0x1046a1a3,
4409                               0xf4c0eeac, t5, t3, t2);
4410   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.w $t2, $t4, $t8", 0x638ca515,
4411                               0x006a54f2, t2, t4, t8);
4412   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.w $t0, $t8, $t0", 0xf63e7a9d,
4413                               0x79f74493, t0, t8, t0);
4414   TESTDSPINST_RD_RS_RT_NODSPC("subqh_r.w $t4, $t6, $t1", 0xbd6845cd,
4415                               0x9c09e313, t4, t6, t1);
4416
4417   printf("-------- SUBU.PH --------\n");
4418   TESTDSPINST_RD_RS_RT_DSPC("subu.ph $t0, $t1, $t2", 0x7fffffff, 0x00000000,
4419                             t0, t1, t2);
4420   TESTDSPINST_RD_RS_RT_DSPC("subu.ph $t2, $t3, $t4", 0x80000000, 0x00000000,
4421                             t2, t3, t4);
4422   TESTDSPINST_RD_RS_RT_DSPC("subu.ph $t4, $t1, $t5", 0xfabc3435, 0xfabc3421,
4423                             t4, t1, t5);
4424   TESTDSPINST_RD_RS_RT_DSPC("subu.ph $t6, $t7, $t3", 0x07654cb8, 0x734680bc,
4425                             t6, t7, t3);
4426   TESTDSPINST_RD_RS_RT_DSPC("subu.ph $t5, $t3, $t2", 0xf973437b, 0x80000000,
4427                             t5, t3, t2);
4428   TESTDSPINST_RD_RS_RT_DSPC("subu.ph $t2, $t4, $t8", 0x00ff0001, 0xff01ffff,
4429                             t2, t4, t8);
4430   TESTDSPINST_RD_RS_RT_DSPC("subu.ph $t0, $t8, $t0", 0x7fff7004, 0x7fff7fff,
4431                             t0, t8, t0);
4432   TESTDSPINST_RD_RS_RT_DSPC("subu.ph $t4, $t6, $t1", 0x0000c420, 0x00000555,
4433                             t4, t6, t1);
4434   TESTDSPINST_RD_RS_RT_DSPC("subu.ph $t0, $t1, $t2", 0x00000000, 0x00000000,
4435                             t0, t1, t2);
4436   TESTDSPINST_RD_RS_RT_DSPC("subu.ph $t2, $t3, $t4", 0x80000000, 0x80000000,
4437                             t2, t3, t4);
4438   TESTDSPINST_RD_RS_RT_DSPC("subu.ph $t4, $t1, $t5", 0xaaaaaaaa, 0x55555555,
4439                             t4, t1, t5);
4440   TESTDSPINST_RD_RS_RT_DSPC("subu.ph $t6, $t7, $t3", 0x00000018, 0xffff2435,
4441                             t6, t7, t3);
4442   TESTDSPINST_RD_RS_RT_DSPC("subu.ph $t5, $t3, $t2", 0xbabababa, 0xabababab,
4443                             t5, t3, t2);
4444   TESTDSPINST_RD_RS_RT_DSPC("subu.ph $t2, $t4, $t8", 0xf0f0f0f0, 0xfc79b4d2,
4445                             t2, t4, t8);
4446   TESTDSPINST_RD_RS_RT_DSPC("subu.ph $t0, $t8, $t0", 0xfbde3976, 0x00000000,
4447                             t0, t8, t0);
4448   TESTDSPINST_RD_RS_RT_DSPC("subu.ph $t4, $t6, $t1", 0x23534870, 0x00354565,
4449                             t4, t6, t1);
4450   TESTDSPINST_RD_RS_RT_DSPC("subu.ph $t0, $t1, $t2", 0x980b7cde, 0x00086755,
4451                             t0, t1, t2);
4452   TESTDSPINST_RD_RS_RT_DSPC("subu.ph $t2, $t3, $t4", 0x00000018, 0x8f8f8f8f,
4453                             t2, t3, t4);
4454   TESTDSPINST_RD_RS_RT_DSPC("subu.ph $t4, $t1, $t5", 0x92784656, 0xeeeeeeee,
4455                             t4, t1, t5);
4456   TESTDSPINST_RD_RS_RT_DSPC("subu.ph $t6, $t7, $t3", 0xcacacaca, 0x1bdbdbdb,
4457                             t6, t7, t3);
4458   TESTDSPINST_RD_RS_RT_DSPC("subu.ph $t5, $t3, $t2", 0xbacabaca, 0xdecadeca,
4459                             t5, t3, t2);
4460   TESTDSPINST_RD_RS_RT_DSPC("subu.ph $t2, $t4, $t8", 0x12fadeb4, 0x93474bde,
4461                             t2, t4, t8);
4462   TESTDSPINST_RD_RS_RT_DSPC("subu.ph $t0, $t8, $t0", 0x7c000790, 0xfc0007ff,
4463                             t0, t8, t0);
4464   TESTDSPINST_RD_RS_RT_DSPC("subu.ph $t4, $t6, $t1", 0xffffffff, 0xffffffff,
4465                             t4, t6, t1);
4466   TESTDSPINST_RD_RS_RT_DSPC("subu.ph $t0, $t1, $t2", 0xf2f4df1f, 0xcb4ab48f,
4467                             t0, t1, t2);
4468   TESTDSPINST_RD_RS_RT_DSPC("subu.ph $t2, $t3, $t4", 0x435f909a, 0xaf8f7e18,
4469                             t2, t3, t4);
4470   TESTDSPINST_RD_RS_RT_DSPC("subu.ph $t4, $t1, $t5", 0x2106ba5f, 0x87df4510,
4471                             t4, t1, t5);
4472   TESTDSPINST_RD_RS_RT_DSPC("subu.ph $t6, $t7, $t3", 0x246a6376, 0xabf4e8e1,
4473                             t6, t7, t3);
4474   TESTDSPINST_RD_RS_RT_DSPC("subu.ph $t5, $t3, $t2", 0x1046a1a3, 0xf4c0eeac,
4475                             t5, t3, t2);
4476   TESTDSPINST_RD_RS_RT_DSPC("subu.ph $t2, $t4, $t8", 0x638ca515, 0x006a54f2,
4477                             t2, t4, t8);
4478   TESTDSPINST_RD_RS_RT_DSPC("subu.ph $t0, $t8, $t0", 0xf63e7a9d, 0x79f74493,
4479                             t0, t8, t0);
4480   TESTDSPINST_RD_RS_RT_DSPC("subu.ph $t4, $t6, $t1", 0xbd6845cd, 0x9c09e313,
4481                             t4, t6, t1);
4482
4483   printf("-------- SUBU_S.PH --------\n");
4484   TESTDSPINST_RD_RS_RT_DSPC("subu_s.ph $t0, $t1, $t2", 0x7fffffff, 0x00000000,
4485                             t0, t1, t2);
4486   TESTDSPINST_RD_RS_RT_DSPC("subu_s.ph $t2, $t3, $t4", 0x80000000, 0x00000000,
4487                             t2, t3, t4);
4488   TESTDSPINST_RD_RS_RT_DSPC("subu_s.ph $t4, $t1, $t5", 0xfabc3435, 0xfabc3421,
4489                             t4, t1, t5);
4490   TESTDSPINST_RD_RS_RT_DSPC("subu_s.ph $t6, $t7, $t3", 0x07654cb8, 0x734680bc,
4491                             t6, t7, t3);
4492   TESTDSPINST_RD_RS_RT_DSPC("subu_s.ph $t5, $t3, $t2", 0xf973437b, 0x80000000,
4493                             t5, t3, t2);
4494   TESTDSPINST_RD_RS_RT_DSPC("subu_s.ph $t2, $t4, $t8", 0x00ff0001, 0xff01ffff,
4495                             t2, t4, t8);
4496   TESTDSPINST_RD_RS_RT_DSPC("subu_s.ph $t0, $t8, $t0", 0x7fff7004, 0x7fff7fff,
4497                             t0, t8, t0);
4498   TESTDSPINST_RD_RS_RT_DSPC("subu_s.ph $t4, $t6, $t1", 0x0000c420, 0x00000555,
4499                             t4, t6, t1);
4500   TESTDSPINST_RD_RS_RT_DSPC("subu_s.ph $t0, $t1, $t2", 0x00000000, 0x00000000,
4501                             t0, t1, t2);
4502   TESTDSPINST_RD_RS_RT_DSPC("subu_s.ph $t2, $t3, $t4", 0x80000000, 0x80000000,
4503                             t2, t3, t4);
4504   TESTDSPINST_RD_RS_RT_DSPC("subu_s.ph $t4, $t1, $t5", 0xaaaaaaaa, 0x55555555,
4505                             t4, t1, t5);
4506   TESTDSPINST_RD_RS_RT_DSPC("subu_s.ph $t6, $t7, $t3", 0x00000018, 0xffff2435,
4507                             t6, t7, t3);
4508   TESTDSPINST_RD_RS_RT_DSPC("subu_s.ph $t5, $t3, $t2", 0xbabababa, 0xabababab,
4509                             t5, t3, t2);
4510   TESTDSPINST_RD_RS_RT_DSPC("subu_s.ph $t2, $t4, $t8", 0xf0f0f0f0, 0xfc79b4d2,
4511                             t2, t4, t8);
4512   TESTDSPINST_RD_RS_RT_DSPC("subu_s.ph $t0, $t8, $t0", 0xfbde3976, 0x00000000,
4513                             t0, t8, t0);
4514   TESTDSPINST_RD_RS_RT_DSPC("subu_s.ph $t4, $t6, $t1", 0x23534870, 0x00354565,
4515                             t4, t6, t1);
4516   TESTDSPINST_RD_RS_RT_DSPC("subu_s.ph $t0, $t1, $t2", 0x980b7cde, 0x00086755,
4517                             t0, t1, t2);
4518   TESTDSPINST_RD_RS_RT_DSPC("subu_s.ph $t2, $t3, $t4", 0x00000018, 0x8f8f8f8f,
4519                             t2, t3, t4);
4520   TESTDSPINST_RD_RS_RT_DSPC("subu_s.ph $t4, $t1, $t5", 0x92784656, 0xeeeeeeee,
4521                             t4, t1, t5);
4522   TESTDSPINST_RD_RS_RT_DSPC("subu_s.ph $t6, $t7, $t3", 0xcacacaca, 0x1bdbdbdb,
4523                             t6, t7, t3);
4524   TESTDSPINST_RD_RS_RT_DSPC("subu_s.ph $t5, $t3, $t2", 0xbacabaca, 0xdecadeca,
4525                             t5, t3, t2);
4526   TESTDSPINST_RD_RS_RT_DSPC("subu_s.ph $t2, $t4, $t8", 0x12fadeb4, 0x93474bde,
4527                             t2, t4, t8);
4528   TESTDSPINST_RD_RS_RT_DSPC("subu_s.ph $t0, $t8, $t0", 0x7c000790, 0xfc0007ff,
4529                             t0, t8, t0);
4530   TESTDSPINST_RD_RS_RT_DSPC("subu_s.ph $t4, $t6, $t1", 0xffffffff, 0xffffffff,
4531                             t4, t6, t1);
4532   TESTDSPINST_RD_RS_RT_DSPC("subu_s.ph $t0, $t1, $t2", 0xf2f4df1f, 0xcb4ab48f,
4533                             t0, t1, t2);
4534   TESTDSPINST_RD_RS_RT_DSPC("subu_s.ph $t2, $t3, $t4", 0x435f909a, 0xaf8f7e18,
4535                             t2, t3, t4);
4536   TESTDSPINST_RD_RS_RT_DSPC("subu_s.ph $t4, $t1, $t5", 0x2106ba5f, 0x87df4510,
4537                             t4, t1, t5);
4538   TESTDSPINST_RD_RS_RT_DSPC("subu_s.ph $t6, $t7, $t3", 0x246a6376, 0xabf4e8e1,
4539                             t6, t7, t3);
4540   TESTDSPINST_RD_RS_RT_DSPC("subu_s.ph $t5, $t3, $t2", 0x1046a1a3, 0xf4c0eeac,
4541                             t5, t3, t2);
4542   TESTDSPINST_RD_RS_RT_DSPC("subu_s.ph $t2, $t4, $t8", 0x638ca515, 0x006a54f2,
4543                             t2, t4, t8);
4544   TESTDSPINST_RD_RS_RT_DSPC("subu_s.ph $t0, $t8, $t0", 0xf63e7a9d, 0x79f74493,
4545                             t0, t8, t0);
4546   TESTDSPINST_RD_RS_RT_DSPC("subu_s.ph $t4, $t6, $t1", 0xbd6845cd, 0x9c09e313,
4547                             t4, t6, t1);
4548
4549   printf("-------- SUBUH.QB --------\n");
4550   TESTDSPINST_RD_RS_RT_NODSPC("subuh.qb $t0, $t1, $t2", 0x7fffffff, 0x00000000,
4551                               t0, t1, t2);
4552   TESTDSPINST_RD_RS_RT_NODSPC("subuh.qb $t2, $t3, $t4", 0x80000000, 0x00000000,
4553                               t2, t3, t4);
4554   TESTDSPINST_RD_RS_RT_NODSPC("subuh.qb $t4, $t1, $t5", 0xfabc3435, 0xfabc3421,
4555                               t4, t1, t5);
4556   TESTDSPINST_RD_RS_RT_NODSPC("subuh.qb $t6, $t7, $t3", 0x07654cb8, 0x734680bc,
4557                               t6, t7, t3);
4558   TESTDSPINST_RD_RS_RT_NODSPC("subuh.qb $t5, $t3, $t2", 0xf973437b, 0x80000000,
4559                               t5, t3, t2);
4560   TESTDSPINST_RD_RS_RT_NODSPC("subuh.qb $t2, $t4, $t8", 0x00ff0001, 0xff01ffff,
4561                               t2, t4, t8);
4562   TESTDSPINST_RD_RS_RT_NODSPC("subuh.qb $t0, $t8, $t0", 0x7fff7004, 0x7fff7fff,
4563                               t0, t8, t0);
4564   TESTDSPINST_RD_RS_RT_NODSPC("subuh.qb $t4, $t6, $t1", 0x0000c420, 0x00000555,
4565                               t4, t6, t1);
4566   TESTDSPINST_RD_RS_RT_NODSPC("subuh.qb $t0, $t1, $t2", 0x00000000, 0x00000000,
4567                               t0, t1, t2);
4568   TESTDSPINST_RD_RS_RT_NODSPC("subuh.qb $t2, $t3, $t4", 0x80000000, 0x80000000,
4569                               t2, t3, t4);
4570   TESTDSPINST_RD_RS_RT_NODSPC("subuh.qb $t4, $t1, $t5", 0xaaaaaaaa, 0x55555555,
4571                               t4, t1, t5);
4572   TESTDSPINST_RD_RS_RT_NODSPC("subuh.qb $t6, $t7, $t3", 0x00000018, 0xffff2435,
4573                               t6, t7, t3);
4574   TESTDSPINST_RD_RS_RT_NODSPC("subuh.qb $t5, $t3, $t2", 0xbabababa, 0xabababab,
4575                               t5, t3, t2);
4576   TESTDSPINST_RD_RS_RT_NODSPC("subuh.qb $t2, $t4, $t8", 0xf0f0f0f0, 0xfc79b4d2,
4577                               t2, t4, t8);
4578   TESTDSPINST_RD_RS_RT_NODSPC("subuh.qb $t0, $t8, $t0", 0xfbde3976, 0x00000000,
4579                               t0, t8, t0);
4580   TESTDSPINST_RD_RS_RT_NODSPC("subuh.qb $t4, $t6, $t1", 0x23534870, 0x00354565,
4581                               t4, t6, t1);
4582   TESTDSPINST_RD_RS_RT_NODSPC("subuh.qb $t0, $t1, $t2", 0x980b7cde, 0x00086755,
4583                               t0, t1, t2);
4584   TESTDSPINST_RD_RS_RT_NODSPC("subuh.qb $t2, $t3, $t4", 0x00000018, 0x8f8f8f8f,
4585                               t2, t3, t4);
4586   TESTDSPINST_RD_RS_RT_NODSPC("subuh.qb $t4, $t1, $t5", 0x92784656, 0xeeeeeeee,
4587                               t4, t1, t5);
4588   TESTDSPINST_RD_RS_RT_NODSPC("subuh.qb $t6, $t7, $t3", 0xcacacaca, 0x1bdbdbdb,
4589                               t6, t7, t3);
4590   TESTDSPINST_RD_RS_RT_NODSPC("subuh.qb $t5, $t3, $t2", 0xbacabaca, 0xdecadeca,
4591                               t5, t3, t2);
4592   TESTDSPINST_RD_RS_RT_NODSPC("subuh.qb $t2, $t4, $t8", 0x12fadeb4, 0x93474bde,
4593                               t2, t4, t8);
4594   TESTDSPINST_RD_RS_RT_NODSPC("subuh.qb $t0, $t8, $t0", 0x7c000790, 0xfc0007ff,
4595                               t0, t8, t0);
4596   TESTDSPINST_RD_RS_RT_NODSPC("subuh.qb $t4, $t6, $t1", 0xffffffff, 0xffffffff,
4597                               t4, t6, t1);
4598   TESTDSPINST_RD_RS_RT_NODSPC("subuh.qb $t0, $t1, $t2", 0xf2f4df1f, 0xcb4ab48f,
4599                               t0, t1, t2);
4600   TESTDSPINST_RD_RS_RT_NODSPC("subuh.qb $t2, $t3, $t4", 0x435f909a, 0xaf8f7e18,
4601                               t2, t3, t4);
4602   TESTDSPINST_RD_RS_RT_NODSPC("subuh.qb $t4, $t1, $t5", 0x2106ba5f, 0x87df4510,
4603                               t4, t1, t5);
4604   TESTDSPINST_RD_RS_RT_NODSPC("subuh.qb $t6, $t7, $t3", 0x246a6376, 0xabf4e8e1,
4605                               t6, t7, t3);
4606   TESTDSPINST_RD_RS_RT_NODSPC("subuh.qb $t5, $t3, $t2", 0x1046a1a3, 0xf4c0eeac,
4607                               t5, t3, t2);
4608   TESTDSPINST_RD_RS_RT_NODSPC("subuh.qb $t2, $t4, $t8", 0x638ca515, 0x006a54f2,
4609                               t2, t4, t8);
4610   TESTDSPINST_RD_RS_RT_NODSPC("subuh.qb $t0, $t8, $t0", 0xf63e7a9d, 0x79f74493,
4611                               t0, t8, t0);
4612   TESTDSPINST_RD_RS_RT_NODSPC("subuh.qb $t4, $t6, $t1", 0xbd6845cd, 0x9c09e313,
4613                               t4, t6, t1);
4614
4615   printf("-------- SUBUH_R.QB --------\n");
4616   TESTDSPINST_RD_RS_RT_NODSPC("subuh_r.qb $t0, $t1, $t2", 0x7fffffff,
4617                               0x00000000, t0, t1, t2);
4618   TESTDSPINST_RD_RS_RT_NODSPC("subuh_r.qb $t2, $t3, $t4", 0x80000000,
4619                               0x00000000, t2, t3, t4);
4620   TESTDSPINST_RD_RS_RT_NODSPC("subuh_r.qb $t4, $t1, $t5", 0xfabc3435,
4621                               0xfabc3421, t4, t1, t5);
4622   TESTDSPINST_RD_RS_RT_NODSPC("subuh_r.qb $t6, $t7, $t3", 0x07654cb8,
4623                               0x734680bc, t6, t7, t3);
4624   TESTDSPINST_RD_RS_RT_NODSPC("subuh_r.qb $t5, $t3, $t2", 0xf973437b,
4625                               0x80000000, t5, t3, t2);
4626   TESTDSPINST_RD_RS_RT_NODSPC("subuh_r.qb $t2, $t4, $t8", 0x00ff0001,
4627                               0xff01ffff, t2, t4, t8);
4628   TESTDSPINST_RD_RS_RT_NODSPC("subuh_r.qb $t0, $t8, $t0", 0x7fff7004,
4629                               0x7fff7fff, t0, t8, t0);
4630   TESTDSPINST_RD_RS_RT_NODSPC("subuh_r.qb $t4, $t6, $t1", 0x0000c420,
4631                               0x00000555, t4, t6, t1);
4632   TESTDSPINST_RD_RS_RT_NODSPC("subuh_r.qb $t0, $t1, $t2", 0x00000000,
4633                               0x00000000, t0, t1, t2);
4634   TESTDSPINST_RD_RS_RT_NODSPC("subuh_r.qb $t2, $t3, $t4", 0x80000000,
4635                               0x80000000, t2, t3, t4);
4636   TESTDSPINST_RD_RS_RT_NODSPC("subuh_r.qb $t4, $t1, $t5", 0xaaaaaaaa,
4637                               0x55555555, t4, t1, t5);
4638   TESTDSPINST_RD_RS_RT_NODSPC("subuh_r.qb $t6, $t7, $t3", 0x00000018,
4639                               0xffff2435, t6, t7, t3);
4640   TESTDSPINST_RD_RS_RT_NODSPC("subuh_r.qb $t5, $t3, $t2", 0xbabababa,
4641                               0xabababab, t5, t3, t2);
4642   TESTDSPINST_RD_RS_RT_NODSPC("subuh_r.qb $t2, $t4, $t8", 0xf0f0f0f0,
4643                               0xfc79b4d2, t2, t4, t8);
4644   TESTDSPINST_RD_RS_RT_NODSPC("subuh_r.qb $t0, $t8, $t0", 0xfbde3976,
4645                               0x00000000, t0, t8, t0);
4646   TESTDSPINST_RD_RS_RT_NODSPC("subuh_r.qb $t4, $t6, $t1", 0x23534870,
4647                               0x00354565, t4, t6, t1);
4648   TESTDSPINST_RD_RS_RT_NODSPC("subuh_r.qb $t0, $t1, $t2", 0x980b7cde,
4649                               0x00086755, t0, t1, t2);
4650   TESTDSPINST_RD_RS_RT_NODSPC("subuh_r.qb $t2, $t3, $t4", 0x00000018,
4651                               0x8f8f8f8f, t2, t3, t4);
4652   TESTDSPINST_RD_RS_RT_NODSPC("subuh_r.qb $t4, $t1, $t5", 0x92784656,
4653                               0xeeeeeeee, t4, t1, t5);
4654   TESTDSPINST_RD_RS_RT_NODSPC("subuh_r.qb $t6, $t7, $t3", 0xcacacaca,
4655                               0x1bdbdbdb, t6, t7, t3);
4656   TESTDSPINST_RD_RS_RT_NODSPC("subuh_r.qb $t5, $t3, $t2", 0xbacabaca,
4657                               0xdecadeca, t5, t3, t2);
4658   TESTDSPINST_RD_RS_RT_NODSPC("subuh_r.qb $t2, $t4, $t8", 0x12fadeb4,
4659                               0x93474bde, t2, t4, t8);
4660   TESTDSPINST_RD_RS_RT_NODSPC("subuh_r.qb $t0, $t8, $t0", 0x7c000790,
4661                               0xfc0007ff, t0, t8, t0);
4662   TESTDSPINST_RD_RS_RT_NODSPC("subuh_r.qb $t4, $t6, $t1", 0xffffffff,
4663                               0xffffffff, t4, t6, t1);
4664   TESTDSPINST_RD_RS_RT_NODSPC("subuh_r.qb $t0, $t1, $t2", 0xf2f4df1f,
4665                               0xcb4ab48f, t0, t1, t2);
4666   TESTDSPINST_RD_RS_RT_NODSPC("subuh_r.qb $t2, $t3, $t4", 0x435f909a,
4667                               0xaf8f7e18, t2, t3, t4);
4668   TESTDSPINST_RD_RS_RT_NODSPC("subuh_r.qb $t4, $t1, $t5", 0x2106ba5f,
4669                               0x87df4510, t4, t1, t5);
4670   TESTDSPINST_RD_RS_RT_NODSPC("subuh_r.qb $t6, $t7, $t3", 0x246a6376,
4671                               0xabf4e8e1, t6, t7, t3);
4672   TESTDSPINST_RD_RS_RT_NODSPC("subuh_r.qb $t5, $t3, $t2", 0x1046a1a3,
4673                               0xf4c0eeac, t5, t3, t2);
4674   TESTDSPINST_RD_RS_RT_NODSPC("subuh_r.qb $t2, $t4, $t8", 0x638ca515,
4675                               0x006a54f2, t2, t4, t8);
4676   TESTDSPINST_RD_RS_RT_NODSPC("subuh_r.qb $t0, $t8, $t0", 0xf63e7a9d,
4677                               0x79f74493, t0, t8, t0);
4678   TESTDSPINST_RD_RS_RT_NODSPC("subuh_r.qb $t4, $t6, $t1", 0xbd6845cd,
4679                               0x9c09e313, t4, t6, t1);
4680#endif
4681
4682   return 0;
4683}