• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 
2 /* How to compile:
3    gcc -g -Wall -mcpu=cortex-a8 -o v6mediaA -marm none/tests/arm/v6media.c
4    or
5    gcc -g -Wall -mcpu=cortex-a8 -o v6mediaT -mthumb none/tests/arm/v6media.c
6 */
7 
8 #include <stdio.h>
9 
gen_cin(int cin)10 static int gen_cin(int cin)
11 {
12   int r = ((cin & 1) ? (1<<29) : 0);
13   //r |= (1 << 31) | (1 << 30);
14   return r;
15 }
16 
17 /* test macros to generate and output the result of a single instruction */
18 #define TESTINST2(instruction, RMval, RD, RM, carryin) \
19 { \
20   unsigned int out;   \
21   unsigned int cpsr;  \
22 \
23   __asm__ volatile(   \
24     "msr  cpsr_fs, %3;"  \
25     "mov " #RM ",%2;"         \
26                 /* set #RD to 0x55555555 so we can see which parts get overwritten */ \
27                 "mov " #RD ", #0x55" "\n\t" \
28                 "orr " #RD "," #RD "," #RD ", LSL #8" "\n\t"  \
29                 "orr " #RD "," #RD "," #RD ", LSL #16" "\n\t" \
30     instruction ";"    \
31     "mov %0," #RD ";"  \
32     "mrs %1,cpsr;"     \
33     : "=&r" (out), "=&r" (cpsr)  \
34     : "r" (RMval), "r" (gen_cin(carryin))       \
35     : #RD, #RM, "cc", "memory"   \
36   ); \
37   printf("%s :: rd 0x%08x rm 0x%08x, carryin %d, cpsr 0x%08x %c%c%c%c%c ge[3:0]=%d%d%d%d\n", \
38     instruction, out, RMval,      \
39     carryin ? 1 : 0,     \
40     cpsr & 0xff0f0000,            \
41     ((1<<31) & cpsr) ? 'N' : ' ', \
42     ((1<<30) & cpsr) ? 'Z' : ' ', \
43     ((1<<29) & cpsr) ? 'C' : ' ', \
44     ((1<<28) & cpsr) ? 'V' : ' ', \
45     ((1<<27) & cpsr) ? 'Q' : ' ', \
46     (cpsr >> 19) & 1, (cpsr >> 18) & 1, (cpsr >> 17) & 1, (cpsr >> 16) & 1 \
47   ); \
48 }
49 
50 #define TESTINST3(instruction, RMval, RNval, RD, RM, RN, carryin) \
51 { \
52   unsigned int out;  \
53   unsigned int cpsr; \
54 \
55   __asm__ volatile(  \
56     "msr  cpsr_fs, %4;"  \
57     "mov " #RM ",%2;"  \
58     "mov " #RN ",%3;"  \
59     instruction ";"    \
60     "mov %0," #RD ";"  \
61     "mrs %1,cpsr;"     \
62     : "=&r" (out), "=&r" (cpsr)               \
63     : "r" (RMval), "r" (RNval), "r" (gen_cin(carryin))   \
64     : #RD, #RM, #RN, "cc", "memory"           \
65   ); \
66   printf("%s :: rd 0x%08x rm 0x%08x, rn 0x%08x, carryin %d, cpsr 0x%08x %c%c%c%c%c ge[3:0]=%d%d%d%d\n", \
67     instruction, out, RMval, RNval, \
68     carryin ? 1 : 0,  \
69     cpsr & 0xff0f0000, \
70     ((1<<31) & cpsr) ? 'N' : ' ', \
71     ((1<<30) & cpsr) ? 'Z' : ' ', \
72     ((1<<29) & cpsr) ? 'C' : ' ', \
73     ((1<<28) & cpsr) ? 'V' : ' ', \
74     ((1<<27) & cpsr) ? 'Q' : ' ', \
75     (cpsr >> 19) & 1, (cpsr >> 18) & 1, (cpsr >> 17) & 1, (cpsr >> 16) & 1 \
76   ); \
77 }
78 
79 #define TESTINST4(instruction, RMval, RNval, RSval, RD, RM, RN, RS, carryin) \
80 { \
81   unsigned int out;  \
82   unsigned int cpsr; \
83 \
84   __asm__ volatile( \
85     "msr  cpsr_fs, %5;"  \
86     "mov " #RM ",%2;"  \
87     "mov " #RN ",%3;"  \
88     "mov " #RS ",%4;"  \
89     instruction ";"    \
90     "mov %0," #RD ";"  \
91     "mrs %1,cpsr;"     \
92     : "=&r" (out), "=&r" (cpsr) \
93     : "r" (RMval), "r" (RNval), "r" (RSval), "r" (gen_cin(carryin))  \
94     : #RD, #RM, #RN, #RS, "cc", "memory" \
95   ); \
96   printf("%s :: rd 0x%08x rm 0x%08x, rn 0x%08x rs 0x%08x, carryin %d, cpsr 0x%08x %c%c%c%c%c ge[3:0]=%d%d%d%d\n", \
97     instruction, out, RMval, RNval, RSval, \
98     carryin ? 1 : 0,   \
99     cpsr & 0xff0f0000, \
100     ((1<<31) & cpsr) ? 'N' : ' ', \
101     ((1<<30) & cpsr) ? 'Z' : ' ', \
102     ((1<<29) & cpsr) ? 'C' : ' ', \
103     ((1<<28) & cpsr) ? 'V' : ' ', \
104     ((1<<27) & cpsr) ? 'Q' : ' ', \
105     (cpsr >> 19) & 1, (cpsr >> 18) & 1, (cpsr >> 17) & 1, (cpsr >> 16) & 1 \
106   ); \
107 }
108 
109 #define TESTINST4_2OUT(instruction, RDval, RD2val, RMval, RSval, RD, RD2, RM, RS, carryin) \
110 { \
111   unsigned int out;  \
112   unsigned int out2; \
113   unsigned int cpsr; \
114 \
115   __asm__ volatile(  \
116     "msr  cpsr_fs, %7;"  \
117     "mov " #RD ",%3;"  \
118     "mov " #RD2 ",%4;" \
119     "mov " #RM ",%5;"  \
120     "mov " #RS ",%6;"  \
121     instruction ";"    \
122     "mov %0," #RD ";"  \
123     "mov %1," #RD2 ";" \
124     "mrs %2,cpsr;"     \
125     : "=&r" (out), "=&r" (out2), "=&r" (cpsr)  \
126     : "r" (RDval), "r" (RD2val), "r" (RMval), "r" (RSval), "r" (gen_cin(carryin)) \
127     : #RD, #RD2, #RM, #RS, "cc", "memory"      \
128   ); \
129   printf("%s :: rd 0x%08x rd2 0x%08x, rm 0x%08x rs 0x%08x, carryin %d, cpsr 0x%08x %c%c%c%c%c ge[3:0]=%d%d%d%d\n", \
130     instruction, out, out2, RMval, RSval, \
131     carryin ? 1 : 0,   \
132     cpsr & 0xff0f0000, \
133     ((1<<31) & cpsr) ? 'N' : ' ', \
134     ((1<<30) & cpsr) ? 'Z' : ' ', \
135     ((1<<29) & cpsr) ? 'C' : ' ', \
136     ((1<<28) & cpsr) ? 'V' : ' ', \
137     ((1<<27) & cpsr) ? 'Q' : ' ', \
138     (cpsr >> 19) & 1, (cpsr >> 18) & 1, (cpsr >> 17) & 1, (cpsr >> 16) & 1 \
139   ); \
140 }
141 
142 /* helpers */
143 #define TESTCARRY { int c = 0; for (c = 0; c < 2; c++) {
144 #define TESTCARRYEND }}
145 
146 
147 
148 
main(int argc,char ** argv)149 int main(int argc, char **argv)
150 {
151   printf("MUL\n");
152   TESTINST3("mul  r0, r1, r2", 0,          0,          r0, r1, r2, 0);
153   TESTINST3("mul  r0, r1, r2", 0xffffffff, 0,          r0, r1, r2, 0);
154   TESTINST3("mul  r0, r1, r2", 0,          0xffffffff, r0, r1, r2, 0);
155   TESTINST3("mul  r0, r1, r2", 0xffffffff, 0xffffffff, r0, r1, r2, 0);
156   TESTINST3("mul  r0, r1, r2", 0x7fffffff, 0x7fffffff, r0, r1, r2, 0);
157   TESTINST3("mul  r0, r1, r2", 0x0000ffff, 0x0000ffff, r0, r1, r2, 0);
158 
159 #if 0
160   printf("MULS\n");
161   TESTINST3("muls r0, r1, r2", 0, 0, r0, r1, r2, 0);
162   TESTINST3("muls r0, r1, r2", 0xffffffff, 0, r0, r1, r2, 0);
163   TESTINST3("muls r0, r1, r2", 0, 0xffffffff, r0, r1, r2, 0);
164   TESTINST3("muls r0, r1, r2", 0xffffffff, 0xffffffff, r0, r1, r2, 0);
165   TESTINST3("muls r0, r1, r2", 0x7fffffff, 0x7fffffff, r0, r1, r2, 0);
166   TESTINST3("muls r0, r1, r2", 0x0000ffff, 0x0000ffff, r0, r1, r2, 0);
167 #endif
168 
169   printf("MLA\n");
170   TESTINST4("mla  r0, r1, r2, r3", 0, 0, 1, r0, r1, r2, r3, 0);
171   TESTINST4("mla  r0, r1, r2, r3", 0xffffffff, 0, 1, r0, r1, r2, r3, 0);
172   TESTINST4("mla  r0, r1, r2, r3", 0, 0xffffffff, 1, r0, r1, r2, r3, 0);
173   TESTINST4("mla  r0, r1, r2, r3", 0xffffffff, 0xffffffff, 1, r0, r1, r2, r3, 0);
174   TESTINST4("mla  r0, r1, r2, r3", 0x7fffffff, 0x7fffffff, 1, r0, r1, r2, r3, 0);
175   TESTINST4("mla  r0, r1, r2, r3", 0x0000ffff, 0x0000ffff, 1, r0, r1, r2, r3, 0);
176 
177 #if 0
178   printf("MLAS\n");
179   TESTINST4("mlas r0, r1, r2, r3", 0,          0,          1, r0, r1, r2, r3, 0);
180   TESTINST4("mlas r0, r1, r2, r3", 0xffffffff, 0,          1, r0, r1, r2, r3, 0);
181   TESTINST4("mlas r0, r1, r2, r3", 0,          0xffffffff, 1, r0, r1, r2, r3, 0);
182   TESTINST4("mlas r0, r1, r2, r3", 0xffffffff, 0xffffffff, 1, r0, r1, r2, r3, 0);
183   TESTINST4("mlas r0, r1, r2, r3", 0x7fffffff, 0x7fffffff, 1, r0, r1, r2, r3, 0);
184   TESTINST4("mlas r0, r1, r2, r3", 0x0000ffff, 0x0000ffff, 1, r0, r1, r2, r3, 0);
185 #endif
186 
187   printf("MLS\n");
188   TESTINST4("mls  r0, r1, r2, r3", 0, 0, 1, r0, r1, r2, r3, 0);
189   TESTINST4("mls  r0, r1, r2, r3", 0xffffffff, 0, 1, r0, r1, r2, r3, 0);
190   TESTINST4("mls  r0, r1, r2, r3", 0, 0xffffffff, 1, r0, r1, r2, r3, 0);
191   TESTINST4("mls  r0, r1, r2, r3", 0xffffffff, 0xffffffff, 1, r0, r1, r2, r3, 0);
192   TESTINST4("mls  r0, r1, r2, r3", 0x7fffffff, 0x7fffffff, 1, r0, r1, r2, r3, 0);
193   TESTINST4("mls  r0, r1, r2, r3", 0x0000ffff, 0x0000ffff, 1, r0, r1, r2, r3, 0);
194 
195   printf("UMULL\n");
196   TESTINST4_2OUT("umull  r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
197   TESTINST4_2OUT("umull  r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
198   TESTINST4_2OUT("umull  r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
199   TESTINST4_2OUT("umull  r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
200   TESTINST4_2OUT("umull  r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
201   TESTINST4_2OUT("umull  r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
202 #if 0
203   TESTINST4_2OUT("umulls r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
204   TESTINST4_2OUT("umulls r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
205   TESTINST4_2OUT("umulls r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
206   TESTINST4_2OUT("umulls r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
207   TESTINST4_2OUT("umulls r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
208   TESTINST4_2OUT("umulls r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
209 #endif
210   printf("SMULL\n");
211   TESTINST4_2OUT("smull  r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
212   TESTINST4_2OUT("smull  r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
213   TESTINST4_2OUT("smull  r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
214   TESTINST4_2OUT("smull  r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
215   TESTINST4_2OUT("smull  r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
216   TESTINST4_2OUT("smull  r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
217 #if 0
218   TESTINST4_2OUT("smulls r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
219   TESTINST4_2OUT("smulls r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
220   TESTINST4_2OUT("smulls r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
221   TESTINST4_2OUT("smulls r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
222   TESTINST4_2OUT("smulls r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
223   TESTINST4_2OUT("smulls r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
224 #endif
225 
226   printf("UMLAL\n");
227   TESTINST4_2OUT("umlal  r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
228   TESTINST4_2OUT("umlal  r0, r1, r2, r3", 0, 1, 0, 0, r0, r1, r2, r3, 0);
229   TESTINST4_2OUT("umlal  r0, r1, r2, r3", 1, 1, 0, 0, r0, r1, r2, r3, 0);
230   TESTINST4_2OUT("umlal  r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0, r1, r2, r3, 0);
231   TESTINST4_2OUT("umlal  r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
232   TESTINST4_2OUT("umlal  r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
233   TESTINST4_2OUT("umlal  r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
234   TESTINST4_2OUT("umlal  r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
235   TESTINST4_2OUT("umlal  r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
236 #if 0
237   TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
238   TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 1, 0, 0, r0, r1, r2, r3, 0);
239   TESTINST4_2OUT("umlals r0, r1, r2, r3", 1, 1, 0, 0, r0, r1, r2, r3, 0);
240   TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0, r1, r2, r3, 0);
241   TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
242   TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
243   TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
244   TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
245   TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
246 #endif
247 
248   printf("SMLAL\n");
249   TESTINST4_2OUT("smlal  r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
250   TESTINST4_2OUT("smlal  r0, r1, r2, r3", 0, 1, 0, 0, r0, r1, r2, r3, 0);
251   TESTINST4_2OUT("smlal  r0, r1, r2, r3", 1, 1, 0, 0, r0, r1, r2, r3, 0);
252   TESTINST4_2OUT("smlal  r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0, r1, r2, r3, 0);
253   TESTINST4_2OUT("smlal  r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
254   TESTINST4_2OUT("smlal  r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
255   TESTINST4_2OUT("smlal  r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
256   TESTINST4_2OUT("smlal  r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
257   TESTINST4_2OUT("smlal  r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
258 #if 0
259   TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
260   TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 1, 0, 0, r0, r1, r2, r3, 0);
261   TESTINST4_2OUT("smlals r0, r1, r2, r3", 1, 1, 0, 0, r0, r1, r2, r3, 0);
262   TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0, r1, r2, r3, 0);
263   TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
264   TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
265   TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
266   TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
267   TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
268 #endif
269 
270   printf("CLZ\n");
271   TESTCARRY
272   TESTINST2("clz  r0, r1", 0, r0, r1, c);
273   TESTINST2("clz  r0, r1", 1, r0, r1, c);
274   TESTINST2("clz  r0, r1", 0x10, r0, r1, c);
275   TESTINST2("clz  r0, r1", 0xffffffff, r0, r1, c);
276   TESTCARRYEND
277 
278   printf("extend instructions\n");
279   TESTINST2("uxtb r0, r1", 0, r0, r1, 0);
280   TESTINST2("uxtb r0, r1", 1, r0, r1, 0);
281   TESTINST2("uxtb r0, r1", 0xff, r0, r1, 0);
282   TESTINST2("uxtb r0, r1", 0xffffffff, r0, r1, 0);
283   TESTINST2("sxtb r0, r1", 0, r0, r1, 0);
284   TESTINST2("sxtb r0, r1", 1, r0, r1, 0);
285   TESTINST2("sxtb r0, r1", 0xff, r0, r1, 0);
286   TESTINST2("sxtb r0, r1", 0xffffffff, r0, r1, 0);
287 
288   TESTINST2("uxth r0, r1", 0, r0, r1, 0);
289   TESTINST2("uxth r0, r1", 1, r0, r1, 0);
290   TESTINST2("uxth r0, r1", 0xffff, r0, r1, 0);
291   TESTINST2("uxth r0, r1", 0xffffffff, r0, r1, 0);
292   TESTINST2("sxth r0, r1", 0, r0, r1, 0);
293   TESTINST2("sxth r0, r1", 1, r0, r1, 0);
294   TESTINST2("sxth r0, r1", 0x7fff, r0, r1, 0);
295   TESTINST2("sxth r0, r1", 0xffff, r0, r1, 0);
296   TESTINST2("sxth r0, r1", 0x10ffff, r0, r1, 0);
297   TESTINST2("sxth r0, r1", 0x107fff, r0, r1, 0);
298   TESTINST2("sxth r0, r1", 0xffffffff, r0, r1, 0);
299 
300   TESTINST2("uxtb r0, r1, ror #0", 0x000000ff, r0, r1, 0);
301   TESTINST2("uxtb r0, r1, ror #8", 0x000000ff, r0, r1, 0);
302   TESTINST2("uxtb r0, r1, ror #8", 0x0000ff00, r0, r1, 0);
303   TESTINST2("uxtb r0, r1, ror #16", 0x00ff0000, r0, r1, 0);
304   TESTINST2("uxtb r0, r1, ror #24", 0xff000000, r0, r1, 0);
305 
306   TESTINST2("uxtb16 r0, r1", 0xffffffff, r0, r1, 0);
307   TESTINST2("uxtb16 r0, r1, ror #16", 0x0000ffff, r0, r1, 0);
308   TESTINST2("sxtb16 r0, r1", 0xffffffff, r0, r1, 0);
309   TESTINST2("sxtb16 r0, r1", 0x00ff00ff, r0, r1, 0);
310   TESTINST2("sxtb16 r0, r1", 0x007f007f, r0, r1, 0);
311 
312   printf("------------ BFI ------------\n");
313   /* bfi  rDst, rSrc, #lsb-in-dst, #number-of-bits-to-copy */
314   TESTINST2("bfi  r0, r1, #0, #11", 0xAAAAAAAA, r0, r1, 0);
315   TESTINST2("bfi  r0, r1, #1, #11", 0xAAAAAAAA, r0, r1, 0);
316   TESTINST2("bfi  r0, r1, #2, #11", 0xAAAAAAAA, r0, r1, 0);
317 
318   TESTINST2("bfi  r0, r1, #19, #11", 0xFFFFFFFF, r0, r1, 0);
319   TESTINST2("bfi  r0, r1, #20, #11", 0xFFFFFFFF, r0, r1, 0);
320   TESTINST2("bfi  r0, r1, #21, #11", 0xFFFFFFFF, r0, r1, 0);
321 
322   TESTINST2("bfi  r0, r1, #0, #32", 0xFFFFFFFF, r0, r1, 0);
323   TESTINST2("bfi  r0, r1, #1, #31", 0xFFFFFFFF, r0, r1, 0);
324 
325   TESTINST2("bfi  r0, r1, #29, #3", 0xFFFFFFFF, r0, r1, 0);
326   TESTINST2("bfi  r0, r1, #30, #2", 0xFFFFFFFF, r0, r1, 0);
327   TESTINST2("bfi  r0, r1, #31, #1", 0xFFFFFFFF, r0, r1, 0);
328 
329   printf("------------ BFC ------------\n");
330   /* bfi  rDst, #lsb-in-dst, #number-of-bits-to-copy */
331   TESTINST2("bfc  r0, #0, #11", 0xAAAAAAAA, r0, r1, 0);
332   TESTINST2("bfc  r0, #1, #11", 0xAAAAAAAA, r0, r1, 0);
333   TESTINST2("bfc  r0, #2, #11", 0xAAAAAAAA, r0, r1, 0);
334 
335   TESTINST2("bfc  r0, #19, #11", 0xFFFFFFFF, r0, r1, 0);
336   TESTINST2("bfc  r0, #20, #11", 0xFFFFFFFF, r0, r1, 0);
337   TESTINST2("bfc  r0, #21, #11", 0xFFFFFFFF, r0, r1, 0);
338 
339   TESTINST2("bfc  r0, #0, #32", 0xFFFFFFFF, r0, r1, 0);
340   TESTINST2("bfc  r0, #1, #31", 0xFFFFFFFF, r0, r1, 0);
341 
342   TESTINST2("bfc  r0, #29, #3", 0xFFFFFFFF, r0, r1, 0);
343   TESTINST2("bfc  r0, #30, #2", 0xFFFFFFFF, r0, r1, 0);
344   TESTINST2("bfc  r0, #31, #1", 0xFFFFFFFF, r0, r1, 0);
345 
346   printf("------------ SBFX ------------\n");
347   /* sbfx rDst, rSrc, #lsb, #width */
348   TESTINST2("sbfx  r0, r1, #0, #1", 0x00000000, r0, r1, 0);
349   TESTINST2("sbfx  r0, r1, #0, #1", 0x00000001, r0, r1, 0);
350   TESTINST2("sbfx  r0, r1, #1, #1", 0x00000000, r0, r1, 0);
351   TESTINST2("sbfx  r0, r1, #1, #1", 0x00000001, r0, r1, 0);
352   TESTINST2("sbfx  r0, r1, #1, #1", 0x00000002, r0, r1, 0);
353   TESTINST2("sbfx  r0, r1, #1, #1", 0x00000003, r0, r1, 0);
354 
355   TESTINST2("sbfx  r0, r1, #0, #2", 0x00000000, r0, r1, 0);
356   TESTINST2("sbfx  r0, r1, #0, #2", 0x00000001, r0, r1, 0);
357   TESTINST2("sbfx  r0, r1, #1, #2", 0x00000000, r0, r1, 0);
358   TESTINST2("sbfx  r0, r1, #1, #2", 0x00000001, r0, r1, 0);
359   TESTINST2("sbfx  r0, r1, #1, #2", 0x00000002, r0, r1, 0);
360   TESTINST2("sbfx  r0, r1, #1, #2", 0x00000003, r0, r1, 0);
361 
362   TESTINST2("sbfx  r0, r1, #0, #11", 0xAAAAAAAA, r0, r1, 0);
363   TESTINST2("sbfx  r0, r1, #1, #11", 0xAAAAAAAA, r0, r1, 0);
364   TESTINST2("sbfx  r0, r1, #2, #11", 0xAAAAAAAA, r0, r1, 0);
365   TESTINST2("sbfx  r0, r1, #2, #11", 0xAAAAAAAA, r0, r1, 0);
366   TESTINST2("sbfx  r0, r1, #31, #1", 0xAAAAAAAA, r0, r1, 0);
367   TESTINST2("sbfx  r0, r1, #30, #2", 0xAAAAAAAA, r0, r1, 0);
368 
369   printf("------------ UBFX ------------\n");
370   /* ubfx rDst, rSrc, #lsb, #width */
371   TESTINST2("ubfx  r0, r1, #0, #1", 0x00000000, r0, r1, 0);
372   TESTINST2("ubfx  r0, r1, #0, #1", 0x00000001, r0, r1, 0);
373   TESTINST2("ubfx  r0, r1, #1, #1", 0x00000000, r0, r1, 0);
374   TESTINST2("ubfx  r0, r1, #1, #1", 0x00000001, r0, r1, 0);
375   TESTINST2("ubfx  r0, r1, #1, #1", 0x00000002, r0, r1, 0);
376   TESTINST2("ubfx  r0, r1, #1, #1", 0x00000003, r0, r1, 0);
377 
378   TESTINST2("ubfx  r0, r1, #0, #2", 0x00000000, r0, r1, 0);
379   TESTINST2("ubfx  r0, r1, #0, #2", 0x00000001, r0, r1, 0);
380   TESTINST2("ubfx  r0, r1, #1, #2", 0x00000000, r0, r1, 0);
381   TESTINST2("ubfx  r0, r1, #1, #2", 0x00000001, r0, r1, 0);
382   TESTINST2("ubfx  r0, r1, #1, #2", 0x00000002, r0, r1, 0);
383   TESTINST2("ubfx  r0, r1, #1, #2", 0x00000003, r0, r1, 0);
384 
385   TESTINST2("ubfx  r0, r1, #0, #11", 0xAAAAAAAA, r0, r1, 0);
386   TESTINST2("ubfx  r0, r1, #1, #11", 0xAAAAAAAA, r0, r1, 0);
387   TESTINST2("ubfx  r0, r1, #2, #11", 0xAAAAAAAA, r0, r1, 0);
388   TESTINST2("ubfx  r0, r1, #2, #11", 0xAAAAAAAA, r0, r1, 0);
389   TESTINST2("ubfx  r0, r1, #31, #1", 0xAAAAAAAA, r0, r1, 0);
390   TESTINST2("ubfx  r0, r1, #30, #2", 0xAAAAAAAA, r0, r1, 0);
391 
392   printf("------------ SMUL{B,T}{B,T} ------------\n");
393   /* SMULbb rD, rN, rM */
394   TESTINST3("smulbb r0, r1, r2", 0x00030000, 0x00040000,  r0, r1, r2, 0);
395   TESTINST3("smulbb r0, r1, r2", 0x00030001, 0x00040002,  r0, r1, r2, 0);
396   TESTINST3("smulbb r0, r1, r2", 0x00038001, 0x00047fff,  r0, r1, r2, 0);
397   TESTINST3("smulbb r0, r1, r2", 0x00037fff, 0x00047fff,  r0, r1, r2, 0);
398   TESTINST3("smulbb r0, r1, r2", 0x0003ffff, 0x0004ffff,  r0, r1, r2, 0);
399 TESTINST3("smulbb r0, r1, r2", 0x2575feb2, 0xd2c4287c, r0, r1, r2, 0);
400 TESTINST3("smulbb r0, r1, r2", 0xfb412431, 0x4b90362d, r0, r1, r2, 0);
401 TESTINST3("smulbb r0, r1, r2", 0x004dfbe5, 0xe87927cc, r0, r1, r2, 0);
402 TESTINST3("smulbb r0, r1, r2", 0xf6a3fa3c, 0x083b3571, r0, r1, r2, 0);
403 TESTINST3("smulbb r0, r1, r2", 0xbf17fb9a, 0xb9743941, r0, r1, r2, 0);
404 TESTINST3("smulbb r0, r1, r2", 0x2c0bd024, 0xbce5f924, r0, r1, r2, 0);
405 TESTINST3("smulbb r0, r1, r2", 0x3e976e2e, 0xcc3c201c, r0, r1, r2, 0);
406 TESTINST3("smulbb r0, r1, r2", 0xb4bfb365, 0x1ebaf88e, r0, r1, r2, 0);
407 TESTINST3("smulbb r0, r1, r2", 0x288593c0, 0x722d5e20, r0, r1, r2, 0);
408 TESTINST3("smulbb r0, r1, r2", 0x4d7ff5b4, 0xa1d6f791, r0, r1, r2, 0);
409 TESTINST3("smulbb r0, r1, r2", 0x4557be13, 0x7b11bee7, r0, r1, r2, 0);
410 TESTINST3("smulbb r0, r1, r2", 0xadcf5772, 0xa5631488, r0, r1, r2, 0);
411 TESTINST3("smulbb r0, r1, r2", 0x989a7235, 0xb10bcc65, r0, r1, r2, 0);
412 TESTINST3("smulbb r0, r1, r2", 0x4d6f393a, 0x73f39fca, r0, r1, r2, 0);
413 TESTINST3("smulbb r0, r1, r2", 0x24a3291e, 0x5648e540, r0, r1, r2, 0);
414 TESTINST3("smulbb r0, r1, r2", 0xdd91eebf, 0xc54f79e6, r0, r1, r2, 0);
415 TESTINST3("smulbb r0, r1, r2", 0xf7ce2ec6, 0x5fc92974, r0, r1, r2, 0);
416 TESTINST3("smulbb r0, r1, r2", 0xbc1083e8, 0x7e08184e, r0, r1, r2, 0);
417 TESTINST3("smulbb r0, r1, r2", 0xa617cc31, 0x71c8315f, r0, r1, r2, 0);
418 TESTINST3("smulbb r0, r1, r2", 0xdfe1e8f0, 0x9493110e, r0, r1, r2, 0);
419 TESTINST3("smulbb r0, r1, r2", 0x6ef49020, 0xba8a7e0d, r0, r1, r2, 0);
420 TESTINST3("smulbb r0, r1, r2", 0x3dc4e36b, 0x21568e39, r0, r1, r2, 0);
421 TESTINST3("smulbb r0, r1, r2", 0x52db4a9d, 0x55fcc8cf, r0, r1, r2, 0);
422 TESTINST3("smulbb r0, r1, r2", 0x3564c76c, 0x14434a2a, r0, r1, r2, 0);
423 TESTINST3("smulbb r0, r1, r2", 0x27836b0c, 0x3c855ca8, r0, r1, r2, 0);
424 TESTINST3("smulbb r0, r1, r2", 0x62ff7c30, 0x30ece28e, r0, r1, r2, 0);
425 TESTINST3("smulbb r0, r1, r2", 0x40955fdf, 0x057b562c, r0, r1, r2, 0);
426 TESTINST3("smulbb r0, r1, r2", 0x3b34c270, 0x27e1475b, r0, r1, r2, 0);
427 TESTINST3("smulbb r0, r1, r2", 0x7fdcda96, 0xd05893a7, r0, r1, r2, 0);
428 TESTINST3("smulbb r0, r1, r2", 0xb6ab141d, 0x2dc43624, r0, r1, r2, 0);
429 TESTINST3("smulbb r0, r1, r2", 0x403d53cb, 0x5328d58c, r0, r1, r2, 0);
430 TESTINST3("smulbb r0, r1, r2", 0x21ef1aef, 0x87488a4a, r0, r1, r2, 0);
431 TESTINST3("smulbb r0, r1, r2", 0x31458a23, 0xbb246228, r0, r1, r2, 0);
432 TESTINST3("smulbb r0, r1, r2", 0x848af791, 0x339d8d88, r0, r1, r2, 0);
433 TESTINST3("smulbb r0, r1, r2", 0xda3bacdc, 0x70974249, r0, r1, r2, 0);
434 TESTINST3("smulbb r0, r1, r2", 0x649d5cbd, 0x8a8d4e7d, r0, r1, r2, 0);
435 TESTINST3("smulbb r0, r1, r2", 0xc0c8c881, 0xeb1b4335, r0, r1, r2, 0);
436 TESTINST3("smulbb r0, r1, r2", 0x7dd81a20, 0x0cd6b508, r0, r1, r2, 0);
437 TESTINST3("smulbb r0, r1, r2", 0x6892886c, 0x6731e282, r0, r1, r2, 0);
438 TESTINST3("smulbb r0, r1, r2", 0x112dcffc, 0xb6edf28f, r0, r1, r2, 0);
439 TESTINST3("smulbb r0, r1, r2", 0xabfabbe6, 0x4b4ec9ca, r0, r1, r2, 0);
440 TESTINST3("smulbb r0, r1, r2", 0xe52aabf8, 0xc1037fa4, r0, r1, r2, 0);
441 TESTINST3("smulbb r0, r1, r2", 0xf2f4df1f, 0xcb4ab48f, r0, r1, r2, 0);
442 TESTINST3("smulbb r0, r1, r2", 0x435f909a, 0xaf8f7e18, r0, r1, r2, 0);
443 TESTINST3("smulbb r0, r1, r2", 0x2106ba5f, 0x87df4510, r0, r1, r2, 0);
444 TESTINST3("smulbb r0, r1, r2", 0x246a6376, 0xabf4e8e1, r0, r1, r2, 0);
445 TESTINST3("smulbb r0, r1, r2", 0x1046a1a3, 0xf4c0eeac, r0, r1, r2, 0);
446 TESTINST3("smulbb r0, r1, r2", 0x638ca515, 0x006a54f2, r0, r1, r2, 0);
447 TESTINST3("smulbb r0, r1, r2", 0xf63e7a9d, 0x79f74493, r0, r1, r2, 0);
448 TESTINST3("smulbb r0, r1, r2", 0xbd6845cd, 0x9c09e313, r0, r1, r2, 0);
449   /* SMULtt rD, rN, rM */
450   TESTINST3("smultt r0, r1, r2", 0x00000003, 0x00000004,  r0, r1, r2, 0);
451   TESTINST3("smultt r0, r1, r2", 0x00010003, 0x00020004,  r0, r1, r2, 0);
452   TESTINST3("smultt r0, r1, r2", 0x80010003, 0x7fff0004,  r0, r1, r2, 0);
453   TESTINST3("smultt r0, r1, r2", 0x7fff0003, 0x7fff0004,  r0, r1, r2, 0);
454   TESTINST3("smultt r0, r1, r2", 0xffff0003, 0xffff0004,  r0, r1, r2, 0);
455 TESTINST3("smultt r0, r1, r2", 0x2575feb2, 0xd2c4287c, r0, r1, r2, 0);
456 TESTINST3("smultt r0, r1, r2", 0xfb412431, 0x4b90362d, r0, r1, r2, 0);
457 TESTINST3("smultt r0, r1, r2", 0x004dfbe5, 0xe87927cc, r0, r1, r2, 0);
458 TESTINST3("smultt r0, r1, r2", 0xf6a3fa3c, 0x083b3571, r0, r1, r2, 0);
459 TESTINST3("smultt r0, r1, r2", 0xbf17fb9a, 0xb9743941, r0, r1, r2, 0);
460 TESTINST3("smultt r0, r1, r2", 0x2c0bd024, 0xbce5f924, r0, r1, r2, 0);
461 TESTINST3("smultt r0, r1, r2", 0x3e976e2e, 0xcc3c201c, r0, r1, r2, 0);
462 TESTINST3("smultt r0, r1, r2", 0xb4bfb365, 0x1ebaf88e, r0, r1, r2, 0);
463 TESTINST3("smultt r0, r1, r2", 0x288593c0, 0x722d5e20, r0, r1, r2, 0);
464 TESTINST3("smultt r0, r1, r2", 0x4d7ff5b4, 0xa1d6f791, r0, r1, r2, 0);
465 TESTINST3("smultt r0, r1, r2", 0x4557be13, 0x7b11bee7, r0, r1, r2, 0);
466 TESTINST3("smultt r0, r1, r2", 0xadcf5772, 0xa5631488, r0, r1, r2, 0);
467 TESTINST3("smultt r0, r1, r2", 0x989a7235, 0xb10bcc65, r0, r1, r2, 0);
468 TESTINST3("smultt r0, r1, r2", 0x4d6f393a, 0x73f39fca, r0, r1, r2, 0);
469 TESTINST3("smultt r0, r1, r2", 0x24a3291e, 0x5648e540, r0, r1, r2, 0);
470 TESTINST3("smultt r0, r1, r2", 0xdd91eebf, 0xc54f79e6, r0, r1, r2, 0);
471 TESTINST3("smultt r0, r1, r2", 0xf7ce2ec6, 0x5fc92974, r0, r1, r2, 0);
472 TESTINST3("smultt r0, r1, r2", 0xbc1083e8, 0x7e08184e, r0, r1, r2, 0);
473 TESTINST3("smultt r0, r1, r2", 0xa617cc31, 0x71c8315f, r0, r1, r2, 0);
474 TESTINST3("smultt r0, r1, r2", 0xdfe1e8f0, 0x9493110e, r0, r1, r2, 0);
475 TESTINST3("smultt r0, r1, r2", 0x6ef49020, 0xba8a7e0d, r0, r1, r2, 0);
476 TESTINST3("smultt r0, r1, r2", 0x3dc4e36b, 0x21568e39, r0, r1, r2, 0);
477 TESTINST3("smultt r0, r1, r2", 0x52db4a9d, 0x55fcc8cf, r0, r1, r2, 0);
478 TESTINST3("smultt r0, r1, r2", 0x3564c76c, 0x14434a2a, r0, r1, r2, 0);
479 TESTINST3("smultt r0, r1, r2", 0x27836b0c, 0x3c855ca8, r0, r1, r2, 0);
480 TESTINST3("smultt r0, r1, r2", 0x62ff7c30, 0x30ece28e, r0, r1, r2, 0);
481 TESTINST3("smultt r0, r1, r2", 0x40955fdf, 0x057b562c, r0, r1, r2, 0);
482 TESTINST3("smultt r0, r1, r2", 0x3b34c270, 0x27e1475b, r0, r1, r2, 0);
483 TESTINST3("smultt r0, r1, r2", 0x7fdcda96, 0xd05893a7, r0, r1, r2, 0);
484 TESTINST3("smultt r0, r1, r2", 0xb6ab141d, 0x2dc43624, r0, r1, r2, 0);
485 TESTINST3("smultt r0, r1, r2", 0x403d53cb, 0x5328d58c, r0, r1, r2, 0);
486 TESTINST3("smultt r0, r1, r2", 0x21ef1aef, 0x87488a4a, r0, r1, r2, 0);
487 TESTINST3("smultt r0, r1, r2", 0x31458a23, 0xbb246228, r0, r1, r2, 0);
488 TESTINST3("smultt r0, r1, r2", 0x848af791, 0x339d8d88, r0, r1, r2, 0);
489 TESTINST3("smultt r0, r1, r2", 0xda3bacdc, 0x70974249, r0, r1, r2, 0);
490 TESTINST3("smultt r0, r1, r2", 0x649d5cbd, 0x8a8d4e7d, r0, r1, r2, 0);
491 TESTINST3("smultt r0, r1, r2", 0xc0c8c881, 0xeb1b4335, r0, r1, r2, 0);
492 TESTINST3("smultt r0, r1, r2", 0x7dd81a20, 0x0cd6b508, r0, r1, r2, 0);
493 TESTINST3("smultt r0, r1, r2", 0x6892886c, 0x6731e282, r0, r1, r2, 0);
494 TESTINST3("smultt r0, r1, r2", 0x112dcffc, 0xb6edf28f, r0, r1, r2, 0);
495 TESTINST3("smultt r0, r1, r2", 0xabfabbe6, 0x4b4ec9ca, r0, r1, r2, 0);
496 TESTINST3("smultt r0, r1, r2", 0xe52aabf8, 0xc1037fa4, r0, r1, r2, 0);
497 TESTINST3("smultt r0, r1, r2", 0xf2f4df1f, 0xcb4ab48f, r0, r1, r2, 0);
498 TESTINST3("smultt r0, r1, r2", 0x435f909a, 0xaf8f7e18, r0, r1, r2, 0);
499 TESTINST3("smultt r0, r1, r2", 0x2106ba5f, 0x87df4510, r0, r1, r2, 0);
500 TESTINST3("smultt r0, r1, r2", 0x246a6376, 0xabf4e8e1, r0, r1, r2, 0);
501 TESTINST3("smultt r0, r1, r2", 0x1046a1a3, 0xf4c0eeac, r0, r1, r2, 0);
502 TESTINST3("smultt r0, r1, r2", 0x638ca515, 0x006a54f2, r0, r1, r2, 0);
503 TESTINST3("smultt r0, r1, r2", 0xf63e7a9d, 0x79f74493, r0, r1, r2, 0);
504 TESTINST3("smultt r0, r1, r2", 0xbd6845cd, 0x9c09e313, r0, r1, r2, 0);
505   /* SMULtb rD, rN, rM */
506   TESTINST3("smultb r0, r1, r2", 0x00000003, 0x00040000,  r0, r1, r2, 0);
507   TESTINST3("smultb r0, r1, r2", 0x00010003, 0x00040002,  r0, r1, r2, 0);
508   TESTINST3("smultb r0, r1, r2", 0x80010003, 0x00047fff,  r0, r1, r2, 0);
509   TESTINST3("smultb r0, r1, r2", 0x7fff0003, 0x00047fff,  r0, r1, r2, 0);
510   TESTINST3("smultb r0, r1, r2", 0xffff0003, 0x0004ffff,  r0, r1, r2, 0);
511 TESTINST3("smultb r0, r1, r2", 0x2575feb2, 0xd2c4287c, r0, r1, r2, 0);
512 TESTINST3("smultb r0, r1, r2", 0xfb412431, 0x4b90362d, r0, r1, r2, 0);
513 TESTINST3("smultb r0, r1, r2", 0x004dfbe5, 0xe87927cc, r0, r1, r2, 0);
514 TESTINST3("smultb r0, r1, r2", 0xf6a3fa3c, 0x083b3571, r0, r1, r2, 0);
515 TESTINST3("smultb r0, r1, r2", 0xbf17fb9a, 0xb9743941, r0, r1, r2, 0);
516 TESTINST3("smultb r0, r1, r2", 0x2c0bd024, 0xbce5f924, r0, r1, r2, 0);
517 TESTINST3("smultb r0, r1, r2", 0x3e976e2e, 0xcc3c201c, r0, r1, r2, 0);
518 TESTINST3("smultb r0, r1, r2", 0xb4bfb365, 0x1ebaf88e, r0, r1, r2, 0);
519 TESTINST3("smultb r0, r1, r2", 0x288593c0, 0x722d5e20, r0, r1, r2, 0);
520 TESTINST3("smultb r0, r1, r2", 0x4d7ff5b4, 0xa1d6f791, r0, r1, r2, 0);
521 TESTINST3("smultb r0, r1, r2", 0x4557be13, 0x7b11bee7, r0, r1, r2, 0);
522 TESTINST3("smultb r0, r1, r2", 0xadcf5772, 0xa5631488, r0, r1, r2, 0);
523 TESTINST3("smultb r0, r1, r2", 0x989a7235, 0xb10bcc65, r0, r1, r2, 0);
524 TESTINST3("smultb r0, r1, r2", 0x4d6f393a, 0x73f39fca, r0, r1, r2, 0);
525 TESTINST3("smultb r0, r1, r2", 0x24a3291e, 0x5648e540, r0, r1, r2, 0);
526 TESTINST3("smultb r0, r1, r2", 0xdd91eebf, 0xc54f79e6, r0, r1, r2, 0);
527 TESTINST3("smultb r0, r1, r2", 0xf7ce2ec6, 0x5fc92974, r0, r1, r2, 0);
528 TESTINST3("smultb r0, r1, r2", 0xbc1083e8, 0x7e08184e, r0, r1, r2, 0);
529 TESTINST3("smultb r0, r1, r2", 0xa617cc31, 0x71c8315f, r0, r1, r2, 0);
530 TESTINST3("smultb r0, r1, r2", 0xdfe1e8f0, 0x9493110e, r0, r1, r2, 0);
531 TESTINST3("smultb r0, r1, r2", 0x6ef49020, 0xba8a7e0d, r0, r1, r2, 0);
532 TESTINST3("smultb r0, r1, r2", 0x3dc4e36b, 0x21568e39, r0, r1, r2, 0);
533 TESTINST3("smultb r0, r1, r2", 0x52db4a9d, 0x55fcc8cf, r0, r1, r2, 0);
534 TESTINST3("smultb r0, r1, r2", 0x3564c76c, 0x14434a2a, r0, r1, r2, 0);
535 TESTINST3("smultb r0, r1, r2", 0x27836b0c, 0x3c855ca8, r0, r1, r2, 0);
536 TESTINST3("smultb r0, r1, r2", 0x62ff7c30, 0x30ece28e, r0, r1, r2, 0);
537 TESTINST3("smultb r0, r1, r2", 0x40955fdf, 0x057b562c, r0, r1, r2, 0);
538 TESTINST3("smultb r0, r1, r2", 0x3b34c270, 0x27e1475b, r0, r1, r2, 0);
539 TESTINST3("smultb r0, r1, r2", 0x7fdcda96, 0xd05893a7, r0, r1, r2, 0);
540 TESTINST3("smultb r0, r1, r2", 0xb6ab141d, 0x2dc43624, r0, r1, r2, 0);
541 TESTINST3("smultb r0, r1, r2", 0x403d53cb, 0x5328d58c, r0, r1, r2, 0);
542 TESTINST3("smultb r0, r1, r2", 0x21ef1aef, 0x87488a4a, r0, r1, r2, 0);
543 TESTINST3("smultb r0, r1, r2", 0x31458a23, 0xbb246228, r0, r1, r2, 0);
544 TESTINST3("smultb r0, r1, r2", 0x848af791, 0x339d8d88, r0, r1, r2, 0);
545 TESTINST3("smultb r0, r1, r2", 0xda3bacdc, 0x70974249, r0, r1, r2, 0);
546 TESTINST3("smultb r0, r1, r2", 0x649d5cbd, 0x8a8d4e7d, r0, r1, r2, 0);
547 TESTINST3("smultb r0, r1, r2", 0xc0c8c881, 0xeb1b4335, r0, r1, r2, 0);
548 TESTINST3("smultb r0, r1, r2", 0x7dd81a20, 0x0cd6b508, r0, r1, r2, 0);
549 TESTINST3("smultb r0, r1, r2", 0x6892886c, 0x6731e282, r0, r1, r2, 0);
550 TESTINST3("smultb r0, r1, r2", 0x112dcffc, 0xb6edf28f, r0, r1, r2, 0);
551 TESTINST3("smultb r0, r1, r2", 0xabfabbe6, 0x4b4ec9ca, r0, r1, r2, 0);
552 TESTINST3("smultb r0, r1, r2", 0xe52aabf8, 0xc1037fa4, r0, r1, r2, 0);
553 TESTINST3("smultb r0, r1, r2", 0xf2f4df1f, 0xcb4ab48f, r0, r1, r2, 0);
554 TESTINST3("smultb r0, r1, r2", 0x435f909a, 0xaf8f7e18, r0, r1, r2, 0);
555 TESTINST3("smultb r0, r1, r2", 0x2106ba5f, 0x87df4510, r0, r1, r2, 0);
556 TESTINST3("smultb r0, r1, r2", 0x246a6376, 0xabf4e8e1, r0, r1, r2, 0);
557 TESTINST3("smultb r0, r1, r2", 0x1046a1a3, 0xf4c0eeac, r0, r1, r2, 0);
558 TESTINST3("smultb r0, r1, r2", 0x638ca515, 0x006a54f2, r0, r1, r2, 0);
559 TESTINST3("smultb r0, r1, r2", 0xf63e7a9d, 0x79f74493, r0, r1, r2, 0);
560 TESTINST3("smultb r0, r1, r2", 0xbd6845cd, 0x9c09e313, r0, r1, r2, 0);
561   /* SMULbt rD, rN, rM */
562   TESTINST3("smulbt r0, r1, r2", 0x00030000, 0x00000004,  r0, r1, r2, 0);
563   TESTINST3("smulbt r0, r1, r2", 0x00030001, 0x00020004,  r0, r1, r2, 0);
564   TESTINST3("smulbt r0, r1, r2", 0x00038001, 0x7fff0004,  r0, r1, r2, 0);
565   TESTINST3("smulbt r0, r1, r2", 0x00037fff, 0x7fff0004,  r0, r1, r2, 0);
566   TESTINST3("smulbt r0, r1, r2", 0x0003ffff, 0xffff0004,  r0, r1, r2, 0);
567 TESTINST3("smulbt r0, r1, r2", 0x2575feb2, 0xd2c4287c, r0, r1, r2, 0);
568 TESTINST3("smulbt r0, r1, r2", 0xfb412431, 0x4b90362d, r0, r1, r2, 0);
569 TESTINST3("smulbt r0, r1, r2", 0x004dfbe5, 0xe87927cc, r0, r1, r2, 0);
570 TESTINST3("smulbt r0, r1, r2", 0xf6a3fa3c, 0x083b3571, r0, r1, r2, 0);
571 TESTINST3("smulbt r0, r1, r2", 0xbf17fb9a, 0xb9743941, r0, r1, r2, 0);
572 TESTINST3("smulbt r0, r1, r2", 0x2c0bd024, 0xbce5f924, r0, r1, r2, 0);
573 TESTINST3("smulbt r0, r1, r2", 0x3e976e2e, 0xcc3c201c, r0, r1, r2, 0);
574 TESTINST3("smulbt r0, r1, r2", 0xb4bfb365, 0x1ebaf88e, r0, r1, r2, 0);
575 TESTINST3("smulbt r0, r1, r2", 0x288593c0, 0x722d5e20, r0, r1, r2, 0);
576 TESTINST3("smulbt r0, r1, r2", 0x4d7ff5b4, 0xa1d6f791, r0, r1, r2, 0);
577 TESTINST3("smulbt r0, r1, r2", 0x4557be13, 0x7b11bee7, r0, r1, r2, 0);
578 TESTINST3("smulbt r0, r1, r2", 0xadcf5772, 0xa5631488, r0, r1, r2, 0);
579 TESTINST3("smulbt r0, r1, r2", 0x989a7235, 0xb10bcc65, r0, r1, r2, 0);
580 TESTINST3("smulbt r0, r1, r2", 0x4d6f393a, 0x73f39fca, r0, r1, r2, 0);
581 TESTINST3("smulbt r0, r1, r2", 0x24a3291e, 0x5648e540, r0, r1, r2, 0);
582 TESTINST3("smulbt r0, r1, r2", 0xdd91eebf, 0xc54f79e6, r0, r1, r2, 0);
583 TESTINST3("smulbt r0, r1, r2", 0xf7ce2ec6, 0x5fc92974, r0, r1, r2, 0);
584 TESTINST3("smulbt r0, r1, r2", 0xbc1083e8, 0x7e08184e, r0, r1, r2, 0);
585 TESTINST3("smulbt r0, r1, r2", 0xa617cc31, 0x71c8315f, r0, r1, r2, 0);
586 TESTINST3("smulbt r0, r1, r2", 0xdfe1e8f0, 0x9493110e, r0, r1, r2, 0);
587 TESTINST3("smulbt r0, r1, r2", 0x6ef49020, 0xba8a7e0d, r0, r1, r2, 0);
588 TESTINST3("smulbt r0, r1, r2", 0x3dc4e36b, 0x21568e39, r0, r1, r2, 0);
589 TESTINST3("smulbt r0, r1, r2", 0x52db4a9d, 0x55fcc8cf, r0, r1, r2, 0);
590 TESTINST3("smulbt r0, r1, r2", 0x3564c76c, 0x14434a2a, r0, r1, r2, 0);
591 TESTINST3("smulbt r0, r1, r2", 0x27836b0c, 0x3c855ca8, r0, r1, r2, 0);
592 TESTINST3("smulbt r0, r1, r2", 0x62ff7c30, 0x30ece28e, r0, r1, r2, 0);
593 TESTINST3("smulbt r0, r1, r2", 0x40955fdf, 0x057b562c, r0, r1, r2, 0);
594 TESTINST3("smulbt r0, r1, r2", 0x3b34c270, 0x27e1475b, r0, r1, r2, 0);
595 TESTINST3("smulbt r0, r1, r2", 0x7fdcda96, 0xd05893a7, r0, r1, r2, 0);
596 TESTINST3("smulbt r0, r1, r2", 0xb6ab141d, 0x2dc43624, r0, r1, r2, 0);
597 TESTINST3("smulbt r0, r1, r2", 0x403d53cb, 0x5328d58c, r0, r1, r2, 0);
598 TESTINST3("smulbt r0, r1, r2", 0x21ef1aef, 0x87488a4a, r0, r1, r2, 0);
599 TESTINST3("smulbt r0, r1, r2", 0x31458a23, 0xbb246228, r0, r1, r2, 0);
600 TESTINST3("smulbt r0, r1, r2", 0x848af791, 0x339d8d88, r0, r1, r2, 0);
601 TESTINST3("smulbt r0, r1, r2", 0xda3bacdc, 0x70974249, r0, r1, r2, 0);
602 TESTINST3("smulbt r0, r1, r2", 0x649d5cbd, 0x8a8d4e7d, r0, r1, r2, 0);
603 TESTINST3("smulbt r0, r1, r2", 0xc0c8c881, 0xeb1b4335, r0, r1, r2, 0);
604 TESTINST3("smulbt r0, r1, r2", 0x7dd81a20, 0x0cd6b508, r0, r1, r2, 0);
605 TESTINST3("smulbt r0, r1, r2", 0x6892886c, 0x6731e282, r0, r1, r2, 0);
606 TESTINST3("smulbt r0, r1, r2", 0x112dcffc, 0xb6edf28f, r0, r1, r2, 0);
607 TESTINST3("smulbt r0, r1, r2", 0xabfabbe6, 0x4b4ec9ca, r0, r1, r2, 0);
608 TESTINST3("smulbt r0, r1, r2", 0xe52aabf8, 0xc1037fa4, r0, r1, r2, 0);
609 TESTINST3("smulbt r0, r1, r2", 0xf2f4df1f, 0xcb4ab48f, r0, r1, r2, 0);
610 TESTINST3("smulbt r0, r1, r2", 0x435f909a, 0xaf8f7e18, r0, r1, r2, 0);
611 TESTINST3("smulbt r0, r1, r2", 0x2106ba5f, 0x87df4510, r0, r1, r2, 0);
612 TESTINST3("smulbt r0, r1, r2", 0x246a6376, 0xabf4e8e1, r0, r1, r2, 0);
613 TESTINST3("smulbt r0, r1, r2", 0x1046a1a3, 0xf4c0eeac, r0, r1, r2, 0);
614 TESTINST3("smulbt r0, r1, r2", 0x638ca515, 0x006a54f2, r0, r1, r2, 0);
615 TESTINST3("smulbt r0, r1, r2", 0xf63e7a9d, 0x79f74493, r0, r1, r2, 0);
616 TESTINST3("smulbt r0, r1, r2", 0xbd6845cd, 0x9c09e313, r0, r1, r2, 0);
617 
618   printf("-------------- SMULW{B,T} --------------\n");
619   /* SMULWB rD, rN, rM : Rn x Rm[31..16] */
620   TESTINST3("smulwb r0, r1, r2", 0x00000003, 0x00020004, r0, r1, r2, 0);
621   TESTINST3("smulwb r0, r1, r2", 0x00010003, 0x47ff0004, r0, r1, r2, 0);
622   TESTINST3("smulwb r0, r1, r2", 0x80010003, 0x7fff0004, r0, r1, r2, 0);
623   TESTINST3("smulwb r0, r1, r2", 0x7fff0003, 0x7fff0004, r0, r1, r2, 0);
624   TESTINST3("smulwb r0, r1, r2", 0xffff0003, 0xffff0004, r0, r1, r2, 0);
625 TESTINST3("smulwb r0, r1, r2", 0x2575feb2, 0xd2c4287c, r0, r1, r2, 0);
626 TESTINST3("smulwb r0, r1, r2", 0xfb412431, 0x4b90362d, r0, r1, r2, 0);
627 TESTINST3("smulwb r0, r1, r2", 0x004dfbe5, 0xe87927cc, r0, r1, r2, 0);
628 TESTINST3("smulwb r0, r1, r2", 0xf6a3fa3c, 0x083b3571, r0, r1, r2, 0);
629 TESTINST3("smulwb r0, r1, r2", 0xbf17fb9a, 0xb9743941, r0, r1, r2, 0);
630 TESTINST3("smulwb r0, r1, r2", 0x2c0bd024, 0xbce5f924, r0, r1, r2, 0);
631 TESTINST3("smulwb r0, r1, r2", 0x3e976e2e, 0xcc3c201c, r0, r1, r2, 0);
632 TESTINST3("smulwb r0, r1, r2", 0xb4bfb365, 0x1ebaf88e, r0, r1, r2, 0);
633 TESTINST3("smulwb r0, r1, r2", 0x288593c0, 0x722d5e20, r0, r1, r2, 0);
634 TESTINST3("smulwb r0, r1, r2", 0x4d7ff5b4, 0xa1d6f791, r0, r1, r2, 0);
635 TESTINST3("smulwb r0, r1, r2", 0x4557be13, 0x7b11bee7, r0, r1, r2, 0);
636 TESTINST3("smulwb r0, r1, r2", 0xadcf5772, 0xa5631488, r0, r1, r2, 0);
637 TESTINST3("smulwb r0, r1, r2", 0x989a7235, 0xb10bcc65, r0, r1, r2, 0);
638 TESTINST3("smulwb r0, r1, r2", 0x4d6f393a, 0x73f39fca, r0, r1, r2, 0);
639 TESTINST3("smulwb r0, r1, r2", 0x24a3291e, 0x5648e540, r0, r1, r2, 0);
640 TESTINST3("smulwb r0, r1, r2", 0xdd91eebf, 0xc54f79e6, r0, r1, r2, 0);
641 TESTINST3("smulwb r0, r1, r2", 0xf7ce2ec6, 0x5fc92974, r0, r1, r2, 0);
642 TESTINST3("smulwb r0, r1, r2", 0xbc1083e8, 0x7e08184e, r0, r1, r2, 0);
643 TESTINST3("smulwb r0, r1, r2", 0xa617cc31, 0x71c8315f, r0, r1, r2, 0);
644 TESTINST3("smulwb r0, r1, r2", 0xdfe1e8f0, 0x9493110e, r0, r1, r2, 0);
645 TESTINST3("smulwb r0, r1, r2", 0x6ef49020, 0xba8a7e0d, r0, r1, r2, 0);
646 TESTINST3("smulwb r0, r1, r2", 0x3dc4e36b, 0x21568e39, r0, r1, r2, 0);
647 TESTINST3("smulwb r0, r1, r2", 0x52db4a9d, 0x55fcc8cf, r0, r1, r2, 0);
648 TESTINST3("smulwb r0, r1, r2", 0x3564c76c, 0x14434a2a, r0, r1, r2, 0);
649 TESTINST3("smulwb r0, r1, r2", 0x27836b0c, 0x3c855ca8, r0, r1, r2, 0);
650 TESTINST3("smulwb r0, r1, r2", 0x62ff7c30, 0x30ece28e, r0, r1, r2, 0);
651 TESTINST3("smulwb r0, r1, r2", 0x40955fdf, 0x057b562c, r0, r1, r2, 0);
652 TESTINST3("smulwb r0, r1, r2", 0x3b34c270, 0x27e1475b, r0, r1, r2, 0);
653 TESTINST3("smulwb r0, r1, r2", 0x7fdcda96, 0xd05893a7, r0, r1, r2, 0);
654 TESTINST3("smulwb r0, r1, r2", 0xb6ab141d, 0x2dc43624, r0, r1, r2, 0);
655 TESTINST3("smulwb r0, r1, r2", 0x403d53cb, 0x5328d58c, r0, r1, r2, 0);
656 TESTINST3("smulwb r0, r1, r2", 0x21ef1aef, 0x87488a4a, r0, r1, r2, 0);
657 TESTINST3("smulwb r0, r1, r2", 0x31458a23, 0xbb246228, r0, r1, r2, 0);
658 TESTINST3("smulwb r0, r1, r2", 0x848af791, 0x339d8d88, r0, r1, r2, 0);
659 TESTINST3("smulwb r0, r1, r2", 0xda3bacdc, 0x70974249, r0, r1, r2, 0);
660 TESTINST3("smulwb r0, r1, r2", 0x649d5cbd, 0x8a8d4e7d, r0, r1, r2, 0);
661 TESTINST3("smulwb r0, r1, r2", 0xc0c8c881, 0xeb1b4335, r0, r1, r2, 0);
662 TESTINST3("smulwb r0, r1, r2", 0x7dd81a20, 0x0cd6b508, r0, r1, r2, 0);
663 TESTINST3("smulwb r0, r1, r2", 0x6892886c, 0x6731e282, r0, r1, r2, 0);
664 TESTINST3("smulwb r0, r1, r2", 0x112dcffc, 0xb6edf28f, r0, r1, r2, 0);
665 TESTINST3("smulwb r0, r1, r2", 0xabfabbe6, 0x4b4ec9ca, r0, r1, r2, 0);
666 TESTINST3("smulwb r0, r1, r2", 0xe52aabf8, 0xc1037fa4, r0, r1, r2, 0);
667 TESTINST3("smulwb r0, r1, r2", 0xf2f4df1f, 0xcb4ab48f, r0, r1, r2, 0);
668 TESTINST3("smulwb r0, r1, r2", 0x435f909a, 0xaf8f7e18, r0, r1, r2, 0);
669 TESTINST3("smulwb r0, r1, r2", 0x2106ba5f, 0x87df4510, r0, r1, r2, 0);
670 TESTINST3("smulwb r0, r1, r2", 0x246a6376, 0xabf4e8e1, r0, r1, r2, 0);
671 TESTINST3("smulwb r0, r1, r2", 0x1046a1a3, 0xf4c0eeac, r0, r1, r2, 0);
672 TESTINST3("smulwb r0, r1, r2", 0x638ca515, 0x006a54f2, r0, r1, r2, 0);
673 TESTINST3("smulwb r0, r1, r2", 0xf63e7a9d, 0x79f74493, r0, r1, r2, 0);
674 TESTINST3("smulwb r0, r1, r2", 0xbd6845cd, 0x9c09e313, r0, r1, r2, 0);
675   /* SMULWT rD, rN, rM - Rn x Rm[15.. 0] */
676   TESTINST3("smulwt r0, r1, r2", 0x00000003, 0x00040000, r0, r1, r2, 0);
677   TESTINST3("smulwt r0, r1, r2", 0x00010003, 0x00040002, r0, r1, r2, 0);
678   TESTINST3("smulwt r0, r1, r2", 0x80010003, 0x00047fff, r0, r1, r2, 0);
679   TESTINST3("smulwt r0, r1, r2", 0x7fff0003, 0x00047fff, r0, r1, r2, 0);
680   TESTINST3("smulwt r0, r1, r2", 0xffff0003, 0x0004ffff, r0, r1, r2, 0);
681 TESTINST3("smulwt r0, r1, r2", 0x2575feb2, 0xd2c4287c, r0, r1, r2, 0);
682 TESTINST3("smulwt r0, r1, r2", 0xfb412431, 0x4b90362d, r0, r1, r2, 0);
683 TESTINST3("smulwt r0, r1, r2", 0x004dfbe5, 0xe87927cc, r0, r1, r2, 0);
684 TESTINST3("smulwt r0, r1, r2", 0xf6a3fa3c, 0x083b3571, r0, r1, r2, 0);
685 TESTINST3("smulwt r0, r1, r2", 0xbf17fb9a, 0xb9743941, r0, r1, r2, 0);
686 TESTINST3("smulwt r0, r1, r2", 0x2c0bd024, 0xbce5f924, r0, r1, r2, 0);
687 TESTINST3("smulwt r0, r1, r2", 0x3e976e2e, 0xcc3c201c, r0, r1, r2, 0);
688 TESTINST3("smulwt r0, r1, r2", 0xb4bfb365, 0x1ebaf88e, r0, r1, r2, 0);
689 TESTINST3("smulwt r0, r1, r2", 0x288593c0, 0x722d5e20, r0, r1, r2, 0);
690 TESTINST3("smulwt r0, r1, r2", 0x4d7ff5b4, 0xa1d6f791, r0, r1, r2, 0);
691 TESTINST3("smulwt r0, r1, r2", 0x4557be13, 0x7b11bee7, r0, r1, r2, 0);
692 TESTINST3("smulwt r0, r1, r2", 0xadcf5772, 0xa5631488, r0, r1, r2, 0);
693 TESTINST3("smulwt r0, r1, r2", 0x989a7235, 0xb10bcc65, r0, r1, r2, 0);
694 TESTINST3("smulwt r0, r1, r2", 0x4d6f393a, 0x73f39fca, r0, r1, r2, 0);
695 TESTINST3("smulwt r0, r1, r2", 0x24a3291e, 0x5648e540, r0, r1, r2, 0);
696 TESTINST3("smulwt r0, r1, r2", 0xdd91eebf, 0xc54f79e6, r0, r1, r2, 0);
697 TESTINST3("smulwt r0, r1, r2", 0xf7ce2ec6, 0x5fc92974, r0, r1, r2, 0);
698 TESTINST3("smulwt r0, r1, r2", 0xbc1083e8, 0x7e08184e, r0, r1, r2, 0);
699 TESTINST3("smulwt r0, r1, r2", 0xa617cc31, 0x71c8315f, r0, r1, r2, 0);
700 TESTINST3("smulwt r0, r1, r2", 0xdfe1e8f0, 0x9493110e, r0, r1, r2, 0);
701 TESTINST3("smulwt r0, r1, r2", 0x6ef49020, 0xba8a7e0d, r0, r1, r2, 0);
702 TESTINST3("smulwt r0, r1, r2", 0x3dc4e36b, 0x21568e39, r0, r1, r2, 0);
703 TESTINST3("smulwt r0, r1, r2", 0x52db4a9d, 0x55fcc8cf, r0, r1, r2, 0);
704 TESTINST3("smulwt r0, r1, r2", 0x3564c76c, 0x14434a2a, r0, r1, r2, 0);
705 TESTINST3("smulwt r0, r1, r2", 0x27836b0c, 0x3c855ca8, r0, r1, r2, 0);
706 TESTINST3("smulwt r0, r1, r2", 0x62ff7c30, 0x30ece28e, r0, r1, r2, 0);
707 TESTINST3("smulwt r0, r1, r2", 0x40955fdf, 0x057b562c, r0, r1, r2, 0);
708 TESTINST3("smulwt r0, r1, r2", 0x3b34c270, 0x27e1475b, r0, r1, r2, 0);
709 TESTINST3("smulwt r0, r1, r2", 0x7fdcda96, 0xd05893a7, r0, r1, r2, 0);
710 TESTINST3("smulwt r0, r1, r2", 0xb6ab141d, 0x2dc43624, r0, r1, r2, 0);
711 TESTINST3("smulwt r0, r1, r2", 0x403d53cb, 0x5328d58c, r0, r1, r2, 0);
712 TESTINST3("smulwt r0, r1, r2", 0x21ef1aef, 0x87488a4a, r0, r1, r2, 0);
713 TESTINST3("smulwt r0, r1, r2", 0x31458a23, 0xbb246228, r0, r1, r2, 0);
714 TESTINST3("smulwt r0, r1, r2", 0x848af791, 0x339d8d88, r0, r1, r2, 0);
715 TESTINST3("smulwt r0, r1, r2", 0xda3bacdc, 0x70974249, r0, r1, r2, 0);
716 TESTINST3("smulwt r0, r1, r2", 0x649d5cbd, 0x8a8d4e7d, r0, r1, r2, 0);
717 TESTINST3("smulwt r0, r1, r2", 0xc0c8c881, 0xeb1b4335, r0, r1, r2, 0);
718 TESTINST3("smulwt r0, r1, r2", 0x7dd81a20, 0x0cd6b508, r0, r1, r2, 0);
719 TESTINST3("smulwt r0, r1, r2", 0x6892886c, 0x6731e282, r0, r1, r2, 0);
720 TESTINST3("smulwt r0, r1, r2", 0x112dcffc, 0xb6edf28f, r0, r1, r2, 0);
721 TESTINST3("smulwt r0, r1, r2", 0xabfabbe6, 0x4b4ec9ca, r0, r1, r2, 0);
722 TESTINST3("smulwt r0, r1, r2", 0xe52aabf8, 0xc1037fa4, r0, r1, r2, 0);
723 TESTINST3("smulwt r0, r1, r2", 0xf2f4df1f, 0xcb4ab48f, r0, r1, r2, 0);
724 TESTINST3("smulwt r0, r1, r2", 0x435f909a, 0xaf8f7e18, r0, r1, r2, 0);
725 TESTINST3("smulwt r0, r1, r2", 0x2106ba5f, 0x87df4510, r0, r1, r2, 0);
726 TESTINST3("smulwt r0, r1, r2", 0x246a6376, 0xabf4e8e1, r0, r1, r2, 0);
727 TESTINST3("smulwt r0, r1, r2", 0x1046a1a3, 0xf4c0eeac, r0, r1, r2, 0);
728 TESTINST3("smulwt r0, r1, r2", 0x638ca515, 0x006a54f2, r0, r1, r2, 0);
729 TESTINST3("smulwt r0, r1, r2", 0xf63e7a9d, 0x79f74493, r0, r1, r2, 0);
730 TESTINST3("smulwt r0, r1, r2", 0xbd6845cd, 0x9c09e313, r0, r1, r2, 0);
731 
732   printf("------------ PKHBT / PKHTB ------------\n");
733   /* PKHBT */
734   TESTINST3("pkhbt r0, r1, r2, lsl #0",  0x11223344, 0x55667788, r0,r1,r2, 0);
735   TESTINST3("pkhbt r0, r1, r2, lsl #1",  0x11223344, 0x55667788, r0,r1,r2, 0);
736   TESTINST3("pkhbt r0, r1, r2, lsl #2",  0x11223344, 0x55667788, r0,r1,r2, 0);
737   TESTINST3("pkhbt r0, r1, r2, lsl #3",  0x11223344, 0x55667788, r0,r1,r2, 0);
738   TESTINST3("pkhbt r0, r1, r2, lsl #4",  0x11223344, 0x55667788, r0,r1,r2, 0);
739   TESTINST3("pkhbt r0, r1, r2, lsl #16", 0x11223344, 0x55667788, r0,r1,r2, 0);
740   TESTINST3("pkhbt r0, r1, r2, lsl #22", 0x11223344, 0x55667788, r0,r1,r2, 0);
741   TESTINST3("pkhbt r0, r1, r2, lsl #31", 0x11223344, 0x55667788, r0,r1,r2, 0);
742 TESTINST3("pkhbt r0, r1, r2", 0x50c28082, 0xc1553709, r0,r1,r2, 0);
743 TESTINST3("pkhbt r0, r1, r2", 0x17962e8f, 0x69ec0212, r0,r1,r2, 0);
744 TESTINST3("pkhbt r0, r1, r2", 0xc57243b7, 0x03fa9bb5, r0,r1,r2, 0);
745 TESTINST3("pkhbt r0, r1, r2", 0x7eb226ac, 0xf52e9fbf, r0,r1,r2, 0);
746 TESTINST3("pkhbt r0, r1, r2", 0xbce0f026, 0x7fcbe5a9, r0,r1,r2, 0);
747 TESTINST3("pkhbt r0, r1, r2", 0xa5757252, 0x2dd01366, r0,r1,r2, 0);
748 TESTINST3("pkhbt r0, r1, r2", 0xf4a477c1, 0x5e4b1cbf, r0,r1,r2, 0);
749 TESTINST3("pkhbt r0, r1, r2", 0x76723a21, 0x464a21cc, r0,r1,r2, 0);
750 TESTINST3("pkhbt r0, r1, r2", 0x74d01105, 0xe8108f1b, r0,r1,r2, 0);
751 TESTINST3("pkhbt r0, r1, r2", 0xc1273e2c, 0xcd90d604, r0,r1,r2, 0);
752 TESTINST3("pkhbt r0, r1, r2, lsl #0",  0x5f986e68, 0x35232047, r0,r1,r2, 0);
753 TESTINST3("pkhbt r0, r1, r2, lsl #1",  0x5f986e68, 0x35232047, r0,r1,r2, 0);
754 TESTINST3("pkhbt r0, r1, r2, lsl #2",  0x5f986e68, 0x35232047, r0,r1,r2, 0);
755 TESTINST3("pkhbt r0, r1, r2, lsl #3",  0x5f986e68, 0x35232047, r0,r1,r2, 0);
756 TESTINST3("pkhbt r0, r1, r2, lsl #4",  0x5f986e68, 0x35232047, r0,r1,r2, 0);
757 TESTINST3("pkhbt r0, r1, r2, lsl #8",  0x5f986e68, 0x35232047, r0,r1,r2, 0);
758 TESTINST3("pkhbt r0, r1, r2, lsl #12", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
759 TESTINST3("pkhbt r0, r1, r2, lsl #16", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
760 TESTINST3("pkhbt r0, r1, r2, lsl #24", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
761 TESTINST3("pkhbt r0, r1, r2, lsl #31", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
762 TESTINST3("pkhbt r0, r1, r2, lsl #0",  0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
763 TESTINST3("pkhbt r0, r1, r2, lsl #1",  0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
764 TESTINST3("pkhbt r0, r1, r2, lsl #2",  0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
765 TESTINST3("pkhbt r0, r1, r2, lsl #3",  0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
766 TESTINST3("pkhbt r0, r1, r2, lsl #4",  0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
767 TESTINST3("pkhbt r0, r1, r2, lsl #8",  0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
768 TESTINST3("pkhbt r0, r1, r2, lsl #12", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
769 TESTINST3("pkhbt r0, r1, r2, lsl #16", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
770 TESTINST3("pkhbt r0, r1, r2, lsl #24", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
771 TESTINST3("pkhbt r0, r1, r2, lsl #31", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
772 TESTINST3("pkhbt r0, r1, r2, lsl #0",  0x216158cb, 0x57a50a01, r0,r1,r2, 0);
773 TESTINST3("pkhbt r0, r1, r2, lsl #1",  0x216158cb, 0x57a50a01, r0,r1,r2, 0);
774 TESTINST3("pkhbt r0, r1, r2, lsl #2",  0x216158cb, 0x57a50a01, r0,r1,r2, 0);
775 TESTINST3("pkhbt r0, r1, r2, lsl #3",  0x216158cb, 0x57a50a01, r0,r1,r2, 0);
776 TESTINST3("pkhbt r0, r1, r2, lsl #4",  0x216158cb, 0x57a50a01, r0,r1,r2, 0);
777 TESTINST3("pkhbt r0, r1, r2, lsl #8",  0x216158cb, 0x57a50a01, r0,r1,r2, 0);
778 TESTINST3("pkhbt r0, r1, r2, lsl #12", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
779 TESTINST3("pkhbt r0, r1, r2, lsl #16", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
780 TESTINST3("pkhbt r0, r1, r2, lsl #24", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
781 TESTINST3("pkhbt r0, r1, r2, lsl #31", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
782 TESTINST3("pkhbt r0, r1, r2, lsl #0",  0xd5dc5407, 0xf87b961e, r0,r1,r2, 0);
783 TESTINST3("pkhbt r0, r1, r2, lsl #1",  0xd65db979, 0xc61b323b, r0,r1,r2, 0);
784 TESTINST3("pkhbt r0, r1, r2, lsl #2",  0xa3268abe, 0xed2cbf78, r0,r1,r2, 0);
785 TESTINST3("pkhbt r0, r1, r2, lsl #3",  0xbf73f0a5, 0x2fb714c9, r0,r1,r2, 0);
786 TESTINST3("pkhbt r0, r1, r2, lsl #4",  0x281703ed, 0x925ef472, r0,r1,r2, 0);
787 TESTINST3("pkhbt r0, r1, r2, lsl #8",  0xeaa652c7, 0x137741f4, r0,r1,r2, 0);
788 TESTINST3("pkhbt r0, r1, r2, lsl #12", 0x71fbde8b, 0xdba5bd25, r0,r1,r2, 0);
789 TESTINST3("pkhbt r0, r1, r2, lsl #16", 0x884c0ad8, 0xc00b821a, r0,r1,r2, 0);
790 TESTINST3("pkhbt r0, r1, r2, lsl #24", 0xe1bb8606, 0x58293969, r0,r1,r2, 0);
791 TESTINST3("pkhbt r0, r1, r2, lsl #31", 0xa3cfd624, 0x6077fb1f, r0,r1,r2, 0);
792 TESTINST3("pkhbt r0, r1, r2, lsl #0",  0x40b094e2, 0x17913309, r0,r1,r2, 0);
793 TESTINST3("pkhbt r0, r1, r2, lsl #1",  0x5388b5cd, 0x86582032, r0,r1,r2, 0);
794 TESTINST3("pkhbt r0, r1, r2, lsl #2",  0x5de41558, 0xccfa1c7e, r0,r1,r2, 0);
795 TESTINST3("pkhbt r0, r1, r2, lsl #3",  0x23ba1b46, 0x4437983c, r0,r1,r2, 0);
796 TESTINST3("pkhbt r0, r1, r2, lsl #4",  0x48d06549, 0xa9085781, r0,r1,r2, 0);
797 TESTINST3("pkhbt r0, r1, r2, lsl #8",  0xc6b4ac58, 0xb2aead21, r0,r1,r2, 0);
798 TESTINST3("pkhbt r0, r1, r2, lsl #12", 0xc2bdf597, 0xdde1e6a4, r0,r1,r2, 0);
799 TESTINST3("pkhbt r0, r1, r2, lsl #16", 0x852e3a72, 0x157b0dea, r0,r1,r2, 0);
800 TESTINST3("pkhbt r0, r1, r2, lsl #24", 0xe7aa57b4, 0x1584bd74, r0,r1,r2, 0);
801 TESTINST3("pkhbt r0, r1, r2, lsl #31", 0xd4b64d54, 0xc53aaba9, r0,r1,r2, 0);
802   /* PKHTB */
803   TESTINST3("pkhtb r0, r1, r2, asr #0",  0x11223344, 0x55667788, r0,r1,r2, 0);
804   TESTINST3("pkhtb r0, r1, r2, asr #1",  0x11223344, 0x55667788, r0,r1,r2, 0);
805   TESTINST3("pkhtb r0, r1, r2, asr #2",  0x11223344, 0x55667788, r0,r1,r2, 0);
806   TESTINST3("pkhtb r0, r1, r2, asr #3",  0x11223344, 0x55667788, r0,r1,r2, 0);
807   TESTINST3("pkhtb r0, r1, r2, asr #4",  0x11223344, 0x55667788, r0,r1,r2, 0);
808   TESTINST3("pkhtb r0, r1, r2, asr #16", 0x11223344, 0x55667788, r0,r1,r2, 0);
809   TESTINST3("pkhtb r0, r1, r2, asr #22", 0x11223344, 0x55667788, r0,r1,r2, 0);
810   TESTINST3("pkhtb r0, r1, r2, asr #31", 0x11223344, 0x55667788, r0,r1,r2, 0);
811 TESTINST3("pkhtb r0, r1, r2", 0x50c28082, 0xc1553709, r0,r1,r2, 0);
812 TESTINST3("pkhtb r0, r1, r2", 0x17962e8f, 0x69ec0212, r0,r1,r2, 0);
813 TESTINST3("pkhtb r0, r1, r2", 0xc57243b7, 0x03fa9bb5, r0,r1,r2, 0);
814 TESTINST3("pkhtb r0, r1, r2", 0x7eb226ac, 0xf52e9fbf, r0,r1,r2, 0);
815 TESTINST3("pkhtb r0, r1, r2", 0xbce0f026, 0x7fcbe5a9, r0,r1,r2, 0);
816 TESTINST3("pkhtb r0, r1, r2", 0xa5757252, 0x2dd01366, r0,r1,r2, 0);
817 TESTINST3("pkhtb r0, r1, r2", 0xf4a477c1, 0x5e4b1cbf, r0,r1,r2, 0);
818 TESTINST3("pkhtb r0, r1, r2", 0x76723a21, 0x464a21cc, r0,r1,r2, 0);
819 TESTINST3("pkhtb r0, r1, r2", 0x74d01105, 0xe8108f1b, r0,r1,r2, 0);
820 TESTINST3("pkhtb r0, r1, r2", 0xc1273e2c, 0xcd90d604, r0,r1,r2, 0);
821 TESTINST3("pkhtb r0, r1, r2, asr #0",  0x5f986e68, 0x35232047, r0,r1,r2, 0);
822 TESTINST3("pkhtb r0, r1, r2, asr #1",  0x5f986e68, 0x35232047, r0,r1,r2, 0);
823 TESTINST3("pkhtb r0, r1, r2, asr #2",  0x5f986e68, 0x35232047, r0,r1,r2, 0);
824 TESTINST3("pkhtb r0, r1, r2, asr #3",  0x5f986e68, 0x35232047, r0,r1,r2, 0);
825 TESTINST3("pkhtb r0, r1, r2, asr #4",  0x5f986e68, 0x35232047, r0,r1,r2, 0);
826 TESTINST3("pkhtb r0, r1, r2, asr #8",  0x5f986e68, 0x35232047, r0,r1,r2, 0);
827 TESTINST3("pkhtb r0, r1, r2, asr #12", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
828 TESTINST3("pkhtb r0, r1, r2, asr #16", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
829 TESTINST3("pkhtb r0, r1, r2, asr #24", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
830 TESTINST3("pkhtb r0, r1, r2, asr #31", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
831 TESTINST3("pkhtb r0, r1, r2, asr #32", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
832 TESTINST3("pkhtb r0, r1, r2, asr #0",  0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
833 TESTINST3("pkhtb r0, r1, r2, asr #1",  0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
834 TESTINST3("pkhtb r0, r1, r2, asr #2",  0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
835 TESTINST3("pkhtb r0, r1, r2, asr #3",  0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
836 TESTINST3("pkhtb r0, r1, r2, asr #4",  0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
837 TESTINST3("pkhtb r0, r1, r2, asr #8",  0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
838 TESTINST3("pkhtb r0, r1, r2, asr #12", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
839 TESTINST3("pkhtb r0, r1, r2, asr #16", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
840 TESTINST3("pkhtb r0, r1, r2, asr #24", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
841 TESTINST3("pkhtb r0, r1, r2, asr #31", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
842 TESTINST3("pkhtb r0, r1, r2, asr #32", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
843 TESTINST3("pkhtb r0, r1, r2, asr #0",  0x216158cb, 0x57a50a01, r0,r1,r2, 0);
844 TESTINST3("pkhtb r0, r1, r2, asr #1",  0x216158cb, 0x57a50a01, r0,r1,r2, 0);
845 TESTINST3("pkhtb r0, r1, r2, asr #2",  0x216158cb, 0x57a50a01, r0,r1,r2, 0);
846 TESTINST3("pkhtb r0, r1, r2, asr #3",  0x216158cb, 0x57a50a01, r0,r1,r2, 0);
847 TESTINST3("pkhtb r0, r1, r2, asr #4",  0x216158cb, 0x57a50a01, r0,r1,r2, 0);
848 TESTINST3("pkhtb r0, r1, r2, asr #8",  0x216158cb, 0x57a50a01, r0,r1,r2, 0);
849 TESTINST3("pkhtb r0, r1, r2, asr #12", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
850 TESTINST3("pkhtb r0, r1, r2, asr #16", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
851 TESTINST3("pkhtb r0, r1, r2, asr #24", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
852 TESTINST3("pkhtb r0, r1, r2, asr #31", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
853 TESTINST3("pkhtb r0, r1, r2, asr #32", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
854 TESTINST3("pkhtb r0, r1, r2, asr #0",  0xd5dc5407, 0xf87b961e, r0,r1,r2, 0);
855 TESTINST3("pkhtb r0, r1, r2, asr #1",  0xd65db979, 0xc61b323b, r0,r1,r2, 0);
856 TESTINST3("pkhtb r0, r1, r2, asr #2",  0xa3268abe, 0xed2cbf78, r0,r1,r2, 0);
857 TESTINST3("pkhtb r0, r1, r2, asr #3",  0xbf73f0a5, 0x2fb714c9, r0,r1,r2, 0);
858 TESTINST3("pkhtb r0, r1, r2, asr #4",  0x281703ed, 0x925ef472, r0,r1,r2, 0);
859 TESTINST3("pkhtb r0, r1, r2, asr #8",  0xeaa652c7, 0x137741f4, r0,r1,r2, 0);
860 TESTINST3("pkhtb r0, r1, r2, asr #12", 0x71fbde8b, 0xdba5bd25, r0,r1,r2, 0);
861 TESTINST3("pkhtb r0, r1, r2, asr #16", 0x884c0ad8, 0xc00b821a, r0,r1,r2, 0);
862 TESTINST3("pkhtb r0, r1, r2, asr #24", 0xe1bb8606, 0x58293969, r0,r1,r2, 0);
863 TESTINST3("pkhtb r0, r1, r2, asr #31", 0xa3cfd624, 0x6077fb1f, r0,r1,r2, 0);
864 TESTINST3("pkhtb r0, r1, r2, asr #32", 0xa3cfd624, 0x6077fb1f, r0,r1,r2, 0);
865 TESTINST3("pkhtb r0, r1, r2, asr #0",  0x40b094e2, 0x17913309, r0,r1,r2, 0);
866 TESTINST3("pkhtb r0, r1, r2, asr #1",  0x5388b5cd, 0x86582032, r0,r1,r2, 0);
867 TESTINST3("pkhtb r0, r1, r2, asr #2",  0x5de41558, 0xccfa1c7e, r0,r1,r2, 0);
868 TESTINST3("pkhtb r0, r1, r2, asr #3",  0x23ba1b46, 0x4437983c, r0,r1,r2, 0);
869 TESTINST3("pkhtb r0, r1, r2, asr #4",  0x48d06549, 0xa9085781, r0,r1,r2, 0);
870 TESTINST3("pkhtb r0, r1, r2, asr #8",  0xc6b4ac58, 0xb2aead21, r0,r1,r2, 0);
871 TESTINST3("pkhtb r0, r1, r2, asr #12", 0xc2bdf597, 0xdde1e6a4, r0,r1,r2, 0);
872 TESTINST3("pkhtb r0, r1, r2, asr #16", 0x852e3a72, 0x157b0dea, r0,r1,r2, 0);
873 TESTINST3("pkhtb r0, r1, r2, asr #24", 0xe7aa57b4, 0x1584bd74, r0,r1,r2, 0);
874 TESTINST3("pkhtb r0, r1, r2, asr #31", 0xd4b64d54, 0xc53aaba9, r0,r1,r2, 0);
875 TESTINST3("pkhtb r0, r1, r2, asr #32", 0xd4b64d54, 0xc53aaba9, r0,r1,r2, 0);
876 
877   printf("----------------- USAT ----------------- \n");
878   TESTINST2("usat  r0, #0,  r1", 0x0123abcd, r0, r1, 0);
879   TESTINST2("usat  r0, #1,  r1", 0x0123abcd, r0, r1, 0);
880   TESTINST2("usat  r0, #5,  r1", 0x0123abcd, r0, r1, 0);
881   TESTINST2("usat  r0, #8,  r1", 0x0123abcd, r0, r1, 0);
882   TESTINST2("usat  r0, #11, r1", 0x11110000, r0, r1, 0);
883   TESTINST2("usat  r0, #13, r1", 0x11110000, r0, r1, 0);
884   TESTINST2("usat  r0, #15, r1", 0x11110000, r0, r1, 0);
885 TESTINST2("usat  r0, #0,  r1",          0xebbff82b, r0, r1, 0);
886 TESTINST2("usat  r0, #31, r1, lsl #0",  0x5f986e68, r0, r1, 0);
887 TESTINST2("usat  r0, #31, r1, lsl #0",  0xe7aa57b4, r0, r1, 0);
888 TESTINST2("usat  r0, #31, r1, lsl #0",  0x89d2ef86, r0, r1, 0);
889 TESTINST2("usat  r0, #31, r1, lsl #8",  0xc53aaba9, r0, r1, 0);
890 TESTINST2("usat  r0, #31, r1, lsl #8",  0x216158cb, r0, r1, 0);
891 TESTINST2("usat  r0, #31, r1, lsl #8",  0x3cd6cd94, r0, r1, 0);
892 TESTINST2("usat  r0, #0,  r1, lsl #0",  0xf87b961e, r0, r1, 0);
893 TESTINST2("usat  r0, #0,  r1, lsl #0",  0xc61b323b, r0, r1, 0);
894 TESTINST2("usat  r0, #0,  r1, lsl #0",  0xa3268abe, r0, r1, 0);
895 TESTINST2("usat  r0, #0,  r1, lsl #8",  0xbf73f0a5, r0, r1, 0);
896 TESTINST2("usat  r0, #0,  r1, lsl #8",  0x925ef472, r0, r1, 0);
897 TESTINST2("usat  r0, #0,  r1, lsl #8",  0x137741f4, r0, r1, 0);
898 TESTINST2("usat  r0, #24, r1, lsl #2",  0x50c28082, r0, r1, 0);
899 TESTINST2("usat  r0, #16, r1, lsl #3",  0x17962e8f, r0, r1, 0);
900 TESTINST2("usat  r0, #12, r1, lsl #4",  0xc57243b7, r0, r1, 0);
901 TESTINST2("usat  r0, #8,  r1, lsl #8",  0xf20fb90f, r0, r1, 0);
902 TESTINST2("usat  r0, #4,  r1, lsl #12", 0xbb151055, r0, r1, 0);
903 TESTINST2("usat  r0, #3,  r1, lsl #16", 0x957440d2, r0, r1, 0);
904 TESTINST2("usat  r0, #2,  r1, lsl #24", 0x728b7771, r0, r1, 0);
905 TESTINST2("usat  r0, #1,  r1, lsl #31", 0xf13c20f3, r0, r1, 0);
906 TESTINST2("usat  r0, #0,  r1",          0xebbff82b, r0, r1, 0);
907 TESTINST2("usat  r0, #31, r1, asr #0",  0x5f986e68, r0, r1, 0);
908 TESTINST2("usat  r0, #31, r1, asr #0",  0xe7aa57b4, r0, r1, 0);
909 TESTINST2("usat  r0, #31, r1, asr #0",  0x89d2ef86, r0, r1, 0);
910 TESTINST2("usat  r0, #31, r1, asr #8",  0xc53aaba9, r0, r1, 0);
911 TESTINST2("usat  r0, #31, r1, asr #8",  0x216158cb, r0, r1, 0);
912 TESTINST2("usat  r0, #31, r1, asr #8",  0x3cd6cd94, r0, r1, 0);
913 TESTINST2("usat  r0, #0,  r1, asr #0",  0xf87b961e, r0, r1, 0);
914 TESTINST2("usat  r0, #0,  r1, asr #0",  0xc61b323b, r0, r1, 0);
915 TESTINST2("usat  r0, #0,  r1, asr #0",  0xa3268abe, r0, r1, 0);
916 TESTINST2("usat  r0, #0,  r1, asr #8",  0xbf73f0a5, r0, r1, 0);
917 TESTINST2("usat  r0, #0,  r1, asr #8",  0x925ef472, r0, r1, 0);
918 TESTINST2("usat  r0, #0,  r1, asr #8",  0x137741f4, r0, r1, 0);
919 TESTINST2("usat  r0, #24, r1, asr #2",  0x50c28082, r0, r1, 0);
920 TESTINST2("usat  r0, #16, r1, asr #3",  0x17962e8f, r0, r1, 0);
921 TESTINST2("usat  r0, #12, r1, asr #4",  0xc57243b7, r0, r1, 0);
922 TESTINST2("usat  r0, #8,  r1, asr #8",  0xf20fb90f, r0, r1, 0);
923 TESTINST2("usat  r0, #4,  r1, asr #12", 0xbb151055, r0, r1, 0);
924 TESTINST2("usat  r0, #3,  r1, asr #16", 0x957440d2, r0, r1, 0);
925 TESTINST2("usat  r0, #2,  r1, asr #24", 0x728b7771, r0, r1, 0);
926 TESTINST2("usat  r0, #1,  r1, asr #31", 0xf13c20f3, r0, r1, 0);
927 TESTINST2("usat  r0, #0,  r1",          0xebbff82b, r0, r1, 0);
928 TESTINST2("usat  r0, #31, r1, asr #0",  0x5f986e68, r0, r1, 0);
929 TESTINST2("usat  r0, #31, r1, asr #0",  0xe7aa57b4, r0, r1, 0);
930 TESTINST2("usat  r0, #31, r1, asr #0",  0x89d2ef86, r0, r1, 0);
931 TESTINST2("usat  r0, #31, r1, asr #8",  0xc53aaba9, r0, r1, 0);
932 TESTINST2("usat  r0, #31, r1, asr #8",  0x216158cb, r0, r1, 0);
933 TESTINST2("usat  r0, #31, r1, asr #8",  0x3cd6cd94, r0, r1, 0);
934 TESTINST2("usat  r0, #0,  r1, asr #0",  0xf87b961e, r0, r1, 0);
935 TESTINST2("usat  r0, #0,  r1, asr #0",  0xc61b323b, r0, r1, 0);
936 TESTINST2("usat  r0, #0,  r1, asr #0",  0xa3268abe, r0, r1, 0);
937 TESTINST2("usat  r0, #0,  r1, asr #8",  0xbf73f0a5, r0, r1, 0);
938 TESTINST2("usat  r0, #0,  r1, asr #8",  0x925ef472, r0, r1, 0);
939 TESTINST2("usat  r0, #0,  r1, asr #8",  0x137741f4, r0, r1, 0);
940 TESTINST2("usat  r0, #24, r1, asr #2",  0x50c28082, r0, r1, 0);
941 TESTINST2("usat  r0, #16, r1, asr #3",  0x17962e8f, r0, r1, 0);
942 TESTINST2("usat  r0, #12, r1, asr #4",  0xc57243b7, r0, r1, 0);
943 TESTINST2("usat  r0, #8,  r1, asr #8",  0xf20fb90f, r0, r1, 0);
944 TESTINST2("usat  r0, #4,  r1, asr #12", 0xbb151055, r0, r1, 0);
945 TESTINST2("usat  r0, #3,  r1, asr #16", 0x957440d2, r0, r1, 0);
946 TESTINST2("usat  r0, #2,  r1, asr #24", 0x728b7771, r0, r1, 0);
947 TESTINST2("usat  r0, #1,  r1, asr #31", 0xf13c20f3, r0, r1, 0);
948 #ifndef __thumb__
949 TESTINST2("usat  r0, #0,  r1, asr #32", 0xa9085781, r0, r1, 0);
950 TESTINST2("usat  r0, #31, r1, asr #32", 0x40b094e2, r0, r1, 0);
951 TESTINST2("usat  r0, #31, r1, asr #32", 0x17913309, r0, r1, 0);
952 TESTINST2("usat  r0, #31, r1, asr #32", 0x5388b5cd, r0, r1, 0);
953 TESTINST2("usat  r0, #24, r1, asr #32", 0x86582032, r0, r1, 0);
954 TESTINST2("usat  r0, #16, r1, asr #32", 0x5de41558, r0, r1, 0);
955 TESTINST2("usat  r0, #12, r1, asr #32", 0xccfa1c7e, r0, r1, 0);
956 TESTINST2("usat  r0, #8,  r1, asr #32", 0x23ba1b46, r0, r1, 0);
957 TESTINST2("usat  r0, #4,  r1, asr #32", 0x4437983c, r0, r1, 0);
958 TESTINST2("usat  r0, #3,  r1, asr #32", 0x48d06549, r0, r1, 0);
959 TESTINST2("usat  r0, #2,  r1, asr #32", 0xa9085781, r0, r1, 0);
960 TESTINST2("usat  r0, #1,  r1, asr #32", 0xc6b4ac58, r0, r1, 0);
961 #endif
962 
963   printf("------------ USAT16 sat_imm ------------ \n");
964   TESTINST2("usat16  r0, #0,  r1", 0x0123abcd, r0, r1, 0);
965   TESTINST2("usat16  r0, #1,  r1", 0xffcdabcd, r0, r1, 0);
966   TESTINST2("usat16  r0, #5,  r1", 0x0123feff, r0, r1, 0);
967   TESTINST2("usat16  r0, #8,  r1", 0x0123abcd, r0, r1, 0);
968   TESTINST2("usat16  r0, #11, r1", 0x11110000, r0, r1, 0);
969   TESTINST2("usat16  r0, #13, r1", 0x1111f111, r0, r1, 0);
970   TESTINST2("usat16  r0, #15, r1", 0x00001111, r0, r1, 0);
971 TESTINST2("usat16  r0, #0,  r1", 0xebbff82b, r0, r1, 0);
972 TESTINST2("usat16  r0, #1,  r1", 0xebbff82b, r0, r1, 0);
973 TESTINST2("usat16  r0, #3,  r1", 0x50c28082, r0, r1, 0);
974 TESTINST2("usat16  r0, #5,  r1", 0x17962e8f, r0, r1, 0);
975 TESTINST2("usat16  r0, #8,  r1", 0xc57243b7, r0, r1, 0);
976 TESTINST2("usat16  r0, #10, r1", 0xf20fb90f, r0, r1, 0);
977 TESTINST2("usat16  r0, #11, r1", 0xbb151055, r0, r1, 0);
978 TESTINST2("usat16  r0, #13, r1", 0x957440d2, r0, r1, 0);
979 TESTINST2("usat16  r0, #14, r1", 0x728b7771, r0, r1, 0);
980 TESTINST2("usat16  r0, #15, r1", 0xf13c20f3, r0, r1, 0);
981 TESTINST2("usat16  r0, #0,  r1", 0x86398371, r0, r1, 0);
982 TESTINST2("usat16  r0, #1,  r1", 0x03d0fb78, r0, r1, 0);
983 TESTINST2("usat16  r0, #3,  r1", 0xd0d49b7c, r0, r1, 0);
984 TESTINST2("usat16  r0, #5,  r1", 0x76354a58, r0, r1, 0);
985 TESTINST2("usat16  r0, #8,  r1", 0x9fa45fb7, r0, r1, 0);
986 TESTINST2("usat16  r0, #10, r1", 0x7572bdec, r0, r1, 0);
987 TESTINST2("usat16  r0, #11, r1", 0xfea59eb6, r0, r1, 0);
988 TESTINST2("usat16  r0, #13, r1", 0xf2669090, r0, r1, 0);
989 TESTINST2("usat16  r0, #14, r1", 0xbc1ff573, r0, r1, 0);
990 TESTINST2("usat16  r0, #15, r1", 0x7eb226ac, r0, r1, 0);
991 TESTINST2("usat16  r0, #0,  r1", 0x22b65db1, r0, r1, 0);
992 TESTINST2("usat16  r0, #1,  r1", 0x776c41c7, r0, r1, 0);
993 TESTINST2("usat16  r0, #3,  r1", 0xe50dd77c, r0, r1, 0);
994 TESTINST2("usat16  r0, #5,  r1", 0xd6f9a698, r0, r1, 0);
995 TESTINST2("usat16  r0, #8,  r1", 0xeda5110c, r0, r1, 0);
996 TESTINST2("usat16  r0, #10, r1", 0x0be36f70, r0, r1, 0);
997 TESTINST2("usat16  r0, #11, r1", 0xd759eb72, r0, r1, 0);
998 TESTINST2("usat16  r0, #13, r1", 0xd9c4b1f4, r0, r1, 0);
999 TESTINST2("usat16  r0, #14, r1", 0xa29eb320, r0, r1, 0);
1000 TESTINST2("usat16  r0, #15, r1", 0xcf1e4487, r0, r1, 0);
1001 TESTINST2("usat16  r0, #0,  r1", 0x2eb68500, r0, r1, 0);
1002 TESTINST2("usat16  r0, #1,  r1", 0xcdb7ed11, r0, r1, 0);
1003 TESTINST2("usat16  r0, #3,  r1", 0x2eaea305, r0, r1, 0);
1004 TESTINST2("usat16  r0, #5,  r1", 0x6ebd04d9, r0, r1, 0);
1005 TESTINST2("usat16  r0, #8,  r1", 0xa5ec1aa8, r0, r1, 0);
1006 TESTINST2("usat16  r0, #10, r1", 0x72f33509, r0, r1, 0);
1007 TESTINST2("usat16  r0, #11, r1", 0xa3e6f759, r0, r1, 0);
1008 TESTINST2("usat16  r0, #13, r1", 0xfaceab39, r0, r1, 0);
1009 TESTINST2("usat16  r0, #14, r1", 0x2738f0ff, r0, r1, 0);
1010 TESTINST2("usat16  r0, #15, r1", 0xe79fd570, r0, r1, 0);
1011 TESTINST2("usat16  r0, #0,  r1", 0x55ea3e4e, r0, r1, 0);
1012 TESTINST2("usat16  r0, #1,  r1", 0x2b62ba5a, r0, r1, 0);
1013 TESTINST2("usat16  r0, #3,  r1", 0x9b41bfb1, r0, r1, 0);
1014 TESTINST2("usat16  r0, #5,  r1", 0x557c7ba2, r0, r1, 0);
1015 TESTINST2("usat16  r0, #8,  r1", 0x2973c051, r0, r1, 0);
1016 TESTINST2("usat16  r0, #10, r1", 0x6a228b19, r0, r1, 0);
1017 TESTINST2("usat16  r0, #11, r1", 0x0cdafabe, r0, r1, 0);
1018 TESTINST2("usat16  r0, #13, r1", 0x50865114, r0, r1, 0);
1019 TESTINST2("usat16  r0, #14, r1", 0xd83b849b, r0, r1, 0);
1020 TESTINST2("usat16  r0, #15, r1", 0xca5e5605, r0, r1, 0);
1021 
1022   printf("---------------- UADD16 ---------------- \n");
1023   TESTINST3("uadd16 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
1024   TESTINST3("uadd16 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
1025   TESTINST3("uadd16 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
1026   TESTINST3("uadd16 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
1027 
1028   TESTINST3("uadd16 r0, r1, r2", 0x00000000, 0x00000000, r0, r1, r2, 0);
1029   TESTINST3("uadd16 r0, r1, r2", 0x00000001, 0x00000000, r0, r1, r2, 0);
1030   TESTINST3("uadd16 r0, r1, r2", 0x00000000, 0x00000001, r0, r1, r2, 0);
1031   TESTINST3("uadd16 r0, r1, r2", 0x00000001, 0x00000001, r0, r1, r2, 0);
1032   TESTINST3("uadd16 r0, r1, r2", 0x00000000, 0x0000ffff, r0, r1, r2, 0);
1033   TESTINST3("uadd16 r0, r1, r2", 0x0000ffff, 0x00000000, r0, r1, r2, 0);
1034   TESTINST3("uadd16 r0, r1, r2", 0x0000ffff, 0x0000ffff, r0, r1, r2, 0);
1035 
1036   TESTINST3("uadd16 r0, r1, r2", 0x00000000, 0x00000000, r0, r1, r2, 0);
1037   TESTINST3("uadd16 r0, r1, r2", 0x00010000, 0x00000000, r0, r1, r2, 0);
1038   TESTINST3("uadd16 r0, r1, r2", 0x00000000, 0x00010000, r0, r1, r2, 0);
1039   TESTINST3("uadd16 r0, r1, r2", 0x00010000, 0x00010000, r0, r1, r2, 0);
1040   TESTINST3("uadd16 r0, r1, r2", 0x00000000, 0xffff0000, r0, r1, r2, 0);
1041   TESTINST3("uadd16 r0, r1, r2", 0xffff0000, 0x00000000, r0, r1, r2, 0);
1042   TESTINST3("uadd16 r0, r1, r2", 0xffff0000, 0xffff0000, r0, r1, r2, 0);
1043 
1044 TESTINST3("uadd16 r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
1045 TESTINST3("uadd16 r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
1046 TESTINST3("uadd16 r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
1047 TESTINST3("uadd16 r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
1048 TESTINST3("uadd16 r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
1049 TESTINST3("uadd16 r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
1050 TESTINST3("uadd16 r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
1051 TESTINST3("uadd16 r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
1052 TESTINST3("uadd16 r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
1053 TESTINST3("uadd16 r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
1054 TESTINST3("uadd16 r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
1055 TESTINST3("uadd16 r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
1056 TESTINST3("uadd16 r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
1057 TESTINST3("uadd16 r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
1058 TESTINST3("uadd16 r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
1059 TESTINST3("uadd16 r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
1060 TESTINST3("uadd16 r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
1061 TESTINST3("uadd16 r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
1062 TESTINST3("uadd16 r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
1063 TESTINST3("uadd16 r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
1064 TESTINST3("uadd16 r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
1065 TESTINST3("uadd16 r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
1066 TESTINST3("uadd16 r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
1067 TESTINST3("uadd16 r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
1068 TESTINST3("uadd16 r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
1069 TESTINST3("uadd16 r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
1070 TESTINST3("uadd16 r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
1071 TESTINST3("uadd16 r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
1072 TESTINST3("uadd16 r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
1073 TESTINST3("uadd16 r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
1074 TESTINST3("uadd16 r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
1075 TESTINST3("uadd16 r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
1076 TESTINST3("uadd16 r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
1077 TESTINST3("uadd16 r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
1078 TESTINST3("uadd16 r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
1079 TESTINST3("uadd16 r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
1080 TESTINST3("uadd16 r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
1081 TESTINST3("uadd16 r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
1082 TESTINST3("uadd16 r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
1083 TESTINST3("uadd16 r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
1084 TESTINST3("uadd16 r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
1085 TESTINST3("uadd16 r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
1086 TESTINST3("uadd16 r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
1087 TESTINST3("uadd16 r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
1088 TESTINST3("uadd16 r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
1089 TESTINST3("uadd16 r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
1090 TESTINST3("uadd16 r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
1091 TESTINST3("uadd16 r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
1092 TESTINST3("uadd16 r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
1093 TESTINST3("uadd16 r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
1094 
1095   printf("---------------- SADD16 ---------------- \n");
1096   TESTINST3("sadd16 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
1097   TESTINST3("sadd16 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
1098   TESTINST3("sadd16 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
1099   TESTINST3("sadd16 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
1100 
1101   TESTINST3("sadd16 r0, r1, r2", 0x00000000, 0x00000000, r0, r1, r2, 0);
1102   TESTINST3("sadd16 r0, r1, r2", 0x00000001, 0x00000000, r0, r1, r2, 0);
1103   TESTINST3("sadd16 r0, r1, r2", 0x00000000, 0x00000001, r0, r1, r2, 0);
1104   TESTINST3("sadd16 r0, r1, r2", 0x00000001, 0x00000001, r0, r1, r2, 0);
1105   TESTINST3("sadd16 r0, r1, r2", 0x00000000, 0x0000ffff, r0, r1, r2, 0);
1106   TESTINST3("sadd16 r0, r1, r2", 0x0000ffff, 0x00000000, r0, r1, r2, 0);
1107   TESTINST3("sadd16 r0, r1, r2", 0x0000ffff, 0x0000ffff, r0, r1, r2, 0);
1108 
1109   TESTINST3("sadd16 r0, r1, r2", 0x00000000, 0x00000000, r0, r1, r2, 0);
1110   TESTINST3("sadd16 r0, r1, r2", 0x00010000, 0x00000000, r0, r1, r2, 0);
1111   TESTINST3("sadd16 r0, r1, r2", 0x00000000, 0x00010000, r0, r1, r2, 0);
1112   TESTINST3("sadd16 r0, r1, r2", 0x00010000, 0x00010000, r0, r1, r2, 0);
1113   TESTINST3("sadd16 r0, r1, r2", 0x00000000, 0xffff0000, r0, r1, r2, 0);
1114   TESTINST3("sadd16 r0, r1, r2", 0xffff0000, 0x00000000, r0, r1, r2, 0);
1115   TESTINST3("sadd16 r0, r1, r2", 0xffff0000, 0xffff0000, r0, r1, r2, 0);
1116 
1117 TESTINST3("sadd16 r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
1118 TESTINST3("sadd16 r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
1119 TESTINST3("sadd16 r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
1120 TESTINST3("sadd16 r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
1121 TESTINST3("sadd16 r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
1122 TESTINST3("sadd16 r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
1123 TESTINST3("sadd16 r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
1124 TESTINST3("sadd16 r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
1125 TESTINST3("sadd16 r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
1126 TESTINST3("sadd16 r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
1127 TESTINST3("sadd16 r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
1128 TESTINST3("sadd16 r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
1129 TESTINST3("sadd16 r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
1130 TESTINST3("sadd16 r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
1131 TESTINST3("sadd16 r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
1132 TESTINST3("sadd16 r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
1133 TESTINST3("sadd16 r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
1134 TESTINST3("sadd16 r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
1135 TESTINST3("sadd16 r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
1136 TESTINST3("sadd16 r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
1137 TESTINST3("sadd16 r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
1138 TESTINST3("sadd16 r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
1139 TESTINST3("sadd16 r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
1140 TESTINST3("sadd16 r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
1141 TESTINST3("sadd16 r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
1142 TESTINST3("sadd16 r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
1143 TESTINST3("sadd16 r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
1144 TESTINST3("sadd16 r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
1145 TESTINST3("sadd16 r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
1146 TESTINST3("sadd16 r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
1147 TESTINST3("sadd16 r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
1148 TESTINST3("sadd16 r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
1149 TESTINST3("sadd16 r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
1150 TESTINST3("sadd16 r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
1151 TESTINST3("sadd16 r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
1152 TESTINST3("sadd16 r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
1153 TESTINST3("sadd16 r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
1154 TESTINST3("sadd16 r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
1155 TESTINST3("sadd16 r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
1156 TESTINST3("sadd16 r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
1157 TESTINST3("sadd16 r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
1158 TESTINST3("sadd16 r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
1159 TESTINST3("sadd16 r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
1160 TESTINST3("sadd16 r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
1161 TESTINST3("sadd16 r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
1162 TESTINST3("sadd16 r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
1163 TESTINST3("sadd16 r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
1164 TESTINST3("sadd16 r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
1165 TESTINST3("sadd16 r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
1166 TESTINST3("sadd16 r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
1167 
1168   printf("---------------- USUB16 ---------------- \n");
1169   TESTINST3("usub16 r0, r1, r2", 0x04000022, 0x03000011, r0, r1, r2, 0);
1170   TESTINST3("usub16 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
1171   TESTINST3("usub16 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
1172   TESTINST3("usub16 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
1173   TESTINST3("usub16 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
1174 
1175   TESTINST3("usub16 r0, r1, r2", 0x00000000, 0x00000000, r0, r1, r2, 0);
1176   TESTINST3("usub16 r0, r1, r2", 0x00000001, 0x00000000, r0, r1, r2, 0);
1177   TESTINST3("usub16 r0, r1, r2", 0x00000000, 0x00000001, r0, r1, r2, 0);
1178   TESTINST3("usub16 r0, r1, r2", 0x00000001, 0x00000001, r0, r1, r2, 0);
1179   TESTINST3("usub16 r0, r1, r2", 0x00000000, 0x0000ffff, r0, r1, r2, 0);
1180   TESTINST3("usub16 r0, r1, r2", 0x0000ffff, 0x00000000, r0, r1, r2, 0);
1181   TESTINST3("usub16 r0, r1, r2", 0x0000ffff, 0x0000ffff, r0, r1, r2, 0);
1182 
1183   TESTINST3("usub16 r0, r1, r2", 0x00000000, 0x00000000, r0, r1, r2, 0);
1184   TESTINST3("usub16 r0, r1, r2", 0x00010000, 0x00000000, r0, r1, r2, 0);
1185   TESTINST3("usub16 r0, r1, r2", 0x00000000, 0x00010000, r0, r1, r2, 0);
1186   TESTINST3("usub16 r0, r1, r2", 0x00010000, 0x00010000, r0, r1, r2, 0);
1187   TESTINST3("usub16 r0, r1, r2", 0x00000000, 0xffff0000, r0, r1, r2, 0);
1188   TESTINST3("usub16 r0, r1, r2", 0xffff0000, 0x00000000, r0, r1, r2, 0);
1189   TESTINST3("usub16 r0, r1, r2", 0xffff0000, 0xffff0000, r0, r1, r2, 0);
1190 
1191 TESTINST3("usub16 r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
1192 TESTINST3("usub16 r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
1193 TESTINST3("usub16 r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
1194 TESTINST3("usub16 r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
1195 TESTINST3("usub16 r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
1196 TESTINST3("usub16 r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
1197 TESTINST3("usub16 r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
1198 TESTINST3("usub16 r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
1199 TESTINST3("usub16 r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
1200 TESTINST3("usub16 r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
1201 TESTINST3("usub16 r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
1202 TESTINST3("usub16 r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
1203 TESTINST3("usub16 r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
1204 TESTINST3("usub16 r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
1205 TESTINST3("usub16 r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
1206 TESTINST3("usub16 r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
1207 TESTINST3("usub16 r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
1208 TESTINST3("usub16 r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
1209 TESTINST3("usub16 r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
1210 TESTINST3("usub16 r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
1211 TESTINST3("usub16 r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
1212 TESTINST3("usub16 r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
1213 TESTINST3("usub16 r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
1214 TESTINST3("usub16 r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
1215 TESTINST3("usub16 r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
1216 TESTINST3("usub16 r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
1217 TESTINST3("usub16 r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
1218 TESTINST3("usub16 r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
1219 TESTINST3("usub16 r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
1220 TESTINST3("usub16 r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
1221 TESTINST3("usub16 r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
1222 TESTINST3("usub16 r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
1223 TESTINST3("usub16 r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
1224 TESTINST3("usub16 r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
1225 TESTINST3("usub16 r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
1226 TESTINST3("usub16 r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
1227 TESTINST3("usub16 r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
1228 TESTINST3("usub16 r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
1229 TESTINST3("usub16 r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
1230 TESTINST3("usub16 r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
1231 TESTINST3("usub16 r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
1232 TESTINST3("usub16 r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
1233 TESTINST3("usub16 r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
1234 TESTINST3("usub16 r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
1235 TESTINST3("usub16 r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
1236 TESTINST3("usub16 r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
1237 TESTINST3("usub16 r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
1238 TESTINST3("usub16 r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
1239 TESTINST3("usub16 r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
1240 TESTINST3("usub16 r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
1241 
1242   printf("---------------- SSUB16 ---------------- \n");
1243   TESTINST3("ssub16 r0, r1, r2", 0x04000022, 0x03000011, r0, r1, r2, 0);
1244   TESTINST3("ssub16 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
1245   TESTINST3("ssub16 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
1246   TESTINST3("ssub16 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
1247   TESTINST3("ssub16 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
1248 
1249   TESTINST3("ssub16 r0, r1, r2", 0x00000000, 0x00000000, r0, r1, r2, 0);
1250   TESTINST3("ssub16 r0, r1, r2", 0x00000001, 0x00000000, r0, r1, r2, 0);
1251   TESTINST3("ssub16 r0, r1, r2", 0x00000000, 0x00000001, r0, r1, r2, 0);
1252   TESTINST3("ssub16 r0, r1, r2", 0x00000001, 0x00000001, r0, r1, r2, 0);
1253   TESTINST3("ssub16 r0, r1, r2", 0x00000000, 0x0000ffff, r0, r1, r2, 0);
1254   TESTINST3("ssub16 r0, r1, r2", 0x0000ffff, 0x00000000, r0, r1, r2, 0);
1255   TESTINST3("ssub16 r0, r1, r2", 0x0000ffff, 0x0000ffff, r0, r1, r2, 0);
1256 
1257   TESTINST3("ssub16 r0, r1, r2", 0x00000000, 0x00000000, r0, r1, r2, 0);
1258   TESTINST3("ssub16 r0, r1, r2", 0x00010000, 0x00000000, r0, r1, r2, 0);
1259   TESTINST3("ssub16 r0, r1, r2", 0x00000000, 0x00010000, r0, r1, r2, 0);
1260   TESTINST3("ssub16 r0, r1, r2", 0x00010000, 0x00010000, r0, r1, r2, 0);
1261   TESTINST3("ssub16 r0, r1, r2", 0x00000000, 0xffff0000, r0, r1, r2, 0);
1262   TESTINST3("ssub16 r0, r1, r2", 0xffff0000, 0x00000000, r0, r1, r2, 0);
1263   TESTINST3("ssub16 r0, r1, r2", 0xffff0000, 0xffff0000, r0, r1, r2, 0);
1264 
1265 TESTINST3("ssub16 r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
1266 TESTINST3("ssub16 r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
1267 TESTINST3("ssub16 r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
1268 TESTINST3("ssub16 r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
1269 TESTINST3("ssub16 r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
1270 TESTINST3("ssub16 r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
1271 TESTINST3("ssub16 r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
1272 TESTINST3("ssub16 r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
1273 TESTINST3("ssub16 r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
1274 TESTINST3("ssub16 r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
1275 TESTINST3("ssub16 r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
1276 TESTINST3("ssub16 r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
1277 TESTINST3("ssub16 r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
1278 TESTINST3("ssub16 r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
1279 TESTINST3("ssub16 r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
1280 TESTINST3("ssub16 r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
1281 TESTINST3("ssub16 r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
1282 TESTINST3("ssub16 r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
1283 TESTINST3("ssub16 r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
1284 TESTINST3("ssub16 r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
1285 TESTINST3("ssub16 r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
1286 TESTINST3("ssub16 r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
1287 TESTINST3("ssub16 r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
1288 TESTINST3("ssub16 r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
1289 TESTINST3("ssub16 r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
1290 TESTINST3("ssub16 r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
1291 TESTINST3("ssub16 r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
1292 TESTINST3("ssub16 r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
1293 TESTINST3("ssub16 r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
1294 TESTINST3("ssub16 r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
1295 TESTINST3("ssub16 r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
1296 TESTINST3("ssub16 r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
1297 TESTINST3("ssub16 r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
1298 TESTINST3("ssub16 r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
1299 TESTINST3("ssub16 r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
1300 TESTINST3("ssub16 r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
1301 TESTINST3("ssub16 r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
1302 TESTINST3("ssub16 r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
1303 TESTINST3("ssub16 r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
1304 TESTINST3("ssub16 r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
1305 TESTINST3("ssub16 r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
1306 TESTINST3("ssub16 r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
1307 TESTINST3("ssub16 r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
1308 TESTINST3("ssub16 r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
1309 TESTINST3("ssub16 r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
1310 TESTINST3("ssub16 r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
1311 TESTINST3("ssub16 r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
1312 TESTINST3("ssub16 r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
1313 TESTINST3("ssub16 r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
1314 TESTINST3("ssub16 r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
1315 
1316   printf("---------------- UADD8 ----------------- \n");
1317   TESTINST3("uadd8 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
1318   TESTINST3("uadd8 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
1319   TESTINST3("uadd8 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
1320   TESTINST3("uadd8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
1321   TESTINST3("uadd8 r0, r1, r2", 0x00000318, 0xff00ff09, r0, r1, r2, 0);
1322   TESTINST3("uadd8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
1323   TESTINST3("uadd8 r0, r1, r2", 0x00020318, 0xff07ff09, r0, r1, r2, 0);
1324   TESTINST3("uadd8 r0, r1, r2", 0xff07ff09, 0x00020318, r0, r1, r2, 0);
1325 TESTINST3("uadd8 r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
1326 TESTINST3("uadd8 r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
1327 TESTINST3("uadd8 r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
1328 TESTINST3("uadd8 r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
1329 TESTINST3("uadd8 r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
1330 TESTINST3("uadd8 r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
1331 TESTINST3("uadd8 r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
1332 TESTINST3("uadd8 r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
1333 TESTINST3("uadd8 r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
1334 TESTINST3("uadd8 r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
1335 TESTINST3("uadd8 r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
1336 TESTINST3("uadd8 r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
1337 TESTINST3("uadd8 r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
1338 TESTINST3("uadd8 r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
1339 TESTINST3("uadd8 r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
1340 TESTINST3("uadd8 r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
1341 TESTINST3("uadd8 r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
1342 TESTINST3("uadd8 r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
1343 TESTINST3("uadd8 r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
1344 TESTINST3("uadd8 r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
1345 TESTINST3("uadd8 r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
1346 TESTINST3("uadd8 r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
1347 TESTINST3("uadd8 r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
1348 TESTINST3("uadd8 r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
1349 TESTINST3("uadd8 r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
1350 TESTINST3("uadd8 r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
1351 TESTINST3("uadd8 r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
1352 TESTINST3("uadd8 r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
1353 TESTINST3("uadd8 r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
1354 TESTINST3("uadd8 r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
1355 TESTINST3("uadd8 r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
1356 TESTINST3("uadd8 r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
1357 TESTINST3("uadd8 r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
1358 TESTINST3("uadd8 r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
1359 TESTINST3("uadd8 r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
1360 TESTINST3("uadd8 r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
1361 TESTINST3("uadd8 r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
1362 TESTINST3("uadd8 r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
1363 TESTINST3("uadd8 r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
1364 TESTINST3("uadd8 r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
1365 TESTINST3("uadd8 r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
1366 TESTINST3("uadd8 r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
1367 TESTINST3("uadd8 r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
1368 TESTINST3("uadd8 r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
1369 TESTINST3("uadd8 r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
1370 TESTINST3("uadd8 r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
1371 TESTINST3("uadd8 r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
1372 TESTINST3("uadd8 r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
1373 TESTINST3("uadd8 r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
1374 TESTINST3("uadd8 r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
1375 
1376   printf("---------------- USUB8 ----------------- \n");
1377   TESTINST3("usub8 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
1378   TESTINST3("usub8 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
1379   TESTINST3("usub8 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
1380   TESTINST3("usub8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
1381   TESTINST3("usub8 r0, r1, r2", 0x00000318, 0xff00ff09, r0, r1, r2, 0);
1382   TESTINST3("usub8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
1383   TESTINST3("usub8 r0, r1, r2", 0x00020318, 0xff07ff09, r0, r1, r2, 0);
1384   TESTINST3("usub8 r0, r1, r2", 0xff07ff09, 0x00020318, r0, r1, r2, 0);
1385 TESTINST3("usub8 r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
1386 TESTINST3("usub8 r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
1387 TESTINST3("usub8 r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
1388 TESTINST3("usub8 r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
1389 TESTINST3("usub8 r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
1390 TESTINST3("usub8 r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
1391 TESTINST3("usub8 r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
1392 TESTINST3("usub8 r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
1393 TESTINST3("usub8 r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
1394 TESTINST3("usub8 r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
1395 TESTINST3("usub8 r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
1396 TESTINST3("usub8 r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
1397 TESTINST3("usub8 r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
1398 TESTINST3("usub8 r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
1399 TESTINST3("usub8 r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
1400 TESTINST3("usub8 r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
1401 TESTINST3("usub8 r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
1402 TESTINST3("usub8 r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
1403 TESTINST3("usub8 r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
1404 TESTINST3("usub8 r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
1405 TESTINST3("usub8 r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
1406 TESTINST3("usub8 r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
1407 TESTINST3("usub8 r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
1408 TESTINST3("usub8 r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
1409 TESTINST3("usub8 r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
1410 TESTINST3("usub8 r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
1411 TESTINST3("usub8 r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
1412 TESTINST3("usub8 r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
1413 TESTINST3("usub8 r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
1414 TESTINST3("usub8 r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
1415 TESTINST3("usub8 r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
1416 TESTINST3("usub8 r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
1417 TESTINST3("usub8 r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
1418 TESTINST3("usub8 r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
1419 TESTINST3("usub8 r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
1420 TESTINST3("usub8 r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
1421 TESTINST3("usub8 r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
1422 TESTINST3("usub8 r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
1423 TESTINST3("usub8 r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
1424 TESTINST3("usub8 r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
1425 TESTINST3("usub8 r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
1426 TESTINST3("usub8 r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
1427 TESTINST3("usub8 r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
1428 TESTINST3("usub8 r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
1429 TESTINST3("usub8 r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
1430 TESTINST3("usub8 r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
1431 TESTINST3("usub8 r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
1432 TESTINST3("usub8 r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
1433 TESTINST3("usub8 r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
1434 TESTINST3("usub8 r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
1435 
1436   printf("---------------- QADD16 ---------------- \n");
1437   TESTINST3("qadd16 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
1438   TESTINST3("qadd16 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
1439   TESTINST3("qadd16 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
1440   TESTINST3("qadd16 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
1441 TESTINST3("qadd16 r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
1442 TESTINST3("qadd16 r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
1443 TESTINST3("qadd16 r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
1444 TESTINST3("qadd16 r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
1445 TESTINST3("qadd16 r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
1446 TESTINST3("qadd16 r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
1447 TESTINST3("qadd16 r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
1448 TESTINST3("qadd16 r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
1449 TESTINST3("qadd16 r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
1450 TESTINST3("qadd16 r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
1451 TESTINST3("qadd16 r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
1452 TESTINST3("qadd16 r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
1453 TESTINST3("qadd16 r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
1454 TESTINST3("qadd16 r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
1455 TESTINST3("qadd16 r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
1456 TESTINST3("qadd16 r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
1457 TESTINST3("qadd16 r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
1458 TESTINST3("qadd16 r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
1459 TESTINST3("qadd16 r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
1460 TESTINST3("qadd16 r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
1461 TESTINST3("qadd16 r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
1462 TESTINST3("qadd16 r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
1463 TESTINST3("qadd16 r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
1464 TESTINST3("qadd16 r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
1465 TESTINST3("qadd16 r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
1466 TESTINST3("qadd16 r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
1467 TESTINST3("qadd16 r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
1468 TESTINST3("qadd16 r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
1469 TESTINST3("qadd16 r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
1470 TESTINST3("qadd16 r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
1471 TESTINST3("qadd16 r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
1472 TESTINST3("qadd16 r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
1473 TESTINST3("qadd16 r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
1474 TESTINST3("qadd16 r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
1475 TESTINST3("qadd16 r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
1476 TESTINST3("qadd16 r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
1477 TESTINST3("qadd16 r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
1478 TESTINST3("qadd16 r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
1479 TESTINST3("qadd16 r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
1480 TESTINST3("qadd16 r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
1481 TESTINST3("qadd16 r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
1482 TESTINST3("qadd16 r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
1483 TESTINST3("qadd16 r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
1484 TESTINST3("qadd16 r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
1485 TESTINST3("qadd16 r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
1486 TESTINST3("qadd16 r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
1487 TESTINST3("qadd16 r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
1488 TESTINST3("qadd16 r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
1489 TESTINST3("qadd16 r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
1490 TESTINST3("qadd16 r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
1491 
1492   printf("---------------- UQADD16 ---------------- \n");
1493   TESTINST3("uqadd16 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
1494   TESTINST3("uqadd16 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
1495   TESTINST3("uqadd16 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
1496   TESTINST3("uqadd16 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
1497 TESTINST3("uqadd16 r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
1498 TESTINST3("uqadd16 r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
1499 TESTINST3("uqadd16 r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
1500 TESTINST3("uqadd16 r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
1501 TESTINST3("uqadd16 r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
1502 TESTINST3("uqadd16 r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
1503 TESTINST3("uqadd16 r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
1504 TESTINST3("uqadd16 r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
1505 TESTINST3("uqadd16 r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
1506 TESTINST3("uqadd16 r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
1507 TESTINST3("uqadd16 r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
1508 TESTINST3("uqadd16 r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
1509 TESTINST3("uqadd16 r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
1510 TESTINST3("uqadd16 r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
1511 TESTINST3("uqadd16 r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
1512 TESTINST3("uqadd16 r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
1513 TESTINST3("uqadd16 r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
1514 TESTINST3("uqadd16 r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
1515 TESTINST3("uqadd16 r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
1516 TESTINST3("uqadd16 r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
1517 TESTINST3("uqadd16 r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
1518 TESTINST3("uqadd16 r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
1519 TESTINST3("uqadd16 r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
1520 TESTINST3("uqadd16 r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
1521 TESTINST3("uqadd16 r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
1522 TESTINST3("uqadd16 r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
1523 TESTINST3("uqadd16 r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
1524 TESTINST3("uqadd16 r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
1525 TESTINST3("uqadd16 r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
1526 TESTINST3("uqadd16 r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
1527 TESTINST3("uqadd16 r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
1528 TESTINST3("uqadd16 r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
1529 TESTINST3("uqadd16 r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
1530 TESTINST3("uqadd16 r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
1531 TESTINST3("uqadd16 r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
1532 TESTINST3("uqadd16 r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
1533 TESTINST3("uqadd16 r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
1534 TESTINST3("uqadd16 r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
1535 TESTINST3("uqadd16 r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
1536 TESTINST3("uqadd16 r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
1537 TESTINST3("uqadd16 r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
1538 TESTINST3("uqadd16 r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
1539 TESTINST3("uqadd16 r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
1540 TESTINST3("uqadd16 r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
1541 TESTINST3("uqadd16 r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
1542 TESTINST3("uqadd16 r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
1543 TESTINST3("uqadd16 r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
1544 TESTINST3("uqadd16 r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
1545 TESTINST3("uqadd16 r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
1546 TESTINST3("uqadd16 r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
1547 
1548   printf("---------------- QSUB16 ---------------- \n");
1549   TESTINST3("qsub16 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
1550   TESTINST3("qsub16 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
1551   TESTINST3("qsub16 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
1552   TESTINST3("qsub16 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
1553 TESTINST3("qsub16 r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
1554 TESTINST3("qsub16 r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
1555 TESTINST3("qsub16 r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
1556 TESTINST3("qsub16 r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
1557 TESTINST3("qsub16 r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
1558 TESTINST3("qsub16 r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
1559 TESTINST3("qsub16 r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
1560 TESTINST3("qsub16 r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
1561 TESTINST3("qsub16 r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
1562 TESTINST3("qsub16 r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
1563 TESTINST3("qsub16 r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
1564 TESTINST3("qsub16 r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
1565 TESTINST3("qsub16 r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
1566 TESTINST3("qsub16 r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
1567 TESTINST3("qsub16 r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
1568 TESTINST3("qsub16 r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
1569 TESTINST3("qsub16 r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
1570 TESTINST3("qsub16 r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
1571 TESTINST3("qsub16 r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
1572 TESTINST3("qsub16 r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
1573 TESTINST3("qsub16 r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
1574 TESTINST3("qsub16 r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
1575 TESTINST3("qsub16 r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
1576 TESTINST3("qsub16 r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
1577 TESTINST3("qsub16 r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
1578 TESTINST3("qsub16 r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
1579 TESTINST3("qsub16 r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
1580 TESTINST3("qsub16 r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
1581 TESTINST3("qsub16 r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
1582 TESTINST3("qsub16 r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
1583 TESTINST3("qsub16 r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
1584 TESTINST3("qsub16 r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
1585 TESTINST3("qsub16 r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
1586 TESTINST3("qsub16 r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
1587 TESTINST3("qsub16 r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
1588 TESTINST3("qsub16 r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
1589 TESTINST3("qsub16 r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
1590 TESTINST3("qsub16 r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
1591 TESTINST3("qsub16 r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
1592 TESTINST3("qsub16 r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
1593 TESTINST3("qsub16 r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
1594 TESTINST3("qsub16 r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
1595 TESTINST3("qsub16 r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
1596 TESTINST3("qsub16 r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
1597 TESTINST3("qsub16 r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
1598 TESTINST3("qsub16 r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
1599 TESTINST3("qsub16 r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
1600 TESTINST3("qsub16 r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
1601 TESTINST3("qsub16 r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
1602 TESTINST3("qsub16 r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
1603 
1604   printf("----------------- QSAX ----------------- \n");
1605   TESTINST3("qsax r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
1606   TESTINST3("qsax r0, r1, r2", 0x7fff7fff, 0x00010001, r0, r1, r2, 0);
1607   TESTINST3("qsax r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
1608   TESTINST3("qsax r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
1609   TESTINST3("qsax r0, r1, r2", 0x00640064, 0x00030003, r0, r1, r2, 0);
1610   TESTINST3("qsax r0, r1, r2", 0x00030003, 0x00640064, r0, r1, r2, 0);
1611 TESTINST3("qsax r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
1612 TESTINST3("qsax r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
1613 TESTINST3("qsax r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
1614 TESTINST3("qsax r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
1615 TESTINST3("qsax r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
1616 TESTINST3("qsax r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
1617 TESTINST3("qsax r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
1618 TESTINST3("qsax r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
1619 TESTINST3("qsax r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
1620 TESTINST3("qsax r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
1621 TESTINST3("qsax r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
1622 TESTINST3("qsax r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
1623 TESTINST3("qsax r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
1624 TESTINST3("qsax r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
1625 TESTINST3("qsax r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
1626 TESTINST3("qsax r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
1627 TESTINST3("qsax r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
1628 TESTINST3("qsax r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
1629 TESTINST3("qsax r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
1630 TESTINST3("qsax r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
1631 TESTINST3("qsax r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
1632 TESTINST3("qsax r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
1633 TESTINST3("qsax r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
1634 TESTINST3("qsax r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
1635 TESTINST3("qsax r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
1636 TESTINST3("qsax r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
1637 TESTINST3("qsax r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
1638 TESTINST3("qsax r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
1639 TESTINST3("qsax r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
1640 TESTINST3("qsax r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
1641 TESTINST3("qsax r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
1642 TESTINST3("qsax r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
1643 TESTINST3("qsax r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
1644 TESTINST3("qsax r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
1645 TESTINST3("qsax r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
1646 TESTINST3("qsax r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
1647 TESTINST3("qsax r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
1648 TESTINST3("qsax r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
1649 TESTINST3("qsax r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
1650 TESTINST3("qsax r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
1651 TESTINST3("qsax r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
1652 TESTINST3("qsax r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
1653 TESTINST3("qsax r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
1654 TESTINST3("qsax r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
1655 TESTINST3("qsax r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
1656 TESTINST3("qsax r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
1657 TESTINST3("qsax r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
1658 TESTINST3("qsax r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
1659 TESTINST3("qsax r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
1660 TESTINST3("qsax r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
1661 
1662   printf("----------------- UQSAX ----------------- \n");
1663   TESTINST3("uqsax r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
1664   TESTINST3("uqsax r0, r1, r2", 0x7fff7fff, 0x00010001, r0, r1, r2, 0);
1665   TESTINST3("uqsax r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
1666   TESTINST3("uqsax r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
1667   TESTINST3("uqsax r0, r1, r2", 0x00640064, 0x00030003, r0, r1, r2, 0);
1668   TESTINST3("uqsax r0, r1, r2", 0x00030003, 0x00640064, r0, r1, r2, 0);
1669 TESTINST3("uqsax r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
1670 TESTINST3("uqsax r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
1671 TESTINST3("uqsax r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
1672 TESTINST3("uqsax r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
1673 TESTINST3("uqsax r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
1674 TESTINST3("uqsax r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
1675 TESTINST3("uqsax r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
1676 TESTINST3("uqsax r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
1677 TESTINST3("uqsax r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
1678 TESTINST3("uqsax r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
1679 TESTINST3("uqsax r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
1680 TESTINST3("uqsax r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
1681 TESTINST3("uqsax r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
1682 TESTINST3("uqsax r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
1683 TESTINST3("uqsax r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
1684 TESTINST3("uqsax r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
1685 TESTINST3("uqsax r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
1686 TESTINST3("uqsax r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
1687 TESTINST3("uqsax r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
1688 TESTINST3("uqsax r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
1689 TESTINST3("uqsax r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
1690 TESTINST3("uqsax r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
1691 TESTINST3("uqsax r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
1692 TESTINST3("uqsax r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
1693 TESTINST3("uqsax r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
1694 TESTINST3("uqsax r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
1695 TESTINST3("uqsax r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
1696 TESTINST3("uqsax r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
1697 TESTINST3("uqsax r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
1698 TESTINST3("uqsax r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
1699 TESTINST3("uqsax r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
1700 TESTINST3("uqsax r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
1701 TESTINST3("uqsax r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
1702 TESTINST3("uqsax r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
1703 TESTINST3("uqsax r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
1704 TESTINST3("uqsax r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
1705 TESTINST3("uqsax r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
1706 TESTINST3("uqsax r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
1707 TESTINST3("uqsax r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
1708 TESTINST3("uqsax r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
1709 TESTINST3("uqsax r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
1710 TESTINST3("uqsax r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
1711 TESTINST3("uqsax r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
1712 TESTINST3("uqsax r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
1713 TESTINST3("uqsax r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
1714 TESTINST3("uqsax r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
1715 TESTINST3("uqsax r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
1716 TESTINST3("uqsax r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
1717 TESTINST3("uqsax r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
1718 TESTINST3("uqsax r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
1719 
1720   printf("----------------- QASX ----------------- \n");
1721   TESTINST3("qasx r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
1722   TESTINST3("qasx r0, r1, r2", 0x7fff7fff, 0x00010001, r0, r1, r2, 0);
1723   TESTINST3("qasx r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
1724   TESTINST3("qasx r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
1725   TESTINST3("qasx r0, r1, r2", 0x00640064, 0x00030003, r0, r1, r2, 0);
1726   TESTINST3("qasx r0, r1, r2", 0x00030003, 0x00640064, r0, r1, r2, 0);
1727 TESTINST3("qasx r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
1728 TESTINST3("qasx r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
1729 TESTINST3("qasx r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
1730 TESTINST3("qasx r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
1731 TESTINST3("qasx r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
1732 TESTINST3("qasx r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
1733 TESTINST3("qasx r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
1734 TESTINST3("qasx r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
1735 TESTINST3("qasx r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
1736 TESTINST3("qasx r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
1737 TESTINST3("qasx r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
1738 TESTINST3("qasx r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
1739 TESTINST3("qasx r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
1740 TESTINST3("qasx r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
1741 TESTINST3("qasx r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
1742 TESTINST3("qasx r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
1743 TESTINST3("qasx r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
1744 TESTINST3("qasx r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
1745 TESTINST3("qasx r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
1746 TESTINST3("qasx r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
1747 TESTINST3("qasx r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
1748 TESTINST3("qasx r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
1749 TESTINST3("qasx r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
1750 TESTINST3("qasx r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
1751 TESTINST3("qasx r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
1752 TESTINST3("qasx r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
1753 TESTINST3("qasx r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
1754 TESTINST3("qasx r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
1755 TESTINST3("qasx r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
1756 TESTINST3("qasx r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
1757 TESTINST3("qasx r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
1758 TESTINST3("qasx r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
1759 TESTINST3("qasx r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
1760 TESTINST3("qasx r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
1761 TESTINST3("qasx r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
1762 TESTINST3("qasx r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
1763 TESTINST3("qasx r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
1764 TESTINST3("qasx r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
1765 TESTINST3("qasx r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
1766 TESTINST3("qasx r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
1767 TESTINST3("qasx r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
1768 TESTINST3("qasx r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
1769 TESTINST3("qasx r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
1770 TESTINST3("qasx r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
1771 TESTINST3("qasx r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
1772 TESTINST3("qasx r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
1773 TESTINST3("qasx r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
1774 TESTINST3("qasx r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
1775 TESTINST3("qasx r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
1776 TESTINST3("qasx r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
1777 
1778   printf("----------------- UQASX ----------------- \n");
1779   TESTINST3("uqasx r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
1780   TESTINST3("uqasx r0, r1, r2", 0x7fff7fff, 0x00010001, r0, r1, r2, 0);
1781   TESTINST3("uqasx r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
1782   TESTINST3("uqasx r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
1783   TESTINST3("uqasx r0, r1, r2", 0x00640064, 0x00030003, r0, r1, r2, 0);
1784   TESTINST3("uqasx r0, r1, r2", 0x00030003, 0x00640064, r0, r1, r2, 0);
1785 TESTINST3("uqasx r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
1786 TESTINST3("uqasx r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
1787 TESTINST3("uqasx r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
1788 TESTINST3("uqasx r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
1789 TESTINST3("uqasx r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
1790 TESTINST3("uqasx r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
1791 TESTINST3("uqasx r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
1792 TESTINST3("uqasx r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
1793 TESTINST3("uqasx r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
1794 TESTINST3("uqasx r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
1795 TESTINST3("uqasx r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
1796 TESTINST3("uqasx r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
1797 TESTINST3("uqasx r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
1798 TESTINST3("uqasx r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
1799 TESTINST3("uqasx r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
1800 TESTINST3("uqasx r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
1801 TESTINST3("uqasx r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
1802 TESTINST3("uqasx r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
1803 TESTINST3("uqasx r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
1804 TESTINST3("uqasx r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
1805 TESTINST3("uqasx r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
1806 TESTINST3("uqasx r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
1807 TESTINST3("uqasx r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
1808 TESTINST3("uqasx r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
1809 TESTINST3("uqasx r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
1810 TESTINST3("uqasx r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
1811 TESTINST3("uqasx r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
1812 TESTINST3("uqasx r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
1813 TESTINST3("uqasx r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
1814 TESTINST3("uqasx r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
1815 TESTINST3("uqasx r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
1816 TESTINST3("uqasx r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
1817 TESTINST3("uqasx r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
1818 TESTINST3("uqasx r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
1819 TESTINST3("uqasx r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
1820 TESTINST3("uqasx r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
1821 TESTINST3("uqasx r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
1822 TESTINST3("uqasx r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
1823 TESTINST3("uqasx r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
1824 TESTINST3("uqasx r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
1825 TESTINST3("uqasx r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
1826 TESTINST3("uqasx r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
1827 TESTINST3("uqasx r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
1828 TESTINST3("uqasx r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
1829 TESTINST3("uqasx r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
1830 TESTINST3("uqasx r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
1831 TESTINST3("uqasx r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
1832 TESTINST3("uqasx r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
1833 TESTINST3("uqasx r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
1834 TESTINST3("uqasx r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
1835 
1836   printf("----------------- SASX ----------------- \n");
1837   TESTINST3("sasx r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
1838   TESTINST3("sasx r0, r1, r2", 0x7fff7fff, 0x00010001, r0, r1, r2, 0);
1839   TESTINST3("sasx r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
1840   TESTINST3("sasx r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
1841   TESTINST3("sasx r0, r1, r2", 0x00640064, 0x00030003, r0, r1, r2, 0);
1842   TESTINST3("sasx r0, r1, r2", 0x00030003, 0x00640064, r0, r1, r2, 0);
1843 TESTINST3("sasx r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
1844 TESTINST3("sasx r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
1845 TESTINST3("sasx r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
1846 TESTINST3("sasx r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
1847 TESTINST3("sasx r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
1848 TESTINST3("sasx r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
1849 TESTINST3("sasx r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
1850 TESTINST3("sasx r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
1851 TESTINST3("sasx r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
1852 TESTINST3("sasx r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
1853 TESTINST3("sasx r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
1854 TESTINST3("sasx r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
1855 TESTINST3("sasx r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
1856 TESTINST3("sasx r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
1857 TESTINST3("sasx r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
1858 TESTINST3("sasx r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
1859 TESTINST3("sasx r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
1860 TESTINST3("sasx r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
1861 TESTINST3("sasx r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
1862 TESTINST3("sasx r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
1863 TESTINST3("sasx r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
1864 TESTINST3("sasx r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
1865 TESTINST3("sasx r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
1866 TESTINST3("sasx r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
1867 TESTINST3("sasx r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
1868 TESTINST3("sasx r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
1869 TESTINST3("sasx r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
1870 TESTINST3("sasx r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
1871 TESTINST3("sasx r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
1872 TESTINST3("sasx r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
1873 TESTINST3("sasx r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
1874 TESTINST3("sasx r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
1875 TESTINST3("sasx r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
1876 TESTINST3("sasx r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
1877 TESTINST3("sasx r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
1878 TESTINST3("sasx r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
1879 TESTINST3("sasx r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
1880 TESTINST3("sasx r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
1881 TESTINST3("sasx r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
1882 TESTINST3("sasx r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
1883 TESTINST3("sasx r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
1884 TESTINST3("sasx r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
1885 TESTINST3("sasx r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
1886 TESTINST3("sasx r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
1887 TESTINST3("sasx r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
1888 TESTINST3("sasx r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
1889 TESTINST3("sasx r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
1890 TESTINST3("sasx r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
1891 TESTINST3("sasx r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
1892 TESTINST3("sasx r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
1893 
1894   printf("----------------- USAX ----------------- \n");
1895   TESTINST3("usax r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
1896   TESTINST3("usax r0, r1, r2", 0x7fff7fff, 0x00010001, r0, r1, r2, 0);
1897   TESTINST3("usax r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
1898   TESTINST3("usax r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
1899   TESTINST3("usax r0, r1, r2", 0x00640064, 0x00030003, r0, r1, r2, 0);
1900   TESTINST3("usax r0, r1, r2", 0x00030003, 0x00640064, r0, r1, r2, 0);
1901 TESTINST3("usax r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
1902 TESTINST3("usax r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
1903 TESTINST3("usax r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
1904 TESTINST3("usax r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
1905 TESTINST3("usax r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
1906 TESTINST3("usax r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
1907 TESTINST3("usax r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
1908 TESTINST3("usax r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
1909 TESTINST3("usax r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
1910 TESTINST3("usax r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
1911 TESTINST3("usax r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
1912 TESTINST3("usax r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
1913 TESTINST3("usax r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
1914 TESTINST3("usax r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
1915 TESTINST3("usax r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
1916 TESTINST3("usax r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
1917 TESTINST3("usax r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
1918 TESTINST3("usax r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
1919 TESTINST3("usax r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
1920 TESTINST3("usax r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
1921 TESTINST3("usax r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
1922 TESTINST3("usax r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
1923 TESTINST3("usax r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
1924 TESTINST3("usax r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
1925 TESTINST3("usax r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
1926 TESTINST3("usax r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
1927 TESTINST3("usax r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
1928 TESTINST3("usax r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
1929 TESTINST3("usax r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
1930 TESTINST3("usax r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
1931 TESTINST3("usax r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
1932 TESTINST3("usax r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
1933 TESTINST3("usax r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
1934 TESTINST3("usax r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
1935 TESTINST3("usax r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
1936 TESTINST3("usax r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
1937 TESTINST3("usax r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
1938 TESTINST3("usax r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
1939 TESTINST3("usax r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
1940 TESTINST3("usax r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
1941 TESTINST3("usax r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
1942 TESTINST3("usax r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
1943 TESTINST3("usax r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
1944 TESTINST3("usax r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
1945 TESTINST3("usax r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
1946 TESTINST3("usax r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
1947 TESTINST3("usax r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
1948 TESTINST3("usax r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
1949 TESTINST3("usax r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
1950 TESTINST3("usax r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
1951 
1952   printf("----------------- UASX ----------------- \n");
1953   TESTINST3("uasx r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
1954   TESTINST3("uasx r0, r1, r2", 0x7fff7fff, 0x00010001, r0, r1, r2, 0);
1955   TESTINST3("uasx r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
1956   TESTINST3("uasx r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
1957   TESTINST3("uasx r0, r1, r2", 0x00640064, 0x00030003, r0, r1, r2, 0);
1958   TESTINST3("uasx r0, r1, r2", 0x00030003, 0x00640064, r0, r1, r2, 0);
1959 TESTINST3("uasx r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
1960 TESTINST3("uasx r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
1961 TESTINST3("uasx r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
1962 TESTINST3("uasx r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
1963 TESTINST3("uasx r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
1964 TESTINST3("uasx r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
1965 TESTINST3("uasx r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
1966 TESTINST3("uasx r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
1967 TESTINST3("uasx r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
1968 TESTINST3("uasx r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
1969 TESTINST3("uasx r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
1970 TESTINST3("uasx r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
1971 TESTINST3("uasx r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
1972 TESTINST3("uasx r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
1973 TESTINST3("uasx r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
1974 TESTINST3("uasx r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
1975 TESTINST3("uasx r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
1976 TESTINST3("uasx r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
1977 TESTINST3("uasx r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
1978 TESTINST3("uasx r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
1979 TESTINST3("uasx r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
1980 TESTINST3("uasx r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
1981 TESTINST3("uasx r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
1982 TESTINST3("uasx r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
1983 TESTINST3("uasx r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
1984 TESTINST3("uasx r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
1985 TESTINST3("uasx r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
1986 TESTINST3("uasx r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
1987 TESTINST3("uasx r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
1988 TESTINST3("uasx r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
1989 TESTINST3("uasx r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
1990 TESTINST3("uasx r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
1991 TESTINST3("uasx r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
1992 TESTINST3("uasx r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
1993 TESTINST3("uasx r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
1994 TESTINST3("uasx r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
1995 TESTINST3("uasx r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
1996 TESTINST3("uasx r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
1997 TESTINST3("uasx r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
1998 TESTINST3("uasx r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
1999 TESTINST3("uasx r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
2000 TESTINST3("uasx r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
2001 TESTINST3("uasx r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
2002 TESTINST3("uasx r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
2003 TESTINST3("uasx r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
2004 TESTINST3("uasx r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
2005 TESTINST3("uasx r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
2006 TESTINST3("uasx r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
2007 TESTINST3("uasx r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
2008 TESTINST3("uasx r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
2009 
2010   printf("----------------- SSAX ----------------- \n");
2011   TESTINST3("ssax r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
2012   TESTINST3("ssax r0, r1, r2", 0x7fff7fff, 0x00010001, r0, r1, r2, 0);
2013   TESTINST3("ssax r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
2014   TESTINST3("ssax r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
2015   TESTINST3("ssax r0, r1, r2", 0x00640064, 0x00030003, r0, r1, r2, 0);
2016   TESTINST3("ssax r0, r1, r2", 0x00030003, 0x00640064, r0, r1, r2, 0);
2017 TESTINST3("ssax r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
2018 TESTINST3("ssax r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
2019 TESTINST3("ssax r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
2020 TESTINST3("ssax r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
2021 TESTINST3("ssax r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
2022 TESTINST3("ssax r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
2023 TESTINST3("ssax r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
2024 TESTINST3("ssax r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
2025 TESTINST3("ssax r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
2026 TESTINST3("ssax r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
2027 TESTINST3("ssax r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
2028 TESTINST3("ssax r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
2029 TESTINST3("ssax r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
2030 TESTINST3("ssax r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
2031 TESTINST3("ssax r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
2032 TESTINST3("ssax r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
2033 TESTINST3("ssax r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
2034 TESTINST3("ssax r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
2035 TESTINST3("ssax r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
2036 TESTINST3("ssax r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
2037 TESTINST3("ssax r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
2038 TESTINST3("ssax r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
2039 TESTINST3("ssax r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
2040 TESTINST3("ssax r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
2041 TESTINST3("ssax r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
2042 TESTINST3("ssax r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
2043 TESTINST3("ssax r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
2044 TESTINST3("ssax r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
2045 TESTINST3("ssax r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
2046 TESTINST3("ssax r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
2047 TESTINST3("ssax r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
2048 TESTINST3("ssax r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
2049 TESTINST3("ssax r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
2050 TESTINST3("ssax r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
2051 TESTINST3("ssax r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
2052 TESTINST3("ssax r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
2053 TESTINST3("ssax r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
2054 TESTINST3("ssax r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
2055 TESTINST3("ssax r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
2056 TESTINST3("ssax r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
2057 TESTINST3("ssax r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
2058 TESTINST3("ssax r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
2059 TESTINST3("ssax r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
2060 TESTINST3("ssax r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
2061 TESTINST3("ssax r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
2062 TESTINST3("ssax r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
2063 TESTINST3("ssax r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
2064 TESTINST3("ssax r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
2065 TESTINST3("ssax r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
2066 TESTINST3("ssax r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
2067 
2068   printf("----------------- SMUAD ----------------- \n");
2069   TESTINST3("smuad r0, r1, r2", 0x80008000, 0x80008000, r0, r1, r2, 0);
2070   TESTINST3("smuad r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
2071   TESTINST3("smuad r0, r1, r2", 0x7fff7fff, 0x00010001, r0, r1, r2, 0);
2072   TESTINST3("smuad r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
2073   TESTINST3("smuad r0, r1, r2", 0x00640064, 0x00030003, r0, r1, r2, 0);
2074   TESTINST3("smuad r0, r1, r2", 0xffffffff, 0xfffc0001, r0, r1, r2, 0);
2075   TESTINST3("smuad r0, r1, r2", 0xfff70fff, 0x00030003, r0, r1, r2, 0);
2076 TESTINST3("smuad r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
2077 TESTINST3("smuad r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
2078 TESTINST3("smuad r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
2079 TESTINST3("smuad r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
2080 TESTINST3("smuad r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
2081 TESTINST3("smuad r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
2082 TESTINST3("smuad r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
2083 TESTINST3("smuad r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
2084 TESTINST3("smuad r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
2085 TESTINST3("smuad r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
2086 TESTINST3("smuad r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
2087 TESTINST3("smuad r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
2088 TESTINST3("smuad r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
2089 TESTINST3("smuad r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
2090 TESTINST3("smuad r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
2091 TESTINST3("smuad r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
2092 TESTINST3("smuad r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
2093 TESTINST3("smuad r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
2094 TESTINST3("smuad r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
2095 TESTINST3("smuad r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
2096 TESTINST3("smuad r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
2097 TESTINST3("smuad r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
2098 TESTINST3("smuad r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
2099 TESTINST3("smuad r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
2100 TESTINST3("smuad r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
2101 TESTINST3("smuad r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
2102 TESTINST3("smuad r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
2103 TESTINST3("smuad r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
2104 TESTINST3("smuad r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
2105 TESTINST3("smuad r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
2106 TESTINST3("smuad r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
2107 TESTINST3("smuad r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
2108 TESTINST3("smuad r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
2109 TESTINST3("smuad r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
2110 TESTINST3("smuad r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
2111 TESTINST3("smuad r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
2112 TESTINST3("smuad r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
2113 TESTINST3("smuad r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
2114 TESTINST3("smuad r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
2115 TESTINST3("smuad r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
2116 TESTINST3("smuad r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
2117 TESTINST3("smuad r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
2118 TESTINST3("smuad r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
2119 TESTINST3("smuad r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
2120 TESTINST3("smuad r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
2121 TESTINST3("smuad r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
2122 TESTINST3("smuad r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
2123 TESTINST3("smuad r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
2124 TESTINST3("smuad r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
2125 TESTINST3("smuad r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
2126   printf("----------------- SMUADX ---------------- \n");
2127   TESTINST3("smuadx r0, r1, r2", 0x80008000, 0x80008000, r0, r1, r2, 0);
2128   TESTINST3("smuadx r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
2129   TESTINST3("smuadx r0, r1, r2", 0x7fff7fff, 0x00010001, r0, r1, r2, 0);
2130   TESTINST3("smuadx r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
2131   TESTINST3("smuadx r0, r1, r2", 0x00640064, 0x00030003, r0, r1, r2, 0);
2132   TESTINST3("smuadx r0, r1, r2", 0xffffffff, 0xfffc0001, r0, r1, r2, 0);
2133   TESTINST3("smuadx r0, r1, r2", 0xfff70fff, 0x00030003, r0, r1, r2, 0);
2134 TESTINST3("smuadx r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
2135 TESTINST3("smuadx r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
2136 TESTINST3("smuadx r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
2137 TESTINST3("smuadx r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
2138 TESTINST3("smuadx r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
2139 TESTINST3("smuadx r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
2140 TESTINST3("smuadx r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
2141 TESTINST3("smuadx r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
2142 TESTINST3("smuadx r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
2143 TESTINST3("smuadx r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
2144 TESTINST3("smuadx r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
2145 TESTINST3("smuadx r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
2146 TESTINST3("smuadx r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
2147 TESTINST3("smuadx r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
2148 TESTINST3("smuadx r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
2149 TESTINST3("smuadx r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
2150 TESTINST3("smuadx r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
2151 TESTINST3("smuadx r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
2152 TESTINST3("smuadx r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
2153 TESTINST3("smuadx r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
2154 TESTINST3("smuadx r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
2155 TESTINST3("smuadx r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
2156 TESTINST3("smuadx r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
2157 TESTINST3("smuadx r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
2158 TESTINST3("smuadx r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
2159 TESTINST3("smuadx r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
2160 TESTINST3("smuadx r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
2161 TESTINST3("smuadx r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
2162 TESTINST3("smuadx r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
2163 TESTINST3("smuadx r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
2164 TESTINST3("smuadx r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
2165 TESTINST3("smuadx r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
2166 TESTINST3("smuadx r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
2167 TESTINST3("smuadx r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
2168 TESTINST3("smuadx r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
2169 TESTINST3("smuadx r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
2170 TESTINST3("smuadx r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
2171 TESTINST3("smuadx r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
2172 TESTINST3("smuadx r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
2173 TESTINST3("smuadx r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
2174 TESTINST3("smuadx r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
2175 TESTINST3("smuadx r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
2176 TESTINST3("smuadx r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
2177 TESTINST3("smuadx r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
2178 TESTINST3("smuadx r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
2179 TESTINST3("smuadx r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
2180 TESTINST3("smuadx r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
2181 TESTINST3("smuadx r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
2182 TESTINST3("smuadx r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
2183 TESTINST3("smuadx r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
2184 
2185   printf("----------------- SMLAD ----------------- \n");
2186   TESTINST4("smlad  r0, r1, r2, r3",
2187                   0x80008000, 0x80008000, 0x00000000, r0, r1, r2, r3, 0);
2188   TESTINST4("smlad  r0, r1, r2, r3",
2189                   0x7fff7fff, 0x00000000, 0x00000000, r0, r1, r2, r3, 0);
2190   TESTINST4("smlad  r0, r1, r2, r3",
2191                   0x7fff7fff, 0x00010001, 0x00000001, r0, r1, r2, r3, 0);
2192   TESTINST4("smlad  r0, r1, r2, r3",
2193                   0x80008000, 0xffffffff, 0x0000001f, r0, r1, r2, r3, 0);
2194   TESTINST4("smlad  r0, r1, r2, r3",
2195                   0x00640064, 0x00030003, 0x00000020, r0, r1, r2, r3, 0);
2196   TESTINST4("smlad  r0, r1, r2, r3",
2197                   0xffffffff, 0xfffc0001, 0x000000ff, r0, r1, r2, r3, 0);
2198   TESTINST4("smlad  r0, r1, r2, r3",
2199                   0xfff70fff, 0x00030003, 0x00000100, r0, r1, r2, r3, 0);
2200 TESTINST4("smlad  r0, r1, r2, r3",
2201           0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
2202 TESTINST4("smlad  r0, r1, r2, r3",
2203           0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
2204 TESTINST4("smlad  r0, r1, r2, r3",
2205           0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
2206 TESTINST4("smlad  r0, r1, r2, r3",
2207           0x32fa0095, 0x36f26261, 0x89d2ef86, r0, r1, r2, r3, 0);
2208 TESTINST4("smlad  r0, r1, r2, r3",
2209           0x8ed8287c, 0x02c90120, 0xd4b64d54, r0, r1, r2, r3, 0);
2210 TESTINST4("smlad  r0, r1, r2, r3",
2211           0xc53aaba9, 0x29300837, 0x0b02c58a, r0, r1, r2, r3, 0);
2212 TESTINST4("smlad  r0, r1, r2, r3",
2213           0x216158cb, 0x57a50a01, 0xb0d20777, r0, r1, r2, r3, 0);
2214 TESTINST4("smlad  r0, r1, r2, r3",
2215           0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0, r1, r2, r3, 0);
2216 TESTINST4("smlad  r0, r1, r2, r3",
2217           0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0, r1, r2, r3, 0);
2218 TESTINST4("smlad  r0, r1, r2, r3",
2219           0xf87b961e, 0x1d66879f, 0xf2b64835, r0, r1, r2, r3, 0);
2220 TESTINST4("smlad  r0, r1, r2, r3",
2221           0xd65db979, 0xc61b323b, 0xae930a1a, r0, r1, r2, r3, 0);
2222 TESTINST4("smlad  r0, r1, r2, r3",
2223           0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0, r1, r2, r3, 0);
2224 TESTINST4("smlad  r0, r1, r2, r3",
2225           0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0, r1, r2, r3, 0);
2226 TESTINST4("smlad  r0, r1, r2, r3",
2227           0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, r3, 0);
2228 TESTINST4("smlad  r0, r1, r2, r3",
2229           0xeaa652c7, 0x137741f4, 0x3dba1164, r0, r1, r2, r3, 0);
2230 TESTINST4("smlad  r0, r1, r2, r3",
2231           0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0, r1, r2, r3, 0);
2232 TESTINST4("smlad  r0, r1, r2, r3",
2233           0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0, r1, r2, r3, 0);
2234 TESTINST4("smlad  r0, r1, r2, r3",
2235           0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, r3, 0);
2236 TESTINST4("smlad  r0, r1, r2, r3",
2237           0xe1bb8606, 0x58293969, 0x81616d13, r0, r1, r2, r3, 0);
2238 TESTINST4("smlad  r0, r1, r2, r3",
2239           0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0, r1, r2, r3, 0);
2240 TESTINST4("smlad  r0, r1, r2, r3",
2241           0x0849a0c2, 0x0872f25a, 0x40b094e2, r0, r1, r2, r3, 0);
2242 TESTINST4("smlad  r0, r1, r2, r3",
2243           0x17913309, 0xf1e03d7e, 0x91edc21d, r0, r1, r2, r3, 0);
2244 TESTINST4("smlad  r0, r1, r2, r3",
2245           0x5388b5cd, 0x86582032, 0x6034078d, r0, r1, r2, r3, 0);
2246 TESTINST4("smlad  r0, r1, r2, r3",
2247           0x181c436b, 0x5de41558, 0xccfa1c7e, r0, r1, r2, r3, 0);
2248 TESTINST4("smlad  r0, r1, r2, r3",
2249           0x23ba1b46, 0x4437983c, 0x48d06549, r0, r1, r2, r3, 0);
2250 TESTINST4("smlad  r0, r1, r2, r3",
2251           0xa9085781, 0xc6b4ac58, 0xb2aead21, r0, r1, r2, r3, 0);
2252 TESTINST4("smlad  r0, r1, r2, r3",
2253           0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0, r1, r2, r3, 0);
2254 TESTINST4("smlad  r0, r1, r2, r3",
2255           0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, r3, 0);
2256 TESTINST4("smlad  r0, r1, r2, r3",
2257           0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0, r1, r2, r3, 0);
2258 TESTINST4("smlad  r0, r1, r2, r3",
2259           0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0, r1, r2, r3, 0);
2260 TESTINST4("smlad  r0, r1, r2, r3",
2261           0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0, r1, r2, r3, 0);
2262 TESTINST4("smlad  r0, r1, r2, r3",
2263           0xd7ce1909, 0x3e435701, 0x85fbf196, r0, r1, r2, r3, 0);
2264 TESTINST4("smlad  r0, r1, r2, r3",
2265           0xb4e16b6e, 0x6e13680a, 0x89436f88, r0, r1, r2, r3, 0);
2266 TESTINST4("smlad  r0, r1, r2, r3",
2267           0x44858efc, 0x9002bc30, 0x390d2c2f, r0, r1, r2, r3, 0);
2268 TESTINST4("smlad  r0, r1, r2, r3",
2269           0xbea121ab, 0x953ff6ec, 0x80657c40, r0, r1, r2, r3, 0);
2270 TESTINST4("smlad  r0, r1, r2, r3",
2271           0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, r3, 0);
2272 TESTINST4("smlad  r0, r1, r2, r3",
2273           0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0, r1, r2, r3, 0);
2274 TESTINST4("smlad  r0, r1, r2, r3",
2275           0xec0c2f30, 0x5736ed46, 0x231348c0, r0, r1, r2, r3, 0);
2276 TESTINST4("smlad  r0, r1, r2, r3",
2277           0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0, r1, r2, r3, 0);
2278 TESTINST4("smlad  r0, r1, r2, r3",
2279           0xc1553709, 0x0112b30a, 0x69ec0212, r0, r1, r2, r3, 0);
2280 TESTINST4("smlad  r0, r1, r2, r3",
2281           0x74bd0223, 0x03fa9bb5, 0x899d9192, r0, r1, r2, r3, 0);
2282 TESTINST4("smlad  r0, r1, r2, r3",
2283           0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, r3, 0);
2284 TESTINST4("smlad  r0, r1, r2, r3",
2285           0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0, r1, r2, r3, 0);
2286 TESTINST4("smlad  r0, r1, r2, r3",
2287           0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0, r1, r2, r3, 0);
2288 TESTINST4("smlad  r0, r1, r2, r3",
2289           0x299da970, 0xe8108f1b, 0xf5818cfb, r0, r1, r2, r3, 0);
2290 TESTINST4("smlad  r0, r1, r2, r3",
2291           0xcd90d604, 0xaa5e9444, 0x8217b7df, r0, r1, r2, r3, 0);
2292 TESTINST4("smlad  r0, r1, r2, r3",
2293           0xe60743c3, 0x7acb4de3, 0x73c29060, r0, r1, r2, r3, 0);
2294 TESTINST4("smlad  r0, r1, r2, r3",
2295           0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0, r1, r2, r3, 0);
2296 TESTINST4("smlad  r0, r1, r2, r3",
2297           0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0, r1, r2, r3, 0);
2298 TESTINST4("smlad  r0, r1, r2, r3",
2299           0xde99ac2f, 0x0be36f70, 0xeda5110c, r0, r1, r2, r3, 0);
2300 TESTINST4("smlad  r0, r1, r2, r3",
2301           0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0);
2302 
2303   printf("----------------- SMLADX ----------------- \n");
2304   TESTINST4("smladx  r0, r1, r2, r3",
2305                   0x80008000, 0x80008000, 0x00000000, r0, r1, r2, r3, 0);
2306   TESTINST4("smladx  r0, r1, r2, r3",
2307                   0x7fff7fff, 0x00000000, 0x00000000, r0, r1, r2, r3, 0);
2308   TESTINST4("smladx  r0, r1, r2, r3",
2309                   0x7fff7fff, 0x00010001, 0x00000001, r0, r1, r2, r3, 0);
2310   TESTINST4("smladx  r0, r1, r2, r3",
2311                   0x80008000, 0xffffffff, 0x0000001f, r0, r1, r2, r3, 0);
2312   TESTINST4("smladx  r0, r1, r2, r3",
2313                   0x00640064, 0x00030003, 0x00000020, r0, r1, r2, r3, 0);
2314   TESTINST4("smladx  r0, r1, r2, r3",
2315                   0xffffffff, 0xfffc0001, 0x000000ff, r0, r1, r2, r3, 0);
2316   TESTINST4("smladx  r0, r1, r2, r3",
2317                   0xfff70fff, 0x00030003, 0x00000100, r0, r1, r2, r3, 0);
2318 TESTINST4("smladx  r0, r1, r2, r3",
2319           0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
2320 TESTINST4("smladx  r0, r1, r2, r3",
2321           0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
2322 TESTINST4("smladx  r0, r1, r2, r3",
2323           0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
2324 
2325   printf("------------ SMLABB, SMLATT, SMLATB, SMLABT ------------\n");
2326   /* smlabb rD, rN, rM, rA */
2327   TESTINST4("smlabb r0, r1, r2, r3",
2328             0x00030000, 0x00040000, 0x00000000, r0,r1,r2,r3, 0);
2329   TESTINST4("smlabb r0, r1, r2, r3",
2330             0x00030001, 0x00040002, 0x00007fff, r0,r1,r2,r3, 0);
2331   TESTINST4("smlabb r0, r1, r2, r3",
2332             0x00038001, 0x00047fff, 0x00005fff, r0,r1,r2,r3, 0);
2333   TESTINST4("smlabb r0, r1, r2, r3",
2334             0x00037fff, 0x00047fff, 0x00007fff, r0,r1,r2,r3, 0);
2335   TESTINST4("smlabb r0, r1, r2, r3",
2336             0x0003ffff, 0x0004ffff, 0x7fff7fff, r0,r1,r2,r3, 0);
2337   TESTINST4("smlabb r0, r1, r2, r3",
2338             0x0003fffc, 0x0004ffff, 0xffffffff, r0,r1,r2,r3, 0);
2339 TESTINST4("smlabb  r0, r1, r2, r3",
2340           0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
2341 TESTINST4("smlabb  r0, r1, r2, r3",
2342           0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
2343 TESTINST4("smlabb  r0, r1, r2, r3",
2344           0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
2345 TESTINST4("smlabb  r0, r1, r2, r3",
2346           0x32fa0095, 0x36f26261, 0x89d2ef86, r0, r1, r2, r3, 0);
2347 TESTINST4("smlabb  r0, r1, r2, r3",
2348           0x8ed8287c, 0x02c90120, 0xd4b64d54, r0, r1, r2, r3, 0);
2349 TESTINST4("smlabb  r0, r1, r2, r3",
2350           0xc53aaba9, 0x29300837, 0x0b02c58a, r0, r1, r2, r3, 0);
2351 TESTINST4("smlabb  r0, r1, r2, r3",
2352           0x216158cb, 0x57a50a01, 0xb0d20777, r0, r1, r2, r3, 0);
2353 TESTINST4("smlabb  r0, r1, r2, r3",
2354           0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0, r1, r2, r3, 0);
2355 TESTINST4("smlabb  r0, r1, r2, r3",
2356           0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0, r1, r2, r3, 0);
2357 TESTINST4("smlabb  r0, r1, r2, r3",
2358           0xf87b961e, 0x1d66879f, 0xf2b64835, r0, r1, r2, r3, 0);
2359 TESTINST4("smlabb  r0, r1, r2, r3",
2360           0xd65db979, 0xc61b323b, 0xae930a1a, r0, r1, r2, r3, 0);
2361 TESTINST4("smlabb  r0, r1, r2, r3",
2362           0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0, r1, r2, r3, 0);
2363 TESTINST4("smlabb  r0, r1, r2, r3",
2364           0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0, r1, r2, r3, 0);
2365 TESTINST4("smlabb  r0, r1, r2, r3",
2366           0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, r3, 0);
2367 TESTINST4("smlabb  r0, r1, r2, r3",
2368           0xeaa652c7, 0x137741f4, 0x3dba1164, r0, r1, r2, r3, 0);
2369 TESTINST4("smlabb  r0, r1, r2, r3",
2370           0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0, r1, r2, r3, 0);
2371 TESTINST4("smlabb  r0, r1, r2, r3",
2372           0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0, r1, r2, r3, 0);
2373 TESTINST4("smlabb  r0, r1, r2, r3",
2374           0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, r3, 0);
2375 TESTINST4("smlabb  r0, r1, r2, r3",
2376           0xe1bb8606, 0x58293969, 0x81616d13, r0, r1, r2, r3, 0);
2377 TESTINST4("smlabb  r0, r1, r2, r3",
2378           0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0, r1, r2, r3, 0);
2379 TESTINST4("smlabb  r0, r1, r2, r3",
2380           0x0849a0c2, 0x0872f25a, 0x40b094e2, r0, r1, r2, r3, 0);
2381 TESTINST4("smlabb  r0, r1, r2, r3",
2382           0x17913309, 0xf1e03d7e, 0x91edc21d, r0, r1, r2, r3, 0);
2383 TESTINST4("smlabb  r0, r1, r2, r3",
2384           0x5388b5cd, 0x86582032, 0x6034078d, r0, r1, r2, r3, 0);
2385 TESTINST4("smlabb  r0, r1, r2, r3",
2386           0x181c436b, 0x5de41558, 0xccfa1c7e, r0, r1, r2, r3, 0);
2387 TESTINST4("smlabb  r0, r1, r2, r3",
2388           0x23ba1b46, 0x4437983c, 0x48d06549, r0, r1, r2, r3, 0);
2389 TESTINST4("smlabb  r0, r1, r2, r3",
2390           0xa9085781, 0xc6b4ac58, 0xb2aead21, r0, r1, r2, r3, 0);
2391 TESTINST4("smlabb  r0, r1, r2, r3",
2392           0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0, r1, r2, r3, 0);
2393 TESTINST4("smlabb  r0, r1, r2, r3",
2394           0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, r3, 0);
2395 TESTINST4("smlabb  r0, r1, r2, r3",
2396           0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0, r1, r2, r3, 0);
2397 TESTINST4("smlabb  r0, r1, r2, r3",
2398           0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0, r1, r2, r3, 0);
2399 TESTINST4("smlabb  r0, r1, r2, r3",
2400           0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0, r1, r2, r3, 0);
2401 TESTINST4("smlabb  r0, r1, r2, r3",
2402           0xd7ce1909, 0x3e435701, 0x85fbf196, r0, r1, r2, r3, 0);
2403 TESTINST4("smlabb  r0, r1, r2, r3",
2404           0xb4e16b6e, 0x6e13680a, 0x89436f88, r0, r1, r2, r3, 0);
2405 TESTINST4("smlabb  r0, r1, r2, r3",
2406           0x44858efc, 0x9002bc30, 0x390d2c2f, r0, r1, r2, r3, 0);
2407 TESTINST4("smlabb  r0, r1, r2, r3",
2408           0xbea121ab, 0x953ff6ec, 0x80657c40, r0, r1, r2, r3, 0);
2409 TESTINST4("smlabb  r0, r1, r2, r3",
2410           0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, r3, 0);
2411 TESTINST4("smlabb  r0, r1, r2, r3",
2412           0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0, r1, r2, r3, 0);
2413 TESTINST4("smlabb  r0, r1, r2, r3",
2414           0xec0c2f30, 0x5736ed46, 0x231348c0, r0, r1, r2, r3, 0);
2415 TESTINST4("smlabb  r0, r1, r2, r3",
2416           0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0, r1, r2, r3, 0);
2417 TESTINST4("smlabb  r0, r1, r2, r3",
2418           0xc1553709, 0x0112b30a, 0x69ec0212, r0, r1, r2, r3, 0);
2419 TESTINST4("smlabb  r0, r1, r2, r3",
2420           0x74bd0223, 0x03fa9bb5, 0x899d9192, r0, r1, r2, r3, 0);
2421 TESTINST4("smlabb  r0, r1, r2, r3",
2422           0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, r3, 0);
2423 TESTINST4("smlabb  r0, r1, r2, r3",
2424           0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0, r1, r2, r3, 0);
2425 TESTINST4("smlabb  r0, r1, r2, r3",
2426           0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0, r1, r2, r3, 0);
2427 TESTINST4("smlabb  r0, r1, r2, r3",
2428           0x299da970, 0xe8108f1b, 0xf5818cfb, r0, r1, r2, r3, 0);
2429 TESTINST4("smlabb  r0, r1, r2, r3",
2430           0xcd90d604, 0xaa5e9444, 0x8217b7df, r0, r1, r2, r3, 0);
2431 TESTINST4("smlabb  r0, r1, r2, r3",
2432           0xe60743c3, 0x7acb4de3, 0x73c29060, r0, r1, r2, r3, 0);
2433 TESTINST4("smlabb  r0, r1, r2, r3",
2434           0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0, r1, r2, r3, 0);
2435 TESTINST4("smlabb  r0, r1, r2, r3",
2436           0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0, r1, r2, r3, 0);
2437 TESTINST4("smlabb  r0, r1, r2, r3",
2438           0xde99ac2f, 0x0be36f70, 0xeda5110c, r0, r1, r2, r3, 0);
2439 TESTINST4("smlabb  r0, r1, r2, r3",
2440           0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0);
2441   /* smlatt rD, rN, rM, rA */
2442   TESTINST4("smlatt r0, r1, r2, r3",
2443             0x00000003, 0x00000004, 0x00000000, r0,r1,r2,r3, 0);
2444   TESTINST4("smlatt r0, r1, r2, r3",
2445             0x00010003, 0x00020004, 0x00007fff, r0,r1,r2,r3, 0);
2446   TESTINST4("smlatt r0, r1, r2, r3",
2447             0x80010003, 0x7fff0004, 0x00005fff, r0,r1,r2,r3, 0);
2448   TESTINST4("smlatt r0, r1, r2, r3",
2449             0x7fff0003, 0x7fff0004, 0x00007fff, r0,r1,r2,r3, 0);
2450   TESTINST4("smlatt r0, r1, r2, r3",
2451             0xffff0003, 0xffff0004, 0x7fff7fff, r0,r1,r2,r3, 0);
2452   TESTINST4("smlatt r0, r1, r2, r3",
2453             0xfffc0003, 0xffff0004, 0xffffffff, r0,r1,r2,r3, 0);
2454 TESTINST4("smlatt  r0, r1, r2, r3",
2455           0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
2456 TESTINST4("smlatt  r0, r1, r2, r3",
2457           0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
2458 TESTINST4("smlatt  r0, r1, r2, r3",
2459           0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
2460 TESTINST4("smlatt  r0, r1, r2, r3",
2461           0x32fa0095, 0x36f26261, 0x89d2ef86, r0, r1, r2, r3, 0);
2462 TESTINST4("smlatt  r0, r1, r2, r3",
2463           0x8ed8287c, 0x02c90120, 0xd4b64d54, r0, r1, r2, r3, 0);
2464 TESTINST4("smlatt  r0, r1, r2, r3",
2465           0xc53aaba9, 0x29300837, 0x0b02c58a, r0, r1, r2, r3, 0);
2466 TESTINST4("smlatt  r0, r1, r2, r3",
2467           0x216158cb, 0x57a50a01, 0xb0d20777, r0, r1, r2, r3, 0);
2468 TESTINST4("smlatt  r0, r1, r2, r3",
2469           0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0, r1, r2, r3, 0);
2470 TESTINST4("smlatt  r0, r1, r2, r3",
2471           0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0, r1, r2, r3, 0);
2472 TESTINST4("smlatt  r0, r1, r2, r3",
2473           0xf87b961e, 0x1d66879f, 0xf2b64835, r0, r1, r2, r3, 0);
2474 TESTINST4("smlatt  r0, r1, r2, r3",
2475           0xd65db979, 0xc61b323b, 0xae930a1a, r0, r1, r2, r3, 0);
2476 TESTINST4("smlatt  r0, r1, r2, r3",
2477           0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0, r1, r2, r3, 0);
2478 TESTINST4("smlatt  r0, r1, r2, r3",
2479           0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0, r1, r2, r3, 0);
2480 TESTINST4("smlatt  r0, r1, r2, r3",
2481           0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, r3, 0);
2482 TESTINST4("smlatt  r0, r1, r2, r3",
2483           0xeaa652c7, 0x137741f4, 0x3dba1164, r0, r1, r2, r3, 0);
2484 TESTINST4("smlatt  r0, r1, r2, r3",
2485           0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0, r1, r2, r3, 0);
2486 TESTINST4("smlatt  r0, r1, r2, r3",
2487           0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0, r1, r2, r3, 0);
2488 TESTINST4("smlatt  r0, r1, r2, r3",
2489           0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, r3, 0);
2490 TESTINST4("smlatt  r0, r1, r2, r3",
2491           0xe1bb8606, 0x58293969, 0x81616d13, r0, r1, r2, r3, 0);
2492 TESTINST4("smlatt  r0, r1, r2, r3",
2493           0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0, r1, r2, r3, 0);
2494 TESTINST4("smlatt  r0, r1, r2, r3",
2495           0x0849a0c2, 0x0872f25a, 0x40b094e2, r0, r1, r2, r3, 0);
2496 TESTINST4("smlatt  r0, r1, r2, r3",
2497           0x17913309, 0xf1e03d7e, 0x91edc21d, r0, r1, r2, r3, 0);
2498 TESTINST4("smlatt  r0, r1, r2, r3",
2499           0x5388b5cd, 0x86582032, 0x6034078d, r0, r1, r2, r3, 0);
2500 TESTINST4("smlatt  r0, r1, r2, r3",
2501           0x181c436b, 0x5de41558, 0xccfa1c7e, r0, r1, r2, r3, 0);
2502 TESTINST4("smlatt  r0, r1, r2, r3",
2503           0x23ba1b46, 0x4437983c, 0x48d06549, r0, r1, r2, r3, 0);
2504 TESTINST4("smlatt  r0, r1, r2, r3",
2505           0xa9085781, 0xc6b4ac58, 0xb2aead21, r0, r1, r2, r3, 0);
2506 TESTINST4("smlatt  r0, r1, r2, r3",
2507           0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0, r1, r2, r3, 0);
2508 TESTINST4("smlatt  r0, r1, r2, r3",
2509           0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, r3, 0);
2510 TESTINST4("smlatt  r0, r1, r2, r3",
2511           0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0, r1, r2, r3, 0);
2512 TESTINST4("smlatt  r0, r1, r2, r3",
2513           0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0, r1, r2, r3, 0);
2514 TESTINST4("smlatt  r0, r1, r2, r3",
2515           0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0, r1, r2, r3, 0);
2516 TESTINST4("smlatt  r0, r1, r2, r3",
2517           0xd7ce1909, 0x3e435701, 0x85fbf196, r0, r1, r2, r3, 0);
2518 TESTINST4("smlatt  r0, r1, r2, r3",
2519           0xb4e16b6e, 0x6e13680a, 0x89436f88, r0, r1, r2, r3, 0);
2520 TESTINST4("smlatt  r0, r1, r2, r3",
2521           0x44858efc, 0x9002bc30, 0x390d2c2f, r0, r1, r2, r3, 0);
2522 TESTINST4("smlatt  r0, r1, r2, r3",
2523           0xbea121ab, 0x953ff6ec, 0x80657c40, r0, r1, r2, r3, 0);
2524 TESTINST4("smlatt  r0, r1, r2, r3",
2525           0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, r3, 0);
2526 TESTINST4("smlatt  r0, r1, r2, r3",
2527           0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0, r1, r2, r3, 0);
2528 TESTINST4("smlatt  r0, r1, r2, r3",
2529           0xec0c2f30, 0x5736ed46, 0x231348c0, r0, r1, r2, r3, 0);
2530 TESTINST4("smlatt  r0, r1, r2, r3",
2531           0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0, r1, r2, r3, 0);
2532 TESTINST4("smlatt  r0, r1, r2, r3",
2533           0xc1553709, 0x0112b30a, 0x69ec0212, r0, r1, r2, r3, 0);
2534 TESTINST4("smlatt  r0, r1, r2, r3",
2535           0x74bd0223, 0x03fa9bb5, 0x899d9192, r0, r1, r2, r3, 0);
2536 TESTINST4("smlatt  r0, r1, r2, r3",
2537           0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, r3, 0);
2538 TESTINST4("smlatt  r0, r1, r2, r3",
2539           0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0, r1, r2, r3, 0);
2540 TESTINST4("smlatt  r0, r1, r2, r3",
2541           0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0, r1, r2, r3, 0);
2542 TESTINST4("smlatt  r0, r1, r2, r3",
2543           0x299da970, 0xe8108f1b, 0xf5818cfb, r0, r1, r2, r3, 0);
2544 TESTINST4("smlatt  r0, r1, r2, r3",
2545           0xcd90d604, 0xaa5e9444, 0x8217b7df, r0, r1, r2, r3, 0);
2546 TESTINST4("smlatt  r0, r1, r2, r3",
2547           0xe60743c3, 0x7acb4de3, 0x73c29060, r0, r1, r2, r3, 0);
2548 TESTINST4("smlatt  r0, r1, r2, r3",
2549           0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0, r1, r2, r3, 0);
2550 TESTINST4("smlatt  r0, r1, r2, r3",
2551           0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0, r1, r2, r3, 0);
2552 TESTINST4("smlatt  r0, r1, r2, r3",
2553           0xde99ac2f, 0x0be36f70, 0xeda5110c, r0, r1, r2, r3, 0);
2554 TESTINST4("smlatt  r0, r1, r2, r3",
2555           0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0);
2556   /* smlatb rD, rN, rM, rA */
2557   TESTINST4("smlatb r0, r1, r2, r3",
2558             0x00000003, 0x00040000, 0x00000000, r0,r1,r2,r3, 0);
2559   TESTINST4("smlatb r0, r1, r2, r3",
2560             0x00010003, 0x00040002, 0x00007fff, r0,r1,r2,r3, 0);
2561   TESTINST4("smlatb r0, r1, r2, r3",
2562             0x80010003, 0x00047fff, 0x00005fff, r0,r1,r2,r3, 0);
2563   TESTINST4("smlatb r0, r1, r2, r3",
2564             0x7fff0003, 0x00047fff, 0x00007fff, r0,r1,r2,r3, 0);
2565   TESTINST4("smlatb r0, r1, r2, r3",
2566             0xffff0003, 0x0004ffff, 0x7fff7fff, r0,r1,r2,r3, 0);
2567   TESTINST4("smlatb r0, r1, r2, r3",
2568             0xfffc0003, 0x0004ffff, 0xffffffff, r0,r1,r2,r3, 0);
2569 TESTINST4("smlatb  r0, r1, r2, r3",
2570           0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
2571 TESTINST4("smlatb  r0, r1, r2, r3",
2572           0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
2573 TESTINST4("smlatb  r0, r1, r2, r3",
2574           0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
2575 TESTINST4("smlatb  r0, r1, r2, r3",
2576           0x32fa0095, 0x36f26261, 0x89d2ef86, r0, r1, r2, r3, 0);
2577 TESTINST4("smlatb  r0, r1, r2, r3",
2578           0x8ed8287c, 0x02c90120, 0xd4b64d54, r0, r1, r2, r3, 0);
2579 TESTINST4("smlatb  r0, r1, r2, r3",
2580           0xc53aaba9, 0x29300837, 0x0b02c58a, r0, r1, r2, r3, 0);
2581 TESTINST4("smlatb  r0, r1, r2, r3",
2582           0x216158cb, 0x57a50a01, 0xb0d20777, r0, r1, r2, r3, 0);
2583 TESTINST4("smlatb  r0, r1, r2, r3",
2584           0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0, r1, r2, r3, 0);
2585 TESTINST4("smlatb  r0, r1, r2, r3",
2586           0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0, r1, r2, r3, 0);
2587 TESTINST4("smlatb  r0, r1, r2, r3",
2588           0xf87b961e, 0x1d66879f, 0xf2b64835, r0, r1, r2, r3, 0);
2589 TESTINST4("smlatb  r0, r1, r2, r3",
2590           0xd65db979, 0xc61b323b, 0xae930a1a, r0, r1, r2, r3, 0);
2591 TESTINST4("smlatb  r0, r1, r2, r3",
2592           0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0, r1, r2, r3, 0);
2593 TESTINST4("smlatb  r0, r1, r2, r3",
2594           0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0, r1, r2, r3, 0);
2595 TESTINST4("smlatb  r0, r1, r2, r3",
2596           0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, r3, 0);
2597 TESTINST4("smlatb  r0, r1, r2, r3",
2598           0xeaa652c7, 0x137741f4, 0x3dba1164, r0, r1, r2, r3, 0);
2599 TESTINST4("smlatb  r0, r1, r2, r3",
2600           0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0, r1, r2, r3, 0);
2601 TESTINST4("smlatb  r0, r1, r2, r3",
2602           0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0, r1, r2, r3, 0);
2603 TESTINST4("smlatb  r0, r1, r2, r3",
2604           0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, r3, 0);
2605 TESTINST4("smlatb  r0, r1, r2, r3",
2606           0xe1bb8606, 0x58293969, 0x81616d13, r0, r1, r2, r3, 0);
2607 TESTINST4("smlatb  r0, r1, r2, r3",
2608           0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0, r1, r2, r3, 0);
2609 TESTINST4("smlatb  r0, r1, r2, r3",
2610           0x0849a0c2, 0x0872f25a, 0x40b094e2, r0, r1, r2, r3, 0);
2611 TESTINST4("smlatb  r0, r1, r2, r3",
2612           0x17913309, 0xf1e03d7e, 0x91edc21d, r0, r1, r2, r3, 0);
2613 TESTINST4("smlatb  r0, r1, r2, r3",
2614           0x5388b5cd, 0x86582032, 0x6034078d, r0, r1, r2, r3, 0);
2615 TESTINST4("smlatb  r0, r1, r2, r3",
2616           0x181c436b, 0x5de41558, 0xccfa1c7e, r0, r1, r2, r3, 0);
2617 TESTINST4("smlatb  r0, r1, r2, r3",
2618           0x23ba1b46, 0x4437983c, 0x48d06549, r0, r1, r2, r3, 0);
2619 TESTINST4("smlatb  r0, r1, r2, r3",
2620           0xa9085781, 0xc6b4ac58, 0xb2aead21, r0, r1, r2, r3, 0);
2621 TESTINST4("smlatb  r0, r1, r2, r3",
2622           0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0, r1, r2, r3, 0);
2623 TESTINST4("smlatb  r0, r1, r2, r3",
2624           0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, r3, 0);
2625 TESTINST4("smlatb  r0, r1, r2, r3",
2626           0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0, r1, r2, r3, 0);
2627 TESTINST4("smlatb  r0, r1, r2, r3",
2628           0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0, r1, r2, r3, 0);
2629 TESTINST4("smlatb  r0, r1, r2, r3",
2630           0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0, r1, r2, r3, 0);
2631 TESTINST4("smlatb  r0, r1, r2, r3",
2632           0xd7ce1909, 0x3e435701, 0x85fbf196, r0, r1, r2, r3, 0);
2633 TESTINST4("smlatb  r0, r1, r2, r3",
2634           0xb4e16b6e, 0x6e13680a, 0x89436f88, r0, r1, r2, r3, 0);
2635 TESTINST4("smlatb  r0, r1, r2, r3",
2636           0x44858efc, 0x9002bc30, 0x390d2c2f, r0, r1, r2, r3, 0);
2637 TESTINST4("smlatb  r0, r1, r2, r3",
2638           0xbea121ab, 0x953ff6ec, 0x80657c40, r0, r1, r2, r3, 0);
2639 TESTINST4("smlatb  r0, r1, r2, r3",
2640           0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, r3, 0);
2641 TESTINST4("smlatb  r0, r1, r2, r3",
2642           0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0, r1, r2, r3, 0);
2643 TESTINST4("smlatb  r0, r1, r2, r3",
2644           0xec0c2f30, 0x5736ed46, 0x231348c0, r0, r1, r2, r3, 0);
2645 TESTINST4("smlatb  r0, r1, r2, r3",
2646           0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0, r1, r2, r3, 0);
2647 TESTINST4("smlatb  r0, r1, r2, r3",
2648           0xc1553709, 0x0112b30a, 0x69ec0212, r0, r1, r2, r3, 0);
2649 TESTINST4("smlatb  r0, r1, r2, r3",
2650           0x74bd0223, 0x03fa9bb5, 0x899d9192, r0, r1, r2, r3, 0);
2651 TESTINST4("smlatb  r0, r1, r2, r3",
2652           0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, r3, 0);
2653 TESTINST4("smlatb  r0, r1, r2, r3",
2654           0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0, r1, r2, r3, 0);
2655 TESTINST4("smlatb  r0, r1, r2, r3",
2656           0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0, r1, r2, r3, 0);
2657 TESTINST4("smlatb  r0, r1, r2, r3",
2658           0x299da970, 0xe8108f1b, 0xf5818cfb, r0, r1, r2, r3, 0);
2659 TESTINST4("smlatb  r0, r1, r2, r3",
2660           0xcd90d604, 0xaa5e9444, 0x8217b7df, r0, r1, r2, r3, 0);
2661 TESTINST4("smlatb  r0, r1, r2, r3",
2662           0xe60743c3, 0x7acb4de3, 0x73c29060, r0, r1, r2, r3, 0);
2663 TESTINST4("smlatb  r0, r1, r2, r3",
2664           0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0, r1, r2, r3, 0);
2665 TESTINST4("smlatb  r0, r1, r2, r3",
2666           0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0, r1, r2, r3, 0);
2667 TESTINST4("smlatb  r0, r1, r2, r3",
2668           0xde99ac2f, 0x0be36f70, 0xeda5110c, r0, r1, r2, r3, 0);
2669 TESTINST4("smlatb  r0, r1, r2, r3",
2670           0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0);
2671   /* smlabt rD, rN, rM, rA */
2672   TESTINST4("smlabt r0, r1, r2, r3",
2673             0x00030000, 0x00000004, 0x00000000, r0,r1,r2,r3, 0);
2674   TESTINST4("smlabt r0, r1, r2, r3",
2675             0x00030001, 0x00020004, 0x00007fff, r0,r1,r2,r3, 0);
2676   TESTINST4("smlabt r0, r1, r2, r3",
2677             0x00038001, 0x7fff0004, 0x00005fff, r0,r1,r2,r3, 0);
2678   TESTINST4("smlabt r0, r1, r2, r3",
2679             0x00037fff, 0x7fff0004, 0x00007fff, r0,r1,r2,r3, 0);
2680   TESTINST4("smlabt r0, r1, r2, r3",
2681             0x0003ffff, 0xffff0004, 0x7fff7fff, r0,r1,r2,r3, 0);
2682   TESTINST4("smlabt r0, r1, r2, r3",
2683             0x0003fffc, 0xffff0004, 0xffffffff, r0,r1,r2,r3, 0);
2684 TESTINST4("smlabt  r0, r1, r2, r3",
2685           0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
2686 TESTINST4("smlabt  r0, r1, r2, r3",
2687           0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
2688 TESTINST4("smlabt  r0, r1, r2, r3",
2689           0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
2690 TESTINST4("smlabt  r0, r1, r2, r3",
2691           0x32fa0095, 0x36f26261, 0x89d2ef86, r0, r1, r2, r3, 0);
2692 TESTINST4("smlabt  r0, r1, r2, r3",
2693           0x8ed8287c, 0x02c90120, 0xd4b64d54, r0, r1, r2, r3, 0);
2694 TESTINST4("smlabt  r0, r1, r2, r3",
2695           0xc53aaba9, 0x29300837, 0x0b02c58a, r0, r1, r2, r3, 0);
2696 TESTINST4("smlabt  r0, r1, r2, r3",
2697           0x216158cb, 0x57a50a01, 0xb0d20777, r0, r1, r2, r3, 0);
2698 TESTINST4("smlabt  r0, r1, r2, r3",
2699           0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0, r1, r2, r3, 0);
2700 TESTINST4("smlabt  r0, r1, r2, r3",
2701           0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0, r1, r2, r3, 0);
2702 TESTINST4("smlabt  r0, r1, r2, r3",
2703           0xf87b961e, 0x1d66879f, 0xf2b64835, r0, r1, r2, r3, 0);
2704 TESTINST4("smlabt  r0, r1, r2, r3",
2705           0xd65db979, 0xc61b323b, 0xae930a1a, r0, r1, r2, r3, 0);
2706 TESTINST4("smlabt  r0, r1, r2, r3",
2707           0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0, r1, r2, r3, 0);
2708 TESTINST4("smlabt  r0, r1, r2, r3",
2709           0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0, r1, r2, r3, 0);
2710 TESTINST4("smlabt  r0, r1, r2, r3",
2711           0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, r3, 0);
2712 TESTINST4("smlabt  r0, r1, r2, r3",
2713           0xeaa652c7, 0x137741f4, 0x3dba1164, r0, r1, r2, r3, 0);
2714 TESTINST4("smlabt  r0, r1, r2, r3",
2715           0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0, r1, r2, r3, 0);
2716 TESTINST4("smlabt  r0, r1, r2, r3",
2717           0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0, r1, r2, r3, 0);
2718 TESTINST4("smlabt  r0, r1, r2, r3",
2719           0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, r3, 0);
2720 TESTINST4("smlabt  r0, r1, r2, r3",
2721           0xe1bb8606, 0x58293969, 0x81616d13, r0, r1, r2, r3, 0);
2722 TESTINST4("smlabt  r0, r1, r2, r3",
2723           0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0, r1, r2, r3, 0);
2724 TESTINST4("smlabt  r0, r1, r2, r3",
2725           0x0849a0c2, 0x0872f25a, 0x40b094e2, r0, r1, r2, r3, 0);
2726 TESTINST4("smlabt  r0, r1, r2, r3",
2727           0x17913309, 0xf1e03d7e, 0x91edc21d, r0, r1, r2, r3, 0);
2728 TESTINST4("smlabt  r0, r1, r2, r3",
2729           0x5388b5cd, 0x86582032, 0x6034078d, r0, r1, r2, r3, 0);
2730 TESTINST4("smlabt  r0, r1, r2, r3",
2731           0x181c436b, 0x5de41558, 0xccfa1c7e, r0, r1, r2, r3, 0);
2732 TESTINST4("smlabt  r0, r1, r2, r3",
2733           0x23ba1b46, 0x4437983c, 0x48d06549, r0, r1, r2, r3, 0);
2734 TESTINST4("smlabt  r0, r1, r2, r3",
2735           0xa9085781, 0xc6b4ac58, 0xb2aead21, r0, r1, r2, r3, 0);
2736 TESTINST4("smlabt  r0, r1, r2, r3",
2737           0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0, r1, r2, r3, 0);
2738 TESTINST4("smlabt  r0, r1, r2, r3",
2739           0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, r3, 0);
2740 TESTINST4("smlabt  r0, r1, r2, r3",
2741           0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0, r1, r2, r3, 0);
2742 TESTINST4("smlabt  r0, r1, r2, r3",
2743           0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0, r1, r2, r3, 0);
2744 TESTINST4("smlabt  r0, r1, r2, r3",
2745           0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0, r1, r2, r3, 0);
2746 TESTINST4("smlabt  r0, r1, r2, r3",
2747           0xd7ce1909, 0x3e435701, 0x85fbf196, r0, r1, r2, r3, 0);
2748 TESTINST4("smlabt  r0, r1, r2, r3",
2749           0xb4e16b6e, 0x6e13680a, 0x89436f88, r0, r1, r2, r3, 0);
2750 TESTINST4("smlabt  r0, r1, r2, r3",
2751           0x44858efc, 0x9002bc30, 0x390d2c2f, r0, r1, r2, r3, 0);
2752 TESTINST4("smlabt  r0, r1, r2, r3",
2753           0xbea121ab, 0x953ff6ec, 0x80657c40, r0, r1, r2, r3, 0);
2754 TESTINST4("smlabt  r0, r1, r2, r3",
2755           0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, r3, 0);
2756 TESTINST4("smlabt  r0, r1, r2, r3",
2757           0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0, r1, r2, r3, 0);
2758 TESTINST4("smlabt  r0, r1, r2, r3",
2759           0xec0c2f30, 0x5736ed46, 0x231348c0, r0, r1, r2, r3, 0);
2760 TESTINST4("smlabt  r0, r1, r2, r3",
2761           0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0, r1, r2, r3, 0);
2762 TESTINST4("smlabt  r0, r1, r2, r3",
2763           0xc1553709, 0x0112b30a, 0x69ec0212, r0, r1, r2, r3, 0);
2764 TESTINST4("smlabt  r0, r1, r2, r3",
2765           0x74bd0223, 0x03fa9bb5, 0x899d9192, r0, r1, r2, r3, 0);
2766 TESTINST4("smlabt  r0, r1, r2, r3",
2767           0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, r3, 0);
2768 TESTINST4("smlabt  r0, r1, r2, r3",
2769           0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0, r1, r2, r3, 0);
2770 TESTINST4("smlabt  r0, r1, r2, r3",
2771           0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0, r1, r2, r3, 0);
2772 TESTINST4("smlabt  r0, r1, r2, r3",
2773           0x299da970, 0xe8108f1b, 0xf5818cfb, r0, r1, r2, r3, 0);
2774 TESTINST4("smlabt  r0, r1, r2, r3",
2775           0xcd90d604, 0xaa5e9444, 0x8217b7df, r0, r1, r2, r3, 0);
2776 TESTINST4("smlabt  r0, r1, r2, r3",
2777           0xe60743c3, 0x7acb4de3, 0x73c29060, r0, r1, r2, r3, 0);
2778 TESTINST4("smlabt  r0, r1, r2, r3",
2779           0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0, r1, r2, r3, 0);
2780 TESTINST4("smlabt  r0, r1, r2, r3",
2781           0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0, r1, r2, r3, 0);
2782 TESTINST4("smlabt  r0, r1, r2, r3",
2783           0xde99ac2f, 0x0be36f70, 0xeda5110c, r0, r1, r2, r3, 0);
2784 TESTINST4("smlabt  r0, r1, r2, r3",
2785           0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0);
2786 
2787   printf("------------ UQSUB8 -----------------------------------\n");
2788   TESTINST3("uqsub8 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
2789   TESTINST3("uqsub8 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
2790   TESTINST3("uqsub8 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
2791   TESTINST3("uqsub8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
2792   TESTINST3("uqsub8 r0, r1, r2", 0x00000318, 0xff00ff09, r0, r1, r2, 0);
2793   TESTINST3("uqsub8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
2794   TESTINST3("uqsub8 r0, r1, r2", 0x00020318, 0xff07ff09, r0, r1, r2, 0);
2795   TESTINST3("uqsub8 r0, r1, r2", 0xff07ff09, 0x00020318, r0, r1, r2, 0);
2796 TESTINST3("uqsub8 r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
2797 TESTINST3("uqsub8 r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
2798 TESTINST3("uqsub8 r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
2799 TESTINST3("uqsub8 r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
2800 TESTINST3("uqsub8 r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
2801 TESTINST3("uqsub8 r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
2802 TESTINST3("uqsub8 r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
2803 TESTINST3("uqsub8 r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
2804 TESTINST3("uqsub8 r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
2805 TESTINST3("uqsub8 r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
2806 TESTINST3("uqsub8 r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
2807 TESTINST3("uqsub8 r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
2808 TESTINST3("uqsub8 r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
2809 TESTINST3("uqsub8 r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
2810 TESTINST3("uqsub8 r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
2811 TESTINST3("uqsub8 r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
2812 TESTINST3("uqsub8 r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
2813 TESTINST3("uqsub8 r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
2814 TESTINST3("uqsub8 r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
2815 TESTINST3("uqsub8 r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
2816 TESTINST3("uqsub8 r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
2817 TESTINST3("uqsub8 r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
2818 TESTINST3("uqsub8 r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
2819 TESTINST3("uqsub8 r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
2820 TESTINST3("uqsub8 r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
2821 TESTINST3("uqsub8 r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
2822 TESTINST3("uqsub8 r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
2823 TESTINST3("uqsub8 r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
2824 TESTINST3("uqsub8 r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
2825 TESTINST3("uqsub8 r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
2826 TESTINST3("uqsub8 r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
2827 TESTINST3("uqsub8 r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
2828 TESTINST3("uqsub8 r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
2829 TESTINST3("uqsub8 r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
2830 TESTINST3("uqsub8 r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
2831 TESTINST3("uqsub8 r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
2832 TESTINST3("uqsub8 r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
2833 TESTINST3("uqsub8 r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
2834 TESTINST3("uqsub8 r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
2835 TESTINST3("uqsub8 r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
2836 TESTINST3("uqsub8 r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
2837 TESTINST3("uqsub8 r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
2838 TESTINST3("uqsub8 r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
2839 TESTINST3("uqsub8 r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
2840 TESTINST3("uqsub8 r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
2841 TESTINST3("uqsub8 r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
2842 TESTINST3("uqsub8 r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
2843 TESTINST3("uqsub8 r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
2844 TESTINST3("uqsub8 r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
2845 TESTINST3("uqsub8 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
2846 TESTINST3("uqsub8 r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
2847 
2848   printf("------------ UQADD8 -----------------------------------\n");
2849   TESTINST3("uqadd8 r0, r1, r2", 0x0009ffff, 0x001800aa, r0, r1, r2, 0);
2850   TESTINST3("uqadd8 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
2851   TESTINST3("uqadd8 r0, r1, r2", 0x00aa0018, 0xffff0009, r0, r1, r2, 0);
2852   TESTINST3("uqadd8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
2853   TESTINST3("uqadd8 r0, r1, r2", 0x0000aa18, 0xff00ff09, r0, r1, r2, 0);
2854   TESTINST3("uqadd8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
2855   TESTINST3("uqadd8 r0, r1, r2", 0xff9fefcc, 0xff9ffedd, r0, r1, r2, 0);
2856   TESTINST3("uqadd8 r0, r1, r2", 0xff07ff09, 0xaa020318, r0, r1, r2, 0);
2857 TESTINST3("uqadd8 r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
2858 TESTINST3("uqadd8 r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
2859 TESTINST3("uqadd8 r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
2860 TESTINST3("uqadd8 r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
2861 TESTINST3("uqadd8 r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
2862 TESTINST3("uqadd8 r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
2863 TESTINST3("uqadd8 r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
2864 TESTINST3("uqadd8 r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
2865 TESTINST3("uqadd8 r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
2866 TESTINST3("uqadd8 r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
2867 TESTINST3("uqadd8 r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
2868 TESTINST3("uqadd8 r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
2869 TESTINST3("uqadd8 r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
2870 TESTINST3("uqadd8 r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
2871 TESTINST3("uqadd8 r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
2872 TESTINST3("uqadd8 r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
2873 TESTINST3("uqadd8 r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
2874 TESTINST3("uqadd8 r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
2875 TESTINST3("uqadd8 r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
2876 TESTINST3("uqadd8 r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
2877 TESTINST3("uqadd8 r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
2878 TESTINST3("uqadd8 r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
2879 TESTINST3("uqadd8 r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
2880 TESTINST3("uqadd8 r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
2881 TESTINST3("uqadd8 r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
2882 TESTINST3("uqadd8 r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
2883 TESTINST3("uqadd8 r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
2884 TESTINST3("uqadd8 r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
2885 TESTINST3("uqadd8 r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
2886 TESTINST3("uqadd8 r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
2887 TESTINST3("uqadd8 r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
2888 TESTINST3("uqadd8 r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
2889 TESTINST3("uqadd8 r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
2890 TESTINST3("uqadd8 r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
2891 TESTINST3("uqadd8 r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
2892 TESTINST3("uqadd8 r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
2893 TESTINST3("uqadd8 r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
2894 TESTINST3("uqadd8 r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
2895 TESTINST3("uqadd8 r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
2896 TESTINST3("uqadd8 r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
2897 TESTINST3("uqadd8 r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
2898 TESTINST3("uqadd8 r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
2899 TESTINST3("uqadd8 r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
2900 TESTINST3("uqadd8 r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
2901 TESTINST3("uqadd8 r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
2902 TESTINST3("uqadd8 r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
2903 TESTINST3("uqadd8 r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
2904 TESTINST3("uqadd8 r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
2905 TESTINST3("uqadd8 r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
2906 TESTINST3("uqadd8 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
2907 TESTINST3("uqadd8 r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
2908 
2909   printf("------------ SEL --------------------------------------\n");
2910   TESTINST3("sel r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
2911   TESTINST3("sel r0, r1, r2", 0x7fff7fff, 0x00010001, r0, r1, r2, 0);
2912   TESTINST3("sel r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
2913   TESTINST3("sel r0, r1, r2", 0x00640064, 0x00030003, r0, r1, r2, 0);
2914   TESTINST3("sel r0, r1, r2", 0xfffcffff, 0xffff0001, r0, r1, r2, 0);
2915   TESTINST3("sel r0, r1, r2", 0xfff70fff, 0x00030003, r0, r1, r2, 0);
2916 TESTINST3("sel r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
2917 TESTINST3("sel r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
2918 TESTINST3("sel r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
2919 TESTINST3("sel r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
2920 TESTINST3("sel r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
2921 TESTINST3("sel r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
2922 TESTINST3("sel r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
2923 TESTINST3("sel r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
2924 TESTINST3("sel r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
2925 TESTINST3("sel r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
2926 TESTINST3("sel r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
2927 TESTINST3("sel r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
2928 TESTINST3("sel r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
2929 TESTINST3("sel r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
2930 TESTINST3("sel r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
2931 TESTINST3("sel r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
2932 TESTINST3("sel r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
2933 TESTINST3("sel r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
2934 TESTINST3("sel r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
2935 TESTINST3("sel r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
2936 TESTINST3("sel r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
2937 TESTINST3("sel r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
2938 TESTINST3("sel r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
2939 TESTINST3("sel r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
2940 TESTINST3("sel r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
2941 TESTINST3("sel r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
2942 TESTINST3("sel r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
2943 TESTINST3("sel r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
2944 TESTINST3("sel r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
2945 TESTINST3("sel r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
2946 TESTINST3("sel r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
2947 TESTINST3("sel r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
2948 TESTINST3("sel r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
2949 TESTINST3("sel r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
2950 TESTINST3("sel r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
2951 TESTINST3("sel r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
2952 TESTINST3("sel r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
2953 TESTINST3("sel r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
2954 TESTINST3("sel r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
2955 TESTINST3("sel r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
2956 TESTINST3("sel r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
2957 TESTINST3("sel r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
2958 TESTINST3("sel r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
2959 TESTINST3("sel r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
2960 TESTINST3("sel r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
2961 TESTINST3("sel r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
2962 TESTINST3("sel r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
2963 TESTINST3("sel r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
2964 TESTINST3("sel r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
2965 TESTINST3("sel r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
2966 TESTINST3("sel r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
2967 
2968   printf("------------ QSUB8-------------------------------------\n");
2969   TESTINST3("qsub8 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
2970   TESTINST3("qsub8 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
2971   TESTINST3("qsub8 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
2972   TESTINST3("qsub8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
2973   TESTINST3("qsub8 r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
2974   TESTINST3("qsub8 r0, r1, r2", 0x7fff00ff, 0x80017f01, r0, r1, r2, 0);
2975   TESTINST3("qsub8 r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
2976   TESTINST3("qsub8 r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
2977 TESTINST3("qsub8 r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
2978 TESTINST3("qsub8 r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
2979 TESTINST3("qsub8 r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
2980 TESTINST3("qsub8 r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
2981 TESTINST3("qsub8 r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
2982 TESTINST3("qsub8 r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
2983 TESTINST3("qsub8 r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
2984 TESTINST3("qsub8 r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
2985 TESTINST3("qsub8 r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
2986 TESTINST3("qsub8 r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
2987 TESTINST3("qsub8 r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
2988 TESTINST3("qsub8 r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
2989 TESTINST3("qsub8 r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
2990 TESTINST3("qsub8 r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
2991 TESTINST3("qsub8 r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
2992 TESTINST3("qsub8 r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
2993 TESTINST3("qsub8 r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
2994 TESTINST3("qsub8 r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
2995 TESTINST3("qsub8 r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
2996 TESTINST3("qsub8 r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
2997 TESTINST3("qsub8 r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
2998 TESTINST3("qsub8 r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
2999 TESTINST3("qsub8 r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
3000 TESTINST3("qsub8 r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
3001 TESTINST3("qsub8 r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
3002 TESTINST3("qsub8 r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
3003 TESTINST3("qsub8 r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
3004 TESTINST3("qsub8 r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
3005 TESTINST3("qsub8 r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
3006 TESTINST3("qsub8 r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
3007 TESTINST3("qsub8 r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
3008 TESTINST3("qsub8 r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
3009 TESTINST3("qsub8 r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
3010 TESTINST3("qsub8 r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
3011 TESTINST3("qsub8 r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
3012 TESTINST3("qsub8 r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
3013 TESTINST3("qsub8 r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
3014 TESTINST3("qsub8 r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
3015 TESTINST3("qsub8 r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
3016 TESTINST3("qsub8 r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
3017 TESTINST3("qsub8 r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
3018 TESTINST3("qsub8 r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3019 TESTINST3("qsub8 r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3020 TESTINST3("qsub8 r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3021 TESTINST3("qsub8 r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3022 TESTINST3("qsub8 r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3023 TESTINST3("qsub8 r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3024 TESTINST3("qsub8 r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3025 TESTINST3("qsub8 r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3026 TESTINST3("qsub8 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3027 TESTINST3("qsub8 r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3028 
3029   printf("------------ QADD8-------------------------------------\n");
3030   TESTINST3("qadd8 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
3031   TESTINST3("qadd8 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
3032   TESTINST3("qadd8 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
3033   TESTINST3("qadd8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
3034   TESTINST3("qadd8 r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
3035   TESTINST3("qadd8 r0, r1, r2", 0x7fff00ff, 0x80017f01, r0, r1, r2, 0);
3036   TESTINST3("qadd8 r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
3037   TESTINST3("qadd8 r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
3038 TESTINST3("qadd8 r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
3039 TESTINST3("qadd8 r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
3040 TESTINST3("qadd8 r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
3041 TESTINST3("qadd8 r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
3042 TESTINST3("qadd8 r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
3043 TESTINST3("qadd8 r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
3044 TESTINST3("qadd8 r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
3045 TESTINST3("qadd8 r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
3046 TESTINST3("qadd8 r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
3047 TESTINST3("qadd8 r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
3048 TESTINST3("qadd8 r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
3049 TESTINST3("qadd8 r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
3050 TESTINST3("qadd8 r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
3051 TESTINST3("qadd8 r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
3052 TESTINST3("qadd8 r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
3053 TESTINST3("qadd8 r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
3054 TESTINST3("qadd8 r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
3055 TESTINST3("qadd8 r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
3056 TESTINST3("qadd8 r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
3057 TESTINST3("qadd8 r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
3058 TESTINST3("qadd8 r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
3059 TESTINST3("qadd8 r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
3060 TESTINST3("qadd8 r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
3061 TESTINST3("qadd8 r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
3062 TESTINST3("qadd8 r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
3063 TESTINST3("qadd8 r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
3064 TESTINST3("qadd8 r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
3065 TESTINST3("qadd8 r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
3066 TESTINST3("qadd8 r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
3067 TESTINST3("qadd8 r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
3068 TESTINST3("qadd8 r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
3069 TESTINST3("qadd8 r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
3070 TESTINST3("qadd8 r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
3071 TESTINST3("qadd8 r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
3072 TESTINST3("qadd8 r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
3073 TESTINST3("qadd8 r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
3074 TESTINST3("qadd8 r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
3075 TESTINST3("qadd8 r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
3076 TESTINST3("qadd8 r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
3077 TESTINST3("qadd8 r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
3078 TESTINST3("qadd8 r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
3079 TESTINST3("qadd8 r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3080 TESTINST3("qadd8 r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3081 TESTINST3("qadd8 r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3082 TESTINST3("qadd8 r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3083 TESTINST3("qadd8 r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3084 TESTINST3("qadd8 r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3085 TESTINST3("qadd8 r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3086 TESTINST3("qadd8 r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3087 TESTINST3("qadd8 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3088 TESTINST3("qadd8 r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3089 
3090   printf("------------ SHADD8 -----------------------------------\n");
3091   TESTINST3("shadd8 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
3092   TESTINST3("shadd8 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
3093   TESTINST3("shadd8 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
3094   TESTINST3("shadd8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
3095   TESTINST3("shadd8 r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
3096   TESTINST3("shadd8 r0, r1, r2", 0x7fff00ff, 0x80017f01, r0, r1, r2, 0);
3097   TESTINST3("shadd8 r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
3098   TESTINST3("shadd8 r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
3099 TESTINST3("shadd8 r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
3100 TESTINST3("shadd8 r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
3101 TESTINST3("shadd8 r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
3102 TESTINST3("shadd8 r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
3103 TESTINST3("shadd8 r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
3104 TESTINST3("shadd8 r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
3105 TESTINST3("shadd8 r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
3106 TESTINST3("shadd8 r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
3107 TESTINST3("shadd8 r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
3108 TESTINST3("shadd8 r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
3109 TESTINST3("shadd8 r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
3110 TESTINST3("shadd8 r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
3111 TESTINST3("shadd8 r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
3112 TESTINST3("shadd8 r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
3113 TESTINST3("shadd8 r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
3114 TESTINST3("shadd8 r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
3115 TESTINST3("shadd8 r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
3116 TESTINST3("shadd8 r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
3117 TESTINST3("shadd8 r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
3118 TESTINST3("shadd8 r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
3119 TESTINST3("shadd8 r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
3120 TESTINST3("shadd8 r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
3121 TESTINST3("shadd8 r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
3122 TESTINST3("shadd8 r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
3123 TESTINST3("shadd8 r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
3124 TESTINST3("shadd8 r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
3125 TESTINST3("shadd8 r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
3126 TESTINST3("shadd8 r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
3127 TESTINST3("shadd8 r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
3128 TESTINST3("shadd8 r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
3129 TESTINST3("shadd8 r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
3130 TESTINST3("shadd8 r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
3131 TESTINST3("shadd8 r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
3132 TESTINST3("shadd8 r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
3133 TESTINST3("shadd8 r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
3134 TESTINST3("shadd8 r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
3135 TESTINST3("shadd8 r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
3136 TESTINST3("shadd8 r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
3137 TESTINST3("shadd8 r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
3138 TESTINST3("shadd8 r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
3139 TESTINST3("shadd8 r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
3140 TESTINST3("shadd8 r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3141 TESTINST3("shadd8 r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3142 TESTINST3("shadd8 r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3143 TESTINST3("shadd8 r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3144 TESTINST3("shadd8 r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3145 TESTINST3("shadd8 r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3146 TESTINST3("shadd8 r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3147 TESTINST3("shadd8 r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3148 TESTINST3("shadd8 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3149 TESTINST3("shadd8 r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3150 
3151   printf("------------ SHSUB8 -----------------------------------\n");
3152   TESTINST3("shsub8 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
3153   TESTINST3("shsub8 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
3154   TESTINST3("shsub8 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
3155   TESTINST3("shsub8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
3156   TESTINST3("shsub8 r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
3157   TESTINST3("shsub8 r0, r1, r2", 0x7fff00ff, 0x80017f01, r0, r1, r2, 0);
3158   TESTINST3("shsub8 r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
3159   TESTINST3("shsub8 r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
3160 TESTINST3("shsub8 r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
3161 TESTINST3("shsub8 r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
3162 TESTINST3("shsub8 r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
3163 TESTINST3("shsub8 r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
3164 TESTINST3("shsub8 r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
3165 TESTINST3("shsub8 r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
3166 TESTINST3("shsub8 r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
3167 TESTINST3("shsub8 r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
3168 TESTINST3("shsub8 r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
3169 TESTINST3("shsub8 r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
3170 TESTINST3("shsub8 r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
3171 TESTINST3("shsub8 r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
3172 TESTINST3("shsub8 r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
3173 TESTINST3("shsub8 r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
3174 TESTINST3("shsub8 r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
3175 TESTINST3("shsub8 r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
3176 TESTINST3("shsub8 r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
3177 TESTINST3("shsub8 r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
3178 TESTINST3("shsub8 r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
3179 TESTINST3("shsub8 r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
3180 TESTINST3("shsub8 r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
3181 TESTINST3("shsub8 r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
3182 TESTINST3("shsub8 r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
3183 TESTINST3("shsub8 r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
3184 TESTINST3("shsub8 r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
3185 TESTINST3("shsub8 r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
3186 TESTINST3("shsub8 r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
3187 TESTINST3("shsub8 r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
3188 TESTINST3("shsub8 r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
3189 TESTINST3("shsub8 r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
3190 TESTINST3("shsub8 r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
3191 TESTINST3("shsub8 r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
3192 TESTINST3("shsub8 r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
3193 TESTINST3("shsub8 r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
3194 TESTINST3("shsub8 r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
3195 TESTINST3("shsub8 r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
3196 TESTINST3("shsub8 r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
3197 TESTINST3("shsub8 r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
3198 TESTINST3("shsub8 r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
3199 TESTINST3("shsub8 r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
3200 TESTINST3("shsub8 r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
3201 TESTINST3("shsub8 r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3202 TESTINST3("shsub8 r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3203 TESTINST3("shsub8 r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3204 TESTINST3("shsub8 r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3205 TESTINST3("shsub8 r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3206 TESTINST3("shsub8 r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3207 TESTINST3("shsub8 r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3208 TESTINST3("shsub8 r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3209 TESTINST3("shsub8 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3210 TESTINST3("shsub8 r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3211 
3212   printf("------------ UHADD8 -----------------------------------\n");
3213   TESTINST3("uhadd8 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
3214   TESTINST3("uhadd8 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
3215   TESTINST3("uhadd8 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
3216   TESTINST3("uhadd8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
3217   TESTINST3("uhadd8 r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
3218   TESTINST3("uhadd8 r0, r1, r2", 0x7fff00ff, 0x80017f01, r0, r1, r2, 0);
3219   TESTINST3("uhadd8 r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
3220   TESTINST3("uhadd8 r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
3221 TESTINST3("uhadd8 r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
3222 TESTINST3("uhadd8 r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
3223 TESTINST3("uhadd8 r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
3224 TESTINST3("uhadd8 r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
3225 TESTINST3("uhadd8 r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
3226 TESTINST3("uhadd8 r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
3227 TESTINST3("uhadd8 r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
3228 TESTINST3("uhadd8 r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
3229 TESTINST3("uhadd8 r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
3230 TESTINST3("uhadd8 r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
3231 TESTINST3("uhadd8 r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
3232 TESTINST3("uhadd8 r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
3233 TESTINST3("uhadd8 r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
3234 TESTINST3("uhadd8 r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
3235 TESTINST3("uhadd8 r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
3236 TESTINST3("uhadd8 r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
3237 TESTINST3("uhadd8 r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
3238 TESTINST3("uhadd8 r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
3239 TESTINST3("uhadd8 r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
3240 TESTINST3("uhadd8 r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
3241 TESTINST3("uhadd8 r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
3242 TESTINST3("uhadd8 r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
3243 TESTINST3("uhadd8 r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
3244 TESTINST3("uhadd8 r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
3245 TESTINST3("uhadd8 r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
3246 TESTINST3("uhadd8 r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
3247 TESTINST3("uhadd8 r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
3248 TESTINST3("uhadd8 r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
3249 TESTINST3("uhadd8 r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
3250 TESTINST3("uhadd8 r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
3251 TESTINST3("uhadd8 r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
3252 TESTINST3("uhadd8 r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
3253 TESTINST3("uhadd8 r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
3254 TESTINST3("uhadd8 r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
3255 TESTINST3("uhadd8 r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
3256 TESTINST3("uhadd8 r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
3257 TESTINST3("uhadd8 r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
3258 TESTINST3("uhadd8 r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
3259 TESTINST3("uhadd8 r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
3260 TESTINST3("uhadd8 r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
3261 TESTINST3("uhadd8 r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
3262 TESTINST3("uhadd8 r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3263 TESTINST3("uhadd8 r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3264 TESTINST3("uhadd8 r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3265 TESTINST3("uhadd8 r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3266 TESTINST3("uhadd8 r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3267 TESTINST3("uhadd8 r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3268 TESTINST3("uhadd8 r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3269 TESTINST3("uhadd8 r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3270 TESTINST3("uhadd8 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3271 TESTINST3("uhadd8 r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3272 
3273   printf("------------ UHADD16 -----------------------------------\n");
3274   TESTINST3("uhadd16 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
3275   TESTINST3("uhadd16 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
3276   TESTINST3("uhadd16 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
3277   TESTINST3("uhadd16 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
3278   TESTINST3("uhadd16 r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
3279   TESTINST3("uhadd16 r0, r1, r2", 0x7fff00ff, 0x80017f01, r0, r1, r2, 0);
3280   TESTINST3("uhadd16 r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
3281   TESTINST3("uhadd16 r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
3282 TESTINST3("uhadd16 r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
3283 TESTINST3("uhadd16 r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
3284 TESTINST3("uhadd16 r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
3285 TESTINST3("uhadd16 r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
3286 TESTINST3("uhadd16 r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
3287 TESTINST3("uhadd16 r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
3288 TESTINST3("uhadd16 r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
3289 TESTINST3("uhadd16 r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
3290 TESTINST3("uhadd16 r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
3291 TESTINST3("uhadd16 r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
3292 TESTINST3("uhadd16 r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
3293 TESTINST3("uhadd16 r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
3294 TESTINST3("uhadd16 r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
3295 TESTINST3("uhadd16 r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
3296 TESTINST3("uhadd16 r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
3297 TESTINST3("uhadd16 r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
3298 TESTINST3("uhadd16 r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
3299 TESTINST3("uhadd16 r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
3300 TESTINST3("uhadd16 r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
3301 TESTINST3("uhadd16 r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
3302 TESTINST3("uhadd16 r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
3303 TESTINST3("uhadd16 r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
3304 TESTINST3("uhadd16 r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
3305 TESTINST3("uhadd16 r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
3306 TESTINST3("uhadd16 r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
3307 TESTINST3("uhadd16 r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
3308 TESTINST3("uhadd16 r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
3309 TESTINST3("uhadd16 r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
3310 TESTINST3("uhadd16 r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
3311 TESTINST3("uhadd16 r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
3312 TESTINST3("uhadd16 r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
3313 TESTINST3("uhadd16 r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
3314 TESTINST3("uhadd16 r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
3315 TESTINST3("uhadd16 r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
3316 TESTINST3("uhadd16 r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
3317 TESTINST3("uhadd16 r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
3318 TESTINST3("uhadd16 r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
3319 TESTINST3("uhadd16 r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
3320 TESTINST3("uhadd16 r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
3321 TESTINST3("uhadd16 r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
3322 TESTINST3("uhadd16 r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
3323 TESTINST3("uhadd16 r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3324 TESTINST3("uhadd16 r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3325 TESTINST3("uhadd16 r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3326 TESTINST3("uhadd16 r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3327 TESTINST3("uhadd16 r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3328 TESTINST3("uhadd16 r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3329 TESTINST3("uhadd16 r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3330 TESTINST3("uhadd16 r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3331 TESTINST3("uhadd16 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3332 TESTINST3("uhadd16 r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3333 
3334   printf("----------------- SSAT ----------------- \n");
3335   TESTINST2("ssat  r0, #1,  r1, LSL #31", 0x80008000, r0, r1, 0);
3336   TESTINST2("ssat  r0, #6,  r1, LSL #24", 0x80008000, r0, r1, 0);
3337   TESTINST2("ssat  r0, #8,  r1, ASR #18", 0x80008000, r0, r1, 0);
3338   TESTINST2("ssat  r0, #12, r1, ASR #16", 0x80008000, r0, r1, 0);
3339   TESTINST2("ssat  r0, #16, r1, LSL #12", 0xffff0009, r0, r1, 0);
3340   TESTINST2("ssat  r0, #18, r1, LSL #8",  0xffff0009, r0, r1, 0);
3341   TESTINST2("ssat  r0, #24, r1, ASR #6",  0xffff0009, r0, r1, 0);
3342   TESTINST2("ssat  r0, #31, r1, ASR #1",  0xffff0009, r0, r1, 0);
3343 TESTINST2("ssat  r0, #1,   r1", 0x256bfdd6, r0, r1, 0);
3344 TESTINST2("ssat  r0, #1,   r1", 0xc02a0c05, r0, r1, 0);
3345 TESTINST2("ssat  r0, #1,   r1", 0xee2fa46e, r0, r1, 0);
3346 TESTINST2("ssat  r0, #1,   r1", 0x97a7da20, r0, r1, 0);
3347 TESTINST2("ssat  r0, #32,  r1", 0xa231d5e6, r0, r1, 0);
3348 TESTINST2("ssat  r0, #32,  r1", 0x10e1968a, r0, r1, 0);
3349 TESTINST2("ssat  r0, #32,  r1", 0x0e089270, r0, r1, 0);
3350 TESTINST2("ssat  r0, #32,  r1", 0x9e8e0185, r0, r1, 0);
3351 TESTINST2("ssat  r0, #32,  r1", 0x3096f12e, r0, r1, 0);
3352 TESTINST2("ssat  r0, #32,  r1", 0xffc134df, r0, r1, 0);
3353 TESTINST2("ssat  r0, #1,  r1, LSL #31", 0x256bfdd6, r0, r1, 0);
3354 TESTINST2("ssat  r0, #1,  r1, LSL #31", 0xc02a0c05, r0, r1, 0);
3355 TESTINST2("ssat  r0, #1,  r1, LSL #31", 0xee2fa46e, r0, r1, 0);
3356 TESTINST2("ssat  r0, #1,  r1, LSL #31", 0x97a7da20, r0, r1, 0);
3357 TESTINST2("ssat  r0, #1,  r1, LSL #31", 0xa231d5e6, r0, r1, 0);
3358 TESTINST2("ssat  r0, #1,  r1, LSL #31", 0x10e1968a, r0, r1, 0);
3359 TESTINST2("ssat  r0, #1,  r1, LSL #31", 0x0e089270, r0, r1, 0);
3360 TESTINST2("ssat  r0, #1,  r1, LSL #31", 0x9e8e0185, r0, r1, 0);
3361 TESTINST2("ssat  r0, #1,  r1, LSL #31", 0x3096f12e, r0, r1, 0);
3362 TESTINST2("ssat  r0, #1,  r1, LSL #31", 0xffc134df, r0, r1, 0);
3363 TESTINST2("ssat  r0, #3,  r1, LSL #28", 0x256bfdd6, r0, r1, 0);
3364 TESTINST2("ssat  r0, #3,  r1, LSL #28", 0xc02a0c05, r0, r1, 0);
3365 TESTINST2("ssat  r0, #3,  r1, LSL #28", 0xee2fa46e, r0, r1, 0);
3366 TESTINST2("ssat  r0, #3,  r1, LSL #28", 0x97a7da20, r0, r1, 0);
3367 TESTINST2("ssat  r0, #3,  r1, LSL #28", 0xa231d5e6, r0, r1, 0);
3368 TESTINST2("ssat  r0, #3,  r1, LSL #28", 0x10e1968a, r0, r1, 0);
3369 TESTINST2("ssat  r0, #3,  r1, LSL #28", 0x0e089270, r0, r1, 0);
3370 TESTINST2("ssat  r0, #3,  r1, LSL #28", 0x9e8e0185, r0, r1, 0);
3371 TESTINST2("ssat  r0, #3,  r1, LSL #28", 0x3096f12e, r0, r1, 0);
3372 TESTINST2("ssat  r0, #3,  r1, LSL #28", 0xffc134df, r0, r1, 0);
3373 TESTINST2("ssat  r0, #6,  r1, LSL #24", 0x256bfdd6, r0, r1, 0);
3374 TESTINST2("ssat  r0, #6,  r1, LSL #24", 0xc02a0c05, r0, r1, 0);
3375 TESTINST2("ssat  r0, #6,  r1, LSL #24", 0xee2fa46e, r0, r1, 0);
3376 TESTINST2("ssat  r0, #6,  r1, LSL #24", 0x97a7da20, r0, r1, 0);
3377 TESTINST2("ssat  r0, #6,  r1, LSL #24", 0xa231d5e6, r0, r1, 0);
3378 TESTINST2("ssat  r0, #6,  r1, LSL #24", 0x10e1968a, r0, r1, 0);
3379 TESTINST2("ssat  r0, #6,  r1, LSL #24", 0x0e089270, r0, r1, 0);
3380 TESTINST2("ssat  r0, #6,  r1, LSL #24", 0x9e8e0185, r0, r1, 0);
3381 TESTINST2("ssat  r0, #6,  r1, LSL #24", 0x3096f12e, r0, r1, 0);
3382 TESTINST2("ssat  r0, #6,  r1, LSL #24", 0xffc134df, r0, r1, 0);
3383 TESTINST2("ssat  r0, #8,  r1, ASR #18", 0x256bfdd6, r0, r1, 0);
3384 TESTINST2("ssat  r0, #8,  r1, ASR #18", 0xc02a0c05, r0, r1, 0);
3385 TESTINST2("ssat  r0, #8,  r1, ASR #18", 0xee2fa46e, r0, r1, 0);
3386 TESTINST2("ssat  r0, #8,  r1, ASR #18", 0x97a7da20, r0, r1, 0);
3387 TESTINST2("ssat  r0, #8,  r1, ASR #18", 0xa231d5e6, r0, r1, 0);
3388 TESTINST2("ssat  r0, #8,  r1, ASR #18", 0x10e1968a, r0, r1, 0);
3389 TESTINST2("ssat  r0, #8,  r1, ASR #18", 0x0e089270, r0, r1, 0);
3390 TESTINST2("ssat  r0, #8,  r1, ASR #18", 0x9e8e0185, r0, r1, 0);
3391 TESTINST2("ssat  r0, #8,  r1, ASR #18", 0x3096f12e, r0, r1, 0);
3392 TESTINST2("ssat  r0, #8,  r1, ASR #18", 0xffc134df, r0, r1, 0);
3393 TESTINST2("ssat  r0, #12, r1, ASR #16", 0x256bfdd6, r0, r1, 0);
3394 TESTINST2("ssat  r0, #12, r1, ASR #16", 0xc02a0c05, r0, r1, 0);
3395 TESTINST2("ssat  r0, #12, r1, ASR #16", 0xee2fa46e, r0, r1, 0);
3396 TESTINST2("ssat  r0, #12, r1, ASR #16", 0x97a7da20, r0, r1, 0);
3397 TESTINST2("ssat  r0, #12, r1, ASR #16", 0xa231d5e6, r0, r1, 0);
3398 TESTINST2("ssat  r0, #12, r1, ASR #16", 0x10e1968a, r0, r1, 0);
3399 TESTINST2("ssat  r0, #12, r1, ASR #16", 0x0e089270, r0, r1, 0);
3400 TESTINST2("ssat  r0, #12, r1, ASR #16", 0x9e8e0185, r0, r1, 0);
3401 TESTINST2("ssat  r0, #12, r1, ASR #16", 0x3096f12e, r0, r1, 0);
3402 TESTINST2("ssat  r0, #12, r1, ASR #16", 0xffc134df, r0, r1, 0);
3403 TESTINST2("ssat  r0, #16, r1, LSL #12", 0x256bfdd6, r0, r1, 0);
3404 TESTINST2("ssat  r0, #16, r1, LSL #12", 0xc02a0c05, r0, r1, 0);
3405 TESTINST2("ssat  r0, #16, r1, LSL #12", 0xee2fa46e, r0, r1, 0);
3406 TESTINST2("ssat  r0, #16, r1, LSL #12", 0x97a7da20, r0, r1, 0);
3407 TESTINST2("ssat  r0, #16, r1, LSL #12", 0xa231d5e6, r0, r1, 0);
3408 TESTINST2("ssat  r0, #16, r1, LSL #12", 0x10e1968a, r0, r1, 0);
3409 TESTINST2("ssat  r0, #16, r1, LSL #12", 0x0e089270, r0, r1, 0);
3410 TESTINST2("ssat  r0, #16, r1, LSL #12", 0x9e8e0185, r0, r1, 0);
3411 TESTINST2("ssat  r0, #16, r1, LSL #12", 0x3096f12e, r0, r1, 0);
3412 TESTINST2("ssat  r0, #16, r1, LSL #12", 0xffc134df, r0, r1, 0);
3413 TESTINST2("ssat  r0, #18, r1, LSL #8", 0x256bfdd6, r0, r1, 0);
3414 TESTINST2("ssat  r0, #18, r1, LSL #8", 0xc02a0c05, r0, r1, 0);
3415 TESTINST2("ssat  r0, #18, r1, LSL #8", 0xee2fa46e, r0, r1, 0);
3416 TESTINST2("ssat  r0, #18, r1, LSL #8", 0x97a7da20, r0, r1, 0);
3417 TESTINST2("ssat  r0, #18, r1, LSL #8", 0xa231d5e6, r0, r1, 0);
3418 TESTINST2("ssat  r0, #18, r1, LSL #8", 0x10e1968a, r0, r1, 0);
3419 TESTINST2("ssat  r0, #18, r1, LSL #8", 0x0e089270, r0, r1, 0);
3420 TESTINST2("ssat  r0, #18, r1, LSL #8", 0x9e8e0185, r0, r1, 0);
3421 TESTINST2("ssat  r0, #18, r1, LSL #8", 0x3096f12e, r0, r1, 0);
3422 TESTINST2("ssat  r0, #18, r1, LSL #8", 0xffc134df, r0, r1, 0);
3423 TESTINST2("ssat  r0, #24, r1, ASR #6", 0x256bfdd6, r0, r1, 0);
3424 TESTINST2("ssat  r0, #24, r1, ASR #6", 0xc02a0c05, r0, r1, 0);
3425 TESTINST2("ssat  r0, #24, r1, ASR #6", 0xee2fa46e, r0, r1, 0);
3426 TESTINST2("ssat  r0, #24, r1, ASR #6", 0x97a7da20, r0, r1, 0);
3427 TESTINST2("ssat  r0, #24, r1, ASR #6", 0xa231d5e6, r0, r1, 0);
3428 TESTINST2("ssat  r0, #24, r1, ASR #6", 0x10e1968a, r0, r1, 0);
3429 TESTINST2("ssat  r0, #24, r1, ASR #6", 0x0e089270, r0, r1, 0);
3430 TESTINST2("ssat  r0, #24, r1, ASR #6", 0x9e8e0185, r0, r1, 0);
3431 TESTINST2("ssat  r0, #24, r1, ASR #6", 0x3096f12e, r0, r1, 0);
3432 TESTINST2("ssat  r0, #24, r1, ASR #6", 0xffc134df, r0, r1, 0);
3433 TESTINST2("ssat  r0, #28, r1, ASR #3", 0x256bfdd6, r0, r1, 0);
3434 TESTINST2("ssat  r0, #28, r1, ASR #3", 0xc02a0c05, r0, r1, 0);
3435 TESTINST2("ssat  r0, #28, r1, ASR #3", 0xee2fa46e, r0, r1, 0);
3436 TESTINST2("ssat  r0, #28, r1, ASR #3", 0x97a7da20, r0, r1, 0);
3437 TESTINST2("ssat  r0, #28, r1, ASR #3", 0xa231d5e6, r0, r1, 0);
3438 TESTINST2("ssat  r0, #28, r1, ASR #3", 0x10e1968a, r0, r1, 0);
3439 TESTINST2("ssat  r0, #28, r1, ASR #3", 0x0e089270, r0, r1, 0);
3440 TESTINST2("ssat  r0, #28, r1, ASR #3", 0x9e8e0185, r0, r1, 0);
3441 TESTINST2("ssat  r0, #28, r1, ASR #3", 0x3096f12e, r0, r1, 0);
3442 TESTINST2("ssat  r0, #28, r1, ASR #3", 0xffc134df, r0, r1, 0);
3443 TESTINST2("ssat  r0, #31, r1, ASR #1", 0x256bfdd6, r0, r1, 0);
3444 TESTINST2("ssat  r0, #31, r1, ASR #1", 0xc02a0c05, r0, r1, 0);
3445 TESTINST2("ssat  r0, #31, r1, ASR #1", 0xee2fa46e, r0, r1, 0);
3446 TESTINST2("ssat  r0, #31, r1, ASR #1", 0x97a7da20, r0, r1, 0);
3447 TESTINST2("ssat  r0, #31, r1, ASR #1", 0xa231d5e6, r0, r1, 0);
3448 TESTINST2("ssat  r0, #31, r1, ASR #1", 0x10e1968a, r0, r1, 0);
3449 TESTINST2("ssat  r0, #31, r1, ASR #1", 0x0e089270, r0, r1, 0);
3450 TESTINST2("ssat  r0, #31, r1, ASR #1", 0x9e8e0185, r0, r1, 0);
3451 TESTINST2("ssat  r0, #31, r1, ASR #1", 0x3096f12e, r0, r1, 0);
3452 TESTINST2("ssat  r0, #31, r1, ASR #1", 0xffc134df, r0, r1, 0);
3453 #ifndef __thumb__
3454 TESTINST2("ssat  r0, #1, r1, ASR #32", 0x256bfdd6, r0, r1, 0);
3455 TESTINST2("ssat  r0, #1, r1, ASR #32", 0xc02a0c05, r0, r1, 0);
3456 TESTINST2("ssat  r0, #1, r1, ASR #32", 0xee2fa46e, r0, r1, 0);
3457 TESTINST2("ssat  r0, #1, r1, ASR #32", 0x97a7da20, r0, r1, 0);
3458 TESTINST2("ssat  r0, #1, r1, ASR #32", 0xa231d5e6, r0, r1, 0);
3459 TESTINST2("ssat  r0, #1, r1, ASR #32", 0x10e1968a, r0, r1, 0);
3460 TESTINST2("ssat  r0, #1, r1, ASR #32", 0x0e089270, r0, r1, 0);
3461 TESTINST2("ssat  r0, #1, r1, ASR #32", 0x9e8e0185, r0, r1, 0);
3462 TESTINST2("ssat  r0, #1, r1, ASR #32", 0x3096f12e, r0, r1, 0);
3463 TESTINST2("ssat  r0, #1, r1, ASR #32", 0xffc134df, r0, r1, 0);
3464 TESTINST2("ssat  r0, #32, r1, ASR #32", 0x256bfdd6, r0, r1, 0);
3465 TESTINST2("ssat  r0, #32, r1, ASR #32", 0xc02a0c05, r0, r1, 0);
3466 TESTINST2("ssat  r0, #32, r1, ASR #32", 0xee2fa46e, r0, r1, 0);
3467 TESTINST2("ssat  r0, #32, r1, ASR #32", 0x97a7da20, r0, r1, 0);
3468 TESTINST2("ssat  r0, #32, r1, ASR #32", 0xa231d5e6, r0, r1, 0);
3469 TESTINST2("ssat  r0, #32, r1, ASR #32", 0x10e1968a, r0, r1, 0);
3470 TESTINST2("ssat  r0, #32, r1, ASR #32", 0x0e089270, r0, r1, 0);
3471 TESTINST2("ssat  r0, #32, r1, ASR #32", 0x9e8e0185, r0, r1, 0);
3472 TESTINST2("ssat  r0, #32, r1, ASR #32", 0x3096f12e, r0, r1, 0);
3473 TESTINST2("ssat  r0, #32, r1, ASR #32", 0xffc134df, r0, r1, 0);
3474 #endif
3475 
3476   printf("----------------- SSAT16 sat_imm ----------------- \n");
3477   TESTINST2("ssat16  r0, #1,  r1",  0b00000000000000000000000000000001, r0, r1, 0);
3478   TESTINST2("ssat16  r0, #1,  r1",  0b00000000000000000000000000000000, r0, r1, 0);
3479   TESTINST2("ssat16  r0, #1,  r1",  0b00000000000000001111111111111111, r0, r1, 0);
3480   TESTINST2("ssat16  r0, #1,  r1",  0b00000000000000001111111111111110, r0, r1, 0);
3481   TESTINST2("ssat16  r0, #4,  r1",  0b00000000000000000000000000000100, r0, r1, 0);
3482   TESTINST2("ssat16  r0, #4,  r1",  0b00000000000000000000000000000011, r0, r1, 0);
3483   TESTINST2("ssat16  r0, #4,  r1",  0b00000000000000001111111111111000, r0, r1, 0);
3484   TESTINST2("ssat16  r0, #4,  r1",  0b00000000000000001111111111110111, r0, r1, 0);
3485 TESTINST2("ssat16  r0, #4,  r1",  0b00000000000001000000000000000000, r0, r1, 0);
3486 TESTINST2("ssat16  r0, #4,  r1",  0b00000000000000110000000000000000, r0, r1, 0);
3487 TESTINST2("ssat16  r0, #4,  r1",  0b11111111111110000000000000000000, r0, r1, 0);
3488 TESTINST2("ssat16  r0, #4,  r1",  0b11111111111101110000000000000000, r0, r1, 0);
3489 TESTINST2("ssat16  r0, #4,  r1",  0b11111111111101111111111111110111, r0, r1, 0);
3490 TESTINST2("ssat16  r0, #15, r1",  0b00000000000000000111111111111111, r0, r1, 0);
3491 TESTINST2("ssat16  r0, #16,  r1", 0x0123abcd, r0, r1, 0);
3492 TESTINST2("ssat16  r0, #1,  r1", 0xffcdabcd, r0, r1, 0);
3493 TESTINST2("ssat16  r0, #5,  r1", 0x0123feff, r0, r1, 0);
3494 TESTINST2("ssat16  r0, #8,  r1", 0x0123abcd, r0, r1, 0);
3495 TESTINST2("ssat16  r0, #11, r1", 0x11110000, r0, r1, 0);
3496 TESTINST2("ssat16  r0, #13, r1", 0x1111f111, r0, r1, 0);
3497 TESTINST2("ssat16  r0, #15, r1", 0x00001111, r0, r1, 0);
3498 TESTINST2("ssat16  r0, #16,  r1", 0xebbff82b, r0, r1, 0);
3499 TESTINST2("ssat16  r0, #1,  r1", 0xebbff82b, r0, r1, 0);
3500 TESTINST2("ssat16  r0, #3,  r1", 0x50c28082, r0, r1, 0);
3501 TESTINST2("ssat16  r0, #5,  r1", 0x17962e8f, r0, r1, 0);
3502 TESTINST2("ssat16  r0, #8,  r1", 0xc57243b7, r0, r1, 0);
3503 TESTINST2("ssat16  r0, #10, r1", 0xf20fb90f, r0, r1, 0);
3504 TESTINST2("ssat16  r0, #11, r1", 0xbb151055, r0, r1, 0);
3505 TESTINST2("ssat16  r0, #13, r1", 0x957440d2, r0, r1, 0);
3506 TESTINST2("ssat16  r0, #14, r1", 0x728b7771, r0, r1, 0);
3507 TESTINST2("ssat16  r0, #15, r1", 0xf13c20f3, r0, r1, 0);
3508 TESTINST2("ssat16  r0, #16,  r1", 0x86398371, r0, r1, 0);
3509 TESTINST2("ssat16  r0, #1,  r1", 0x03d0fb78, r0, r1, 0);
3510 TESTINST2("ssat16  r0, #3,  r1", 0xd0d49b7c, r0, r1, 0);
3511 TESTINST2("ssat16  r0, #5,  r1", 0x76354a58, r0, r1, 0);
3512 TESTINST2("ssat16  r0, #8,  r1", 0x9fa45fb7, r0, r1, 0);
3513 TESTINST2("ssat16  r0, #10, r1", 0x7572bdec, r0, r1, 0);
3514 TESTINST2("ssat16  r0, #11, r1", 0xfea59eb6, r0, r1, 0);
3515 TESTINST2("ssat16  r0, #13, r1", 0xf2669090, r0, r1, 0);
3516 TESTINST2("ssat16  r0, #14, r1", 0xbc1ff573, r0, r1, 0);
3517 TESTINST2("ssat16  r0, #15, r1", 0x7eb226ac, r0, r1, 0);
3518 TESTINST2("ssat16  r0, #16,  r1", 0x22b65db1, r0, r1, 0);
3519 TESTINST2("ssat16  r0, #1,  r1", 0x776c41c7, r0, r1, 0);
3520 TESTINST2("ssat16  r0, #3,  r1", 0xe50dd77c, r0, r1, 0);
3521 TESTINST2("ssat16  r0, #5,  r1", 0xd6f9a698, r0, r1, 0);
3522 TESTINST2("ssat16  r0, #8,  r1", 0xeda5110c, r0, r1, 0);
3523 TESTINST2("ssat16  r0, #10, r1", 0x0be36f70, r0, r1, 0);
3524 TESTINST2("ssat16  r0, #11, r1", 0xd759eb72, r0, r1, 0);
3525 TESTINST2("ssat16  r0, #13, r1", 0xd9c4b1f4, r0, r1, 0);
3526 TESTINST2("ssat16  r0, #14, r1", 0xa29eb320, r0, r1, 0);
3527 TESTINST2("ssat16  r0, #15, r1", 0xcf1e4487, r0, r1, 0);
3528 TESTINST2("ssat16  r0, #16,  r1", 0x2eb68500, r0, r1, 0);
3529 TESTINST2("ssat16  r0, #1,  r1", 0xcdb7ed11, r0, r1, 0);
3530 TESTINST2("ssat16  r0, #3,  r1", 0x2eaea305, r0, r1, 0);
3531 TESTINST2("ssat16  r0, #5,  r1", 0x6ebd04d9, r0, r1, 0);
3532 TESTINST2("ssat16  r0, #8,  r1", 0xa5ec1aa8, r0, r1, 0);
3533 TESTINST2("ssat16  r0, #10, r1", 0x72f33509, r0, r1, 0);
3534 TESTINST2("ssat16  r0, #11, r1", 0xa3e6f759, r0, r1, 0);
3535 TESTINST2("ssat16  r0, #13, r1", 0xfaceab39, r0, r1, 0);
3536 TESTINST2("ssat16  r0, #14, r1", 0x2738f0ff, r0, r1, 0);
3537 TESTINST2("ssat16  r0, #15, r1", 0xe79fd570, r0, r1, 0);
3538 TESTINST2("ssat16  r0, #16,  r1", 0x55ea3e4e, r0, r1, 0);
3539 TESTINST2("ssat16  r0, #1,  r1", 0x2b62ba5a, r0, r1, 0);
3540 TESTINST2("ssat16  r0, #3,  r1", 0x9b41bfb1, r0, r1, 0);
3541 TESTINST2("ssat16  r0, #5,  r1", 0x557c7ba2, r0, r1, 0);
3542 TESTINST2("ssat16  r0, #8,  r1", 0x2973c051, r0, r1, 0);
3543 TESTINST2("ssat16  r0, #10, r1", 0x6a228b19, r0, r1, 0);
3544 TESTINST2("ssat16  r0, #11, r1", 0x0cdafabe, r0, r1, 0);
3545 TESTINST2("ssat16  r0, #13, r1", 0x50865114, r0, r1, 0);
3546 TESTINST2("ssat16  r0, #14, r1", 0xd83b849b, r0, r1, 0);
3547 TESTINST2("ssat16  r0, #15, r1", 0xca5e5605, r0, r1, 0);
3548 
3549   printf("---------------- SADD8 ----------------- \n");
3550   TESTINST3("sadd8 r0, r1, r2", 0x00f7ffff, 0x00e800fd, r0, r1, r2, 0);
3551   TESTINST3("sadd8 r0, r1, r2", 0x00e800fd, 0x00f7ffff, r0, r1, r2, 0);
3552   TESTINST3("sadd8 r0, r1, r2", 0x00fd00e8, 0xffff00f7, r0, r1, r2, 0);
3553   TESTINST3("sadd8 r0, r1, r2", 0xffff00f7, 0x00fd0018, r0, r1, r2, 0);
3554   TESTINST3("sadd8 r0, r1, r2", 0x0000fd18, 0xff00fff7, r0, r1, r2, 0);
3555   TESTINST3("sadd8 r0, r1, r2", 0xffff00f7, 0x00fd00e8, r0, r1, r2, 0);
3556   TESTINST3("sadd8 r0, r1, r2", 0x00fefd18, 0xff07fff7, r0, r1, r2, 0);
3557   TESTINST3("sadd8 r0, r1, r2", 0xff07fff7, 0x00fefde8, r0, r1, r2, 0);
3558 TESTINST3("sadd8 r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
3559 TESTINST3("sadd8 r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
3560 TESTINST3("sadd8 r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
3561 TESTINST3("sadd8 r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
3562 TESTINST3("sadd8 r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
3563 TESTINST3("sadd8 r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
3564 TESTINST3("sadd8 r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
3565 TESTINST3("sadd8 r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
3566 TESTINST3("sadd8 r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
3567 TESTINST3("sadd8 r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
3568 TESTINST3("sadd8 r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
3569 TESTINST3("sadd8 r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
3570 TESTINST3("sadd8 r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
3571 TESTINST3("sadd8 r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
3572 TESTINST3("sadd8 r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
3573 TESTINST3("sadd8 r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
3574 TESTINST3("sadd8 r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
3575 TESTINST3("sadd8 r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
3576 TESTINST3("sadd8 r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
3577 TESTINST3("sadd8 r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
3578 TESTINST3("sadd8 r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
3579 TESTINST3("sadd8 r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
3580 TESTINST3("sadd8 r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
3581 TESTINST3("sadd8 r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
3582 TESTINST3("sadd8 r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
3583 TESTINST3("sadd8 r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
3584 TESTINST3("sadd8 r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
3585 TESTINST3("sadd8 r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
3586 TESTINST3("sadd8 r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
3587 TESTINST3("sadd8 r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
3588 TESTINST3("sadd8 r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
3589 TESTINST3("sadd8 r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
3590 TESTINST3("sadd8 r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
3591 TESTINST3("sadd8 r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
3592 TESTINST3("sadd8 r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
3593 TESTINST3("sadd8 r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
3594 TESTINST3("sadd8 r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
3595 TESTINST3("sadd8 r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
3596 TESTINST3("sadd8 r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
3597 TESTINST3("sadd8 r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
3598 TESTINST3("sadd8 r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
3599 TESTINST3("sadd8 r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3600 TESTINST3("sadd8 r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3601 TESTINST3("sadd8 r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3602 TESTINST3("sadd8 r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3603 TESTINST3("sadd8 r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3604 TESTINST3("sadd8 r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3605 TESTINST3("sadd8 r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3606 TESTINST3("sadd8 r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3607 TESTINST3("sadd8 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3608 TESTINST3("sadd8 r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3609 
3610   printf("---------------- SSUB8 ----------------- \n");
3611   TESTINST3("ssub8 r0, r1, r2", 0x00f7ffff, 0x00e800fd, r0, r1, r2, 0);
3612   TESTINST3("ssub8 r0, r1, r2", 0x00e800fd, 0x00f7ffff, r0, r1, r2, 0);
3613   TESTINST3("ssub8 r0, r1, r2", 0x00fd00e8, 0xffff00f7, r0, r1, r2, 0);
3614   TESTINST3("ssub8 r0, r1, r2", 0xffff00f7, 0x00fd0018, r0, r1, r2, 0);
3615   TESTINST3("ssub8 r0, r1, r2", 0x0000fd18, 0xff00fff7, r0, r1, r2, 0);
3616   TESTINST3("ssub8 r0, r1, r2", 0xffff00f7, 0x00fd00e8, r0, r1, r2, 0);
3617   TESTINST3("ssub8 r0, r1, r2", 0x00fefd18, 0xff07fff7, r0, r1, r2, 0);
3618   TESTINST3("ssub8 r0, r1, r2", 0xff07fff7, 0x00fefde8, r0, r1, r2, 0);
3619 TESTINST3("ssub8 r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
3620 TESTINST3("ssub8 r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
3621 TESTINST3("ssub8 r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
3622 TESTINST3("ssub8 r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
3623 TESTINST3("ssub8 r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
3624 TESTINST3("ssub8 r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
3625 TESTINST3("ssub8 r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
3626 TESTINST3("ssub8 r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
3627 TESTINST3("ssub8 r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
3628 TESTINST3("ssub8 r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
3629 TESTINST3("ssub8 r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
3630 TESTINST3("ssub8 r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
3631 TESTINST3("ssub8 r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
3632 TESTINST3("ssub8 r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
3633 TESTINST3("ssub8 r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
3634 TESTINST3("ssub8 r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
3635 TESTINST3("ssub8 r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
3636 TESTINST3("ssub8 r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
3637 TESTINST3("ssub8 r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
3638 TESTINST3("ssub8 r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
3639 TESTINST3("ssub8 r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
3640 TESTINST3("ssub8 r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
3641 TESTINST3("ssub8 r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
3642 TESTINST3("ssub8 r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
3643 TESTINST3("ssub8 r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
3644 TESTINST3("ssub8 r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
3645 TESTINST3("ssub8 r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
3646 TESTINST3("ssub8 r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
3647 TESTINST3("ssub8 r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
3648 TESTINST3("ssub8 r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
3649 TESTINST3("ssub8 r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
3650 TESTINST3("ssub8 r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
3651 TESTINST3("ssub8 r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
3652 TESTINST3("ssub8 r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
3653 TESTINST3("ssub8 r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
3654 TESTINST3("ssub8 r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
3655 TESTINST3("ssub8 r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
3656 TESTINST3("ssub8 r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
3657 TESTINST3("ssub8 r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
3658 TESTINST3("ssub8 r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
3659 TESTINST3("ssub8 r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
3660 TESTINST3("ssub8 r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3661 TESTINST3("ssub8 r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3662 TESTINST3("ssub8 r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3663 TESTINST3("ssub8 r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3664 TESTINST3("ssub8 r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3665 TESTINST3("ssub8 r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3666 TESTINST3("ssub8 r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3667 TESTINST3("ssub8 r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3668 TESTINST3("ssub8 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3669 TESTINST3("ssub8 r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3670 
3671   printf("------------ SXTAB ------------\n");
3672   TESTINST3("sxtab r0, r1, r2, ROR #24", 0x31415927, 0x27182819, r0, r1, r2, 0);
3673   TESTINST3("sxtab r0, r1, r2, ROR #16", 0x31415927, 0x27182819, r0, r1, r2, 0);
3674   TESTINST3("sxtab r0, r1, r2, ROR #8",  0x31415927, 0x27182819, r0, r1, r2, 0);
3675   TESTINST3("sxtab r0, r1, r2, ROR #0",  0x31415927, 0x27182819, r0, r1, r2, 0);
3676 
3677   TESTINST3("sxtab r0, r1, r2, ROR #24", 0x31415927, 0x27182899, r0, r1, r2, 0);
3678   TESTINST3("sxtab r0, r1, r2, ROR #16", 0x31415927, 0x27182899, r0, r1, r2, 0);
3679   TESTINST3("sxtab r0, r1, r2, ROR #8",  0x31415927, 0x27182899, r0, r1, r2, 0);
3680   TESTINST3("sxtab r0, r1, r2, ROR #0",  0x31415927, 0x27182899, r0, r1, r2, 0);
3681 
3682 TESTINST3("sxtab r0, r1, r2, ROR #24", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3683 TESTINST3("sxtab r0, r1, r2, ROR #24", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3684 TESTINST3("sxtab r0, r1, r2, ROR #24", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3685 TESTINST3("sxtab r0, r1, r2, ROR #24", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3686 TESTINST3("sxtab r0, r1, r2, ROR #24", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3687 TESTINST3("sxtab r0, r1, r2, ROR #24", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3688 TESTINST3("sxtab r0, r1, r2, ROR #24", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3689 TESTINST3("sxtab r0, r1, r2, ROR #24", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3690 TESTINST3("sxtab r0, r1, r2, ROR #24", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3691 TESTINST3("sxtab r0, r1, r2, ROR #24", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3692 
3693 TESTINST3("sxtab r0, r1, r2, ROR #16", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3694 TESTINST3("sxtab r0, r1, r2, ROR #16", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3695 TESTINST3("sxtab r0, r1, r2, ROR #16", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3696 TESTINST3("sxtab r0, r1, r2, ROR #16", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3697 TESTINST3("sxtab r0, r1, r2, ROR #16", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3698 TESTINST3("sxtab r0, r1, r2, ROR #16", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3699 TESTINST3("sxtab r0, r1, r2, ROR #16", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3700 TESTINST3("sxtab r0, r1, r2, ROR #16", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3701 TESTINST3("sxtab r0, r1, r2, ROR #16", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3702 TESTINST3("sxtab r0, r1, r2, ROR #16", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3703 
3704 TESTINST3("sxtab r0, r1, r2, ROR #8", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3705 TESTINST3("sxtab r0, r1, r2, ROR #8", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3706 TESTINST3("sxtab r0, r1, r2, ROR #8", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3707 TESTINST3("sxtab r0, r1, r2, ROR #8", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3708 TESTINST3("sxtab r0, r1, r2, ROR #8", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3709 TESTINST3("sxtab r0, r1, r2, ROR #8", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3710 TESTINST3("sxtab r0, r1, r2, ROR #8", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3711 TESTINST3("sxtab r0, r1, r2, ROR #8", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3712 TESTINST3("sxtab r0, r1, r2, ROR #8", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3713 TESTINST3("sxtab r0, r1, r2, ROR #8", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3714 
3715 TESTINST3("sxtab r0, r1, r2, ROR #0", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3716 TESTINST3("sxtab r0, r1, r2, ROR #0", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3717 TESTINST3("sxtab r0, r1, r2, ROR #0", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3718 TESTINST3("sxtab r0, r1, r2, ROR #0", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3719 TESTINST3("sxtab r0, r1, r2, ROR #0", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3720 TESTINST3("sxtab r0, r1, r2, ROR #0", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3721 TESTINST3("sxtab r0, r1, r2, ROR #0", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3722 TESTINST3("sxtab r0, r1, r2, ROR #0", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3723 TESTINST3("sxtab r0, r1, r2, ROR #0", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3724 TESTINST3("sxtab r0, r1, r2, ROR #0", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3725 
3726   printf("------------ UXTAB ------------\n");
3727   TESTINST3("uxtab r0, r1, r2, ROR #24", 0x31415927, 0x27182819, r0, r1, r2, 0);
3728   TESTINST3("uxtab r0, r1, r2, ROR #16", 0x31415927, 0x27182819, r0, r1, r2, 0);
3729   TESTINST3("uxtab r0, r1, r2, ROR #8",  0x31415927, 0x27182819, r0, r1, r2, 0);
3730   TESTINST3("uxtab r0, r1, r2, ROR #0",  0x31415927, 0x27182819, r0, r1, r2, 0);
3731 
3732   TESTINST3("uxtab r0, r1, r2, ROR #24", 0x31415927, 0x27182899, r0, r1, r2, 0);
3733   TESTINST3("uxtab r0, r1, r2, ROR #16", 0x31415927, 0x27182899, r0, r1, r2, 0);
3734   TESTINST3("uxtab r0, r1, r2, ROR #8",  0x31415927, 0x27182899, r0, r1, r2, 0);
3735   TESTINST3("uxtab r0, r1, r2, ROR #0",  0x31415927, 0x27182899, r0, r1, r2, 0);
3736 
3737 TESTINST3("uxtab r0, r1, r2, ROR #24", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3738 TESTINST3("uxtab r0, r1, r2, ROR #24", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3739 TESTINST3("uxtab r0, r1, r2, ROR #24", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3740 TESTINST3("uxtab r0, r1, r2, ROR #24", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3741 TESTINST3("uxtab r0, r1, r2, ROR #24", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3742 TESTINST3("uxtab r0, r1, r2, ROR #24", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3743 TESTINST3("uxtab r0, r1, r2, ROR #24", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3744 TESTINST3("uxtab r0, r1, r2, ROR #24", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3745 TESTINST3("uxtab r0, r1, r2, ROR #24", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3746 TESTINST3("uxtab r0, r1, r2, ROR #24", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3747 
3748 TESTINST3("uxtab r0, r1, r2, ROR #16", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3749 TESTINST3("uxtab r0, r1, r2, ROR #16", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3750 TESTINST3("uxtab r0, r1, r2, ROR #16", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3751 TESTINST3("uxtab r0, r1, r2, ROR #16", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3752 TESTINST3("uxtab r0, r1, r2, ROR #16", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3753 TESTINST3("uxtab r0, r1, r2, ROR #16", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3754 TESTINST3("uxtab r0, r1, r2, ROR #16", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3755 TESTINST3("uxtab r0, r1, r2, ROR #16", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3756 TESTINST3("uxtab r0, r1, r2, ROR #16", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3757 TESTINST3("uxtab r0, r1, r2, ROR #16", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3758 
3759 TESTINST3("uxtab r0, r1, r2, ROR #8", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3760 TESTINST3("uxtab r0, r1, r2, ROR #8", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3761 TESTINST3("uxtab r0, r1, r2, ROR #8", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3762 TESTINST3("uxtab r0, r1, r2, ROR #8", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3763 TESTINST3("uxtab r0, r1, r2, ROR #8", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3764 TESTINST3("uxtab r0, r1, r2, ROR #8", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3765 TESTINST3("uxtab r0, r1, r2, ROR #8", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3766 TESTINST3("uxtab r0, r1, r2, ROR #8", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3767 TESTINST3("uxtab r0, r1, r2, ROR #8", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3768 TESTINST3("uxtab r0, r1, r2, ROR #8", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3769 
3770 TESTINST3("uxtab r0, r1, r2, ROR #0", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3771 TESTINST3("uxtab r0, r1, r2, ROR #0", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3772 TESTINST3("uxtab r0, r1, r2, ROR #0", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3773 TESTINST3("uxtab r0, r1, r2, ROR #0", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3774 TESTINST3("uxtab r0, r1, r2, ROR #0", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3775 TESTINST3("uxtab r0, r1, r2, ROR #0", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3776 TESTINST3("uxtab r0, r1, r2, ROR #0", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3777 TESTINST3("uxtab r0, r1, r2, ROR #0", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3778 TESTINST3("uxtab r0, r1, r2, ROR #0", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3779 TESTINST3("uxtab r0, r1, r2, ROR #0", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3780 
3781   printf("----------- UXTAB16 -----------\n");
3782   TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0x31415927, 0x27182819, r0, r1, r2, 0);
3783   TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0x31415927, 0x27182819, r0, r1, r2, 0);
3784   TESTINST3("uxtab16 r0, r1, r2, ROR #8",  0x31415927, 0x27182819, r0, r1, r2, 0);
3785   TESTINST3("uxtab16 r0, r1, r2, ROR #0",  0x31415927, 0x27182819, r0, r1, r2, 0);
3786 
3787   TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0x31415927, 0x27182899, r0, r1, r2, 0);
3788   TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0x31415927, 0x27182899, r0, r1, r2, 0);
3789   TESTINST3("uxtab16 r0, r1, r2, ROR #8",  0x31415927, 0x27182899, r0, r1, r2, 0);
3790   TESTINST3("uxtab16 r0, r1, r2, ROR #0",  0x31415927, 0x27182899, r0, r1, r2, 0);
3791   TESTINST3("uxtab16 r0, r1, r2, ROR #0",  0x3141FFFF, 0x27182899, r0, r1, r2, 0);
3792 
3793 TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3794 TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3795 TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3796 TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3797 TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3798 TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3799 TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3800 TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3801 TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3802 TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3803 
3804 TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3805 TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3806 TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3807 TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3808 TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3809 TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3810 TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3811 TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3812 TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3813 TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3814 
3815 TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3816 TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3817 TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3818 TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3819 TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3820 TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3821 TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3822 TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3823 TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3824 TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3825 
3826 TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3827 TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3828 TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3829 TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3830 TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3831 TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3832 TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3833 TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3834 TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3835 TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3836 
3837   printf("----------- SXTAB16 -----------\n");
3838   TESTINST3("sxtab16 r0, r1, r2, ROR #24", 0x31415927, 0x27182819, r0, r1, r2, 0);
3839   TESTINST3("sxtab16 r0, r1, r2, ROR #16", 0x31415927, 0x27182819, r0, r1, r2, 0);
3840   TESTINST3("sxtab16 r0, r1, r2, ROR #8",  0x31415927, 0x27182819, r0, r1, r2, 0);
3841   TESTINST3("sxtab16 r0, r1, r2, ROR #0",  0x31415927, 0x27182819, r0, r1, r2, 0);
3842 
3843   TESTINST3("sxtab16 r0, r1, r2, ROR #24", 0x31415927, 0x27182899, r0, r1, r2, 0);
3844   TESTINST3("sxtab16 r0, r1, r2, ROR #16", 0x31415927, 0x27182899, r0, r1, r2, 0);
3845   TESTINST3("sxtab16 r0, r1, r2, ROR #8",  0x31415927, 0x27182899, r0, r1, r2, 0);
3846   TESTINST3("sxtab16 r0, r1, r2, ROR #0",  0x31415927, 0x27182899, r0, r1, r2, 0);
3847   TESTINST3("sxtab16 r0, r1, r2, ROR #0",  0x3141FFFF, 0x27182899, r0, r1, r2, 0);
3848 
3849 TESTINST3("sxtab16 r0, r1, r2, ROR #24", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3850 TESTINST3("sxtab16 r0, r1, r2, ROR #24", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3851 TESTINST3("sxtab16 r0, r1, r2, ROR #24", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3852 TESTINST3("sxtab16 r0, r1, r2, ROR #24", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3853 TESTINST3("sxtab16 r0, r1, r2, ROR #24", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3854 TESTINST3("sxtab16 r0, r1, r2, ROR #24", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3855 TESTINST3("sxtab16 r0, r1, r2, ROR #24", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3856 TESTINST3("sxtab16 r0, r1, r2, ROR #24", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3857 TESTINST3("sxtab16 r0, r1, r2, ROR #24", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3858 TESTINST3("sxtab16 r0, r1, r2, ROR #24", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3859 
3860 TESTINST3("sxtab16 r0, r1, r2, ROR #16", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3861 TESTINST3("sxtab16 r0, r1, r2, ROR #16", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3862 TESTINST3("sxtab16 r0, r1, r2, ROR #16", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3863 TESTINST3("sxtab16 r0, r1, r2, ROR #16", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3864 TESTINST3("sxtab16 r0, r1, r2, ROR #16", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3865 TESTINST3("sxtab16 r0, r1, r2, ROR #16", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3866 TESTINST3("sxtab16 r0, r1, r2, ROR #16", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3867 TESTINST3("sxtab16 r0, r1, r2, ROR #16", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3868 TESTINST3("sxtab16 r0, r1, r2, ROR #16", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3869 TESTINST3("sxtab16 r0, r1, r2, ROR #16", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3870 
3871 TESTINST3("sxtab16 r0, r1, r2, ROR #8", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3872 TESTINST3("sxtab16 r0, r1, r2, ROR #8", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3873 TESTINST3("sxtab16 r0, r1, r2, ROR #8", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3874 TESTINST3("sxtab16 r0, r1, r2, ROR #8", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3875 TESTINST3("sxtab16 r0, r1, r2, ROR #8", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3876 TESTINST3("sxtab16 r0, r1, r2, ROR #8", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3877 TESTINST3("sxtab16 r0, r1, r2, ROR #8", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3878 TESTINST3("sxtab16 r0, r1, r2, ROR #8", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3879 TESTINST3("sxtab16 r0, r1, r2, ROR #8", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3880 TESTINST3("sxtab16 r0, r1, r2, ROR #8", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3881 
3882 TESTINST3("sxtab16 r0, r1, r2, ROR #0", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3883 TESTINST3("sxtab16 r0, r1, r2, ROR #0", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3884 TESTINST3("sxtab16 r0, r1, r2, ROR #0", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3885 TESTINST3("sxtab16 r0, r1, r2, ROR #0", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3886 TESTINST3("sxtab16 r0, r1, r2, ROR #0", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3887 TESTINST3("sxtab16 r0, r1, r2, ROR #0", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3888 TESTINST3("sxtab16 r0, r1, r2, ROR #0", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3889 TESTINST3("sxtab16 r0, r1, r2, ROR #0", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3890 TESTINST3("sxtab16 r0, r1, r2, ROR #0", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3891 TESTINST3("sxtab16 r0, r1, r2, ROR #0", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3892 
3893   printf("------------ SXTAH ------------\n");
3894   TESTINST3("sxtah r0, r1, r2, ROR #24", 0x31415927, 0x27182819, r0, r1, r2, 0);
3895   TESTINST3("sxtah r0, r1, r2, ROR #16", 0x31415927, 0x27182819, r0, r1, r2, 0);
3896   TESTINST3("sxtah r0, r1, r2, ROR #8 ", 0x31415927, 0x27182819, r0, r1, r2, 0);
3897   TESTINST3("sxtah r0, r1, r2, ROR #0 ", 0x31415927, 0x27182819, r0, r1, r2, 0);
3898 
3899   TESTINST3("sxtah r0, r1, r2, ROR #24", 0x31415927, 0x27189819, r0, r1, r2, 0);
3900   TESTINST3("sxtah r0, r1, r2, ROR #16", 0x31415927, 0x27189819, r0, r1, r2, 0);
3901   TESTINST3("sxtah r0, r1, r2, ROR #8 ", 0x31415927, 0x27189819, r0, r1, r2, 0);
3902   TESTINST3("sxtah r0, r1, r2, ROR #0 ", 0x31415927, 0x27189819, r0, r1, r2, 0);
3903 
3904 TESTINST3("sxtah r0, r1, r2, ROR #24", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3905 TESTINST3("sxtah r0, r1, r2, ROR #24", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3906 TESTINST3("sxtah r0, r1, r2, ROR #24", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3907 TESTINST3("sxtah r0, r1, r2, ROR #24", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3908 TESTINST3("sxtah r0, r1, r2, ROR #24", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3909 TESTINST3("sxtah r0, r1, r2, ROR #24", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3910 TESTINST3("sxtah r0, r1, r2, ROR #24", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3911 TESTINST3("sxtah r0, r1, r2, ROR #24", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3912 TESTINST3("sxtah r0, r1, r2, ROR #24", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3913 TESTINST3("sxtah r0, r1, r2, ROR #24", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3914 
3915 TESTINST3("sxtah r0, r1, r2, ROR #16", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3916 TESTINST3("sxtah r0, r1, r2, ROR #16", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3917 TESTINST3("sxtah r0, r1, r2, ROR #16", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3918 TESTINST3("sxtah r0, r1, r2, ROR #16", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3919 TESTINST3("sxtah r0, r1, r2, ROR #16", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3920 TESTINST3("sxtah r0, r1, r2, ROR #16", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3921 TESTINST3("sxtah r0, r1, r2, ROR #16", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3922 TESTINST3("sxtah r0, r1, r2, ROR #16", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3923 TESTINST3("sxtah r0, r1, r2, ROR #16", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3924 TESTINST3("sxtah r0, r1, r2, ROR #16", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3925 
3926 TESTINST3("sxtah r0, r1, r2, ROR #8", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3927 TESTINST3("sxtah r0, r1, r2, ROR #8", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3928 TESTINST3("sxtah r0, r1, r2, ROR #8", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3929 TESTINST3("sxtah r0, r1, r2, ROR #8", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3930 TESTINST3("sxtah r0, r1, r2, ROR #8", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3931 TESTINST3("sxtah r0, r1, r2, ROR #8", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3932 TESTINST3("sxtah r0, r1, r2, ROR #8", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3933 TESTINST3("sxtah r0, r1, r2, ROR #8", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3934 TESTINST3("sxtah r0, r1, r2, ROR #8", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3935 TESTINST3("sxtah r0, r1, r2, ROR #8", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3936 
3937 TESTINST3("sxtah r0, r1, r2, ROR #0", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3938 TESTINST3("sxtah r0, r1, r2, ROR #0", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3939 TESTINST3("sxtah r0, r1, r2, ROR #0", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3940 TESTINST3("sxtah r0, r1, r2, ROR #0", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3941 TESTINST3("sxtah r0, r1, r2, ROR #0", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3942 TESTINST3("sxtah r0, r1, r2, ROR #0", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3943 TESTINST3("sxtah r0, r1, r2, ROR #0", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3944 TESTINST3("sxtah r0, r1, r2, ROR #0", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3945 TESTINST3("sxtah r0, r1, r2, ROR #0", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3946 TESTINST3("sxtah r0, r1, r2, ROR #0", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3947 
3948   printf("------------ UXTAH ------------\n");
3949   TESTINST3("uxtah r0, r1, r2, ROR #24", 0x31415927, 0x27182819, r0, r1, r2, 0);
3950   TESTINST3("uxtah r0, r1, r2, ROR #16", 0x31415927, 0x27182819, r0, r1, r2, 0);
3951   TESTINST3("uxtah r0, r1, r2, ROR #8 ", 0x31415927, 0x27182819, r0, r1, r2, 0);
3952   TESTINST3("uxtah r0, r1, r2, ROR #0 ", 0x31415927, 0x27182819, r0, r1, r2, 0);
3953 
3954   TESTINST3("uxtah r0, r1, r2, ROR #24", 0x31415927, 0x27189819, r0, r1, r2, 0);
3955   TESTINST3("uxtah r0, r1, r2, ROR #16", 0x31415927, 0x27189819, r0, r1, r2, 0);
3956   TESTINST3("uxtah r0, r1, r2, ROR #8 ", 0x31415927, 0x27189819, r0, r1, r2, 0);
3957   TESTINST3("uxtah r0, r1, r2, ROR #0 ", 0x31415927, 0x27189819, r0, r1, r2, 0);
3958 
3959 TESTINST3("uxtah r0, r1, r2, ROR #24", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3960 TESTINST3("uxtah r0, r1, r2, ROR #24", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3961 TESTINST3("uxtah r0, r1, r2, ROR #24", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3962 TESTINST3("uxtah r0, r1, r2, ROR #24", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3963 TESTINST3("uxtah r0, r1, r2, ROR #24", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3964 TESTINST3("uxtah r0, r1, r2, ROR #24", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3965 TESTINST3("uxtah r0, r1, r2, ROR #24", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3966 TESTINST3("uxtah r0, r1, r2, ROR #24", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3967 TESTINST3("uxtah r0, r1, r2, ROR #24", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3968 TESTINST3("uxtah r0, r1, r2, ROR #24", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3969 
3970 TESTINST3("uxtah r0, r1, r2, ROR #16", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3971 TESTINST3("uxtah r0, r1, r2, ROR #16", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3972 TESTINST3("uxtah r0, r1, r2, ROR #16", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3973 TESTINST3("uxtah r0, r1, r2, ROR #16", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3974 TESTINST3("uxtah r0, r1, r2, ROR #16", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3975 TESTINST3("uxtah r0, r1, r2, ROR #16", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3976 TESTINST3("uxtah r0, r1, r2, ROR #16", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3977 TESTINST3("uxtah r0, r1, r2, ROR #16", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3978 TESTINST3("uxtah r0, r1, r2, ROR #16", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3979 TESTINST3("uxtah r0, r1, r2, ROR #16", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3980 
3981 TESTINST3("uxtah r0, r1, r2, ROR #8", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3982 TESTINST3("uxtah r0, r1, r2, ROR #8", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3983 TESTINST3("uxtah r0, r1, r2, ROR #8", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3984 TESTINST3("uxtah r0, r1, r2, ROR #8", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3985 TESTINST3("uxtah r0, r1, r2, ROR #8", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3986 TESTINST3("uxtah r0, r1, r2, ROR #8", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3987 TESTINST3("uxtah r0, r1, r2, ROR #8", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3988 TESTINST3("uxtah r0, r1, r2, ROR #8", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3989 TESTINST3("uxtah r0, r1, r2, ROR #8", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3990 TESTINST3("uxtah r0, r1, r2, ROR #8", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3991 
3992 TESTINST3("uxtah r0, r1, r2, ROR #0", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3993 TESTINST3("uxtah r0, r1, r2, ROR #0", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3994 TESTINST3("uxtah r0, r1, r2, ROR #0", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3995 TESTINST3("uxtah r0, r1, r2, ROR #0", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3996 TESTINST3("uxtah r0, r1, r2, ROR #0", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3997 TESTINST3("uxtah r0, r1, r2, ROR #0", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3998 TESTINST3("uxtah r0, r1, r2, ROR #0", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3999 TESTINST3("uxtah r0, r1, r2, ROR #0", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
4000 TESTINST3("uxtah r0, r1, r2, ROR #0", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
4001 TESTINST3("uxtah r0, r1, r2, ROR #0", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
4002 
4003   printf("------------ SMLAWB ------------\n");
4004   /* smlawb rD, rN, rM, rA */
4005   TESTINST4("smlawb r0, r1, r2, r3",
4006             0x00030000, 0x00040000, 0x00000000, r0,r1,r2,r3, 0);
4007   TESTINST4("smlawb r0, r1, r2, r3",
4008             0x00030001, 0x00040002, 0x00007fff, r0,r1,r2,r3, 0);
4009   TESTINST4("smlawb r0, r1, r2, r3",
4010             0x00038001, 0x00047fff, 0x00005fff, r0,r1,r2,r3, 0);
4011   TESTINST4("smlawb r0, r1, r2, r3",
4012             0x00037fff, 0x00047fff, 0x00007fff, r0,r1,r2,r3, 0);
4013   TESTINST4("smlawb r0, r1, r2, r3",
4014             0x0003ffff, 0x0004ffff, 0x7fff7fff, r0,r1,r2,r3, 0);
4015   TESTINST4("smlawb r0, r1, r2, r3",
4016             0x0003fffc, 0x0004ffff, 0xffffffff, r0,r1,r2,r3, 0);
4017 TESTINST4("smlawb  r0, r1, r2, r3",
4018           0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
4019 TESTINST4("smlawb  r0, r1, r2, r3",
4020           0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
4021 TESTINST4("smlawb  r0, r1, r2, r3",
4022           0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
4023 TESTINST4("smlawb  r0, r1, r2, r3",
4024           0x32fa0095, 0x36f26261, 0x89d2ef86, r0, r1, r2, r3, 0);
4025 TESTINST4("smlawb  r0, r1, r2, r3",
4026           0x8ed8287c, 0x02c90120, 0xd4b64d54, r0, r1, r2, r3, 0);
4027 TESTINST4("smlawb  r0, r1, r2, r3",
4028           0xc53aaba9, 0x29300837, 0x0b02c58a, r0, r1, r2, r3, 0);
4029 TESTINST4("smlawb  r0, r1, r2, r3",
4030           0x216158cb, 0x57a50a01, 0xb0d20777, r0, r1, r2, r3, 0);
4031 TESTINST4("smlawb  r0, r1, r2, r3",
4032           0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0, r1, r2, r3, 0);
4033 TESTINST4("smlawb  r0, r1, r2, r3",
4034           0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0, r1, r2, r3, 0);
4035 TESTINST4("smlawb  r0, r1, r2, r3",
4036           0xf87b961e, 0x1d66879f, 0xf2b64835, r0, r1, r2, r3, 0);
4037 TESTINST4("smlawb  r0, r1, r2, r3",
4038           0xd65db979, 0xc61b323b, 0xae930a1a, r0, r1, r2, r3, 0);
4039 TESTINST4("smlawb  r0, r1, r2, r3",
4040           0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0, r1, r2, r3, 0);
4041 TESTINST4("smlawb  r0, r1, r2, r3",
4042           0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0, r1, r2, r3, 0);
4043 TESTINST4("smlawb  r0, r1, r2, r3",
4044           0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, r3, 0);
4045 TESTINST4("smlawb  r0, r1, r2, r3",
4046           0xeaa652c7, 0x137741f4, 0x3dba1164, r0, r1, r2, r3, 0);
4047 TESTINST4("smlawb  r0, r1, r2, r3",
4048           0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0, r1, r2, r3, 0);
4049 TESTINST4("smlawb  r0, r1, r2, r3",
4050           0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0, r1, r2, r3, 0);
4051 TESTINST4("smlawb  r0, r1, r2, r3",
4052           0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, r3, 0);
4053 TESTINST4("smlawb  r0, r1, r2, r3",
4054           0xe1bb8606, 0x58293969, 0x81616d13, r0, r1, r2, r3, 0);
4055 TESTINST4("smlawb  r0, r1, r2, r3",
4056           0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0, r1, r2, r3, 0);
4057 TESTINST4("smlawb  r0, r1, r2, r3",
4058           0x0849a0c2, 0x0872f25a, 0x40b094e2, r0, r1, r2, r3, 0);
4059 TESTINST4("smlawb  r0, r1, r2, r3",
4060           0x17913309, 0xf1e03d7e, 0x91edc21d, r0, r1, r2, r3, 0);
4061 TESTINST4("smlawb  r0, r1, r2, r3",
4062           0x5388b5cd, 0x86582032, 0x6034078d, r0, r1, r2, r3, 0);
4063 TESTINST4("smlawb  r0, r1, r2, r3",
4064           0x181c436b, 0x5de41558, 0xccfa1c7e, r0, r1, r2, r3, 0);
4065 TESTINST4("smlawb  r0, r1, r2, r3",
4066           0x23ba1b46, 0x4437983c, 0x48d06549, r0, r1, r2, r3, 0);
4067 TESTINST4("smlawb  r0, r1, r2, r3",
4068           0xa9085781, 0xc6b4ac58, 0xb2aead21, r0, r1, r2, r3, 0);
4069 TESTINST4("smlawb  r0, r1, r2, r3",
4070           0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0, r1, r2, r3, 0);
4071 TESTINST4("smlawb  r0, r1, r2, r3",
4072           0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, r3, 0);
4073 TESTINST4("smlawb  r0, r1, r2, r3",
4074           0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0, r1, r2, r3, 0);
4075 TESTINST4("smlawb  r0, r1, r2, r3",
4076           0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0, r1, r2, r3, 0);
4077 TESTINST4("smlawb  r0, r1, r2, r3",
4078           0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0, r1, r2, r3, 0);
4079 TESTINST4("smlawb  r0, r1, r2, r3",
4080           0xd7ce1909, 0x3e435701, 0x85fbf196, r0, r1, r2, r3, 0);
4081 TESTINST4("smlawb  r0, r1, r2, r3",
4082           0xb4e16b6e, 0x6e13680a, 0x89436f88, r0, r1, r2, r3, 0);
4083 TESTINST4("smlawb  r0, r1, r2, r3",
4084           0x44858efc, 0x9002bc30, 0x390d2c2f, r0, r1, r2, r3, 0);
4085 TESTINST4("smlawb  r0, r1, r2, r3",
4086           0xbea121ab, 0x953ff6ec, 0x80657c40, r0, r1, r2, r3, 0);
4087 TESTINST4("smlawb  r0, r1, r2, r3",
4088           0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, r3, 0);
4089 TESTINST4("smlawb  r0, r1, r2, r3",
4090           0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0, r1, r2, r3, 0);
4091 TESTINST4("smlawb  r0, r1, r2, r3",
4092           0xec0c2f30, 0x5736ed46, 0x231348c0, r0, r1, r2, r3, 0);
4093 TESTINST4("smlawb  r0, r1, r2, r3",
4094           0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0, r1, r2, r3, 0);
4095 TESTINST4("smlawb  r0, r1, r2, r3",
4096           0xc1553709, 0x0112b30a, 0x69ec0212, r0, r1, r2, r3, 0);
4097 TESTINST4("smlawb  r0, r1, r2, r3",
4098           0x74bd0223, 0x03fa9bb5, 0x899d9192, r0, r1, r2, r3, 0);
4099 TESTINST4("smlawb  r0, r1, r2, r3",
4100           0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, r3, 0);
4101 TESTINST4("smlawb  r0, r1, r2, r3",
4102           0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0, r1, r2, r3, 0);
4103 TESTINST4("smlawb  r0, r1, r2, r3",
4104           0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0, r1, r2, r3, 0);
4105 TESTINST4("smlawb  r0, r1, r2, r3",
4106           0x299da970, 0xe8108f1b, 0xf5818cfb, r0, r1, r2, r3, 0);
4107 TESTINST4("smlawb  r0, r1, r2, r3",
4108           0xcd90d604, 0xaa5e9444, 0x8217b7df, r0, r1, r2, r3, 0);
4109 TESTINST4("smlawb  r0, r1, r2, r3",
4110           0xe60743c3, 0x7acb4de3, 0x73c29060, r0, r1, r2, r3, 0);
4111 TESTINST4("smlawb  r0, r1, r2, r3",
4112           0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0, r1, r2, r3, 0);
4113 TESTINST4("smlawb  r0, r1, r2, r3",
4114           0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0, r1, r2, r3, 0);
4115 TESTINST4("smlawb  r0, r1, r2, r3",
4116           0xde99ac2f, 0x0be36f70, 0xeda5110c, r0, r1, r2, r3, 0);
4117 TESTINST4("smlawb  r0, r1, r2, r3",
4118           0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0);
4119 
4120   printf("------------ SMLAWT ------------\n");
4121   /* smlawt rD, rN, rM, rA */
4122   TESTINST4("smlawt r0, r1, r2, r3",
4123             0x00030000, 0x00040000, 0x00000000, r0,r1,r2,r3, 0);
4124   TESTINST4("smlawt r0, r1, r2, r3",
4125             0x00030001, 0x00040002, 0x00007fff, r0,r1,r2,r3, 0);
4126   TESTINST4("smlawt r0, r1, r2, r3",
4127             0x00038001, 0x00047fff, 0x00005fff, r0,r1,r2,r3, 0);
4128   TESTINST4("smlawt r0, r1, r2, r3",
4129             0x00037fff, 0x00047fff, 0x00007fff, r0,r1,r2,r3, 0);
4130   TESTINST4("smlawt r0, r1, r2, r3",
4131             0x0003ffff, 0x0004ffff, 0x7fff7fff, r0,r1,r2,r3, 0);
4132   TESTINST4("smlawt r0, r1, r2, r3",
4133             0x0003fffc, 0x0004ffff, 0xffffffff, r0,r1,r2,r3, 0);
4134 TESTINST4("smlawt  r0, r1, r2, r3",
4135           0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
4136 TESTINST4("smlawt  r0, r1, r2, r3",
4137           0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
4138 TESTINST4("smlawt  r0, r1, r2, r3",
4139           0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
4140 TESTINST4("smlawt  r0, r1, r2, r3",
4141           0x32fa0095, 0x36f26261, 0x89d2ef86, r0, r1, r2, r3, 0);
4142 TESTINST4("smlawt  r0, r1, r2, r3",
4143           0x8ed8287c, 0x02c90120, 0xd4b64d54, r0, r1, r2, r3, 0);
4144 TESTINST4("smlawt  r0, r1, r2, r3",
4145           0xc53aaba9, 0x29300837, 0x0b02c58a, r0, r1, r2, r3, 0);
4146 TESTINST4("smlawt  r0, r1, r2, r3",
4147           0x216158cb, 0x57a50a01, 0xb0d20777, r0, r1, r2, r3, 0);
4148 TESTINST4("smlawt  r0, r1, r2, r3",
4149           0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0, r1, r2, r3, 0);
4150 TESTINST4("smlawt  r0, r1, r2, r3",
4151           0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0, r1, r2, r3, 0);
4152 TESTINST4("smlawt  r0, r1, r2, r3",
4153           0xf87b961e, 0x1d66879f, 0xf2b64835, r0, r1, r2, r3, 0);
4154 TESTINST4("smlawt  r0, r1, r2, r3",
4155           0xd65db979, 0xc61b323b, 0xae930a1a, r0, r1, r2, r3, 0);
4156 TESTINST4("smlawt  r0, r1, r2, r3",
4157           0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0, r1, r2, r3, 0);
4158 TESTINST4("smlawt  r0, r1, r2, r3",
4159           0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0, r1, r2, r3, 0);
4160 TESTINST4("smlawt  r0, r1, r2, r3",
4161           0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, r3, 0);
4162 TESTINST4("smlawt  r0, r1, r2, r3",
4163           0xeaa652c7, 0x137741f4, 0x3dba1164, r0, r1, r2, r3, 0);
4164 TESTINST4("smlawt  r0, r1, r2, r3",
4165           0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0, r1, r2, r3, 0);
4166 TESTINST4("smlawt  r0, r1, r2, r3",
4167           0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0, r1, r2, r3, 0);
4168 TESTINST4("smlawt  r0, r1, r2, r3",
4169           0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, r3, 0);
4170 TESTINST4("smlawt  r0, r1, r2, r3",
4171           0xe1bb8606, 0x58293969, 0x81616d13, r0, r1, r2, r3, 0);
4172 TESTINST4("smlawt  r0, r1, r2, r3",
4173           0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0, r1, r2, r3, 0);
4174 TESTINST4("smlawt  r0, r1, r2, r3",
4175           0x0849a0c2, 0x0872f25a, 0x40b094e2, r0, r1, r2, r3, 0);
4176 TESTINST4("smlawt  r0, r1, r2, r3",
4177           0x17913309, 0xf1e03d7e, 0x91edc21d, r0, r1, r2, r3, 0);
4178 TESTINST4("smlawt  r0, r1, r2, r3",
4179           0x5388b5cd, 0x86582032, 0x6034078d, r0, r1, r2, r3, 0);
4180 TESTINST4("smlawt  r0, r1, r2, r3",
4181           0x181c436b, 0x5de41558, 0xccfa1c7e, r0, r1, r2, r3, 0);
4182 TESTINST4("smlawt  r0, r1, r2, r3",
4183           0x23ba1b46, 0x4437983c, 0x48d06549, r0, r1, r2, r3, 0);
4184 TESTINST4("smlawt  r0, r1, r2, r3",
4185           0xa9085781, 0xc6b4ac58, 0xb2aead21, r0, r1, r2, r3, 0);
4186 TESTINST4("smlawt  r0, r1, r2, r3",
4187           0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0, r1, r2, r3, 0);
4188 TESTINST4("smlawt  r0, r1, r2, r3",
4189           0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, r3, 0);
4190 TESTINST4("smlawt  r0, r1, r2, r3",
4191           0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0, r1, r2, r3, 0);
4192 TESTINST4("smlawt  r0, r1, r2, r3",
4193           0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0, r1, r2, r3, 0);
4194 TESTINST4("smlawt  r0, r1, r2, r3",
4195           0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0, r1, r2, r3, 0);
4196 TESTINST4("smlawt  r0, r1, r2, r3",
4197           0xd7ce1909, 0x3e435701, 0x85fbf196, r0, r1, r2, r3, 0);
4198 TESTINST4("smlawt  r0, r1, r2, r3",
4199           0xb4e16b6e, 0x6e13680a, 0x89436f88, r0, r1, r2, r3, 0);
4200 TESTINST4("smlawt  r0, r1, r2, r3",
4201           0x44858efc, 0x9002bc30, 0x390d2c2f, r0, r1, r2, r3, 0);
4202 TESTINST4("smlawt  r0, r1, r2, r3",
4203           0xbea121ab, 0x953ff6ec, 0x80657c40, r0, r1, r2, r3, 0);
4204 TESTINST4("smlawt  r0, r1, r2, r3",
4205           0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, r3, 0);
4206 TESTINST4("smlawt  r0, r1, r2, r3",
4207           0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0, r1, r2, r3, 0);
4208 TESTINST4("smlawt  r0, r1, r2, r3",
4209           0xec0c2f30, 0x5736ed46, 0x231348c0, r0, r1, r2, r3, 0);
4210 TESTINST4("smlawt  r0, r1, r2, r3",
4211           0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0, r1, r2, r3, 0);
4212 TESTINST4("smlawt  r0, r1, r2, r3",
4213           0xc1553709, 0x0112b30a, 0x69ec0212, r0, r1, r2, r3, 0);
4214 TESTINST4("smlawt  r0, r1, r2, r3",
4215           0x74bd0223, 0x03fa9bb5, 0x899d9192, r0, r1, r2, r3, 0);
4216 TESTINST4("smlawt  r0, r1, r2, r3",
4217           0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, r3, 0);
4218 TESTINST4("smlawt  r0, r1, r2, r3",
4219           0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0, r1, r2, r3, 0);
4220 TESTINST4("smlawt  r0, r1, r2, r3",
4221           0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0, r1, r2, r3, 0);
4222 TESTINST4("smlawt  r0, r1, r2, r3",
4223           0x299da970, 0xe8108f1b, 0xf5818cfb, r0, r1, r2, r3, 0);
4224 TESTINST4("smlawt  r0, r1, r2, r3",
4225           0xcd90d604, 0xaa5e9444, 0x8217b7df, r0, r1, r2, r3, 0);
4226 TESTINST4("smlawt  r0, r1, r2, r3",
4227           0xe60743c3, 0x7acb4de3, 0x73c29060, r0, r1, r2, r3, 0);
4228 TESTINST4("smlawt  r0, r1, r2, r3",
4229           0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0, r1, r2, r3, 0);
4230 TESTINST4("smlawt  r0, r1, r2, r3",
4231           0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0, r1, r2, r3, 0);
4232 TESTINST4("smlawt  r0, r1, r2, r3",
4233           0xde99ac2f, 0x0be36f70, 0xeda5110c, r0, r1, r2, r3, 0);
4234 TESTINST4("smlawt  r0, r1, r2, r3",
4235           0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0);
4236 
4237 
4238   printf("----------------- SMLSD ----------------- \n");
4239   TESTINST4("smlsd  r0, r1, r2, r3",
4240                   0x80008000, 0x80008000, 0x00000000, r0, r1, r2, r3, 0);
4241   TESTINST4("smlsd  r0, r1, r2, r3",
4242                   0x7fff7fff, 0x00000000, 0x00000000, r0, r1, r2, r3, 0);
4243   TESTINST4("smlsd  r0, r1, r2, r3",
4244                   0x7fff7fff, 0x00010001, 0x00000001, r0, r1, r2, r3, 0);
4245   TESTINST4("smlsd  r0, r1, r2, r3",
4246                   0x80008000, 0xffffffff, 0x0000001f, r0, r1, r2, r3, 0);
4247   TESTINST4("smlsd  r0, r1, r2, r3",
4248                   0x00640064, 0x00030003, 0x00000020, r0, r1, r2, r3, 0);
4249   TESTINST4("smlsd  r0, r1, r2, r3",
4250                   0xffffffff, 0xfffc0001, 0x000000ff, r0, r1, r2, r3, 0);
4251   TESTINST4("smlsd  r0, r1, r2, r3",
4252                   0xfff70fff, 0x00030003, 0x00000100, r0, r1, r2, r3, 0);
4253 TESTINST4("smlsd  r0, r1, r2, r3",
4254           0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
4255 TESTINST4("smlsd  r0, r1, r2, r3",
4256           0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
4257 TESTINST4("smlsd  r0, r1, r2, r3",
4258           0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
4259 TESTINST4("smlsd  r0, r1, r2, r3",
4260           0x32fa0095, 0x36f26261, 0x89d2ef86, r0, r1, r2, r3, 0);
4261 TESTINST4("smlsd  r0, r1, r2, r3",
4262           0x8ed8287c, 0x02c90120, 0xd4b64d54, r0, r1, r2, r3, 0);
4263 TESTINST4("smlsd  r0, r1, r2, r3",
4264           0xc53aaba9, 0x29300837, 0x0b02c58a, r0, r1, r2, r3, 0);
4265 TESTINST4("smlsd  r0, r1, r2, r3",
4266           0x216158cb, 0x57a50a01, 0xb0d20777, r0, r1, r2, r3, 0);
4267 TESTINST4("smlsd  r0, r1, r2, r3",
4268           0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0, r1, r2, r3, 0);
4269 TESTINST4("smlsd  r0, r1, r2, r3",
4270           0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0, r1, r2, r3, 0);
4271 TESTINST4("smlsd  r0, r1, r2, r3",
4272           0xf87b961e, 0x1d66879f, 0xf2b64835, r0, r1, r2, r3, 0);
4273 TESTINST4("smlsd  r0, r1, r2, r3",
4274           0xd65db979, 0xc61b323b, 0xae930a1a, r0, r1, r2, r3, 0);
4275 TESTINST4("smlsd  r0, r1, r2, r3",
4276           0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0, r1, r2, r3, 0);
4277 TESTINST4("smlsd  r0, r1, r2, r3",
4278           0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0, r1, r2, r3, 0);
4279 TESTINST4("smlsd  r0, r1, r2, r3",
4280           0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, r3, 0);
4281 TESTINST4("smlsd  r0, r1, r2, r3",
4282           0xeaa652c7, 0x137741f4, 0x3dba1164, r0, r1, r2, r3, 0);
4283 TESTINST4("smlsd  r0, r1, r2, r3",
4284           0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0, r1, r2, r3, 0);
4285 TESTINST4("smlsd  r0, r1, r2, r3",
4286           0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0, r1, r2, r3, 0);
4287 TESTINST4("smlsd  r0, r1, r2, r3",
4288           0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, r3, 0);
4289 TESTINST4("smlsd  r0, r1, r2, r3",
4290           0xe1bb8606, 0x58293969, 0x81616d13, r0, r1, r2, r3, 0);
4291 TESTINST4("smlsd  r0, r1, r2, r3",
4292           0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0, r1, r2, r3, 0);
4293 TESTINST4("smlsd  r0, r1, r2, r3",
4294           0x0849a0c2, 0x0872f25a, 0x40b094e2, r0, r1, r2, r3, 0);
4295 TESTINST4("smlsd  r0, r1, r2, r3",
4296           0x17913309, 0xf1e03d7e, 0x91edc21d, r0, r1, r2, r3, 0);
4297 TESTINST4("smlsd  r0, r1, r2, r3",
4298           0x5388b5cd, 0x86582032, 0x6034078d, r0, r1, r2, r3, 0);
4299 TESTINST4("smlsd  r0, r1, r2, r3",
4300           0x181c436b, 0x5de41558, 0xccfa1c7e, r0, r1, r2, r3, 0);
4301 TESTINST4("smlsd  r0, r1, r2, r3",
4302           0x23ba1b46, 0x4437983c, 0x48d06549, r0, r1, r2, r3, 0);
4303 TESTINST4("smlsd  r0, r1, r2, r3",
4304           0xa9085781, 0xc6b4ac58, 0xb2aead21, r0, r1, r2, r3, 0);
4305 TESTINST4("smlsd  r0, r1, r2, r3",
4306           0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0, r1, r2, r3, 0);
4307 TESTINST4("smlsd  r0, r1, r2, r3",
4308           0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, r3, 0);
4309 TESTINST4("smlsd  r0, r1, r2, r3",
4310           0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0, r1, r2, r3, 0);
4311 TESTINST4("smlsd  r0, r1, r2, r3",
4312           0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0, r1, r2, r3, 0);
4313 TESTINST4("smlsd  r0, r1, r2, r3",
4314           0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0, r1, r2, r3, 0);
4315 TESTINST4("smlsd  r0, r1, r2, r3",
4316           0xd7ce1909, 0x3e435701, 0x85fbf196, r0, r1, r2, r3, 0);
4317 TESTINST4("smlsd  r0, r1, r2, r3",
4318           0xb4e16b6e, 0x6e13680a, 0x89436f88, r0, r1, r2, r3, 0);
4319 TESTINST4("smlsd  r0, r1, r2, r3",
4320           0x44858efc, 0x9002bc30, 0x390d2c2f, r0, r1, r2, r3, 0);
4321 TESTINST4("smlsd  r0, r1, r2, r3",
4322           0xbea121ab, 0x953ff6ec, 0x80657c40, r0, r1, r2, r3, 0);
4323 TESTINST4("smlsd  r0, r1, r2, r3",
4324           0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, r3, 0);
4325 TESTINST4("smlsd  r0, r1, r2, r3",
4326           0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0, r1, r2, r3, 0);
4327 TESTINST4("smlsd  r0, r1, r2, r3",
4328           0xec0c2f30, 0x5736ed46, 0x231348c0, r0, r1, r2, r3, 0);
4329 TESTINST4("smlsd  r0, r1, r2, r3",
4330           0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0, r1, r2, r3, 0);
4331 TESTINST4("smlsd  r0, r1, r2, r3",
4332           0xc1553709, 0x0112b30a, 0x69ec0212, r0, r1, r2, r3, 0);
4333 TESTINST4("smlsd  r0, r1, r2, r3",
4334           0x74bd0223, 0x03fa9bb5, 0x899d9192, r0, r1, r2, r3, 0);
4335 TESTINST4("smlsd  r0, r1, r2, r3",
4336           0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, r3, 0);
4337 TESTINST4("smlsd  r0, r1, r2, r3",
4338           0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0, r1, r2, r3, 0);
4339 TESTINST4("smlsd  r0, r1, r2, r3",
4340           0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0, r1, r2, r3, 0);
4341 TESTINST4("smlsd  r0, r1, r2, r3",
4342           0x299da970, 0xe8108f1b, 0xf5818cfb, r0, r1, r2, r3, 0);
4343 TESTINST4("smlsd  r0, r1, r2, r3",
4344           0xcd90d604, 0xaa5e9444, 0x8217b7df, r0, r1, r2, r3, 0);
4345 TESTINST4("smlsd  r0, r1, r2, r3",
4346           0xe60743c3, 0x7acb4de3, 0x73c29060, r0, r1, r2, r3, 0);
4347 TESTINST4("smlsd  r0, r1, r2, r3",
4348           0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0, r1, r2, r3, 0);
4349 TESTINST4("smlsd  r0, r1, r2, r3",
4350           0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0, r1, r2, r3, 0);
4351 TESTINST4("smlsd  r0, r1, r2, r3",
4352           0xde99ac2f, 0x0be36f70, 0xeda5110c, r0, r1, r2, r3, 0);
4353 TESTINST4("smlsd  r0, r1, r2, r3",
4354           0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0);
4355 
4356   printf("----------------- SMLSDX ----------------- \n");
4357   TESTINST4("smlsdx  r0, r1, r2, r3",
4358                   0x80008000, 0x80008000, 0x00000000, r0, r1, r2, r3, 0);
4359   TESTINST4("smlsdx  r0, r1, r2, r3",
4360                   0x7fff7fff, 0x00000000, 0x00000000, r0, r1, r2, r3, 0);
4361   TESTINST4("smlsdx  r0, r1, r2, r3",
4362                   0x7fff7fff, 0x00010001, 0x00000001, r0, r1, r2, r3, 0);
4363   TESTINST4("smlsdx  r0, r1, r2, r3",
4364                   0x80008000, 0xffffffff, 0x0000001f, r0, r1, r2, r3, 0);
4365   TESTINST4("smlsdx  r0, r1, r2, r3",
4366                   0x00640064, 0x00030003, 0x00000020, r0, r1, r2, r3, 0);
4367   TESTINST4("smlsdx  r0, r1, r2, r3",
4368                   0xffffffff, 0xfffc0001, 0x000000ff, r0, r1, r2, r3, 0);
4369   TESTINST4("smlsdx  r0, r1, r2, r3",
4370                   0xfff70fff, 0x00030003, 0x00000100, r0, r1, r2, r3, 0);
4371 TESTINST4("smlsdx  r0, r1, r2, r3",
4372           0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
4373 TESTINST4("smlsdx  r0, r1, r2, r3",
4374           0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
4375 TESTINST4("smlsdx  r0, r1, r2, r3",
4376           0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
4377 
4378 
4379   printf("----------------- SMUSD ----------------- \n");
4380   TESTINST3("smusd r0, r1, r2", 0x80008000, 0x80008000, r0, r1, r2, 0);
4381   TESTINST3("smusd r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
4382   TESTINST3("smusd r0, r1, r2", 0x7fff7fff, 0x00010001, r0, r1, r2, 0);
4383   TESTINST3("smusd r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
4384   TESTINST3("smusd r0, r1, r2", 0x00640064, 0x00030003, r0, r1, r2, 0);
4385   TESTINST3("smusd r0, r1, r2", 0xffffffff, 0xfffc0001, r0, r1, r2, 0);
4386   TESTINST3("smusd r0, r1, r2", 0xfff70fff, 0x00030003, r0, r1, r2, 0);
4387 TESTINST3("smusd r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
4388 TESTINST3("smusd r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
4389 TESTINST3("smusd r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
4390 TESTINST3("smusd r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
4391 TESTINST3("smusd r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
4392 TESTINST3("smusd r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
4393 TESTINST3("smusd r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
4394 TESTINST3("smusd r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
4395 TESTINST3("smusd r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
4396 TESTINST3("smusd r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
4397 TESTINST3("smusd r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
4398 TESTINST3("smusd r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
4399 TESTINST3("smusd r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
4400 TESTINST3("smusd r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
4401 TESTINST3("smusd r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
4402 TESTINST3("smusd r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
4403 TESTINST3("smusd r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
4404 TESTINST3("smusd r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
4405 TESTINST3("smusd r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
4406 TESTINST3("smusd r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
4407 TESTINST3("smusd r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
4408 TESTINST3("smusd r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
4409 TESTINST3("smusd r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
4410 TESTINST3("smusd r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
4411 TESTINST3("smusd r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
4412 TESTINST3("smusd r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
4413 TESTINST3("smusd r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
4414 TESTINST3("smusd r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
4415 TESTINST3("smusd r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
4416 TESTINST3("smusd r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
4417 TESTINST3("smusd r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
4418 TESTINST3("smusd r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
4419 TESTINST3("smusd r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
4420 TESTINST3("smusd r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
4421 TESTINST3("smusd r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
4422 TESTINST3("smusd r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
4423 TESTINST3("smusd r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
4424 TESTINST3("smusd r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
4425 TESTINST3("smusd r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
4426 TESTINST3("smusd r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
4427 TESTINST3("smusd r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
4428 TESTINST3("smusd r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
4429 TESTINST3("smusd r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
4430 TESTINST3("smusd r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
4431 TESTINST3("smusd r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
4432 TESTINST3("smusd r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
4433 TESTINST3("smusd r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
4434 TESTINST3("smusd r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
4435 TESTINST3("smusd r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
4436 TESTINST3("smusd r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
4437   printf("----------------- SMUSDX ---------------- \n");
4438   TESTINST3("smusdx r0, r1, r2", 0x80008000, 0x80008000, r0, r1, r2, 0);
4439   TESTINST3("smusdx r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
4440   TESTINST3("smusdx r0, r1, r2", 0x7fff7fff, 0x00010001, r0, r1, r2, 0);
4441   TESTINST3("smusdx r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
4442   TESTINST3("smusdx r0, r1, r2", 0x00640064, 0x00030003, r0, r1, r2, 0);
4443   TESTINST3("smusdx r0, r1, r2", 0xffffffff, 0xfffc0001, r0, r1, r2, 0);
4444   TESTINST3("smusdx r0, r1, r2", 0xfff70fff, 0x00030003, r0, r1, r2, 0);
4445 TESTINST3("smusdx r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
4446 TESTINST3("smusdx r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
4447 TESTINST3("smusdx r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
4448 TESTINST3("smusdx r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
4449 TESTINST3("smusdx r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
4450 TESTINST3("smusdx r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
4451 TESTINST3("smusdx r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
4452 TESTINST3("smusdx r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
4453 TESTINST3("smusdx r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
4454 TESTINST3("smusdx r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
4455 TESTINST3("smusdx r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
4456 TESTINST3("smusdx r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
4457 TESTINST3("smusdx r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
4458 TESTINST3("smusdx r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
4459 TESTINST3("smusdx r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
4460 TESTINST3("smusdx r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
4461 TESTINST3("smusdx r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
4462 TESTINST3("smusdx r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
4463 TESTINST3("smusdx r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
4464 TESTINST3("smusdx r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
4465 TESTINST3("smusdx r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
4466 TESTINST3("smusdx r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
4467 TESTINST3("smusdx r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
4468 TESTINST3("smusdx r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
4469 TESTINST3("smusdx r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
4470 TESTINST3("smusdx r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
4471 TESTINST3("smusdx r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
4472 TESTINST3("smusdx r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
4473 TESTINST3("smusdx r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
4474 TESTINST3("smusdx r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
4475 TESTINST3("smusdx r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
4476 TESTINST3("smusdx r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
4477 TESTINST3("smusdx r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
4478 TESTINST3("smusdx r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
4479 TESTINST3("smusdx r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
4480 TESTINST3("smusdx r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
4481 TESTINST3("smusdx r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
4482 TESTINST3("smusdx r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
4483 TESTINST3("smusdx r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
4484 TESTINST3("smusdx r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
4485 TESTINST3("smusdx r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
4486 TESTINST3("smusdx r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
4487 TESTINST3("smusdx r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
4488 TESTINST3("smusdx r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
4489 TESTINST3("smusdx r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
4490 TESTINST3("smusdx r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
4491 TESTINST3("smusdx r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
4492 TESTINST3("smusdx r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
4493 TESTINST3("smusdx r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
4494 TESTINST3("smusdx r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
4495 
4496   printf("----------------- USAD8 ---------------- \n");
4497   TESTINST3("usad8 r0, r1, r2", 0x80008000, 0x80008000, r0, r1, r2, 0);
4498   TESTINST3("usad8 r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
4499   TESTINST3("usad8 r0, r1, r2", 0x7fff7fff, 0x00010001, r0, r1, r2, 0);
4500   TESTINST3("usad8 r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
4501   TESTINST3("usad8 r0, r1, r2", 0x00640064, 0x00030003, r0, r1, r2, 0);
4502   TESTINST3("usad8 r0, r1, r2", 0xffffffff, 0xfffc0001, r0, r1, r2, 0);
4503   TESTINST3("usad8 r0, r1, r2", 0xfff70fff, 0x00030003, r0, r1, r2, 0);
4504 TESTINST3("usad8 r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
4505 TESTINST3("usad8 r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
4506 TESTINST3("usad8 r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
4507 TESTINST3("usad8 r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
4508 TESTINST3("usad8 r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
4509 TESTINST3("usad8 r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
4510 TESTINST3("usad8 r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
4511 TESTINST3("usad8 r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
4512 TESTINST3("usad8 r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
4513 TESTINST3("usad8 r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
4514 TESTINST3("usad8 r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
4515 TESTINST3("usad8 r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
4516 TESTINST3("usad8 r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
4517 TESTINST3("usad8 r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
4518 TESTINST3("usad8 r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
4519 TESTINST3("usad8 r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
4520 TESTINST3("usad8 r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
4521 TESTINST3("usad8 r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
4522 TESTINST3("usad8 r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
4523 TESTINST3("usad8 r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
4524 TESTINST3("usad8 r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
4525 TESTINST3("usad8 r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
4526 TESTINST3("usad8 r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
4527 TESTINST3("usad8 r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
4528 TESTINST3("usad8 r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
4529 TESTINST3("usad8 r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
4530 TESTINST3("usad8 r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
4531 TESTINST3("usad8 r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
4532 TESTINST3("usad8 r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
4533 TESTINST3("usad8 r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
4534 TESTINST3("usad8 r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
4535 TESTINST3("usad8 r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
4536 TESTINST3("usad8 r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
4537 TESTINST3("usad8 r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
4538 TESTINST3("usad8 r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
4539 TESTINST3("usad8 r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
4540 TESTINST3("usad8 r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
4541 TESTINST3("usad8 r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
4542 TESTINST3("usad8 r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
4543 TESTINST3("usad8 r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
4544 TESTINST3("usad8 r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
4545 TESTINST3("usad8 r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
4546 TESTINST3("usad8 r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
4547 TESTINST3("usad8 r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
4548 TESTINST3("usad8 r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
4549 TESTINST3("usad8 r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
4550 TESTINST3("usad8 r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
4551 TESTINST3("usad8 r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
4552 TESTINST3("usad8 r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
4553 TESTINST3("usad8 r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
4554 
4555   printf("----------------- USADA8 ----------------- \n");
4556   TESTINST4("usada8  r0, r1, r2, r3",
4557                   0x80008000, 0x80008000, 0x00000000, r0, r1, r2, r3, 0);
4558   TESTINST4("usada8  r0, r1, r2, r3",
4559                   0x7fff7fff, 0x00000000, 0x00000000, r0, r1, r2, r3, 0);
4560   TESTINST4("usada8  r0, r1, r2, r3",
4561                   0x7fff7fff, 0x00010001, 0x00000001, r0, r1, r2, r3, 0);
4562   TESTINST4("usada8  r0, r1, r2, r3",
4563                   0x80008000, 0xffffffff, 0x0000001f, r0, r1, r2, r3, 0);
4564   TESTINST4("usada8  r0, r1, r2, r3",
4565                   0x00640064, 0x00030003, 0x00000020, r0, r1, r2, r3, 0);
4566   TESTINST4("usada8  r0, r1, r2, r3",
4567                   0xffffffff, 0xfffc0001, 0x000000ff, r0, r1, r2, r3, 0);
4568   TESTINST4("usada8  r0, r1, r2, r3",
4569                   0xfff70fff, 0x00030003, 0x00000100, r0, r1, r2, r3, 0);
4570 TESTINST4("usada8  r0, r1, r2, r3",
4571           0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
4572 TESTINST4("usada8  r0, r1, r2, r3",
4573           0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
4574 TESTINST4("usada8  r0, r1, r2, r3",
4575           0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
4576 TESTINST4("usada8  r0, r1, r2, r3",
4577           0x32fa0095, 0x36f26261, 0x89d2ef86, r0, r1, r2, r3, 0);
4578 TESTINST4("usada8  r0, r1, r2, r3",
4579           0x8ed8287c, 0x02c90120, 0xd4b64d54, r0, r1, r2, r3, 0);
4580 TESTINST4("usada8  r0, r1, r2, r3",
4581           0xc53aaba9, 0x29300837, 0x0b02c58a, r0, r1, r2, r3, 0);
4582 TESTINST4("usada8  r0, r1, r2, r3",
4583           0x216158cb, 0x57a50a01, 0xb0d20777, r0, r1, r2, r3, 0);
4584 TESTINST4("usada8  r0, r1, r2, r3",
4585           0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0, r1, r2, r3, 0);
4586 TESTINST4("usada8  r0, r1, r2, r3",
4587           0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0, r1, r2, r3, 0);
4588 TESTINST4("usada8  r0, r1, r2, r3",
4589           0xf87b961e, 0x1d66879f, 0xf2b64835, r0, r1, r2, r3, 0);
4590 TESTINST4("usada8  r0, r1, r2, r3",
4591           0xd65db979, 0xc61b323b, 0xae930a1a, r0, r1, r2, r3, 0);
4592 TESTINST4("usada8  r0, r1, r2, r3",
4593           0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0, r1, r2, r3, 0);
4594 TESTINST4("usada8  r0, r1, r2, r3",
4595           0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0, r1, r2, r3, 0);
4596 TESTINST4("usada8  r0, r1, r2, r3",
4597           0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, r3, 0);
4598 TESTINST4("usada8  r0, r1, r2, r3",
4599           0xeaa652c7, 0x137741f4, 0x3dba1164, r0, r1, r2, r3, 0);
4600 TESTINST4("usada8  r0, r1, r2, r3",
4601           0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0, r1, r2, r3, 0);
4602 TESTINST4("usada8  r0, r1, r2, r3",
4603           0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0, r1, r2, r3, 0);
4604 TESTINST4("usada8  r0, r1, r2, r3",
4605           0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, r3, 0);
4606 TESTINST4("usada8  r0, r1, r2, r3",
4607           0xe1bb8606, 0x58293969, 0x81616d13, r0, r1, r2, r3, 0);
4608 TESTINST4("usada8  r0, r1, r2, r3",
4609           0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0, r1, r2, r3, 0);
4610 TESTINST4("usada8  r0, r1, r2, r3",
4611           0x0849a0c2, 0x0872f25a, 0x40b094e2, r0, r1, r2, r3, 0);
4612 TESTINST4("usada8  r0, r1, r2, r3",
4613           0x17913309, 0xf1e03d7e, 0x91edc21d, r0, r1, r2, r3, 0);
4614 TESTINST4("usada8  r0, r1, r2, r3",
4615           0x5388b5cd, 0x86582032, 0x6034078d, r0, r1, r2, r3, 0);
4616 TESTINST4("usada8  r0, r1, r2, r3",
4617           0x181c436b, 0x5de41558, 0xccfa1c7e, r0, r1, r2, r3, 0);
4618 TESTINST4("usada8  r0, r1, r2, r3",
4619           0x23ba1b46, 0x4437983c, 0x48d06549, r0, r1, r2, r3, 0);
4620 TESTINST4("usada8  r0, r1, r2, r3",
4621           0xa9085781, 0xc6b4ac58, 0xb2aead21, r0, r1, r2, r3, 0);
4622 TESTINST4("usada8  r0, r1, r2, r3",
4623           0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0, r1, r2, r3, 0);
4624 TESTINST4("usada8  r0, r1, r2, r3",
4625           0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, r3, 0);
4626 TESTINST4("usada8  r0, r1, r2, r3",
4627           0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0, r1, r2, r3, 0);
4628 TESTINST4("usada8  r0, r1, r2, r3",
4629           0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0, r1, r2, r3, 0);
4630 TESTINST4("usada8  r0, r1, r2, r3",
4631           0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0, r1, r2, r3, 0);
4632 TESTINST4("usada8  r0, r1, r2, r3",
4633           0xd7ce1909, 0x3e435701, 0x85fbf196, r0, r1, r2, r3, 0);
4634 TESTINST4("usada8  r0, r1, r2, r3",
4635           0xb4e16b6e, 0x6e13680a, 0x89436f88, r0, r1, r2, r3, 0);
4636 TESTINST4("usada8  r0, r1, r2, r3",
4637           0x44858efc, 0x9002bc30, 0x390d2c2f, r0, r1, r2, r3, 0);
4638 TESTINST4("usada8  r0, r1, r2, r3",
4639           0xbea121ab, 0x953ff6ec, 0x80657c40, r0, r1, r2, r3, 0);
4640 TESTINST4("usada8  r0, r1, r2, r3",
4641           0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, r3, 0);
4642 TESTINST4("usada8  r0, r1, r2, r3",
4643           0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0, r1, r2, r3, 0);
4644 TESTINST4("usada8  r0, r1, r2, r3",
4645           0xec0c2f30, 0x5736ed46, 0x231348c0, r0, r1, r2, r3, 0);
4646 TESTINST4("usada8  r0, r1, r2, r3",
4647           0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0, r1, r2, r3, 0);
4648 TESTINST4("usada8  r0, r1, r2, r3",
4649           0xc1553709, 0x0112b30a, 0x69ec0212, r0, r1, r2, r3, 0);
4650 TESTINST4("usada8  r0, r1, r2, r3",
4651           0x74bd0223, 0x03fa9bb5, 0x899d9192, r0, r1, r2, r3, 0);
4652 TESTINST4("usada8  r0, r1, r2, r3",
4653           0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, r3, 0);
4654 TESTINST4("usada8  r0, r1, r2, r3",
4655           0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0, r1, r2, r3, 0);
4656 TESTINST4("usada8  r0, r1, r2, r3",
4657           0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0, r1, r2, r3, 0);
4658 TESTINST4("usada8  r0, r1, r2, r3",
4659           0x299da970, 0xe8108f1b, 0xf5818cfb, r0, r1, r2, r3, 0);
4660 TESTINST4("usada8  r0, r1, r2, r3",
4661           0xcd90d604, 0xaa5e9444, 0x8217b7df, r0, r1, r2, r3, 0);
4662 TESTINST4("usada8  r0, r1, r2, r3",
4663           0xe60743c3, 0x7acb4de3, 0x73c29060, r0, r1, r2, r3, 0);
4664 TESTINST4("usada8  r0, r1, r2, r3",
4665           0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0, r1, r2, r3, 0);
4666 TESTINST4("usada8  r0, r1, r2, r3",
4667           0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0, r1, r2, r3, 0);
4668 TESTINST4("usada8  r0, r1, r2, r3",
4669           0xde99ac2f, 0x0be36f70, 0xeda5110c, r0, r1, r2, r3, 0);
4670 TESTINST4("usada8  r0, r1, r2, r3",
4671           0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0);
4672 
4673   printf("---------------- QADD ---------------- \n");
4674   TESTINST3("qadd r0, r1, r2", 0x00000000, 0x7fffffff, r0, r1, r2, 0);
4675   TESTINST3("qadd r0, r1, r2", 0x00000001, 0x7fffffff, r0, r1, r2, 0);
4676   TESTINST3("qadd r0, r1, r2", 0x00000000, 0x00000000, r0, r1, r2, 0);
4677   TESTINST3("qadd r0, r1, r2", 0xffffffff, 0xffffffff, r0, r1, r2, 0);
4678 TESTINST3("qadd r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
4679 TESTINST3("qadd r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
4680 TESTINST3("qadd r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
4681 TESTINST3("qadd r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
4682 TESTINST3("qadd r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
4683 TESTINST3("qadd r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
4684 TESTINST3("qadd r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
4685 TESTINST3("qadd r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
4686 TESTINST3("qadd r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
4687 TESTINST3("qadd r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
4688 TESTINST3("qadd r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
4689 TESTINST3("qadd r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
4690 TESTINST3("qadd r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
4691 TESTINST3("qadd r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
4692 TESTINST3("qadd r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
4693 TESTINST3("qadd r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
4694 TESTINST3("qadd r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
4695 TESTINST3("qadd r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
4696 TESTINST3("qadd r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
4697 TESTINST3("qadd r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
4698 TESTINST3("qadd r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
4699 TESTINST3("qadd r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
4700 TESTINST3("qadd r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
4701 TESTINST3("qadd r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
4702 TESTINST3("qadd r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
4703 TESTINST3("qadd r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
4704 TESTINST3("qadd r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
4705 TESTINST3("qadd r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
4706 TESTINST3("qadd r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
4707 TESTINST3("qadd r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
4708 TESTINST3("qadd r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
4709 TESTINST3("qadd r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
4710 TESTINST3("qadd r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
4711 TESTINST3("qadd r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
4712 TESTINST3("qadd r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
4713 TESTINST3("qadd r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
4714 TESTINST3("qadd r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
4715 TESTINST3("qadd r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
4716 TESTINST3("qadd r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
4717 TESTINST3("qadd r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
4718 TESTINST3("qadd r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
4719 TESTINST3("qadd r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
4720 TESTINST3("qadd r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
4721 TESTINST3("qadd r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
4722 TESTINST3("qadd r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
4723 TESTINST3("qadd r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
4724 TESTINST3("qadd r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
4725 TESTINST3("qadd r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
4726 TESTINST3("qadd r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
4727 TESTINST3("qadd r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
4728 
4729   printf("---------------- QDADD ---------------- \n");
4730   TESTINST3("qdadd r0, r1, r2", 0x00000000, 0x7fffffff, r0, r1, r2, 0);
4731   TESTINST3("qdadd r0, r1, r2", 0x00000001, 0x7fffffff, r0, r1, r2, 0);
4732   TESTINST3("qdadd r0, r1, r2", 0x00000000, 0x00000000, r0, r1, r2, 0);
4733   TESTINST3("qdadd r0, r1, r2", 0xffffffff, 0xffffffff, r0, r1, r2, 0);
4734 TESTINST3("qdadd r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
4735 TESTINST3("qdadd r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
4736 TESTINST3("qdadd r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
4737 TESTINST3("qdadd r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
4738 TESTINST3("qdadd r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
4739 TESTINST3("qdadd r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
4740 TESTINST3("qdadd r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
4741 TESTINST3("qdadd r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
4742 TESTINST3("qdadd r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
4743 TESTINST3("qdadd r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
4744 TESTINST3("qdadd r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
4745 TESTINST3("qdadd r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
4746 TESTINST3("qdadd r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
4747 TESTINST3("qdadd r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
4748 TESTINST3("qdadd r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
4749 TESTINST3("qdadd r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
4750 TESTINST3("qdadd r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
4751 TESTINST3("qdadd r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
4752 TESTINST3("qdadd r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
4753 TESTINST3("qdadd r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
4754 TESTINST3("qdadd r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
4755 TESTINST3("qdadd r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
4756 TESTINST3("qdadd r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
4757 TESTINST3("qdadd r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
4758 TESTINST3("qdadd r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
4759 TESTINST3("qdadd r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
4760 TESTINST3("qdadd r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
4761 TESTINST3("qdadd r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
4762 TESTINST3("qdadd r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
4763 TESTINST3("qdadd r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
4764 TESTINST3("qdadd r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
4765 TESTINST3("qdadd r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
4766 TESTINST3("qdadd r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
4767 TESTINST3("qdadd r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
4768 TESTINST3("qdadd r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
4769 TESTINST3("qdadd r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
4770 TESTINST3("qdadd r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
4771 TESTINST3("qdadd r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
4772 TESTINST3("qdadd r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
4773 TESTINST3("qdadd r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
4774 TESTINST3("qdadd r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
4775 TESTINST3("qdadd r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
4776 TESTINST3("qdadd r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
4777 TESTINST3("qdadd r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
4778 TESTINST3("qdadd r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
4779 TESTINST3("qdadd r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
4780 TESTINST3("qdadd r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
4781 TESTINST3("qdadd r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
4782 TESTINST3("qdadd r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
4783 TESTINST3("qdadd r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
4784 
4785   printf("---------------- QSUB ---------------- \n");
4786   TESTINST3("qsub r0, r1, r2", 0x00000000, 0x7fffffff, r0, r1, r2, 0);
4787   TESTINST3("qsub r0, r1, r2", 0x00000001, 0x7fffffff, r0, r1, r2, 0);
4788   TESTINST3("qsub r0, r1, r2", 0x00000000, 0x00000000, r0, r1, r2, 0);
4789   TESTINST3("qsub r0, r1, r2", 0xffffffff, 0xffffffff, r0, r1, r2, 0);
4790   TESTINST3("qsub r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
4791   TESTINST3("qsub r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
4792   TESTINST3("qsub r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
4793   TESTINST3("qsub r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
4794 TESTINST3("qsub r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
4795 TESTINST3("qsub r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
4796 TESTINST3("qsub r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
4797 TESTINST3("qsub r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
4798 TESTINST3("qsub r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
4799 TESTINST3("qsub r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
4800 TESTINST3("qsub r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
4801 TESTINST3("qsub r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
4802 TESTINST3("qsub r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
4803 TESTINST3("qsub r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
4804 TESTINST3("qsub r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
4805 TESTINST3("qsub r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
4806 TESTINST3("qsub r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
4807 TESTINST3("qsub r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
4808 TESTINST3("qsub r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
4809 TESTINST3("qsub r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
4810 TESTINST3("qsub r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
4811 TESTINST3("qsub r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
4812 TESTINST3("qsub r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
4813 TESTINST3("qsub r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
4814 TESTINST3("qsub r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
4815 TESTINST3("qsub r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
4816 TESTINST3("qsub r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
4817 TESTINST3("qsub r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
4818 TESTINST3("qsub r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
4819 TESTINST3("qsub r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
4820 TESTINST3("qsub r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
4821 TESTINST3("qsub r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
4822 TESTINST3("qsub r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
4823 TESTINST3("qsub r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
4824 TESTINST3("qsub r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
4825 TESTINST3("qsub r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
4826 TESTINST3("qsub r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
4827 TESTINST3("qsub r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
4828 TESTINST3("qsub r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
4829 TESTINST3("qsub r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
4830 TESTINST3("qsub r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
4831 TESTINST3("qsub r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
4832 TESTINST3("qsub r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
4833 TESTINST3("qsub r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
4834 TESTINST3("qsub r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
4835 TESTINST3("qsub r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
4836 TESTINST3("qsub r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
4837 TESTINST3("qsub r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
4838 TESTINST3("qsub r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
4839 TESTINST3("qsub r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
4840 TESTINST3("qsub r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
4841 TESTINST3("qsub r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
4842 TESTINST3("qsub r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
4843 TESTINST3("qsub r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
4844 
4845   printf("---------------- QDSUB ---------------- \n");
4846   TESTINST3("qdsub r0, r1, r2", 0x00000000, 0x7fffffff, r0, r1, r2, 0);
4847   TESTINST3("qdsub r0, r1, r2", 0x00000001, 0x7fffffff, r0, r1, r2, 0);
4848   TESTINST3("qdsub r0, r1, r2", 0x00000000, 0x00000000, r0, r1, r2, 0);
4849   TESTINST3("qdsub r0, r1, r2", 0xffffffff, 0xffffffff, r0, r1, r2, 0);
4850   TESTINST3("qdsub r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
4851   TESTINST3("qdsub r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
4852   TESTINST3("qdsub r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
4853   TESTINST3("qdsub r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
4854 TESTINST3("qdsub r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
4855 TESTINST3("qdsub r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
4856 TESTINST3("qdsub r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
4857 TESTINST3("qdsub r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
4858 TESTINST3("qdsub r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
4859 TESTINST3("qdsub r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
4860 TESTINST3("qdsub r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
4861 TESTINST3("qdsub r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
4862 TESTINST3("qdsub r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
4863 TESTINST3("qdsub r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
4864 TESTINST3("qdsub r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
4865 TESTINST3("qdsub r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
4866 TESTINST3("qdsub r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
4867 TESTINST3("qdsub r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
4868 TESTINST3("qdsub r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
4869 TESTINST3("qdsub r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
4870 TESTINST3("qdsub r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
4871 TESTINST3("qdsub r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
4872 TESTINST3("qdsub r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
4873 TESTINST3("qdsub r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
4874 TESTINST3("qdsub r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
4875 TESTINST3("qdsub r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
4876 TESTINST3("qdsub r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
4877 TESTINST3("qdsub r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
4878 TESTINST3("qdsub r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
4879 TESTINST3("qdsub r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
4880 TESTINST3("qdsub r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
4881 TESTINST3("qdsub r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
4882 TESTINST3("qdsub r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
4883 TESTINST3("qdsub r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
4884 TESTINST3("qdsub r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
4885 TESTINST3("qdsub r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
4886 TESTINST3("qdsub r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
4887 TESTINST3("qdsub r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
4888 TESTINST3("qdsub r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
4889 TESTINST3("qdsub r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
4890 TESTINST3("qdsub r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
4891 TESTINST3("qdsub r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
4892 TESTINST3("qdsub r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
4893 TESTINST3("qdsub r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
4894 TESTINST3("qdsub r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
4895 TESTINST3("qdsub r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
4896 TESTINST3("qdsub r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
4897 TESTINST3("qdsub r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
4898 TESTINST3("qdsub r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
4899 TESTINST3("qdsub r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
4900 TESTINST3("qdsub r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
4901 TESTINST3("qdsub r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
4902 TESTINST3("qdsub r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
4903 TESTINST3("qdsub r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
4904 
4905   printf("------------ UQSUB16 -----------------------------------\n");
4906   TESTINST3("uqsub16 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
4907   TESTINST3("uqsub16 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
4908   TESTINST3("uqsub16 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
4909   TESTINST3("uqsub16 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
4910   TESTINST3("uqsub16 r0, r1, r2", 0x00000318, 0xff00ff09, r0, r1, r2, 0);
4911   TESTINST3("uqsub16 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
4912   TESTINST3("uqsub16 r0, r1, r2", 0x00020318, 0xff07ff09, r0, r1, r2, 0);
4913   TESTINST3("uqsub16 r0, r1, r2", 0xff07ff09, 0x00020318, r0, r1, r2, 0);
4914 TESTINST3("uqsub16 r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
4915 TESTINST3("uqsub16 r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
4916 TESTINST3("uqsub16 r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
4917 TESTINST3("uqsub16 r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
4918 TESTINST3("uqsub16 r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
4919 TESTINST3("uqsub16 r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
4920 TESTINST3("uqsub16 r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
4921 TESTINST3("uqsub16 r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
4922 TESTINST3("uqsub16 r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
4923 TESTINST3("uqsub16 r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
4924 TESTINST3("uqsub16 r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
4925 TESTINST3("uqsub16 r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
4926 TESTINST3("uqsub16 r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
4927 TESTINST3("uqsub16 r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
4928 TESTINST3("uqsub16 r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
4929 TESTINST3("uqsub16 r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
4930 TESTINST3("uqsub16 r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
4931 TESTINST3("uqsub16 r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
4932 TESTINST3("uqsub16 r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
4933 TESTINST3("uqsub16 r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
4934 TESTINST3("uqsub16 r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
4935 TESTINST3("uqsub16 r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
4936 TESTINST3("uqsub16 r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
4937 TESTINST3("uqsub16 r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
4938 TESTINST3("uqsub16 r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
4939 TESTINST3("uqsub16 r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
4940 TESTINST3("uqsub16 r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
4941 TESTINST3("uqsub16 r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
4942 TESTINST3("uqsub16 r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
4943 TESTINST3("uqsub16 r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
4944 TESTINST3("uqsub16 r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
4945 TESTINST3("uqsub16 r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
4946 TESTINST3("uqsub16 r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
4947 TESTINST3("uqsub16 r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
4948 TESTINST3("uqsub16 r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
4949 TESTINST3("uqsub16 r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
4950 TESTINST3("uqsub16 r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
4951 TESTINST3("uqsub16 r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
4952 TESTINST3("uqsub16 r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
4953 TESTINST3("uqsub16 r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
4954 TESTINST3("uqsub16 r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
4955 TESTINST3("uqsub16 r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
4956 TESTINST3("uqsub16 r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
4957 TESTINST3("uqsub16 r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
4958 TESTINST3("uqsub16 r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
4959 TESTINST3("uqsub16 r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
4960 TESTINST3("uqsub16 r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
4961 TESTINST3("uqsub16 r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
4962 TESTINST3("uqsub16 r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
4963 TESTINST3("uqsub16 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
4964 TESTINST3("uqsub16 r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
4965 
4966   printf("------------ SHADD16 -----------------------------------\n");
4967   TESTINST3("shadd16 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
4968   TESTINST3("shadd16 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
4969   TESTINST3("shadd16 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
4970   TESTINST3("shadd16 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
4971   TESTINST3("shadd16 r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
4972   TESTINST3("shadd16 r0, r1, r2", 0x7fff00ff, 0x80017f01, r0, r1, r2, 0);
4973   TESTINST3("shadd16 r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
4974   TESTINST3("shadd16 r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
4975 TESTINST3("shadd16 r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
4976 TESTINST3("shadd16 r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
4977 TESTINST3("shadd16 r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
4978 TESTINST3("shadd16 r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
4979 TESTINST3("shadd16 r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
4980 TESTINST3("shadd16 r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
4981 TESTINST3("shadd16 r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
4982 TESTINST3("shadd16 r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
4983 TESTINST3("shadd16 r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
4984 TESTINST3("shadd16 r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
4985 TESTINST3("shadd16 r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
4986 TESTINST3("shadd16 r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
4987 TESTINST3("shadd16 r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
4988 TESTINST3("shadd16 r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
4989 TESTINST3("shadd16 r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
4990 TESTINST3("shadd16 r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
4991 TESTINST3("shadd16 r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
4992 TESTINST3("shadd16 r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
4993 TESTINST3("shadd16 r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
4994 TESTINST3("shadd16 r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
4995 TESTINST3("shadd16 r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
4996 TESTINST3("shadd16 r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
4997 TESTINST3("shadd16 r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
4998 TESTINST3("shadd16 r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
4999 TESTINST3("shadd16 r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
5000 TESTINST3("shadd16 r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
5001 TESTINST3("shadd16 r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
5002 TESTINST3("shadd16 r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
5003 TESTINST3("shadd16 r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
5004 TESTINST3("shadd16 r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
5005 TESTINST3("shadd16 r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
5006 TESTINST3("shadd16 r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
5007 TESTINST3("shadd16 r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
5008 TESTINST3("shadd16 r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
5009 TESTINST3("shadd16 r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
5010 TESTINST3("shadd16 r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
5011 TESTINST3("shadd16 r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
5012 TESTINST3("shadd16 r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
5013 TESTINST3("shadd16 r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
5014 TESTINST3("shadd16 r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
5015 TESTINST3("shadd16 r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
5016 TESTINST3("shadd16 r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
5017 TESTINST3("shadd16 r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
5018 TESTINST3("shadd16 r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
5019 TESTINST3("shadd16 r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
5020 TESTINST3("shadd16 r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
5021 TESTINST3("shadd16 r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
5022 TESTINST3("shadd16 r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
5023 TESTINST3("shadd16 r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
5024 TESTINST3("shadd16 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
5025 TESTINST3("shadd16 r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
5026 
5027   printf("------------ SHASX -----------------------------------\n");
5028   TESTINST3("shasx r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
5029   TESTINST3("shasx r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
5030   TESTINST3("shasx r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
5031   TESTINST3("shasx r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
5032   TESTINST3("shasx r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
5033   TESTINST3("shasx r0, r1, r2", 0x7fff00ff, 0x80017f01, r0, r1, r2, 0);
5034   TESTINST3("shasx r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
5035   TESTINST3("shasx r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
5036 TESTINST3("shasx r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
5037 TESTINST3("shasx r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
5038 TESTINST3("shasx r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
5039 TESTINST3("shasx r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
5040 TESTINST3("shasx r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
5041 TESTINST3("shasx r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
5042 TESTINST3("shasx r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
5043 TESTINST3("shasx r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
5044 TESTINST3("shasx r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
5045 TESTINST3("shasx r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
5046 TESTINST3("shasx r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
5047 TESTINST3("shasx r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
5048 TESTINST3("shasx r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
5049 TESTINST3("shasx r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
5050 TESTINST3("shasx r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
5051 TESTINST3("shasx r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
5052 TESTINST3("shasx r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
5053 TESTINST3("shasx r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
5054 TESTINST3("shasx r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
5055 TESTINST3("shasx r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
5056 TESTINST3("shasx r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
5057 TESTINST3("shasx r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
5058 TESTINST3("shasx r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
5059 TESTINST3("shasx r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
5060 TESTINST3("shasx r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
5061 TESTINST3("shasx r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
5062 TESTINST3("shasx r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
5063 TESTINST3("shasx r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
5064 TESTINST3("shasx r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
5065 TESTINST3("shasx r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
5066 TESTINST3("shasx r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
5067 TESTINST3("shasx r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
5068 TESTINST3("shasx r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
5069 TESTINST3("shasx r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
5070 TESTINST3("shasx r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
5071 TESTINST3("shasx r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
5072 TESTINST3("shasx r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
5073 TESTINST3("shasx r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
5074 TESTINST3("shasx r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
5075 TESTINST3("shasx r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
5076 TESTINST3("shasx r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
5077 TESTINST3("shasx r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
5078 TESTINST3("shasx r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
5079 TESTINST3("shasx r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
5080 TESTINST3("shasx r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
5081 TESTINST3("shasx r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
5082 TESTINST3("shasx r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
5083 TESTINST3("shasx r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
5084 TESTINST3("shasx r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
5085 TESTINST3("shasx r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
5086 TESTINST3("shasx r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
5087 
5088   printf("------------ UHASX -----------------------------------\n");
5089   TESTINST3("uhasx r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
5090   TESTINST3("uhasx r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
5091   TESTINST3("uhasx r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
5092   TESTINST3("uhasx r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
5093   TESTINST3("uhasx r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
5094   TESTINST3("uhasx r0, r1, r2", 0x7fff00ff, 0x80017f01, r0, r1, r2, 0);
5095   TESTINST3("uhasx r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
5096   TESTINST3("uhasx r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
5097 TESTINST3("uhasx r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
5098 TESTINST3("uhasx r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
5099 TESTINST3("uhasx r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
5100 TESTINST3("uhasx r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
5101 TESTINST3("uhasx r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
5102 TESTINST3("uhasx r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
5103 TESTINST3("uhasx r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
5104 TESTINST3("uhasx r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
5105 TESTINST3("uhasx r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
5106 TESTINST3("uhasx r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
5107 TESTINST3("uhasx r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
5108 TESTINST3("uhasx r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
5109 TESTINST3("uhasx r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
5110 TESTINST3("uhasx r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
5111 TESTINST3("uhasx r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
5112 TESTINST3("uhasx r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
5113 TESTINST3("uhasx r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
5114 TESTINST3("uhasx r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
5115 TESTINST3("uhasx r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
5116 TESTINST3("uhasx r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
5117 TESTINST3("uhasx r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
5118 TESTINST3("uhasx r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
5119 TESTINST3("uhasx r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
5120 TESTINST3("uhasx r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
5121 TESTINST3("uhasx r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
5122 TESTINST3("uhasx r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
5123 TESTINST3("uhasx r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
5124 TESTINST3("uhasx r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
5125 TESTINST3("uhasx r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
5126 TESTINST3("uhasx r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
5127 TESTINST3("uhasx r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
5128 TESTINST3("uhasx r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
5129 TESTINST3("uhasx r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
5130 TESTINST3("uhasx r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
5131 TESTINST3("uhasx r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
5132 TESTINST3("uhasx r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
5133 TESTINST3("uhasx r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
5134 TESTINST3("uhasx r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
5135 TESTINST3("uhasx r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
5136 TESTINST3("uhasx r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
5137 TESTINST3("uhasx r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
5138 TESTINST3("uhasx r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
5139 TESTINST3("uhasx r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
5140 TESTINST3("uhasx r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
5141 TESTINST3("uhasx r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
5142 TESTINST3("uhasx r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
5143 TESTINST3("uhasx r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
5144 TESTINST3("uhasx r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
5145 TESTINST3("uhasx r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
5146 TESTINST3("uhasx r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
5147 TESTINST3("uhasx r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
5148 
5149   printf("------------ SHSAX -----------------------------------\n");
5150   TESTINST3("shsax r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
5151   TESTINST3("shsax r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
5152   TESTINST3("shsax r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
5153   TESTINST3("shsax r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
5154   TESTINST3("shsax r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
5155   TESTINST3("shsax r0, r1, r2", 0x7fff00ff, 0x80017f01, r0, r1, r2, 0);
5156   TESTINST3("shsax r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
5157   TESTINST3("shsax r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
5158 TESTINST3("shsax r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
5159 TESTINST3("shsax r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
5160 TESTINST3("shsax r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
5161 TESTINST3("shsax r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
5162 TESTINST3("shsax r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
5163 TESTINST3("shsax r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
5164 TESTINST3("shsax r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
5165 TESTINST3("shsax r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
5166 TESTINST3("shsax r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
5167 TESTINST3("shsax r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
5168 TESTINST3("shsax r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
5169 TESTINST3("shsax r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
5170 TESTINST3("shsax r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
5171 TESTINST3("shsax r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
5172 TESTINST3("shsax r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
5173 TESTINST3("shsax r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
5174 TESTINST3("shsax r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
5175 TESTINST3("shsax r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
5176 TESTINST3("shsax r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
5177 TESTINST3("shsax r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
5178 TESTINST3("shsax r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
5179 TESTINST3("shsax r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
5180 TESTINST3("shsax r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
5181 TESTINST3("shsax r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
5182 TESTINST3("shsax r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
5183 TESTINST3("shsax r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
5184 TESTINST3("shsax r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
5185 TESTINST3("shsax r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
5186 TESTINST3("shsax r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
5187 TESTINST3("shsax r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
5188 TESTINST3("shsax r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
5189 TESTINST3("shsax r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
5190 TESTINST3("shsax r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
5191 TESTINST3("shsax r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
5192 TESTINST3("shsax r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
5193 TESTINST3("shsax r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
5194 TESTINST3("shsax r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
5195 TESTINST3("shsax r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
5196 TESTINST3("shsax r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
5197 TESTINST3("shsax r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
5198 TESTINST3("shsax r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
5199 TESTINST3("shsax r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
5200 TESTINST3("shsax r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
5201 TESTINST3("shsax r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
5202 TESTINST3("shsax r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
5203 TESTINST3("shsax r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
5204 TESTINST3("shsax r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
5205 TESTINST3("shsax r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
5206 TESTINST3("shsax r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
5207 TESTINST3("shsax r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
5208 TESTINST3("shsax r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
5209 
5210   printf("------------ UHSAX -----------------------------------\n");
5211   TESTINST3("uhsax r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
5212   TESTINST3("uhsax r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
5213   TESTINST3("uhsax r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
5214   TESTINST3("uhsax r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
5215   TESTINST3("uhsax r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
5216   TESTINST3("uhsax r0, r1, r2", 0x7fff00ff, 0x80017f01, r0, r1, r2, 0);
5217   TESTINST3("uhsax r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
5218   TESTINST3("uhsax r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
5219 TESTINST3("uhsax r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
5220 TESTINST3("uhsax r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
5221 TESTINST3("uhsax r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
5222 TESTINST3("uhsax r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
5223 TESTINST3("uhsax r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
5224 TESTINST3("uhsax r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
5225 TESTINST3("uhsax r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
5226 TESTINST3("uhsax r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
5227 TESTINST3("uhsax r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
5228 TESTINST3("uhsax r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
5229 TESTINST3("uhsax r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
5230 TESTINST3("uhsax r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
5231 TESTINST3("uhsax r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
5232 TESTINST3("uhsax r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
5233 TESTINST3("uhsax r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
5234 TESTINST3("uhsax r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
5235 TESTINST3("uhsax r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
5236 TESTINST3("uhsax r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
5237 TESTINST3("uhsax r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
5238 TESTINST3("uhsax r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
5239 TESTINST3("uhsax r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
5240 TESTINST3("uhsax r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
5241 TESTINST3("uhsax r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
5242 TESTINST3("uhsax r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
5243 TESTINST3("uhsax r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
5244 TESTINST3("uhsax r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
5245 TESTINST3("uhsax r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
5246 TESTINST3("uhsax r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
5247 TESTINST3("uhsax r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
5248 TESTINST3("uhsax r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
5249 TESTINST3("uhsax r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
5250 TESTINST3("uhsax r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
5251 TESTINST3("uhsax r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
5252 TESTINST3("uhsax r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
5253 TESTINST3("uhsax r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
5254 TESTINST3("uhsax r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
5255 TESTINST3("uhsax r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
5256 TESTINST3("uhsax r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
5257 TESTINST3("uhsax r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
5258 TESTINST3("uhsax r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
5259 TESTINST3("uhsax r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
5260 TESTINST3("uhsax r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
5261 TESTINST3("uhsax r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
5262 TESTINST3("uhsax r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
5263 TESTINST3("uhsax r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
5264 TESTINST3("uhsax r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
5265 TESTINST3("uhsax r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
5266 TESTINST3("uhsax r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
5267 TESTINST3("uhsax r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
5268 TESTINST3("uhsax r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
5269 TESTINST3("uhsax r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
5270 
5271   printf("------------ UHSUB8 -----------------------------------\n");
5272   TESTINST3("uhsub8 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
5273   TESTINST3("uhsub8 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
5274   TESTINST3("uhsub8 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
5275   TESTINST3("uhsub8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
5276   TESTINST3("uhsub8 r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
5277   TESTINST3("uhsub8 r0, r1, r2", 0x7fff00ff, 0x80017f01, r0, r1, r2, 0);
5278   TESTINST3("uhsub8 r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
5279   TESTINST3("uhsub8 r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
5280 TESTINST3("uhsub8 r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
5281 TESTINST3("uhsub8 r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
5282 TESTINST3("uhsub8 r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
5283 TESTINST3("uhsub8 r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
5284 TESTINST3("uhsub8 r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
5285 TESTINST3("uhsub8 r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
5286 TESTINST3("uhsub8 r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
5287 TESTINST3("uhsub8 r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
5288 TESTINST3("uhsub8 r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
5289 TESTINST3("uhsub8 r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
5290 TESTINST3("uhsub8 r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
5291 TESTINST3("uhsub8 r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
5292 TESTINST3("uhsub8 r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
5293 TESTINST3("uhsub8 r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
5294 TESTINST3("uhsub8 r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
5295 TESTINST3("uhsub8 r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
5296 TESTINST3("uhsub8 r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
5297 TESTINST3("uhsub8 r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
5298 TESTINST3("uhsub8 r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
5299 TESTINST3("uhsub8 r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
5300 TESTINST3("uhsub8 r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
5301 TESTINST3("uhsub8 r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
5302 TESTINST3("uhsub8 r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
5303 TESTINST3("uhsub8 r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
5304 TESTINST3("uhsub8 r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
5305 TESTINST3("uhsub8 r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
5306 TESTINST3("uhsub8 r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
5307 TESTINST3("uhsub8 r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
5308 TESTINST3("uhsub8 r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
5309 TESTINST3("uhsub8 r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
5310 TESTINST3("uhsub8 r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
5311 TESTINST3("uhsub8 r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
5312 TESTINST3("uhsub8 r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
5313 TESTINST3("uhsub8 r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
5314 TESTINST3("uhsub8 r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
5315 TESTINST3("uhsub8 r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
5316 TESTINST3("uhsub8 r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
5317 TESTINST3("uhsub8 r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
5318 TESTINST3("uhsub8 r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
5319 TESTINST3("uhsub8 r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
5320 TESTINST3("uhsub8 r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
5321 TESTINST3("uhsub8 r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
5322 TESTINST3("uhsub8 r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
5323 TESTINST3("uhsub8 r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
5324 TESTINST3("uhsub8 r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
5325 TESTINST3("uhsub8 r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
5326 TESTINST3("uhsub8 r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
5327 TESTINST3("uhsub8 r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
5328 TESTINST3("uhsub8 r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
5329 TESTINST3("uhsub8 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
5330 TESTINST3("uhsub8 r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
5331 
5332   printf("------------ UHSUB16 -----------------------------------\n");
5333   TESTINST3("uhsub16 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
5334   TESTINST3("uhsub16 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
5335   TESTINST3("uhsub16 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
5336   TESTINST3("uhsub16 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
5337   TESTINST3("uhsub16 r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
5338   TESTINST3("uhsub16 r0, r1, r2", 0x7fff00ff, 0x80017f01, r0, r1, r2, 0);
5339   TESTINST3("uhsub16 r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
5340   TESTINST3("uhsub16 r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
5341 TESTINST3("uhsub16 r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
5342 TESTINST3("uhsub16 r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
5343 TESTINST3("uhsub16 r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
5344 TESTINST3("uhsub16 r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
5345 TESTINST3("uhsub16 r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
5346 TESTINST3("uhsub16 r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
5347 TESTINST3("uhsub16 r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
5348 TESTINST3("uhsub16 r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
5349 TESTINST3("uhsub16 r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
5350 TESTINST3("uhsub16 r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
5351 TESTINST3("uhsub16 r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
5352 TESTINST3("uhsub16 r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
5353 TESTINST3("uhsub16 r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
5354 TESTINST3("uhsub16 r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
5355 TESTINST3("uhsub16 r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
5356 TESTINST3("uhsub16 r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
5357 TESTINST3("uhsub16 r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
5358 TESTINST3("uhsub16 r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
5359 TESTINST3("uhsub16 r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
5360 TESTINST3("uhsub16 r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
5361 TESTINST3("uhsub16 r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
5362 TESTINST3("uhsub16 r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
5363 TESTINST3("uhsub16 r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
5364 TESTINST3("uhsub16 r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
5365 TESTINST3("uhsub16 r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
5366 TESTINST3("uhsub16 r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
5367 TESTINST3("uhsub16 r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
5368 TESTINST3("uhsub16 r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
5369 TESTINST3("uhsub16 r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
5370 TESTINST3("uhsub16 r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
5371 TESTINST3("uhsub16 r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
5372 TESTINST3("uhsub16 r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
5373 TESTINST3("uhsub16 r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
5374 TESTINST3("uhsub16 r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
5375 TESTINST3("uhsub16 r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
5376 TESTINST3("uhsub16 r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
5377 TESTINST3("uhsub16 r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
5378 TESTINST3("uhsub16 r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
5379 TESTINST3("uhsub16 r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
5380 TESTINST3("uhsub16 r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
5381 TESTINST3("uhsub16 r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
5382 TESTINST3("uhsub16 r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
5383 TESTINST3("uhsub16 r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
5384 TESTINST3("uhsub16 r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
5385 TESTINST3("uhsub16 r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
5386 TESTINST3("uhsub16 r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
5387 TESTINST3("uhsub16 r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
5388 TESTINST3("uhsub16 r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
5389 TESTINST3("uhsub16 r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
5390 TESTINST3("uhsub16 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
5391 TESTINST3("uhsub16 r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
5392 
5393   printf("------------ SHSUB16 -----------------------------------\n");
5394   TESTINST3("shsub16 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
5395   TESTINST3("shsub16 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
5396   TESTINST3("shsub16 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
5397   TESTINST3("shsub16 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
5398   TESTINST3("shsub16 r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
5399   TESTINST3("shsub16 r0, r1, r2", 0x7fff00ff, 0x80017f01, r0, r1, r2, 0);
5400   TESTINST3("shsub16 r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
5401   TESTINST3("shsub16 r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
5402 TESTINST3("shsub16 r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
5403 TESTINST3("shsub16 r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
5404 TESTINST3("shsub16 r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
5405 TESTINST3("shsub16 r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
5406 TESTINST3("shsub16 r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
5407 TESTINST3("shsub16 r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
5408 TESTINST3("shsub16 r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
5409 TESTINST3("shsub16 r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
5410 TESTINST3("shsub16 r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
5411 TESTINST3("shsub16 r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
5412 TESTINST3("shsub16 r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
5413 TESTINST3("shsub16 r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
5414 TESTINST3("shsub16 r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
5415 TESTINST3("shsub16 r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
5416 TESTINST3("shsub16 r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
5417 TESTINST3("shsub16 r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
5418 TESTINST3("shsub16 r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
5419 TESTINST3("shsub16 r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
5420 TESTINST3("shsub16 r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
5421 TESTINST3("shsub16 r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
5422 TESTINST3("shsub16 r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
5423 TESTINST3("shsub16 r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
5424 TESTINST3("shsub16 r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
5425 TESTINST3("shsub16 r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
5426 TESTINST3("shsub16 r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
5427 TESTINST3("shsub16 r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
5428 TESTINST3("shsub16 r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
5429 TESTINST3("shsub16 r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
5430 TESTINST3("shsub16 r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
5431 TESTINST3("shsub16 r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
5432 TESTINST3("shsub16 r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
5433 TESTINST3("shsub16 r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
5434 TESTINST3("shsub16 r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
5435 TESTINST3("shsub16 r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
5436 TESTINST3("shsub16 r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
5437 TESTINST3("shsub16 r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
5438 TESTINST3("shsub16 r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
5439 TESTINST3("shsub16 r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
5440 TESTINST3("shsub16 r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
5441 TESTINST3("shsub16 r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
5442 TESTINST3("shsub16 r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
5443 TESTINST3("shsub16 r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
5444 TESTINST3("shsub16 r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
5445 TESTINST3("shsub16 r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
5446 TESTINST3("shsub16 r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
5447 TESTINST3("shsub16 r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
5448 TESTINST3("shsub16 r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
5449 TESTINST3("shsub16 r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
5450 TESTINST3("shsub16 r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
5451 TESTINST3("shsub16 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
5452 TESTINST3("shsub16 r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
5453 
5454   printf("----------------- SMLALBB ----------------- \n");
5455   TESTINST4("smlalbb  r0, r1, r2, r3",
5456                   0x80008000, 0x80008000, 0x00000000, r0, r1, r2, r3, 0);
5457   TESTINST4("smlalbb  r0, r1, r2, r3",
5458                   0x7fff7fff, 0x00000000, 0x00000000, r0, r1, r2, r3, 0);
5459   TESTINST4("smlalbb  r0, r1, r2, r3",
5460                   0x7fff7fff, 0x00010001, 0x00000001, r0, r1, r2, r3, 0);
5461   TESTINST4("smlalbb  r0, r1, r2, r3",
5462                   0x80008000, 0xffffffff, 0x0000001f, r0, r1, r2, r3, 0);
5463   TESTINST4("smlalbb  r0, r1, r2, r3",
5464                   0x00640064, 0x00030003, 0x00000020, r0, r1, r2, r3, 0);
5465   TESTINST4("smlalbb  r0, r1, r2, r3",
5466                   0xffffffff, 0xfffc0001, 0x000000ff, r0, r1, r2, r3, 0);
5467   TESTINST4("smlalbb  r0, r1, r2, r3",
5468                   0xfff70fff, 0x00030003, 0x00000100, r0, r1, r2, r3, 0);
5469 TESTINST4("smlalbb  r0, r1, r2, r3",
5470           0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
5471 TESTINST4("smlalbb  r0, r1, r2, r3",
5472           0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
5473 TESTINST4("smlalbb  r0, r1, r2, r3",
5474           0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
5475 TESTINST4("smlalbb  r0, r1, r2, r3",
5476           0x32fa0095, 0x36f26261, 0x89d2ef86, r0, r1, r2, r3, 0);
5477 TESTINST4("smlalbb  r0, r1, r2, r3",
5478           0x8ed8287c, 0x02c90120, 0xd4b64d54, r0, r1, r2, r3, 0);
5479 TESTINST4("smlalbb  r0, r1, r2, r3",
5480           0xc53aaba9, 0x29300837, 0x0b02c58a, r0, r1, r2, r3, 0);
5481 TESTINST4("smlalbb  r0, r1, r2, r3",
5482           0x216158cb, 0x57a50a01, 0xb0d20777, r0, r1, r2, r3, 0);
5483 TESTINST4("smlalbb  r0, r1, r2, r3",
5484           0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0, r1, r2, r3, 0);
5485 TESTINST4("smlalbb  r0, r1, r2, r3",
5486           0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0, r1, r2, r3, 0);
5487 TESTINST4("smlalbb  r0, r1, r2, r3",
5488           0xf87b961e, 0x1d66879f, 0xf2b64835, r0, r1, r2, r3, 0);
5489 TESTINST4("smlalbb  r0, r1, r2, r3",
5490           0xd65db979, 0xc61b323b, 0xae930a1a, r0, r1, r2, r3, 0);
5491 TESTINST4("smlalbb  r0, r1, r2, r3",
5492           0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0, r1, r2, r3, 0);
5493 TESTINST4("smlalbb  r0, r1, r2, r3",
5494           0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0, r1, r2, r3, 0);
5495 TESTINST4("smlalbb  r0, r1, r2, r3",
5496           0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, r3, 0);
5497 TESTINST4("smlalbb  r0, r1, r2, r3",
5498           0xeaa652c7, 0x137741f4, 0x3dba1164, r0, r1, r2, r3, 0);
5499 TESTINST4("smlalbb  r0, r1, r2, r3",
5500           0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0, r1, r2, r3, 0);
5501 TESTINST4("smlalbb  r0, r1, r2, r3",
5502           0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0, r1, r2, r3, 0);
5503 TESTINST4("smlalbb  r0, r1, r2, r3",
5504           0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, r3, 0);
5505 TESTINST4("smlalbb  r0, r1, r2, r3",
5506           0xe1bb8606, 0x58293969, 0x81616d13, r0, r1, r2, r3, 0);
5507 TESTINST4("smlalbb  r0, r1, r2, r3",
5508           0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0, r1, r2, r3, 0);
5509 TESTINST4("smlalbb  r0, r1, r2, r3",
5510           0x0849a0c2, 0x0872f25a, 0x40b094e2, r0, r1, r2, r3, 0);
5511 TESTINST4("smlalbb  r0, r1, r2, r3",
5512           0x17913309, 0xf1e03d7e, 0x91edc21d, r0, r1, r2, r3, 0);
5513 TESTINST4("smlalbb  r0, r1, r2, r3",
5514           0x5388b5cd, 0x86582032, 0x6034078d, r0, r1, r2, r3, 0);
5515 TESTINST4("smlalbb  r0, r1, r2, r3",
5516           0x181c436b, 0x5de41558, 0xccfa1c7e, r0, r1, r2, r3, 0);
5517 TESTINST4("smlalbb  r0, r1, r2, r3",
5518           0x23ba1b46, 0x4437983c, 0x48d06549, r0, r1, r2, r3, 0);
5519 TESTINST4("smlalbb  r0, r1, r2, r3",
5520           0xa9085781, 0xc6b4ac58, 0xb2aead21, r0, r1, r2, r3, 0);
5521 TESTINST4("smlalbb  r0, r1, r2, r3",
5522           0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0, r1, r2, r3, 0);
5523 TESTINST4("smlalbb  r0, r1, r2, r3",
5524           0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, r3, 0);
5525 TESTINST4("smlalbb  r0, r1, r2, r3",
5526           0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0, r1, r2, r3, 0);
5527 TESTINST4("smlalbb  r0, r1, r2, r3",
5528           0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0, r1, r2, r3, 0);
5529 TESTINST4("smlalbb  r0, r1, r2, r3",
5530           0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0, r1, r2, r3, 0);
5531 TESTINST4("smlalbb  r0, r1, r2, r3",
5532           0xd7ce1909, 0x3e435701, 0x85fbf196, r0, r1, r2, r3, 0);
5533 TESTINST4("smlalbb  r0, r1, r2, r3",
5534           0xb4e16b6e, 0x6e13680a, 0x89436f88, r0, r1, r2, r3, 0);
5535 TESTINST4("smlalbb  r0, r1, r2, r3",
5536           0x44858efc, 0x9002bc30, 0x390d2c2f, r0, r1, r2, r3, 0);
5537 TESTINST4("smlalbb  r0, r1, r2, r3",
5538           0xbea121ab, 0x953ff6ec, 0x80657c40, r0, r1, r2, r3, 0);
5539 TESTINST4("smlalbb  r0, r1, r2, r3",
5540           0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, r3, 0);
5541 TESTINST4("smlalbb  r0, r1, r2, r3",
5542           0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0, r1, r2, r3, 0);
5543 TESTINST4("smlalbb  r0, r1, r2, r3",
5544           0xec0c2f30, 0x5736ed46, 0x231348c0, r0, r1, r2, r3, 0);
5545 TESTINST4("smlalbb  r0, r1, r2, r3",
5546           0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0, r1, r2, r3, 0);
5547 TESTINST4("smlalbb  r0, r1, r2, r3",
5548           0xc1553709, 0x0112b30a, 0x69ec0212, r0, r1, r2, r3, 0);
5549 TESTINST4("smlalbb  r0, r1, r2, r3",
5550           0x74bd0223, 0x03fa9bb5, 0x899d9192, r0, r1, r2, r3, 0);
5551 TESTINST4("smlalbb  r0, r1, r2, r3",
5552           0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, r3, 0);
5553 TESTINST4("smlalbb  r0, r1, r2, r3",
5554           0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0, r1, r2, r3, 0);
5555 TESTINST4("smlalbb  r0, r1, r2, r3",
5556           0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0, r1, r2, r3, 0);
5557 TESTINST4("smlalbb  r0, r1, r2, r3",
5558           0x299da970, 0xe8108f1b, 0xf5818cfb, r0, r1, r2, r3, 0);
5559 TESTINST4("smlalbb  r0, r1, r2, r3",
5560           0xcd90d604, 0xaa5e9444, 0x8217b7df, r0, r1, r2, r3, 0);
5561 TESTINST4("smlalbb  r0, r1, r2, r3",
5562           0xe60743c3, 0x7acb4de3, 0x73c29060, r0, r1, r2, r3, 0);
5563 TESTINST4("smlalbb  r0, r1, r2, r3",
5564           0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0, r1, r2, r3, 0);
5565 TESTINST4("smlalbb  r0, r1, r2, r3",
5566           0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0, r1, r2, r3, 0);
5567 TESTINST4("smlalbb  r0, r1, r2, r3",
5568           0xde99ac2f, 0x0be36f70, 0xeda5110c, r0, r1, r2, r3, 0);
5569 TESTINST4("smlalbb  r0, r1, r2, r3",
5570           0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0);
5571 
5572   printf("----------------- SMLALBT ----------------- \n");
5573   TESTINST4("smlalbt  r0, r1, r2, r3",
5574                   0x80008000, 0x80008000, 0x00000000, r0, r1, r2, r3, 0);
5575   TESTINST4("smlalbt  r0, r1, r2, r3",
5576                   0x7fff7fff, 0x00000000, 0x00000000, r0, r1, r2, r3, 0);
5577   TESTINST4("smlalbt  r0, r1, r2, r3",
5578                   0x7fff7fff, 0x00010001, 0x00000001, r0, r1, r2, r3, 0);
5579   TESTINST4("smlalbt  r0, r1, r2, r3",
5580                   0x80008000, 0xffffffff, 0x0000001f, r0, r1, r2, r3, 0);
5581   TESTINST4("smlalbt  r0, r1, r2, r3",
5582                   0x00640064, 0x00030003, 0x00000020, r0, r1, r2, r3, 0);
5583   TESTINST4("smlalbt  r0, r1, r2, r3",
5584                   0xffffffff, 0xfffc0001, 0x000000ff, r0, r1, r2, r3, 0);
5585   TESTINST4("smlalbt  r0, r1, r2, r3",
5586                   0xfff70fff, 0x00030003, 0x00000100, r0, r1, r2, r3, 0);
5587 TESTINST4("smlalbt  r0, r1, r2, r3",
5588           0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
5589 TESTINST4("smlalbt  r0, r1, r2, r3",
5590           0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
5591 TESTINST4("smlalbt  r0, r1, r2, r3",
5592           0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
5593 TESTINST4("smlalbt  r0, r1, r2, r3",
5594           0x32fa0095, 0x36f26261, 0x89d2ef86, r0, r1, r2, r3, 0);
5595 TESTINST4("smlalbt  r0, r1, r2, r3",
5596           0x8ed8287c, 0x02c90120, 0xd4b64d54, r0, r1, r2, r3, 0);
5597 TESTINST4("smlalbt  r0, r1, r2, r3",
5598           0xc53aaba9, 0x29300837, 0x0b02c58a, r0, r1, r2, r3, 0);
5599 TESTINST4("smlalbt  r0, r1, r2, r3",
5600           0x216158cb, 0x57a50a01, 0xb0d20777, r0, r1, r2, r3, 0);
5601 TESTINST4("smlalbt  r0, r1, r2, r3",
5602           0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0, r1, r2, r3, 0);
5603 TESTINST4("smlalbt  r0, r1, r2, r3",
5604           0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0, r1, r2, r3, 0);
5605 TESTINST4("smlalbt  r0, r1, r2, r3",
5606           0xf87b961e, 0x1d66879f, 0xf2b64835, r0, r1, r2, r3, 0);
5607 TESTINST4("smlalbt  r0, r1, r2, r3",
5608           0xd65db979, 0xc61b323b, 0xae930a1a, r0, r1, r2, r3, 0);
5609 TESTINST4("smlalbt  r0, r1, r2, r3",
5610           0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0, r1, r2, r3, 0);
5611 TESTINST4("smlalbt  r0, r1, r2, r3",
5612           0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0, r1, r2, r3, 0);
5613 TESTINST4("smlalbt  r0, r1, r2, r3",
5614           0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, r3, 0);
5615 TESTINST4("smlalbt  r0, r1, r2, r3",
5616           0xeaa652c7, 0x137741f4, 0x3dba1164, r0, r1, r2, r3, 0);
5617 TESTINST4("smlalbt  r0, r1, r2, r3",
5618           0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0, r1, r2, r3, 0);
5619 TESTINST4("smlalbt  r0, r1, r2, r3",
5620           0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0, r1, r2, r3, 0);
5621 TESTINST4("smlalbt  r0, r1, r2, r3",
5622           0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, r3, 0);
5623 TESTINST4("smlalbt  r0, r1, r2, r3",
5624           0xe1bb8606, 0x58293969, 0x81616d13, r0, r1, r2, r3, 0);
5625 TESTINST4("smlalbt  r0, r1, r2, r3",
5626           0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0, r1, r2, r3, 0);
5627 TESTINST4("smlalbt  r0, r1, r2, r3",
5628           0x0849a0c2, 0x0872f25a, 0x40b094e2, r0, r1, r2, r3, 0);
5629 TESTINST4("smlalbt  r0, r1, r2, r3",
5630           0x17913309, 0xf1e03d7e, 0x91edc21d, r0, r1, r2, r3, 0);
5631 TESTINST4("smlalbt  r0, r1, r2, r3",
5632           0x5388b5cd, 0x86582032, 0x6034078d, r0, r1, r2, r3, 0);
5633 TESTINST4("smlalbt  r0, r1, r2, r3",
5634           0x181c436b, 0x5de41558, 0xccfa1c7e, r0, r1, r2, r3, 0);
5635 TESTINST4("smlalbt  r0, r1, r2, r3",
5636           0x23ba1b46, 0x4437983c, 0x48d06549, r0, r1, r2, r3, 0);
5637 TESTINST4("smlalbt  r0, r1, r2, r3",
5638           0xa9085781, 0xc6b4ac58, 0xb2aead21, r0, r1, r2, r3, 0);
5639 TESTINST4("smlalbt  r0, r1, r2, r3",
5640           0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0, r1, r2, r3, 0);
5641 TESTINST4("smlalbt  r0, r1, r2, r3",
5642           0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, r3, 0);
5643 TESTINST4("smlalbt  r0, r1, r2, r3",
5644           0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0, r1, r2, r3, 0);
5645 TESTINST4("smlalbt  r0, r1, r2, r3",
5646           0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0, r1, r2, r3, 0);
5647 TESTINST4("smlalbt  r0, r1, r2, r3",
5648           0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0, r1, r2, r3, 0);
5649 TESTINST4("smlalbt  r0, r1, r2, r3",
5650           0xd7ce1909, 0x3e435701, 0x85fbf196, r0, r1, r2, r3, 0);
5651 TESTINST4("smlalbt  r0, r1, r2, r3",
5652           0xb4e16b6e, 0x6e13680a, 0x89436f88, r0, r1, r2, r3, 0);
5653 TESTINST4("smlalbt  r0, r1, r2, r3",
5654           0x44858efc, 0x9002bc30, 0x390d2c2f, r0, r1, r2, r3, 0);
5655 TESTINST4("smlalbt  r0, r1, r2, r3",
5656           0xbea121ab, 0x953ff6ec, 0x80657c40, r0, r1, r2, r3, 0);
5657 TESTINST4("smlalbt  r0, r1, r2, r3",
5658           0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, r3, 0);
5659 TESTINST4("smlalbt  r0, r1, r2, r3",
5660           0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0, r1, r2, r3, 0);
5661 TESTINST4("smlalbt  r0, r1, r2, r3",
5662           0xec0c2f30, 0x5736ed46, 0x231348c0, r0, r1, r2, r3, 0);
5663 TESTINST4("smlalbt  r0, r1, r2, r3",
5664           0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0, r1, r2, r3, 0);
5665 TESTINST4("smlalbt  r0, r1, r2, r3",
5666           0xc1553709, 0x0112b30a, 0x69ec0212, r0, r1, r2, r3, 0);
5667 TESTINST4("smlalbt  r0, r1, r2, r3",
5668           0x74bd0223, 0x03fa9bb5, 0x899d9192, r0, r1, r2, r3, 0);
5669 TESTINST4("smlalbt  r0, r1, r2, r3",
5670           0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, r3, 0);
5671 TESTINST4("smlalbt  r0, r1, r2, r3",
5672           0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0, r1, r2, r3, 0);
5673 TESTINST4("smlalbt  r0, r1, r2, r3",
5674           0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0, r1, r2, r3, 0);
5675 TESTINST4("smlalbt  r0, r1, r2, r3",
5676           0x299da970, 0xe8108f1b, 0xf5818cfb, r0, r1, r2, r3, 0);
5677 TESTINST4("smlalbt  r0, r1, r2, r3",
5678           0xcd90d604, 0xaa5e9444, 0x8217b7df, r0, r1, r2, r3, 0);
5679 TESTINST4("smlalbt  r0, r1, r2, r3",
5680           0xe60743c3, 0x7acb4de3, 0x73c29060, r0, r1, r2, r3, 0);
5681 TESTINST4("smlalbt  r0, r1, r2, r3",
5682           0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0, r1, r2, r3, 0);
5683 TESTINST4("smlalbt  r0, r1, r2, r3",
5684           0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0, r1, r2, r3, 0);
5685 TESTINST4("smlalbt  r0, r1, r2, r3",
5686           0xde99ac2f, 0x0be36f70, 0xeda5110c, r0, r1, r2, r3, 0);
5687 TESTINST4("smlalbt  r0, r1, r2, r3",
5688           0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0);
5689 
5690   printf("----------------- SMLALTB ----------------- \n");
5691   TESTINST4("smlaltb  r0, r1, r2, r3",
5692                   0x80008000, 0x80008000, 0x00000000, r0, r1, r2, r3, 0);
5693   TESTINST4("smlaltb  r0, r1, r2, r3",
5694                   0x7fff7fff, 0x00000000, 0x00000000, r0, r1, r2, r3, 0);
5695   TESTINST4("smlaltb  r0, r1, r2, r3",
5696                   0x7fff7fff, 0x00010001, 0x00000001, r0, r1, r2, r3, 0);
5697   TESTINST4("smlaltb  r0, r1, r2, r3",
5698                   0x80008000, 0xffffffff, 0x0000001f, r0, r1, r2, r3, 0);
5699   TESTINST4("smlaltb  r0, r1, r2, r3",
5700                   0x00640064, 0x00030003, 0x00000020, r0, r1, r2, r3, 0);
5701   TESTINST4("smlaltb  r0, r1, r2, r3",
5702                   0xffffffff, 0xfffc0001, 0x000000ff, r0, r1, r2, r3, 0);
5703   TESTINST4("smlaltb  r0, r1, r2, r3",
5704                   0xfff70fff, 0x00030003, 0x00000100, r0, r1, r2, r3, 0);
5705 TESTINST4("smlaltb  r0, r1, r2, r3",
5706           0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
5707 TESTINST4("smlaltb  r0, r1, r2, r3",
5708           0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
5709 TESTINST4("smlaltb  r0, r1, r2, r3",
5710           0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
5711 TESTINST4("smlaltb  r0, r1, r2, r3",
5712           0x32fa0095, 0x36f26261, 0x89d2ef86, r0, r1, r2, r3, 0);
5713 TESTINST4("smlaltb  r0, r1, r2, r3",
5714           0x8ed8287c, 0x02c90120, 0xd4b64d54, r0, r1, r2, r3, 0);
5715 TESTINST4("smlaltb  r0, r1, r2, r3",
5716           0xc53aaba9, 0x29300837, 0x0b02c58a, r0, r1, r2, r3, 0);
5717 TESTINST4("smlaltb  r0, r1, r2, r3",
5718           0x216158cb, 0x57a50a01, 0xb0d20777, r0, r1, r2, r3, 0);
5719 TESTINST4("smlaltb  r0, r1, r2, r3",
5720           0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0, r1, r2, r3, 0);
5721 TESTINST4("smlaltb  r0, r1, r2, r3",
5722           0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0, r1, r2, r3, 0);
5723 TESTINST4("smlaltb  r0, r1, r2, r3",
5724           0xf87b961e, 0x1d66879f, 0xf2b64835, r0, r1, r2, r3, 0);
5725 TESTINST4("smlaltb  r0, r1, r2, r3",
5726           0xd65db979, 0xc61b323b, 0xae930a1a, r0, r1, r2, r3, 0);
5727 TESTINST4("smlaltb  r0, r1, r2, r3",
5728           0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0, r1, r2, r3, 0);
5729 TESTINST4("smlaltb  r0, r1, r2, r3",
5730           0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0, r1, r2, r3, 0);
5731 TESTINST4("smlaltb  r0, r1, r2, r3",
5732           0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, r3, 0);
5733 TESTINST4("smlaltb  r0, r1, r2, r3",
5734           0xeaa652c7, 0x137741f4, 0x3dba1164, r0, r1, r2, r3, 0);
5735 TESTINST4("smlaltb  r0, r1, r2, r3",
5736           0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0, r1, r2, r3, 0);
5737 TESTINST4("smlaltb  r0, r1, r2, r3",
5738           0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0, r1, r2, r3, 0);
5739 TESTINST4("smlaltb  r0, r1, r2, r3",
5740           0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, r3, 0);
5741 TESTINST4("smlaltb  r0, r1, r2, r3",
5742           0xe1bb8606, 0x58293969, 0x81616d13, r0, r1, r2, r3, 0);
5743 TESTINST4("smlaltb  r0, r1, r2, r3",
5744           0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0, r1, r2, r3, 0);
5745 TESTINST4("smlaltb  r0, r1, r2, r3",
5746           0x0849a0c2, 0x0872f25a, 0x40b094e2, r0, r1, r2, r3, 0);
5747 TESTINST4("smlaltb  r0, r1, r2, r3",
5748           0x17913309, 0xf1e03d7e, 0x91edc21d, r0, r1, r2, r3, 0);
5749 TESTINST4("smlaltb  r0, r1, r2, r3",
5750           0x5388b5cd, 0x86582032, 0x6034078d, r0, r1, r2, r3, 0);
5751 TESTINST4("smlaltb  r0, r1, r2, r3",
5752           0x181c436b, 0x5de41558, 0xccfa1c7e, r0, r1, r2, r3, 0);
5753 TESTINST4("smlaltb  r0, r1, r2, r3",
5754           0x23ba1b46, 0x4437983c, 0x48d06549, r0, r1, r2, r3, 0);
5755 TESTINST4("smlaltb  r0, r1, r2, r3",
5756           0xa9085781, 0xc6b4ac58, 0xb2aead21, r0, r1, r2, r3, 0);
5757 TESTINST4("smlaltb  r0, r1, r2, r3",
5758           0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0, r1, r2, r3, 0);
5759 TESTINST4("smlaltb  r0, r1, r2, r3",
5760           0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, r3, 0);
5761 TESTINST4("smlaltb  r0, r1, r2, r3",
5762           0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0, r1, r2, r3, 0);
5763 TESTINST4("smlaltb  r0, r1, r2, r3",
5764           0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0, r1, r2, r3, 0);
5765 TESTINST4("smlaltb  r0, r1, r2, r3",
5766           0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0, r1, r2, r3, 0);
5767 TESTINST4("smlaltb  r0, r1, r2, r3",
5768           0xd7ce1909, 0x3e435701, 0x85fbf196, r0, r1, r2, r3, 0);
5769 TESTINST4("smlaltb  r0, r1, r2, r3",
5770           0xb4e16b6e, 0x6e13680a, 0x89436f88, r0, r1, r2, r3, 0);
5771 TESTINST4("smlaltb  r0, r1, r2, r3",
5772           0x44858efc, 0x9002bc30, 0x390d2c2f, r0, r1, r2, r3, 0);
5773 TESTINST4("smlaltb  r0, r1, r2, r3",
5774           0xbea121ab, 0x953ff6ec, 0x80657c40, r0, r1, r2, r3, 0);
5775 TESTINST4("smlaltb  r0, r1, r2, r3",
5776           0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, r3, 0);
5777 TESTINST4("smlaltb  r0, r1, r2, r3",
5778           0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0, r1, r2, r3, 0);
5779 TESTINST4("smlaltb  r0, r1, r2, r3",
5780           0xec0c2f30, 0x5736ed46, 0x231348c0, r0, r1, r2, r3, 0);
5781 TESTINST4("smlaltb  r0, r1, r2, r3",
5782           0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0, r1, r2, r3, 0);
5783 TESTINST4("smlaltb  r0, r1, r2, r3",
5784           0xc1553709, 0x0112b30a, 0x69ec0212, r0, r1, r2, r3, 0);
5785 TESTINST4("smlaltb  r0, r1, r2, r3",
5786           0x74bd0223, 0x03fa9bb5, 0x899d9192, r0, r1, r2, r3, 0);
5787 TESTINST4("smlaltb  r0, r1, r2, r3",
5788           0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, r3, 0);
5789 TESTINST4("smlaltb  r0, r1, r2, r3",
5790           0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0, r1, r2, r3, 0);
5791 TESTINST4("smlaltb  r0, r1, r2, r3",
5792           0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0, r1, r2, r3, 0);
5793 TESTINST4("smlaltb  r0, r1, r2, r3",
5794           0x299da970, 0xe8108f1b, 0xf5818cfb, r0, r1, r2, r3, 0);
5795 TESTINST4("smlaltb  r0, r1, r2, r3",
5796           0xcd90d604, 0xaa5e9444, 0x8217b7df, r0, r1, r2, r3, 0);
5797 TESTINST4("smlaltb  r0, r1, r2, r3",
5798           0xe60743c3, 0x7acb4de3, 0x73c29060, r0, r1, r2, r3, 0);
5799 TESTINST4("smlaltb  r0, r1, r2, r3",
5800           0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0, r1, r2, r3, 0);
5801 TESTINST4("smlaltb  r0, r1, r2, r3",
5802           0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0, r1, r2, r3, 0);
5803 TESTINST4("smlaltb  r0, r1, r2, r3",
5804           0xde99ac2f, 0x0be36f70, 0xeda5110c, r0, r1, r2, r3, 0);
5805 TESTINST4("smlaltb  r0, r1, r2, r3",
5806           0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0);
5807 
5808   printf("----------------- SMLALTT ----------------- \n");
5809   TESTINST4("smlaltt  r0, r1, r2, r3",
5810                   0x80008000, 0x80008000, 0x00000000, r0, r1, r2, r3, 0);
5811   TESTINST4("smlaltt  r0, r1, r2, r3",
5812                   0x7fff7fff, 0x00000000, 0x00000000, r0, r1, r2, r3, 0);
5813   TESTINST4("smlaltt  r0, r1, r2, r3",
5814                   0x7fff7fff, 0x00010001, 0x00000001, r0, r1, r2, r3, 0);
5815   TESTINST4("smlaltt  r0, r1, r2, r3",
5816                   0x80008000, 0xffffffff, 0x0000001f, r0, r1, r2, r3, 0);
5817   TESTINST4("smlaltt  r0, r1, r2, r3",
5818                   0x00640064, 0x00030003, 0x00000020, r0, r1, r2, r3, 0);
5819   TESTINST4("smlaltt  r0, r1, r2, r3",
5820                   0xffffffff, 0xfffc0001, 0x000000ff, r0, r1, r2, r3, 0);
5821   TESTINST4("smlaltt  r0, r1, r2, r3",
5822                   0xfff70fff, 0x00030003, 0x00000100, r0, r1, r2, r3, 0);
5823 TESTINST4("smlaltt  r0, r1, r2, r3",
5824           0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
5825 TESTINST4("smlaltt  r0, r1, r2, r3",
5826           0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
5827 TESTINST4("smlaltt  r0, r1, r2, r3",
5828           0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
5829 TESTINST4("smlaltt  r0, r1, r2, r3",
5830           0x32fa0095, 0x36f26261, 0x89d2ef86, r0, r1, r2, r3, 0);
5831 TESTINST4("smlaltt  r0, r1, r2, r3",
5832           0x8ed8287c, 0x02c90120, 0xd4b64d54, r0, r1, r2, r3, 0);
5833 TESTINST4("smlaltt  r0, r1, r2, r3",
5834           0xc53aaba9, 0x29300837, 0x0b02c58a, r0, r1, r2, r3, 0);
5835 TESTINST4("smlaltt  r0, r1, r2, r3",
5836           0x216158cb, 0x57a50a01, 0xb0d20777, r0, r1, r2, r3, 0);
5837 TESTINST4("smlaltt  r0, r1, r2, r3",
5838           0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0, r1, r2, r3, 0);
5839 TESTINST4("smlaltt  r0, r1, r2, r3",
5840           0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0, r1, r2, r3, 0);
5841 TESTINST4("smlaltt  r0, r1, r2, r3",
5842           0xf87b961e, 0x1d66879f, 0xf2b64835, r0, r1, r2, r3, 0);
5843 TESTINST4("smlaltt  r0, r1, r2, r3",
5844           0xd65db979, 0xc61b323b, 0xae930a1a, r0, r1, r2, r3, 0);
5845 TESTINST4("smlaltt  r0, r1, r2, r3",
5846           0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0, r1, r2, r3, 0);
5847 TESTINST4("smlaltt  r0, r1, r2, r3",
5848           0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0, r1, r2, r3, 0);
5849 TESTINST4("smlaltt  r0, r1, r2, r3",
5850           0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, r3, 0);
5851 TESTINST4("smlaltt  r0, r1, r2, r3",
5852           0xeaa652c7, 0x137741f4, 0x3dba1164, r0, r1, r2, r3, 0);
5853 TESTINST4("smlaltt  r0, r1, r2, r3",
5854           0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0, r1, r2, r3, 0);
5855 TESTINST4("smlaltt  r0, r1, r2, r3",
5856           0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0, r1, r2, r3, 0);
5857 TESTINST4("smlaltt  r0, r1, r2, r3",
5858           0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, r3, 0);
5859 TESTINST4("smlaltt  r0, r1, r2, r3",
5860           0xe1bb8606, 0x58293969, 0x81616d13, r0, r1, r2, r3, 0);
5861 TESTINST4("smlaltt  r0, r1, r2, r3",
5862           0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0, r1, r2, r3, 0);
5863 TESTINST4("smlaltt  r0, r1, r2, r3",
5864           0x0849a0c2, 0x0872f25a, 0x40b094e2, r0, r1, r2, r3, 0);
5865 TESTINST4("smlaltt  r0, r1, r2, r3",
5866           0x17913309, 0xf1e03d7e, 0x91edc21d, r0, r1, r2, r3, 0);
5867 TESTINST4("smlaltt  r0, r1, r2, r3",
5868           0x5388b5cd, 0x86582032, 0x6034078d, r0, r1, r2, r3, 0);
5869 TESTINST4("smlaltt  r0, r1, r2, r3",
5870           0x181c436b, 0x5de41558, 0xccfa1c7e, r0, r1, r2, r3, 0);
5871 TESTINST4("smlaltt  r0, r1, r2, r3",
5872           0x23ba1b46, 0x4437983c, 0x48d06549, r0, r1, r2, r3, 0);
5873 TESTINST4("smlaltt  r0, r1, r2, r3",
5874           0xa9085781, 0xc6b4ac58, 0xb2aead21, r0, r1, r2, r3, 0);
5875 TESTINST4("smlaltt  r0, r1, r2, r3",
5876           0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0, r1, r2, r3, 0);
5877 TESTINST4("smlaltt  r0, r1, r2, r3",
5878           0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, r3, 0);
5879 TESTINST4("smlaltt  r0, r1, r2, r3",
5880           0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0, r1, r2, r3, 0);
5881 TESTINST4("smlaltt  r0, r1, r2, r3",
5882           0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0, r1, r2, r3, 0);
5883 TESTINST4("smlaltt  r0, r1, r2, r3",
5884           0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0, r1, r2, r3, 0);
5885 TESTINST4("smlaltt  r0, r1, r2, r3",
5886           0xd7ce1909, 0x3e435701, 0x85fbf196, r0, r1, r2, r3, 0);
5887 TESTINST4("smlaltt  r0, r1, r2, r3",
5888           0xb4e16b6e, 0x6e13680a, 0x89436f88, r0, r1, r2, r3, 0);
5889 TESTINST4("smlaltt  r0, r1, r2, r3",
5890           0x44858efc, 0x9002bc30, 0x390d2c2f, r0, r1, r2, r3, 0);
5891 TESTINST4("smlaltt  r0, r1, r2, r3",
5892           0xbea121ab, 0x953ff6ec, 0x80657c40, r0, r1, r2, r3, 0);
5893 TESTINST4("smlaltt  r0, r1, r2, r3",
5894           0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, r3, 0);
5895 TESTINST4("smlaltt  r0, r1, r2, r3",
5896           0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0, r1, r2, r3, 0);
5897 TESTINST4("smlaltt  r0, r1, r2, r3",
5898           0xec0c2f30, 0x5736ed46, 0x231348c0, r0, r1, r2, r3, 0);
5899 TESTINST4("smlaltt  r0, r1, r2, r3",
5900           0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0, r1, r2, r3, 0);
5901 TESTINST4("smlaltt  r0, r1, r2, r3",
5902           0xc1553709, 0x0112b30a, 0x69ec0212, r0, r1, r2, r3, 0);
5903 TESTINST4("smlaltt  r0, r1, r2, r3",
5904           0x74bd0223, 0x03fa9bb5, 0x899d9192, r0, r1, r2, r3, 0);
5905 TESTINST4("smlaltt  r0, r1, r2, r3",
5906           0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, r3, 0);
5907 TESTINST4("smlaltt  r0, r1, r2, r3",
5908           0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0, r1, r2, r3, 0);
5909 TESTINST4("smlaltt  r0, r1, r2, r3",
5910           0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0, r1, r2, r3, 0);
5911 TESTINST4("smlaltt  r0, r1, r2, r3",
5912           0x299da970, 0xe8108f1b, 0xf5818cfb, r0, r1, r2, r3, 0);
5913 TESTINST4("smlaltt  r0, r1, r2, r3",
5914           0xcd90d604, 0xaa5e9444, 0x8217b7df, r0, r1, r2, r3, 0);
5915 TESTINST4("smlaltt  r0, r1, r2, r3",
5916           0xe60743c3, 0x7acb4de3, 0x73c29060, r0, r1, r2, r3, 0);
5917 TESTINST4("smlaltt  r0, r1, r2, r3",
5918           0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0, r1, r2, r3, 0);
5919 TESTINST4("smlaltt  r0, r1, r2, r3",
5920           0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0, r1, r2, r3, 0);
5921 TESTINST4("smlaltt  r0, r1, r2, r3",
5922           0xde99ac2f, 0x0be36f70, 0xeda5110c, r0, r1, r2, r3, 0);
5923 TESTINST4("smlaltt  r0, r1, r2, r3",
5924           0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0);
5925 
5926 /*
5927 TESTINST3("theinsn", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
5928 TESTINST3("theinsn", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
5929 TESTINST3("theinsn", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
5930 TESTINST3("theinsn", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
5931 TESTINST3("theinsn", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
5932 TESTINST3("theinsn", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
5933 TESTINST3("theinsn", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
5934 TESTINST3("theinsn", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
5935 TESTINST3("theinsn", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
5936 TESTINST3("theinsn", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
5937 */
5938 
5939   return 0;
5940 }
5941