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