1 #include <stdio.h>
2 /* Independent tests for each DSP instruction from MIPS32 DSP ASEr2 instruction
3    set */
4 
5 unsigned int mem[] = {
6    0x121f1e1f, 0, 3, -1,
7    0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0x262d2d2a,
8    0x3f343f3e, 0x3e353d3c, 0x363a3c3b, 0x3b373b3a,
9    0x454f4e45, 0x4e464d46, 0x474d474c, 0x4a484a4c
10 };
11 
ppMem(unsigned int * _mem,int _len)12 void 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 
main(int argc,char ** argv)546 int 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 }