blob: 3ccc856ba3ea7b30430af7bba2ff30f7f6c3a005 [file] [log] [blame]
sewardj81e06dc2010-08-29 12:35:37 +00001
2/* How to compile:
3 gcc -marm -O -g -Wall -mcpu=cortex-a8 -o test_arm_v6int v6int.c
4*/
5
6#include <stdio.h>
7
8static int gen_cin(cin)
9{
10 int r = ((cin & 1) ? (1<<29) : 0);
11 //r |= (1 << 31) | (1 << 30);
12 return r;
13}
14
15/* test macros to generate and output the result of a single instruction */
16#define TESTINST2(instruction, RMval, RD, RM, carryin) \
17{ \
18 unsigned int out; \
19 unsigned int cpsr; \
20\
21 __asm__ volatile( \
22 "msr cpsr_fs, %3;" \
23 "mov " #RM ",%2;" \
24 /* set #RD to 0x55555555 so we can see which parts get overwritten */ \
25 "mov " #RD ", #0x55" "\n\t" \
26 "orr " #RD "," #RD "," #RD ", LSL #8" "\n\t" \
27 "orr " #RD "," #RD "," #RD ", LSL #16" "\n\t" \
28 instruction ";" \
29 "mov %0," #RD ";" \
30 "mrs %1,cpsr;" \
31 : "=&r" (out), "=&r" (cpsr) \
32 : "r" (RMval), "r" (gen_cin(carryin)) \
33 : #RD, #RM, "cc", "memory" \
34 ); \
35 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", \
36 instruction, out, RMval, \
37 carryin ? 1 : 0, \
38 cpsr & 0xffff0000, \
39 ((1<<31) & cpsr) ? 'N' : ' ', \
40 ((1<<30) & cpsr) ? 'Z' : ' ', \
41 ((1<<29) & cpsr) ? 'C' : ' ', \
42 ((1<<28) & cpsr) ? 'V' : ' ', \
43 ((1<<27) & cpsr) ? 'Q' : ' ', \
44 (cpsr >> 19) & 1, (cpsr >> 18) & 1, (cpsr >> 17) & 1, (cpsr >> 16) & 1 \
45 ); \
46}
47
48#define TESTINST3(instruction, RMval, RNval, RD, RM, RN, carryin) \
49{ \
50 unsigned int out; \
51 unsigned int cpsr; \
52\
53 __asm__ volatile( \
54 "msr cpsr_fs, %4;" \
55 "mov " #RM ",%2;" \
56 "mov " #RN ",%3;" \
57 instruction ";" \
58 "mov %0," #RD ";" \
59 "mrs %1,cpsr;" \
60 : "=&r" (out), "=&r" (cpsr) \
61 : "r" (RMval), "r" (RNval), "r" (gen_cin(carryin)) \
62 : #RD, #RM, #RN, "cc", "memory" \
63 ); \
64 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", \
65 instruction, out, RMval, RNval, \
66 carryin ? 1 : 0, \
67 cpsr & 0xffff0000, \
68 ((1<<31) & cpsr) ? 'N' : ' ', \
69 ((1<<30) & cpsr) ? 'Z' : ' ', \
70 ((1<<29) & cpsr) ? 'C' : ' ', \
71 ((1<<28) & cpsr) ? 'V' : ' ', \
72 ((1<<27) & cpsr) ? 'Q' : ' ', \
73 (cpsr >> 19) & 1, (cpsr >> 18) & 1, (cpsr >> 17) & 1, (cpsr >> 16) & 1 \
74 ); \
75}
76
77#define TESTINST4(instruction, RMval, RNval, RSval, RD, RM, RN, RS, carryin) \
78{ \
79 unsigned int out; \
80 unsigned int cpsr; \
81\
82 __asm__ volatile( \
83 "msr cpsr_fs, %5;" \
84 "mov " #RM ",%2;" \
85 "mov " #RN ",%3;" \
86 "mov " #RS ",%4;" \
87 instruction ";" \
88 "mov %0," #RD ";" \
89 "mrs %1,cpsr;" \
90 : "=&r" (out), "=&r" (cpsr) \
91 : "r" (RMval), "r" (RNval), "r" (RSval), "r" (gen_cin(carryin)) \
92 : #RD, #RM, #RN, #RS, "cc", "memory" \
93 ); \
94 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", \
95 instruction, out, RMval, RNval, RSval, \
96 carryin ? 1 : 0, \
97 cpsr & 0xffff0000, \
98 ((1<<31) & cpsr) ? 'N' : ' ', \
99 ((1<<30) & cpsr) ? 'Z' : ' ', \
100 ((1<<29) & cpsr) ? 'C' : ' ', \
101 ((1<<28) & cpsr) ? 'V' : ' ', \
102 ((1<<27) & cpsr) ? 'Q' : ' ', \
103 (cpsr >> 19) & 1, (cpsr >> 18) & 1, (cpsr >> 17) & 1, (cpsr >> 16) & 1 \
104 ); \
105}
106
107#define TESTINST4_2OUT(instruction, RDval, RD2val, RMval, RSval, RD, RD2, RM, RS, carryin) \
108{ \
109 unsigned int out; \
110 unsigned int out2; \
111 unsigned int cpsr; \
112\
113 __asm__ volatile( \
114 "msr cpsr_fs, %7;" \
115 "mov " #RD ",%3;" \
116 "mov " #RD2 ",%4;" \
117 "mov " #RM ",%5;" \
118 "mov " #RS ",%6;" \
119 instruction ";" \
120 "mov %0," #RD ";" \
121 "mov %1," #RD2 ";" \
122 "mrs %2,cpsr;" \
123 : "=&r" (out), "=&r" (out2), "=&r" (cpsr) \
124 : "r" (RDval), "r" (RD2val), "r" (RMval), "r" (RSval), "r" (gen_cin(carryin)) \
125 : #RD, #RD2, #RM, #RS, "cc", "memory" \
126 ); \
127 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", \
128 instruction, out, out2, RMval, RSval, \
129 carryin ? 1 : 0, \
130 cpsr & 0xffff0000, \
131 ((1<<31) & cpsr) ? 'N' : ' ', \
132 ((1<<30) & cpsr) ? 'Z' : ' ', \
133 ((1<<29) & cpsr) ? 'C' : ' ', \
134 ((1<<28) & cpsr) ? 'V' : ' ', \
135 ((1<<27) & cpsr) ? 'Q' : ' ', \
136 (cpsr >> 19) & 1, (cpsr >> 18) & 1, (cpsr >> 17) & 1, (cpsr >> 16) & 1 \
137 ); \
138}
139
140/* helpers */
141#define TESTCARRY { int c = 0; for (c = 0; c < 2; c++) {
142#define TESTCARRYEND }}
143
144
145
146
147int main(int argc, char **argv)
148{
149 printf("MUL\n");
150 TESTINST3("mul r0, r1, r2", 0, 0, r0, r1, r2, 0);
151 TESTINST3("mul r0, r1, r2", 0xffffffff, 0, r0, r1, r2, 0);
152 TESTINST3("mul r0, r1, r2", 0, 0xffffffff, r0, r1, r2, 0);
153 TESTINST3("mul r0, r1, r2", 0xffffffff, 0xffffffff, r0, r1, r2, 0);
154 TESTINST3("mul r0, r1, r2", 0x7fffffff, 0x7fffffff, r0, r1, r2, 0);
155 TESTINST3("mul r0, r1, r2", 0x0000ffff, 0x0000ffff, r0, r1, r2, 0);
156
157#if 0
158 printf("MULS\n");
159 TESTINST3("muls r0, r1, r2", 0, 0, r0, r1, r2, 0);
160 TESTINST3("muls r0, r1, r2", 0xffffffff, 0, r0, r1, r2, 0);
161 TESTINST3("muls r0, r1, r2", 0, 0xffffffff, r0, r1, r2, 0);
162 TESTINST3("muls r0, r1, r2", 0xffffffff, 0xffffffff, r0, r1, r2, 0);
163 TESTINST3("muls r0, r1, r2", 0x7fffffff, 0x7fffffff, r0, r1, r2, 0);
164 TESTINST3("muls r0, r1, r2", 0x0000ffff, 0x0000ffff, r0, r1, r2, 0);
165#endif
166
167 printf("MLA\n");
168 TESTINST4("mla r0, r1, r2, r3", 0, 0, 1, r0, r1, r2, r3, 0);
169 TESTINST4("mla r0, r1, r2, r3", 0xffffffff, 0, 1, r0, r1, r2, r3, 0);
170 TESTINST4("mla r0, r1, r2, r3", 0, 0xffffffff, 1, r0, r1, r2, r3, 0);
171 TESTINST4("mla r0, r1, r2, r3", 0xffffffff, 0xffffffff, 1, r0, r1, r2, r3, 0);
172 TESTINST4("mla r0, r1, r2, r3", 0x7fffffff, 0x7fffffff, 1, r0, r1, r2, r3, 0);
173 TESTINST4("mla r0, r1, r2, r3", 0x0000ffff, 0x0000ffff, 1, r0, r1, r2, r3, 0);
174
175#if 0
176 printf("MLAS\n");
177 TESTINST4("mlas r0, r1, r2, r3", 0, 0, 1, r0, r1, r2, r3, 0);
178 TESTINST4("mlas r0, r1, r2, r3", 0xffffffff, 0, 1, r0, r1, r2, r3, 0);
179 TESTINST4("mlas r0, r1, r2, r3", 0, 0xffffffff, 1, r0, r1, r2, r3, 0);
180 TESTINST4("mlas r0, r1, r2, r3", 0xffffffff, 0xffffffff, 1, r0, r1, r2, r3, 0);
181 TESTINST4("mlas r0, r1, r2, r3", 0x7fffffff, 0x7fffffff, 1, r0, r1, r2, r3, 0);
182 TESTINST4("mlas r0, r1, r2, r3", 0x0000ffff, 0x0000ffff, 1, r0, r1, r2, r3, 0);
183#endif
184
185 printf("MLS\n");
186 TESTINST4("mls r0, r1, r2, r3", 0, 0, 1, r0, r1, r2, r3, 0);
187 TESTINST4("mls r0, r1, r2, r3", 0xffffffff, 0, 1, r0, r1, r2, r3, 0);
188 TESTINST4("mls r0, r1, r2, r3", 0, 0xffffffff, 1, r0, r1, r2, r3, 0);
189 TESTINST4("mls r0, r1, r2, r3", 0xffffffff, 0xffffffff, 1, r0, r1, r2, r3, 0);
190 TESTINST4("mls r0, r1, r2, r3", 0x7fffffff, 0x7fffffff, 1, r0, r1, r2, r3, 0);
191 TESTINST4("mls r0, r1, r2, r3", 0x0000ffff, 0x0000ffff, 1, r0, r1, r2, r3, 0);
192
193 printf("UMULL\n");
194 TESTINST4_2OUT("umull r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
195 TESTINST4_2OUT("umull r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
196 TESTINST4_2OUT("umull r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
197 TESTINST4_2OUT("umull r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
198 TESTINST4_2OUT("umull r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
199 TESTINST4_2OUT("umull r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
200#if 0
201 TESTINST4_2OUT("umulls r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
202 TESTINST4_2OUT("umulls r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
203 TESTINST4_2OUT("umulls r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
204 TESTINST4_2OUT("umulls r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
205 TESTINST4_2OUT("umulls r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
206 TESTINST4_2OUT("umulls r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
207#endif
208 printf("SMULL\n");
209 TESTINST4_2OUT("smull r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
210 TESTINST4_2OUT("smull r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
211 TESTINST4_2OUT("smull r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
212 TESTINST4_2OUT("smull r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
213 TESTINST4_2OUT("smull r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
214 TESTINST4_2OUT("smull r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
215#if 0
216 TESTINST4_2OUT("smulls r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
217 TESTINST4_2OUT("smulls r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
218 TESTINST4_2OUT("smulls r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
219 TESTINST4_2OUT("smulls r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
220 TESTINST4_2OUT("smulls r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
221 TESTINST4_2OUT("smulls r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
222#endif
223
224 printf("UMLAL\n");
225 TESTINST4_2OUT("umlal r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
226 TESTINST4_2OUT("umlal r0, r1, r2, r3", 0, 1, 0, 0, r0, r1, r2, r3, 0);
227 TESTINST4_2OUT("umlal r0, r1, r2, r3", 1, 1, 0, 0, r0, r1, r2, r3, 0);
228 TESTINST4_2OUT("umlal r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0, r1, r2, r3, 0);
229 TESTINST4_2OUT("umlal r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
230 TESTINST4_2OUT("umlal r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
231 TESTINST4_2OUT("umlal r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
232 TESTINST4_2OUT("umlal r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
233 TESTINST4_2OUT("umlal r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
234#if 0
235 TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
236 TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 1, 0, 0, r0, r1, r2, r3, 0);
237 TESTINST4_2OUT("umlals r0, r1, r2, r3", 1, 1, 0, 0, r0, r1, r2, r3, 0);
238 TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0, r1, r2, r3, 0);
239 TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
240 TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
241 TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
242 TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
243 TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
244#endif
245
246 printf("SMLAL\n");
247 TESTINST4_2OUT("smlal r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
248 TESTINST4_2OUT("smlal r0, r1, r2, r3", 0, 1, 0, 0, r0, r1, r2, r3, 0);
249 TESTINST4_2OUT("smlal r0, r1, r2, r3", 1, 1, 0, 0, r0, r1, r2, r3, 0);
250 TESTINST4_2OUT("smlal r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0, r1, r2, r3, 0);
251 TESTINST4_2OUT("smlal r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
252 TESTINST4_2OUT("smlal r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
253 TESTINST4_2OUT("smlal r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
254 TESTINST4_2OUT("smlal r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
255 TESTINST4_2OUT("smlal r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
256#if 0
257 TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
258 TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 1, 0, 0, r0, r1, r2, r3, 0);
259 TESTINST4_2OUT("smlals r0, r1, r2, r3", 1, 1, 0, 0, r0, r1, r2, r3, 0);
260 TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0, r1, r2, r3, 0);
261 TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
262 TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
263 TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
264 TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
265 TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
266#endif
267
268 printf("CLZ\n");
269 TESTCARRY
270 TESTINST2("clz r0, r1", 0, r0, r1, c);
271 TESTINST2("clz r0, r1", 1, r0, r1, c);
272 TESTINST2("clz r0, r1", 0x10, r0, r1, c);
273 TESTINST2("clz r0, r1", 0xffffffff, r0, r1, c);
274 TESTCARRYEND
275
276 printf("extend instructions\n");
277 TESTINST2("uxtb r0, r1", 0, r0, r1, 0);
278 TESTINST2("uxtb r0, r1", 1, r0, r1, 0);
279 TESTINST2("uxtb r0, r1", 0xff, r0, r1, 0);
280 TESTINST2("uxtb r0, r1", 0xffffffff, r0, r1, 0);
281 TESTINST2("sxtb r0, r1", 0, r0, r1, 0);
282 TESTINST2("sxtb r0, r1", 1, r0, r1, 0);
283 TESTINST2("sxtb r0, r1", 0xff, r0, r1, 0);
284 TESTINST2("sxtb r0, r1", 0xffffffff, r0, r1, 0);
285
286 TESTINST2("uxth r0, r1", 0, r0, r1, 0);
287 TESTINST2("uxth r0, r1", 1, r0, r1, 0);
288 TESTINST2("uxth r0, r1", 0xffff, r0, r1, 0);
289 TESTINST2("uxth r0, r1", 0xffffffff, r0, r1, 0);
290 TESTINST2("sxth r0, r1", 0, r0, r1, 0);
291 TESTINST2("sxth r0, r1", 1, r0, r1, 0);
292 TESTINST2("sxth r0, r1", 0x7fff, r0, r1, 0);
293 TESTINST2("sxth r0, r1", 0xffff, r0, r1, 0);
294 TESTINST2("sxth r0, r1", 0x10ffff, r0, r1, 0);
295 TESTINST2("sxth r0, r1", 0x107fff, r0, r1, 0);
296 TESTINST2("sxth r0, r1", 0xffffffff, r0, r1, 0);
297
298 TESTINST2("uxtb r0, r1, ror #0", 0x000000ff, r0, r1, 0);
299 TESTINST2("uxtb r0, r1, ror #8", 0x000000ff, r0, r1, 0);
300 TESTINST2("uxtb r0, r1, ror #8", 0x0000ff00, r0, r1, 0);
301 TESTINST2("uxtb r0, r1, ror #16", 0x00ff0000, r0, r1, 0);
302 TESTINST2("uxtb r0, r1, ror #24", 0xff000000, r0, r1, 0);
303
304 TESTINST2("uxtb16 r0, r1", 0xffffffff, r0, r1, 0);
305 TESTINST2("uxtb16 r0, r1, ror #16", 0x0000ffff, r0, r1, 0);
306 TESTINST2("sxtb16 r0, r1", 0xffffffff, r0, r1, 0);
307 TESTINST2("sxtb16 r0, r1", 0x00ff00ff, r0, r1, 0);
308 TESTINST2("sxtb16 r0, r1", 0x007f007f, r0, r1, 0);
309
310 printf("------------ BFI ------------\n");
311 /* bfi rDst, rSrc, #lsb-in-dst, #number-of-bits-to-copy */
312 TESTINST2("bfi r0, r1, #0, #11", 0xAAAAAAAA, r0, r1, 0);
313 TESTINST2("bfi r0, r1, #1, #11", 0xAAAAAAAA, r0, r1, 0);
314 TESTINST2("bfi r0, r1, #2, #11", 0xAAAAAAAA, r0, r1, 0);
315
316 TESTINST2("bfi r0, r1, #19, #11", 0xFFFFFFFF, r0, r1, 0);
317 TESTINST2("bfi r0, r1, #20, #11", 0xFFFFFFFF, r0, r1, 0);
318 TESTINST2("bfi r0, r1, #21, #11", 0xFFFFFFFF, r0, r1, 0);
319
320 TESTINST2("bfi r0, r1, #0, #32", 0xFFFFFFFF, r0, r1, 0);
321 TESTINST2("bfi r0, r1, #1, #31", 0xFFFFFFFF, r0, r1, 0);
322
323 TESTINST2("bfi r0, r1, #29, #3", 0xFFFFFFFF, r0, r1, 0);
324 TESTINST2("bfi r0, r1, #30, #2", 0xFFFFFFFF, r0, r1, 0);
325 TESTINST2("bfi r0, r1, #31, #1", 0xFFFFFFFF, r0, r1, 0);
326
327 printf("------------ BFC ------------\n");
328 /* bfi rDst, #lsb-in-dst, #number-of-bits-to-copy */
329 TESTINST2("bfc r0, #0, #11", 0xAAAAAAAA, r0, r1, 0);
330 TESTINST2("bfc r0, #1, #11", 0xAAAAAAAA, r0, r1, 0);
331 TESTINST2("bfc r0, #2, #11", 0xAAAAAAAA, r0, r1, 0);
332
333 TESTINST2("bfc r0, #19, #11", 0xFFFFFFFF, r0, r1, 0);
334 TESTINST2("bfc r0, #20, #11", 0xFFFFFFFF, r0, r1, 0);
335 TESTINST2("bfc r0, #21, #11", 0xFFFFFFFF, r0, r1, 0);
336
337 TESTINST2("bfc r0, #0, #32", 0xFFFFFFFF, r0, r1, 0);
338 TESTINST2("bfc r0, #1, #31", 0xFFFFFFFF, r0, r1, 0);
339
340 TESTINST2("bfc r0, #29, #3", 0xFFFFFFFF, r0, r1, 0);
341 TESTINST2("bfc r0, #30, #2", 0xFFFFFFFF, r0, r1, 0);
342 TESTINST2("bfc r0, #31, #1", 0xFFFFFFFF, r0, r1, 0);
343
344 printf("------------ SBFX ------------\n");
345 /* sbfx rDst, rSrc, #lsb, #width */
346 TESTINST2("sbfx r0, r1, #0, #1", 0x00000000, r0, r1, 0);
347 TESTINST2("sbfx r0, r1, #0, #1", 0x00000001, r0, r1, 0);
348 TESTINST2("sbfx r0, r1, #1, #1", 0x00000000, r0, r1, 0);
349 TESTINST2("sbfx r0, r1, #1, #1", 0x00000001, r0, r1, 0);
350 TESTINST2("sbfx r0, r1, #1, #1", 0x00000002, r0, r1, 0);
351 TESTINST2("sbfx r0, r1, #1, #1", 0x00000003, r0, r1, 0);
352
353 TESTINST2("sbfx r0, r1, #0, #2", 0x00000000, r0, r1, 0);
354 TESTINST2("sbfx r0, r1, #0, #2", 0x00000001, r0, r1, 0);
355 TESTINST2("sbfx r0, r1, #1, #2", 0x00000000, r0, r1, 0);
356 TESTINST2("sbfx r0, r1, #1, #2", 0x00000001, r0, r1, 0);
357 TESTINST2("sbfx r0, r1, #1, #2", 0x00000002, r0, r1, 0);
358 TESTINST2("sbfx r0, r1, #1, #2", 0x00000003, r0, r1, 0);
359
360 TESTINST2("sbfx r0, r1, #0, #11", 0xAAAAAAAA, r0, r1, 0);
361 TESTINST2("sbfx r0, r1, #1, #11", 0xAAAAAAAA, r0, r1, 0);
362 TESTINST2("sbfx r0, r1, #2, #11", 0xAAAAAAAA, r0, r1, 0);
363 TESTINST2("sbfx r0, r1, #2, #11", 0xAAAAAAAA, r0, r1, 0);
364 TESTINST2("sbfx r0, r1, #31, #1", 0xAAAAAAAA, r0, r1, 0);
365 TESTINST2("sbfx r0, r1, #30, #2", 0xAAAAAAAA, r0, r1, 0);
366
367 printf("------------ UBFX ------------\n");
368 /* ubfx rDst, rSrc, #lsb, #width */
369 TESTINST2("ubfx r0, r1, #0, #1", 0x00000000, r0, r1, 0);
370 TESTINST2("ubfx r0, r1, #0, #1", 0x00000001, r0, r1, 0);
371 TESTINST2("ubfx r0, r1, #1, #1", 0x00000000, r0, r1, 0);
372 TESTINST2("ubfx r0, r1, #1, #1", 0x00000001, r0, r1, 0);
373 TESTINST2("ubfx r0, r1, #1, #1", 0x00000002, r0, r1, 0);
374 TESTINST2("ubfx r0, r1, #1, #1", 0x00000003, r0, r1, 0);
375
376 TESTINST2("ubfx r0, r1, #0, #2", 0x00000000, r0, r1, 0);
377 TESTINST2("ubfx r0, r1, #0, #2", 0x00000001, r0, r1, 0);
378 TESTINST2("ubfx r0, r1, #1, #2", 0x00000000, r0, r1, 0);
379 TESTINST2("ubfx r0, r1, #1, #2", 0x00000001, r0, r1, 0);
380 TESTINST2("ubfx r0, r1, #1, #2", 0x00000002, r0, r1, 0);
381 TESTINST2("ubfx r0, r1, #1, #2", 0x00000003, r0, r1, 0);
382
383 TESTINST2("ubfx r0, r1, #0, #11", 0xAAAAAAAA, r0, r1, 0);
384 TESTINST2("ubfx r0, r1, #1, #11", 0xAAAAAAAA, r0, r1, 0);
385 TESTINST2("ubfx r0, r1, #2, #11", 0xAAAAAAAA, r0, r1, 0);
386 TESTINST2("ubfx r0, r1, #2, #11", 0xAAAAAAAA, r0, r1, 0);
387 TESTINST2("ubfx r0, r1, #31, #1", 0xAAAAAAAA, r0, r1, 0);
388 TESTINST2("ubfx r0, r1, #30, #2", 0xAAAAAAAA, r0, r1, 0);
389
390 printf("------------ SMUL{B,T}{B,T} ------------\n");
391 /* SMULbb rD, rN, rM */
392 TESTINST3("smulbb r0, r1, r2", 0x00030000, 0x00040000, r0, r1, r2, 0);
393 TESTINST3("smulbb r0, r1, r2", 0x00030001, 0x00040002, r0, r1, r2, 0);
394 TESTINST3("smulbb r0, r1, r2", 0x00038001, 0x00047fff, r0, r1, r2, 0);
395 TESTINST3("smulbb r0, r1, r2", 0x00037fff, 0x00047fff, r0, r1, r2, 0);
396 TESTINST3("smulbb r0, r1, r2", 0x0003ffff, 0x0004ffff, r0, r1, r2, 0);
397TESTINST3("smulbb r0, r1, r2", 0x2575feb2, 0xd2c4287c, r0, r1, r2, 0);
398TESTINST3("smulbb r0, r1, r2", 0xfb412431, 0x4b90362d, r0, r1, r2, 0);
399TESTINST3("smulbb r0, r1, r2", 0x004dfbe5, 0xe87927cc, r0, r1, r2, 0);
400TESTINST3("smulbb r0, r1, r2", 0xf6a3fa3c, 0x083b3571, r0, r1, r2, 0);
401TESTINST3("smulbb r0, r1, r2", 0xbf17fb9a, 0xb9743941, r0, r1, r2, 0);
402TESTINST3("smulbb r0, r1, r2", 0x2c0bd024, 0xbce5f924, r0, r1, r2, 0);
403TESTINST3("smulbb r0, r1, r2", 0x3e976e2e, 0xcc3c201c, r0, r1, r2, 0);
404TESTINST3("smulbb r0, r1, r2", 0xb4bfb365, 0x1ebaf88e, r0, r1, r2, 0);
405TESTINST3("smulbb r0, r1, r2", 0x288593c0, 0x722d5e20, r0, r1, r2, 0);
406TESTINST3("smulbb r0, r1, r2", 0x4d7ff5b4, 0xa1d6f791, r0, r1, r2, 0);
407TESTINST3("smulbb r0, r1, r2", 0x4557be13, 0x7b11bee7, r0, r1, r2, 0);
408TESTINST3("smulbb r0, r1, r2", 0xadcf5772, 0xa5631488, r0, r1, r2, 0);
409TESTINST3("smulbb r0, r1, r2", 0x989a7235, 0xb10bcc65, r0, r1, r2, 0);
410TESTINST3("smulbb r0, r1, r2", 0x4d6f393a, 0x73f39fca, r0, r1, r2, 0);
411TESTINST3("smulbb r0, r1, r2", 0x24a3291e, 0x5648e540, r0, r1, r2, 0);
412TESTINST3("smulbb r0, r1, r2", 0xdd91eebf, 0xc54f79e6, r0, r1, r2, 0);
413TESTINST3("smulbb r0, r1, r2", 0xf7ce2ec6, 0x5fc92974, r0, r1, r2, 0);
414TESTINST3("smulbb r0, r1, r2", 0xbc1083e8, 0x7e08184e, r0, r1, r2, 0);
415TESTINST3("smulbb r0, r1, r2", 0xa617cc31, 0x71c8315f, r0, r1, r2, 0);
416TESTINST3("smulbb r0, r1, r2", 0xdfe1e8f0, 0x9493110e, r0, r1, r2, 0);
417TESTINST3("smulbb r0, r1, r2", 0x6ef49020, 0xba8a7e0d, r0, r1, r2, 0);
418TESTINST3("smulbb r0, r1, r2", 0x3dc4e36b, 0x21568e39, r0, r1, r2, 0);
419TESTINST3("smulbb r0, r1, r2", 0x52db4a9d, 0x55fcc8cf, r0, r1, r2, 0);
420TESTINST3("smulbb r0, r1, r2", 0x3564c76c, 0x14434a2a, r0, r1, r2, 0);
421TESTINST3("smulbb r0, r1, r2", 0x27836b0c, 0x3c855ca8, r0, r1, r2, 0);
422TESTINST3("smulbb r0, r1, r2", 0x62ff7c30, 0x30ece28e, r0, r1, r2, 0);
423TESTINST3("smulbb r0, r1, r2", 0x40955fdf, 0x057b562c, r0, r1, r2, 0);
424TESTINST3("smulbb r0, r1, r2", 0x3b34c270, 0x27e1475b, r0, r1, r2, 0);
425TESTINST3("smulbb r0, r1, r2", 0x7fdcda96, 0xd05893a7, r0, r1, r2, 0);
426TESTINST3("smulbb r0, r1, r2", 0xb6ab141d, 0x2dc43624, r0, r1, r2, 0);
427TESTINST3("smulbb r0, r1, r2", 0x403d53cb, 0x5328d58c, r0, r1, r2, 0);
428TESTINST3("smulbb r0, r1, r2", 0x21ef1aef, 0x87488a4a, r0, r1, r2, 0);
429TESTINST3("smulbb r0, r1, r2", 0x31458a23, 0xbb246228, r0, r1, r2, 0);
430TESTINST3("smulbb r0, r1, r2", 0x848af791, 0x339d8d88, r0, r1, r2, 0);
431TESTINST3("smulbb r0, r1, r2", 0xda3bacdc, 0x70974249, r0, r1, r2, 0);
432TESTINST3("smulbb r0, r1, r2", 0x649d5cbd, 0x8a8d4e7d, r0, r1, r2, 0);
433TESTINST3("smulbb r0, r1, r2", 0xc0c8c881, 0xeb1b4335, r0, r1, r2, 0);
434TESTINST3("smulbb r0, r1, r2", 0x7dd81a20, 0x0cd6b508, r0, r1, r2, 0);
435TESTINST3("smulbb r0, r1, r2", 0x6892886c, 0x6731e282, r0, r1, r2, 0);
436TESTINST3("smulbb r0, r1, r2", 0x112dcffc, 0xb6edf28f, r0, r1, r2, 0);
437TESTINST3("smulbb r0, r1, r2", 0xabfabbe6, 0x4b4ec9ca, r0, r1, r2, 0);
438TESTINST3("smulbb r0, r1, r2", 0xe52aabf8, 0xc1037fa4, r0, r1, r2, 0);
439TESTINST3("smulbb r0, r1, r2", 0xf2f4df1f, 0xcb4ab48f, r0, r1, r2, 0);
440TESTINST3("smulbb r0, r1, r2", 0x435f909a, 0xaf8f7e18, r0, r1, r2, 0);
441TESTINST3("smulbb r0, r1, r2", 0x2106ba5f, 0x87df4510, r0, r1, r2, 0);
442TESTINST3("smulbb r0, r1, r2", 0x246a6376, 0xabf4e8e1, r0, r1, r2, 0);
443TESTINST3("smulbb r0, r1, r2", 0x1046a1a3, 0xf4c0eeac, r0, r1, r2, 0);
444TESTINST3("smulbb r0, r1, r2", 0x638ca515, 0x006a54f2, r0, r1, r2, 0);
445TESTINST3("smulbb r0, r1, r2", 0xf63e7a9d, 0x79f74493, r0, r1, r2, 0);
446TESTINST3("smulbb r0, r1, r2", 0xbd6845cd, 0x9c09e313, r0, r1, r2, 0);
447 /* SMULtt rD, rN, rM */
448 TESTINST3("smultt r0, r1, r2", 0x00000003, 0x00000004, r0, r1, r2, 0);
449 TESTINST3("smultt r0, r1, r2", 0x00010003, 0x00020004, r0, r1, r2, 0);
450 TESTINST3("smultt r0, r1, r2", 0x80010003, 0x7fff0004, r0, r1, r2, 0);
451 TESTINST3("smultt r0, r1, r2", 0x7fff0003, 0x7fff0004, r0, r1, r2, 0);
452 TESTINST3("smultt r0, r1, r2", 0xffff0003, 0xffff0004, r0, r1, r2, 0);
453TESTINST3("smultt r0, r1, r2", 0x2575feb2, 0xd2c4287c, r0, r1, r2, 0);
454TESTINST3("smultt r0, r1, r2", 0xfb412431, 0x4b90362d, r0, r1, r2, 0);
455TESTINST3("smultt r0, r1, r2", 0x004dfbe5, 0xe87927cc, r0, r1, r2, 0);
456TESTINST3("smultt r0, r1, r2", 0xf6a3fa3c, 0x083b3571, r0, r1, r2, 0);
457TESTINST3("smultt r0, r1, r2", 0xbf17fb9a, 0xb9743941, r0, r1, r2, 0);
458TESTINST3("smultt r0, r1, r2", 0x2c0bd024, 0xbce5f924, r0, r1, r2, 0);
459TESTINST3("smultt r0, r1, r2", 0x3e976e2e, 0xcc3c201c, r0, r1, r2, 0);
460TESTINST3("smultt r0, r1, r2", 0xb4bfb365, 0x1ebaf88e, r0, r1, r2, 0);
461TESTINST3("smultt r0, r1, r2", 0x288593c0, 0x722d5e20, r0, r1, r2, 0);
462TESTINST3("smultt r0, r1, r2", 0x4d7ff5b4, 0xa1d6f791, r0, r1, r2, 0);
463TESTINST3("smultt r0, r1, r2", 0x4557be13, 0x7b11bee7, r0, r1, r2, 0);
464TESTINST3("smultt r0, r1, r2", 0xadcf5772, 0xa5631488, r0, r1, r2, 0);
465TESTINST3("smultt r0, r1, r2", 0x989a7235, 0xb10bcc65, r0, r1, r2, 0);
466TESTINST3("smultt r0, r1, r2", 0x4d6f393a, 0x73f39fca, r0, r1, r2, 0);
467TESTINST3("smultt r0, r1, r2", 0x24a3291e, 0x5648e540, r0, r1, r2, 0);
468TESTINST3("smultt r0, r1, r2", 0xdd91eebf, 0xc54f79e6, r0, r1, r2, 0);
469TESTINST3("smultt r0, r1, r2", 0xf7ce2ec6, 0x5fc92974, r0, r1, r2, 0);
470TESTINST3("smultt r0, r1, r2", 0xbc1083e8, 0x7e08184e, r0, r1, r2, 0);
471TESTINST3("smultt r0, r1, r2", 0xa617cc31, 0x71c8315f, r0, r1, r2, 0);
472TESTINST3("smultt r0, r1, r2", 0xdfe1e8f0, 0x9493110e, r0, r1, r2, 0);
473TESTINST3("smultt r0, r1, r2", 0x6ef49020, 0xba8a7e0d, r0, r1, r2, 0);
474TESTINST3("smultt r0, r1, r2", 0x3dc4e36b, 0x21568e39, r0, r1, r2, 0);
475TESTINST3("smultt r0, r1, r2", 0x52db4a9d, 0x55fcc8cf, r0, r1, r2, 0);
476TESTINST3("smultt r0, r1, r2", 0x3564c76c, 0x14434a2a, r0, r1, r2, 0);
477TESTINST3("smultt r0, r1, r2", 0x27836b0c, 0x3c855ca8, r0, r1, r2, 0);
478TESTINST3("smultt r0, r1, r2", 0x62ff7c30, 0x30ece28e, r0, r1, r2, 0);
479TESTINST3("smultt r0, r1, r2", 0x40955fdf, 0x057b562c, r0, r1, r2, 0);
480TESTINST3("smultt r0, r1, r2", 0x3b34c270, 0x27e1475b, r0, r1, r2, 0);
481TESTINST3("smultt r0, r1, r2", 0x7fdcda96, 0xd05893a7, r0, r1, r2, 0);
482TESTINST3("smultt r0, r1, r2", 0xb6ab141d, 0x2dc43624, r0, r1, r2, 0);
483TESTINST3("smultt r0, r1, r2", 0x403d53cb, 0x5328d58c, r0, r1, r2, 0);
484TESTINST3("smultt r0, r1, r2", 0x21ef1aef, 0x87488a4a, r0, r1, r2, 0);
485TESTINST3("smultt r0, r1, r2", 0x31458a23, 0xbb246228, r0, r1, r2, 0);
486TESTINST3("smultt r0, r1, r2", 0x848af791, 0x339d8d88, r0, r1, r2, 0);
487TESTINST3("smultt r0, r1, r2", 0xda3bacdc, 0x70974249, r0, r1, r2, 0);
488TESTINST3("smultt r0, r1, r2", 0x649d5cbd, 0x8a8d4e7d, r0, r1, r2, 0);
489TESTINST3("smultt r0, r1, r2", 0xc0c8c881, 0xeb1b4335, r0, r1, r2, 0);
490TESTINST3("smultt r0, r1, r2", 0x7dd81a20, 0x0cd6b508, r0, r1, r2, 0);
491TESTINST3("smultt r0, r1, r2", 0x6892886c, 0x6731e282, r0, r1, r2, 0);
492TESTINST3("smultt r0, r1, r2", 0x112dcffc, 0xb6edf28f, r0, r1, r2, 0);
493TESTINST3("smultt r0, r1, r2", 0xabfabbe6, 0x4b4ec9ca, r0, r1, r2, 0);
494TESTINST3("smultt r0, r1, r2", 0xe52aabf8, 0xc1037fa4, r0, r1, r2, 0);
495TESTINST3("smultt r0, r1, r2", 0xf2f4df1f, 0xcb4ab48f, r0, r1, r2, 0);
496TESTINST3("smultt r0, r1, r2", 0x435f909a, 0xaf8f7e18, r0, r1, r2, 0);
497TESTINST3("smultt r0, r1, r2", 0x2106ba5f, 0x87df4510, r0, r1, r2, 0);
498TESTINST3("smultt r0, r1, r2", 0x246a6376, 0xabf4e8e1, r0, r1, r2, 0);
499TESTINST3("smultt r0, r1, r2", 0x1046a1a3, 0xf4c0eeac, r0, r1, r2, 0);
500TESTINST3("smultt r0, r1, r2", 0x638ca515, 0x006a54f2, r0, r1, r2, 0);
501TESTINST3("smultt r0, r1, r2", 0xf63e7a9d, 0x79f74493, r0, r1, r2, 0);
502TESTINST3("smultt r0, r1, r2", 0xbd6845cd, 0x9c09e313, r0, r1, r2, 0);
503 /* SMULtb rD, rN, rM */
504 TESTINST3("smultb r0, r1, r2", 0x00000003, 0x00040000, r0, r1, r2, 0);
505 TESTINST3("smultb r0, r1, r2", 0x00010003, 0x00040002, r0, r1, r2, 0);
506 TESTINST3("smultb r0, r1, r2", 0x80010003, 0x00047fff, r0, r1, r2, 0);
507 TESTINST3("smultb r0, r1, r2", 0x7fff0003, 0x00047fff, r0, r1, r2, 0);
508 TESTINST3("smultb r0, r1, r2", 0xffff0003, 0x0004ffff, r0, r1, r2, 0);
509TESTINST3("smultb r0, r1, r2", 0x2575feb2, 0xd2c4287c, r0, r1, r2, 0);
510TESTINST3("smultb r0, r1, r2", 0xfb412431, 0x4b90362d, r0, r1, r2, 0);
511TESTINST3("smultb r0, r1, r2", 0x004dfbe5, 0xe87927cc, r0, r1, r2, 0);
512TESTINST3("smultb r0, r1, r2", 0xf6a3fa3c, 0x083b3571, r0, r1, r2, 0);
513TESTINST3("smultb r0, r1, r2", 0xbf17fb9a, 0xb9743941, r0, r1, r2, 0);
514TESTINST3("smultb r0, r1, r2", 0x2c0bd024, 0xbce5f924, r0, r1, r2, 0);
515TESTINST3("smultb r0, r1, r2", 0x3e976e2e, 0xcc3c201c, r0, r1, r2, 0);
516TESTINST3("smultb r0, r1, r2", 0xb4bfb365, 0x1ebaf88e, r0, r1, r2, 0);
517TESTINST3("smultb r0, r1, r2", 0x288593c0, 0x722d5e20, r0, r1, r2, 0);
518TESTINST3("smultb r0, r1, r2", 0x4d7ff5b4, 0xa1d6f791, r0, r1, r2, 0);
519TESTINST3("smultb r0, r1, r2", 0x4557be13, 0x7b11bee7, r0, r1, r2, 0);
520TESTINST3("smultb r0, r1, r2", 0xadcf5772, 0xa5631488, r0, r1, r2, 0);
521TESTINST3("smultb r0, r1, r2", 0x989a7235, 0xb10bcc65, r0, r1, r2, 0);
522TESTINST3("smultb r0, r1, r2", 0x4d6f393a, 0x73f39fca, r0, r1, r2, 0);
523TESTINST3("smultb r0, r1, r2", 0x24a3291e, 0x5648e540, r0, r1, r2, 0);
524TESTINST3("smultb r0, r1, r2", 0xdd91eebf, 0xc54f79e6, r0, r1, r2, 0);
525TESTINST3("smultb r0, r1, r2", 0xf7ce2ec6, 0x5fc92974, r0, r1, r2, 0);
526TESTINST3("smultb r0, r1, r2", 0xbc1083e8, 0x7e08184e, r0, r1, r2, 0);
527TESTINST3("smultb r0, r1, r2", 0xa617cc31, 0x71c8315f, r0, r1, r2, 0);
528TESTINST3("smultb r0, r1, r2", 0xdfe1e8f0, 0x9493110e, r0, r1, r2, 0);
529TESTINST3("smultb r0, r1, r2", 0x6ef49020, 0xba8a7e0d, r0, r1, r2, 0);
530TESTINST3("smultb r0, r1, r2", 0x3dc4e36b, 0x21568e39, r0, r1, r2, 0);
531TESTINST3("smultb r0, r1, r2", 0x52db4a9d, 0x55fcc8cf, r0, r1, r2, 0);
532TESTINST3("smultb r0, r1, r2", 0x3564c76c, 0x14434a2a, r0, r1, r2, 0);
533TESTINST3("smultb r0, r1, r2", 0x27836b0c, 0x3c855ca8, r0, r1, r2, 0);
534TESTINST3("smultb r0, r1, r2", 0x62ff7c30, 0x30ece28e, r0, r1, r2, 0);
535TESTINST3("smultb r0, r1, r2", 0x40955fdf, 0x057b562c, r0, r1, r2, 0);
536TESTINST3("smultb r0, r1, r2", 0x3b34c270, 0x27e1475b, r0, r1, r2, 0);
537TESTINST3("smultb r0, r1, r2", 0x7fdcda96, 0xd05893a7, r0, r1, r2, 0);
538TESTINST3("smultb r0, r1, r2", 0xb6ab141d, 0x2dc43624, r0, r1, r2, 0);
539TESTINST3("smultb r0, r1, r2", 0x403d53cb, 0x5328d58c, r0, r1, r2, 0);
540TESTINST3("smultb r0, r1, r2", 0x21ef1aef, 0x87488a4a, r0, r1, r2, 0);
541TESTINST3("smultb r0, r1, r2", 0x31458a23, 0xbb246228, r0, r1, r2, 0);
542TESTINST3("smultb r0, r1, r2", 0x848af791, 0x339d8d88, r0, r1, r2, 0);
543TESTINST3("smultb r0, r1, r2", 0xda3bacdc, 0x70974249, r0, r1, r2, 0);
544TESTINST3("smultb r0, r1, r2", 0x649d5cbd, 0x8a8d4e7d, r0, r1, r2, 0);
545TESTINST3("smultb r0, r1, r2", 0xc0c8c881, 0xeb1b4335, r0, r1, r2, 0);
546TESTINST3("smultb r0, r1, r2", 0x7dd81a20, 0x0cd6b508, r0, r1, r2, 0);
547TESTINST3("smultb r0, r1, r2", 0x6892886c, 0x6731e282, r0, r1, r2, 0);
548TESTINST3("smultb r0, r1, r2", 0x112dcffc, 0xb6edf28f, r0, r1, r2, 0);
549TESTINST3("smultb r0, r1, r2", 0xabfabbe6, 0x4b4ec9ca, r0, r1, r2, 0);
550TESTINST3("smultb r0, r1, r2", 0xe52aabf8, 0xc1037fa4, r0, r1, r2, 0);
551TESTINST3("smultb r0, r1, r2", 0xf2f4df1f, 0xcb4ab48f, r0, r1, r2, 0);
552TESTINST3("smultb r0, r1, r2", 0x435f909a, 0xaf8f7e18, r0, r1, r2, 0);
553TESTINST3("smultb r0, r1, r2", 0x2106ba5f, 0x87df4510, r0, r1, r2, 0);
554TESTINST3("smultb r0, r1, r2", 0x246a6376, 0xabf4e8e1, r0, r1, r2, 0);
555TESTINST3("smultb r0, r1, r2", 0x1046a1a3, 0xf4c0eeac, r0, r1, r2, 0);
556TESTINST3("smultb r0, r1, r2", 0x638ca515, 0x006a54f2, r0, r1, r2, 0);
557TESTINST3("smultb r0, r1, r2", 0xf63e7a9d, 0x79f74493, r0, r1, r2, 0);
558TESTINST3("smultb r0, r1, r2", 0xbd6845cd, 0x9c09e313, r0, r1, r2, 0);
559 /* SMULbt rD, rN, rM */
560 TESTINST3("smulbt r0, r1, r2", 0x00030000, 0x00000004, r0, r1, r2, 0);
561 TESTINST3("smulbt r0, r1, r2", 0x00030001, 0x00020004, r0, r1, r2, 0);
562 TESTINST3("smulbt r0, r1, r2", 0x00038001, 0x7fff0004, r0, r1, r2, 0);
563 TESTINST3("smulbt r0, r1, r2", 0x00037fff, 0x7fff0004, r0, r1, r2, 0);
564 TESTINST3("smulbt r0, r1, r2", 0x0003ffff, 0xffff0004, r0, r1, r2, 0);
565TESTINST3("smulbt r0, r1, r2", 0x2575feb2, 0xd2c4287c, r0, r1, r2, 0);
566TESTINST3("smulbt r0, r1, r2", 0xfb412431, 0x4b90362d, r0, r1, r2, 0);
567TESTINST3("smulbt r0, r1, r2", 0x004dfbe5, 0xe87927cc, r0, r1, r2, 0);
568TESTINST3("smulbt r0, r1, r2", 0xf6a3fa3c, 0x083b3571, r0, r1, r2, 0);
569TESTINST3("smulbt r0, r1, r2", 0xbf17fb9a, 0xb9743941, r0, r1, r2, 0);
570TESTINST3("smulbt r0, r1, r2", 0x2c0bd024, 0xbce5f924, r0, r1, r2, 0);
571TESTINST3("smulbt r0, r1, r2", 0x3e976e2e, 0xcc3c201c, r0, r1, r2, 0);
572TESTINST3("smulbt r0, r1, r2", 0xb4bfb365, 0x1ebaf88e, r0, r1, r2, 0);
573TESTINST3("smulbt r0, r1, r2", 0x288593c0, 0x722d5e20, r0, r1, r2, 0);
574TESTINST3("smulbt r0, r1, r2", 0x4d7ff5b4, 0xa1d6f791, r0, r1, r2, 0);
575TESTINST3("smulbt r0, r1, r2", 0x4557be13, 0x7b11bee7, r0, r1, r2, 0);
576TESTINST3("smulbt r0, r1, r2", 0xadcf5772, 0xa5631488, r0, r1, r2, 0);
577TESTINST3("smulbt r0, r1, r2", 0x989a7235, 0xb10bcc65, r0, r1, r2, 0);
578TESTINST3("smulbt r0, r1, r2", 0x4d6f393a, 0x73f39fca, r0, r1, r2, 0);
579TESTINST3("smulbt r0, r1, r2", 0x24a3291e, 0x5648e540, r0, r1, r2, 0);
580TESTINST3("smulbt r0, r1, r2", 0xdd91eebf, 0xc54f79e6, r0, r1, r2, 0);
581TESTINST3("smulbt r0, r1, r2", 0xf7ce2ec6, 0x5fc92974, r0, r1, r2, 0);
582TESTINST3("smulbt r0, r1, r2", 0xbc1083e8, 0x7e08184e, r0, r1, r2, 0);
583TESTINST3("smulbt r0, r1, r2", 0xa617cc31, 0x71c8315f, r0, r1, r2, 0);
584TESTINST3("smulbt r0, r1, r2", 0xdfe1e8f0, 0x9493110e, r0, r1, r2, 0);
585TESTINST3("smulbt r0, r1, r2", 0x6ef49020, 0xba8a7e0d, r0, r1, r2, 0);
586TESTINST3("smulbt r0, r1, r2", 0x3dc4e36b, 0x21568e39, r0, r1, r2, 0);
587TESTINST3("smulbt r0, r1, r2", 0x52db4a9d, 0x55fcc8cf, r0, r1, r2, 0);
588TESTINST3("smulbt r0, r1, r2", 0x3564c76c, 0x14434a2a, r0, r1, r2, 0);
589TESTINST3("smulbt r0, r1, r2", 0x27836b0c, 0x3c855ca8, r0, r1, r2, 0);
590TESTINST3("smulbt r0, r1, r2", 0x62ff7c30, 0x30ece28e, r0, r1, r2, 0);
591TESTINST3("smulbt r0, r1, r2", 0x40955fdf, 0x057b562c, r0, r1, r2, 0);
592TESTINST3("smulbt r0, r1, r2", 0x3b34c270, 0x27e1475b, r0, r1, r2, 0);
593TESTINST3("smulbt r0, r1, r2", 0x7fdcda96, 0xd05893a7, r0, r1, r2, 0);
594TESTINST3("smulbt r0, r1, r2", 0xb6ab141d, 0x2dc43624, r0, r1, r2, 0);
595TESTINST3("smulbt r0, r1, r2", 0x403d53cb, 0x5328d58c, r0, r1, r2, 0);
596TESTINST3("smulbt r0, r1, r2", 0x21ef1aef, 0x87488a4a, r0, r1, r2, 0);
597TESTINST3("smulbt r0, r1, r2", 0x31458a23, 0xbb246228, r0, r1, r2, 0);
598TESTINST3("smulbt r0, r1, r2", 0x848af791, 0x339d8d88, r0, r1, r2, 0);
599TESTINST3("smulbt r0, r1, r2", 0xda3bacdc, 0x70974249, r0, r1, r2, 0);
600TESTINST3("smulbt r0, r1, r2", 0x649d5cbd, 0x8a8d4e7d, r0, r1, r2, 0);
601TESTINST3("smulbt r0, r1, r2", 0xc0c8c881, 0xeb1b4335, r0, r1, r2, 0);
602TESTINST3("smulbt r0, r1, r2", 0x7dd81a20, 0x0cd6b508, r0, r1, r2, 0);
603TESTINST3("smulbt r0, r1, r2", 0x6892886c, 0x6731e282, r0, r1, r2, 0);
604TESTINST3("smulbt r0, r1, r2", 0x112dcffc, 0xb6edf28f, r0, r1, r2, 0);
605TESTINST3("smulbt r0, r1, r2", 0xabfabbe6, 0x4b4ec9ca, r0, r1, r2, 0);
606TESTINST3("smulbt r0, r1, r2", 0xe52aabf8, 0xc1037fa4, r0, r1, r2, 0);
607TESTINST3("smulbt r0, r1, r2", 0xf2f4df1f, 0xcb4ab48f, r0, r1, r2, 0);
608TESTINST3("smulbt r0, r1, r2", 0x435f909a, 0xaf8f7e18, r0, r1, r2, 0);
609TESTINST3("smulbt r0, r1, r2", 0x2106ba5f, 0x87df4510, r0, r1, r2, 0);
610TESTINST3("smulbt r0, r1, r2", 0x246a6376, 0xabf4e8e1, r0, r1, r2, 0);
611TESTINST3("smulbt r0, r1, r2", 0x1046a1a3, 0xf4c0eeac, r0, r1, r2, 0);
612TESTINST3("smulbt r0, r1, r2", 0x638ca515, 0x006a54f2, r0, r1, r2, 0);
613TESTINST3("smulbt r0, r1, r2", 0xf63e7a9d, 0x79f74493, r0, r1, r2, 0);
614TESTINST3("smulbt r0, r1, r2", 0xbd6845cd, 0x9c09e313, r0, r1, r2, 0);
615
616 printf("-------------- SMULW{B,T} --------------\n");
617 /* SMULWB rD, rN, rM : Rn x Rm[31..16] */
618 TESTINST3("smulwb r0, r1, r2", 0x00000003, 0x00020004, r0, r1, r2, 0);
619 TESTINST3("smulwb r0, r1, r2", 0x00010003, 0x47ff0004, r0, r1, r2, 0);
620 TESTINST3("smulwb r0, r1, r2", 0x80010003, 0x7fff0004, r0, r1, r2, 0);
621 TESTINST3("smulwb r0, r1, r2", 0x7fff0003, 0x7fff0004, r0, r1, r2, 0);
622 TESTINST3("smulwb r0, r1, r2", 0xffff0003, 0xffff0004, r0, r1, r2, 0);
623TESTINST3("smulwb r0, r1, r2", 0x2575feb2, 0xd2c4287c, r0, r1, r2, 0);
624TESTINST3("smulwb r0, r1, r2", 0xfb412431, 0x4b90362d, r0, r1, r2, 0);
625TESTINST3("smulwb r0, r1, r2", 0x004dfbe5, 0xe87927cc, r0, r1, r2, 0);
626TESTINST3("smulwb r0, r1, r2", 0xf6a3fa3c, 0x083b3571, r0, r1, r2, 0);
627TESTINST3("smulwb r0, r1, r2", 0xbf17fb9a, 0xb9743941, r0, r1, r2, 0);
628TESTINST3("smulwb r0, r1, r2", 0x2c0bd024, 0xbce5f924, r0, r1, r2, 0);
629TESTINST3("smulwb r0, r1, r2", 0x3e976e2e, 0xcc3c201c, r0, r1, r2, 0);
630TESTINST3("smulwb r0, r1, r2", 0xb4bfb365, 0x1ebaf88e, r0, r1, r2, 0);
631TESTINST3("smulwb r0, r1, r2", 0x288593c0, 0x722d5e20, r0, r1, r2, 0);
632TESTINST3("smulwb r0, r1, r2", 0x4d7ff5b4, 0xa1d6f791, r0, r1, r2, 0);
633TESTINST3("smulwb r0, r1, r2", 0x4557be13, 0x7b11bee7, r0, r1, r2, 0);
634TESTINST3("smulwb r0, r1, r2", 0xadcf5772, 0xa5631488, r0, r1, r2, 0);
635TESTINST3("smulwb r0, r1, r2", 0x989a7235, 0xb10bcc65, r0, r1, r2, 0);
636TESTINST3("smulwb r0, r1, r2", 0x4d6f393a, 0x73f39fca, r0, r1, r2, 0);
637TESTINST3("smulwb r0, r1, r2", 0x24a3291e, 0x5648e540, r0, r1, r2, 0);
638TESTINST3("smulwb r0, r1, r2", 0xdd91eebf, 0xc54f79e6, r0, r1, r2, 0);
639TESTINST3("smulwb r0, r1, r2", 0xf7ce2ec6, 0x5fc92974, r0, r1, r2, 0);
640TESTINST3("smulwb r0, r1, r2", 0xbc1083e8, 0x7e08184e, r0, r1, r2, 0);
641TESTINST3("smulwb r0, r1, r2", 0xa617cc31, 0x71c8315f, r0, r1, r2, 0);
642TESTINST3("smulwb r0, r1, r2", 0xdfe1e8f0, 0x9493110e, r0, r1, r2, 0);
643TESTINST3("smulwb r0, r1, r2", 0x6ef49020, 0xba8a7e0d, r0, r1, r2, 0);
644TESTINST3("smulwb r0, r1, r2", 0x3dc4e36b, 0x21568e39, r0, r1, r2, 0);
645TESTINST3("smulwb r0, r1, r2", 0x52db4a9d, 0x55fcc8cf, r0, r1, r2, 0);
646TESTINST3("smulwb r0, r1, r2", 0x3564c76c, 0x14434a2a, r0, r1, r2, 0);
647TESTINST3("smulwb r0, r1, r2", 0x27836b0c, 0x3c855ca8, r0, r1, r2, 0);
648TESTINST3("smulwb r0, r1, r2", 0x62ff7c30, 0x30ece28e, r0, r1, r2, 0);
649TESTINST3("smulwb r0, r1, r2", 0x40955fdf, 0x057b562c, r0, r1, r2, 0);
650TESTINST3("smulwb r0, r1, r2", 0x3b34c270, 0x27e1475b, r0, r1, r2, 0);
651TESTINST3("smulwb r0, r1, r2", 0x7fdcda96, 0xd05893a7, r0, r1, r2, 0);
652TESTINST3("smulwb r0, r1, r2", 0xb6ab141d, 0x2dc43624, r0, r1, r2, 0);
653TESTINST3("smulwb r0, r1, r2", 0x403d53cb, 0x5328d58c, r0, r1, r2, 0);
654TESTINST3("smulwb r0, r1, r2", 0x21ef1aef, 0x87488a4a, r0, r1, r2, 0);
655TESTINST3("smulwb r0, r1, r2", 0x31458a23, 0xbb246228, r0, r1, r2, 0);
656TESTINST3("smulwb r0, r1, r2", 0x848af791, 0x339d8d88, r0, r1, r2, 0);
657TESTINST3("smulwb r0, r1, r2", 0xda3bacdc, 0x70974249, r0, r1, r2, 0);
658TESTINST3("smulwb r0, r1, r2", 0x649d5cbd, 0x8a8d4e7d, r0, r1, r2, 0);
659TESTINST3("smulwb r0, r1, r2", 0xc0c8c881, 0xeb1b4335, r0, r1, r2, 0);
660TESTINST3("smulwb r0, r1, r2", 0x7dd81a20, 0x0cd6b508, r0, r1, r2, 0);
661TESTINST3("smulwb r0, r1, r2", 0x6892886c, 0x6731e282, r0, r1, r2, 0);
662TESTINST3("smulwb r0, r1, r2", 0x112dcffc, 0xb6edf28f, r0, r1, r2, 0);
663TESTINST3("smulwb r0, r1, r2", 0xabfabbe6, 0x4b4ec9ca, r0, r1, r2, 0);
664TESTINST3("smulwb r0, r1, r2", 0xe52aabf8, 0xc1037fa4, r0, r1, r2, 0);
665TESTINST3("smulwb r0, r1, r2", 0xf2f4df1f, 0xcb4ab48f, r0, r1, r2, 0);
666TESTINST3("smulwb r0, r1, r2", 0x435f909a, 0xaf8f7e18, r0, r1, r2, 0);
667TESTINST3("smulwb r0, r1, r2", 0x2106ba5f, 0x87df4510, r0, r1, r2, 0);
668TESTINST3("smulwb r0, r1, r2", 0x246a6376, 0xabf4e8e1, r0, r1, r2, 0);
669TESTINST3("smulwb r0, r1, r2", 0x1046a1a3, 0xf4c0eeac, r0, r1, r2, 0);
670TESTINST3("smulwb r0, r1, r2", 0x638ca515, 0x006a54f2, r0, r1, r2, 0);
671TESTINST3("smulwb r0, r1, r2", 0xf63e7a9d, 0x79f74493, r0, r1, r2, 0);
672TESTINST3("smulwb r0, r1, r2", 0xbd6845cd, 0x9c09e313, r0, r1, r2, 0);
673 /* SMULWT rD, rN, rM - Rn x Rm[15.. 0] */
674 TESTINST3("smulwt r0, r1, r2", 0x00000003, 0x00040000, r0, r1, r2, 0);
675 TESTINST3("smulwt r0, r1, r2", 0x00010003, 0x00040002, r0, r1, r2, 0);
676 TESTINST3("smulwt r0, r1, r2", 0x80010003, 0x00047fff, r0, r1, r2, 0);
677 TESTINST3("smulwt r0, r1, r2", 0x7fff0003, 0x00047fff, r0, r1, r2, 0);
678 TESTINST3("smulwt r0, r1, r2", 0xffff0003, 0x0004ffff, r0, r1, r2, 0);
679TESTINST3("smulwt r0, r1, r2", 0x2575feb2, 0xd2c4287c, r0, r1, r2, 0);
680TESTINST3("smulwt r0, r1, r2", 0xfb412431, 0x4b90362d, r0, r1, r2, 0);
681TESTINST3("smulwt r0, r1, r2", 0x004dfbe5, 0xe87927cc, r0, r1, r2, 0);
682TESTINST3("smulwt r0, r1, r2", 0xf6a3fa3c, 0x083b3571, r0, r1, r2, 0);
683TESTINST3("smulwt r0, r1, r2", 0xbf17fb9a, 0xb9743941, r0, r1, r2, 0);
684TESTINST3("smulwt r0, r1, r2", 0x2c0bd024, 0xbce5f924, r0, r1, r2, 0);
685TESTINST3("smulwt r0, r1, r2", 0x3e976e2e, 0xcc3c201c, r0, r1, r2, 0);
686TESTINST3("smulwt r0, r1, r2", 0xb4bfb365, 0x1ebaf88e, r0, r1, r2, 0);
687TESTINST3("smulwt r0, r1, r2", 0x288593c0, 0x722d5e20, r0, r1, r2, 0);
688TESTINST3("smulwt r0, r1, r2", 0x4d7ff5b4, 0xa1d6f791, r0, r1, r2, 0);
689TESTINST3("smulwt r0, r1, r2", 0x4557be13, 0x7b11bee7, r0, r1, r2, 0);
690TESTINST3("smulwt r0, r1, r2", 0xadcf5772, 0xa5631488, r0, r1, r2, 0);
691TESTINST3("smulwt r0, r1, r2", 0x989a7235, 0xb10bcc65, r0, r1, r2, 0);
692TESTINST3("smulwt r0, r1, r2", 0x4d6f393a, 0x73f39fca, r0, r1, r2, 0);
693TESTINST3("smulwt r0, r1, r2", 0x24a3291e, 0x5648e540, r0, r1, r2, 0);
694TESTINST3("smulwt r0, r1, r2", 0xdd91eebf, 0xc54f79e6, r0, r1, r2, 0);
695TESTINST3("smulwt r0, r1, r2", 0xf7ce2ec6, 0x5fc92974, r0, r1, r2, 0);
696TESTINST3("smulwt r0, r1, r2", 0xbc1083e8, 0x7e08184e, r0, r1, r2, 0);
697TESTINST3("smulwt r0, r1, r2", 0xa617cc31, 0x71c8315f, r0, r1, r2, 0);
698TESTINST3("smulwt r0, r1, r2", 0xdfe1e8f0, 0x9493110e, r0, r1, r2, 0);
699TESTINST3("smulwt r0, r1, r2", 0x6ef49020, 0xba8a7e0d, r0, r1, r2, 0);
700TESTINST3("smulwt r0, r1, r2", 0x3dc4e36b, 0x21568e39, r0, r1, r2, 0);
701TESTINST3("smulwt r0, r1, r2", 0x52db4a9d, 0x55fcc8cf, r0, r1, r2, 0);
702TESTINST3("smulwt r0, r1, r2", 0x3564c76c, 0x14434a2a, r0, r1, r2, 0);
703TESTINST3("smulwt r0, r1, r2", 0x27836b0c, 0x3c855ca8, r0, r1, r2, 0);
704TESTINST3("smulwt r0, r1, r2", 0x62ff7c30, 0x30ece28e, r0, r1, r2, 0);
705TESTINST3("smulwt r0, r1, r2", 0x40955fdf, 0x057b562c, r0, r1, r2, 0);
706TESTINST3("smulwt r0, r1, r2", 0x3b34c270, 0x27e1475b, r0, r1, r2, 0);
707TESTINST3("smulwt r0, r1, r2", 0x7fdcda96, 0xd05893a7, r0, r1, r2, 0);
708TESTINST3("smulwt r0, r1, r2", 0xb6ab141d, 0x2dc43624, r0, r1, r2, 0);
709TESTINST3("smulwt r0, r1, r2", 0x403d53cb, 0x5328d58c, r0, r1, r2, 0);
710TESTINST3("smulwt r0, r1, r2", 0x21ef1aef, 0x87488a4a, r0, r1, r2, 0);
711TESTINST3("smulwt r0, r1, r2", 0x31458a23, 0xbb246228, r0, r1, r2, 0);
712TESTINST3("smulwt r0, r1, r2", 0x848af791, 0x339d8d88, r0, r1, r2, 0);
713TESTINST3("smulwt r0, r1, r2", 0xda3bacdc, 0x70974249, r0, r1, r2, 0);
714TESTINST3("smulwt r0, r1, r2", 0x649d5cbd, 0x8a8d4e7d, r0, r1, r2, 0);
715TESTINST3("smulwt r0, r1, r2", 0xc0c8c881, 0xeb1b4335, r0, r1, r2, 0);
716TESTINST3("smulwt r0, r1, r2", 0x7dd81a20, 0x0cd6b508, r0, r1, r2, 0);
717TESTINST3("smulwt r0, r1, r2", 0x6892886c, 0x6731e282, r0, r1, r2, 0);
718TESTINST3("smulwt r0, r1, r2", 0x112dcffc, 0xb6edf28f, r0, r1, r2, 0);
719TESTINST3("smulwt r0, r1, r2", 0xabfabbe6, 0x4b4ec9ca, r0, r1, r2, 0);
720TESTINST3("smulwt r0, r1, r2", 0xe52aabf8, 0xc1037fa4, r0, r1, r2, 0);
721TESTINST3("smulwt r0, r1, r2", 0xf2f4df1f, 0xcb4ab48f, r0, r1, r2, 0);
722TESTINST3("smulwt r0, r1, r2", 0x435f909a, 0xaf8f7e18, r0, r1, r2, 0);
723TESTINST3("smulwt r0, r1, r2", 0x2106ba5f, 0x87df4510, r0, r1, r2, 0);
724TESTINST3("smulwt r0, r1, r2", 0x246a6376, 0xabf4e8e1, r0, r1, r2, 0);
725TESTINST3("smulwt r0, r1, r2", 0x1046a1a3, 0xf4c0eeac, r0, r1, r2, 0);
726TESTINST3("smulwt r0, r1, r2", 0x638ca515, 0x006a54f2, r0, r1, r2, 0);
727TESTINST3("smulwt r0, r1, r2", 0xf63e7a9d, 0x79f74493, r0, r1, r2, 0);
728TESTINST3("smulwt r0, r1, r2", 0xbd6845cd, 0x9c09e313, r0, r1, r2, 0);
729
730 printf("------------ PKHBT / PKHTB ------------\n");
731 /* PKHBT */
732 TESTINST3("pkhbt r0, r1, r2, lsl #0", 0x11223344, 0x55667788, r0,r1,r2, 0);
733 TESTINST3("pkhbt r0, r1, r2, lsl #1", 0x11223344, 0x55667788, r0,r1,r2, 0);
734 TESTINST3("pkhbt r0, r1, r2, lsl #2", 0x11223344, 0x55667788, r0,r1,r2, 0);
735 TESTINST3("pkhbt r0, r1, r2, lsl #3", 0x11223344, 0x55667788, r0,r1,r2, 0);
736 TESTINST3("pkhbt r0, r1, r2, lsl #4", 0x11223344, 0x55667788, r0,r1,r2, 0);
737 TESTINST3("pkhbt r0, r1, r2, lsl #16", 0x11223344, 0x55667788, r0,r1,r2, 0);
738 TESTINST3("pkhbt r0, r1, r2, lsl #22", 0x11223344, 0x55667788, r0,r1,r2, 0);
739 TESTINST3("pkhbt r0, r1, r2, lsl #31", 0x11223344, 0x55667788, r0,r1,r2, 0);
740TESTINST3("pkhbt r0, r1, r2", 0x50c28082, 0xc1553709, r0,r1,r2, 0);
741TESTINST3("pkhbt r0, r1, r2", 0x17962e8f, 0x69ec0212, r0,r1,r2, 0);
742TESTINST3("pkhbt r0, r1, r2", 0xc57243b7, 0x03fa9bb5, r0,r1,r2, 0);
743TESTINST3("pkhbt r0, r1, r2", 0x7eb226ac, 0xf52e9fbf, r0,r1,r2, 0);
744TESTINST3("pkhbt r0, r1, r2", 0xbce0f026, 0x7fcbe5a9, r0,r1,r2, 0);
745TESTINST3("pkhbt r0, r1, r2", 0xa5757252, 0x2dd01366, r0,r1,r2, 0);
746TESTINST3("pkhbt r0, r1, r2", 0xf4a477c1, 0x5e4b1cbf, r0,r1,r2, 0);
747TESTINST3("pkhbt r0, r1, r2", 0x76723a21, 0x464a21cc, r0,r1,r2, 0);
748TESTINST3("pkhbt r0, r1, r2", 0x74d01105, 0xe8108f1b, r0,r1,r2, 0);
749TESTINST3("pkhbt r0, r1, r2", 0xc1273e2c, 0xcd90d604, r0,r1,r2, 0);
750TESTINST3("pkhbt r0, r1, r2, lsl #0", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
751TESTINST3("pkhbt r0, r1, r2, lsl #1", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
752TESTINST3("pkhbt r0, r1, r2, lsl #2", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
753TESTINST3("pkhbt r0, r1, r2, lsl #3", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
754TESTINST3("pkhbt r0, r1, r2, lsl #4", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
755TESTINST3("pkhbt r0, r1, r2, lsl #8", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
756TESTINST3("pkhbt r0, r1, r2, lsl #12", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
757TESTINST3("pkhbt r0, r1, r2, lsl #16", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
758TESTINST3("pkhbt r0, r1, r2, lsl #24", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
759TESTINST3("pkhbt r0, r1, r2, lsl #31", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
760TESTINST3("pkhbt r0, r1, r2, lsl #0", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
761TESTINST3("pkhbt r0, r1, r2, lsl #1", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
762TESTINST3("pkhbt r0, r1, r2, lsl #2", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
763TESTINST3("pkhbt r0, r1, r2, lsl #3", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
764TESTINST3("pkhbt r0, r1, r2, lsl #4", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
765TESTINST3("pkhbt r0, r1, r2, lsl #8", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
766TESTINST3("pkhbt r0, r1, r2, lsl #12", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
767TESTINST3("pkhbt r0, r1, r2, lsl #16", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
768TESTINST3("pkhbt r0, r1, r2, lsl #24", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
769TESTINST3("pkhbt r0, r1, r2, lsl #31", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
770TESTINST3("pkhbt r0, r1, r2, lsl #0", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
771TESTINST3("pkhbt r0, r1, r2, lsl #1", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
772TESTINST3("pkhbt r0, r1, r2, lsl #2", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
773TESTINST3("pkhbt r0, r1, r2, lsl #3", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
774TESTINST3("pkhbt r0, r1, r2, lsl #4", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
775TESTINST3("pkhbt r0, r1, r2, lsl #8", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
776TESTINST3("pkhbt r0, r1, r2, lsl #12", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
777TESTINST3("pkhbt r0, r1, r2, lsl #16", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
778TESTINST3("pkhbt r0, r1, r2, lsl #24", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
779TESTINST3("pkhbt r0, r1, r2, lsl #31", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
780TESTINST3("pkhbt r0, r1, r2, lsl #0", 0xd5dc5407, 0xf87b961e, r0,r1,r2, 0);
781TESTINST3("pkhbt r0, r1, r2, lsl #1", 0xd65db979, 0xc61b323b, r0,r1,r2, 0);
782TESTINST3("pkhbt r0, r1, r2, lsl #2", 0xa3268abe, 0xed2cbf78, r0,r1,r2, 0);
783TESTINST3("pkhbt r0, r1, r2, lsl #3", 0xbf73f0a5, 0x2fb714c9, r0,r1,r2, 0);
784TESTINST3("pkhbt r0, r1, r2, lsl #4", 0x281703ed, 0x925ef472, r0,r1,r2, 0);
785TESTINST3("pkhbt r0, r1, r2, lsl #8", 0xeaa652c7, 0x137741f4, r0,r1,r2, 0);
786TESTINST3("pkhbt r0, r1, r2, lsl #12", 0x71fbde8b, 0xdba5bd25, r0,r1,r2, 0);
787TESTINST3("pkhbt r0, r1, r2, lsl #16", 0x884c0ad8, 0xc00b821a, r0,r1,r2, 0);
788TESTINST3("pkhbt r0, r1, r2, lsl #24", 0xe1bb8606, 0x58293969, r0,r1,r2, 0);
789TESTINST3("pkhbt r0, r1, r2, lsl #31", 0xa3cfd624, 0x6077fb1f, r0,r1,r2, 0);
790TESTINST3("pkhbt r0, r1, r2, lsl #0", 0x40b094e2, 0x17913309, r0,r1,r2, 0);
791TESTINST3("pkhbt r0, r1, r2, lsl #1", 0x5388b5cd, 0x86582032, r0,r1,r2, 0);
792TESTINST3("pkhbt r0, r1, r2, lsl #2", 0x5de41558, 0xccfa1c7e, r0,r1,r2, 0);
793TESTINST3("pkhbt r0, r1, r2, lsl #3", 0x23ba1b46, 0x4437983c, r0,r1,r2, 0);
794TESTINST3("pkhbt r0, r1, r2, lsl #4", 0x48d06549, 0xa9085781, r0,r1,r2, 0);
795TESTINST3("pkhbt r0, r1, r2, lsl #8", 0xc6b4ac58, 0xb2aead21, r0,r1,r2, 0);
796TESTINST3("pkhbt r0, r1, r2, lsl #12", 0xc2bdf597, 0xdde1e6a4, r0,r1,r2, 0);
797TESTINST3("pkhbt r0, r1, r2, lsl #16", 0x852e3a72, 0x157b0dea, r0,r1,r2, 0);
798TESTINST3("pkhbt r0, r1, r2, lsl #24", 0xe7aa57b4, 0x1584bd74, r0,r1,r2, 0);
799TESTINST3("pkhbt r0, r1, r2, lsl #31", 0xd4b64d54, 0xc53aaba9, r0,r1,r2, 0);
800 /* PKHTB */
801 TESTINST3("pkhtb r0, r1, r2, asr #0", 0x11223344, 0x55667788, r0,r1,r2, 0);
802 TESTINST3("pkhtb r0, r1, r2, asr #1", 0x11223344, 0x55667788, r0,r1,r2, 0);
803 TESTINST3("pkhtb r0, r1, r2, asr #2", 0x11223344, 0x55667788, r0,r1,r2, 0);
804 TESTINST3("pkhtb r0, r1, r2, asr #3", 0x11223344, 0x55667788, r0,r1,r2, 0);
805 TESTINST3("pkhtb r0, r1, r2, asr #4", 0x11223344, 0x55667788, r0,r1,r2, 0);
806 TESTINST3("pkhtb r0, r1, r2, asr #16", 0x11223344, 0x55667788, r0,r1,r2, 0);
807 TESTINST3("pkhtb r0, r1, r2, asr #22", 0x11223344, 0x55667788, r0,r1,r2, 0);
808 TESTINST3("pkhtb r0, r1, r2, asr #31", 0x11223344, 0x55667788, r0,r1,r2, 0);
809TESTINST3("pkhtb r0, r1, r2", 0x50c28082, 0xc1553709, r0,r1,r2, 0);
810TESTINST3("pkhtb r0, r1, r2", 0x17962e8f, 0x69ec0212, r0,r1,r2, 0);
811TESTINST3("pkhtb r0, r1, r2", 0xc57243b7, 0x03fa9bb5, r0,r1,r2, 0);
812TESTINST3("pkhtb r0, r1, r2", 0x7eb226ac, 0xf52e9fbf, r0,r1,r2, 0);
813TESTINST3("pkhtb r0, r1, r2", 0xbce0f026, 0x7fcbe5a9, r0,r1,r2, 0);
814TESTINST3("pkhtb r0, r1, r2", 0xa5757252, 0x2dd01366, r0,r1,r2, 0);
815TESTINST3("pkhtb r0, r1, r2", 0xf4a477c1, 0x5e4b1cbf, r0,r1,r2, 0);
816TESTINST3("pkhtb r0, r1, r2", 0x76723a21, 0x464a21cc, r0,r1,r2, 0);
817TESTINST3("pkhtb r0, r1, r2", 0x74d01105, 0xe8108f1b, r0,r1,r2, 0);
818TESTINST3("pkhtb r0, r1, r2", 0xc1273e2c, 0xcd90d604, r0,r1,r2, 0);
819TESTINST3("pkhtb r0, r1, r2, asr #0", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
820TESTINST3("pkhtb r0, r1, r2, asr #1", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
821TESTINST3("pkhtb r0, r1, r2, asr #2", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
822TESTINST3("pkhtb r0, r1, r2, asr #3", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
823TESTINST3("pkhtb r0, r1, r2, asr #4", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
824TESTINST3("pkhtb r0, r1, r2, asr #8", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
825TESTINST3("pkhtb r0, r1, r2, asr #12", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
826TESTINST3("pkhtb r0, r1, r2, asr #16", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
827TESTINST3("pkhtb r0, r1, r2, asr #24", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
828TESTINST3("pkhtb r0, r1, r2, asr #31", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
829TESTINST3("pkhtb r0, r1, r2, asr #32", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
830TESTINST3("pkhtb r0, r1, r2, asr #0", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
831TESTINST3("pkhtb r0, r1, r2, asr #1", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
832TESTINST3("pkhtb r0, r1, r2, asr #2", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
833TESTINST3("pkhtb r0, r1, r2, asr #3", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
834TESTINST3("pkhtb r0, r1, r2, asr #4", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
835TESTINST3("pkhtb r0, r1, r2, asr #8", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
836TESTINST3("pkhtb r0, r1, r2, asr #12", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
837TESTINST3("pkhtb r0, r1, r2, asr #16", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
838TESTINST3("pkhtb r0, r1, r2, asr #24", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
839TESTINST3("pkhtb r0, r1, r2, asr #31", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
840TESTINST3("pkhtb r0, r1, r2, asr #32", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
841TESTINST3("pkhtb r0, r1, r2, asr #0", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
842TESTINST3("pkhtb r0, r1, r2, asr #1", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
843TESTINST3("pkhtb r0, r1, r2, asr #2", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
844TESTINST3("pkhtb r0, r1, r2, asr #3", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
845TESTINST3("pkhtb r0, r1, r2, asr #4", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
846TESTINST3("pkhtb r0, r1, r2, asr #8", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
847TESTINST3("pkhtb r0, r1, r2, asr #12", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
848TESTINST3("pkhtb r0, r1, r2, asr #16", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
849TESTINST3("pkhtb r0, r1, r2, asr #24", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
850TESTINST3("pkhtb r0, r1, r2, asr #31", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
851TESTINST3("pkhtb r0, r1, r2, asr #32", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
852TESTINST3("pkhtb r0, r1, r2, asr #0", 0xd5dc5407, 0xf87b961e, r0,r1,r2, 0);
853TESTINST3("pkhtb r0, r1, r2, asr #1", 0xd65db979, 0xc61b323b, r0,r1,r2, 0);
854TESTINST3("pkhtb r0, r1, r2, asr #2", 0xa3268abe, 0xed2cbf78, r0,r1,r2, 0);
855TESTINST3("pkhtb r0, r1, r2, asr #3", 0xbf73f0a5, 0x2fb714c9, r0,r1,r2, 0);
856TESTINST3("pkhtb r0, r1, r2, asr #4", 0x281703ed, 0x925ef472, r0,r1,r2, 0);
857TESTINST3("pkhtb r0, r1, r2, asr #8", 0xeaa652c7, 0x137741f4, r0,r1,r2, 0);
858TESTINST3("pkhtb r0, r1, r2, asr #12", 0x71fbde8b, 0xdba5bd25, r0,r1,r2, 0);
859TESTINST3("pkhtb r0, r1, r2, asr #16", 0x884c0ad8, 0xc00b821a, r0,r1,r2, 0);
860TESTINST3("pkhtb r0, r1, r2, asr #24", 0xe1bb8606, 0x58293969, r0,r1,r2, 0);
861TESTINST3("pkhtb r0, r1, r2, asr #31", 0xa3cfd624, 0x6077fb1f, r0,r1,r2, 0);
862TESTINST3("pkhtb r0, r1, r2, asr #32", 0xa3cfd624, 0x6077fb1f, r0,r1,r2, 0);
863TESTINST3("pkhtb r0, r1, r2, asr #0", 0x40b094e2, 0x17913309, r0,r1,r2, 0);
864TESTINST3("pkhtb r0, r1, r2, asr #1", 0x5388b5cd, 0x86582032, r0,r1,r2, 0);
865TESTINST3("pkhtb r0, r1, r2, asr #2", 0x5de41558, 0xccfa1c7e, r0,r1,r2, 0);
866TESTINST3("pkhtb r0, r1, r2, asr #3", 0x23ba1b46, 0x4437983c, r0,r1,r2, 0);
867TESTINST3("pkhtb r0, r1, r2, asr #4", 0x48d06549, 0xa9085781, r0,r1,r2, 0);
868TESTINST3("pkhtb r0, r1, r2, asr #8", 0xc6b4ac58, 0xb2aead21, r0,r1,r2, 0);
869TESTINST3("pkhtb r0, r1, r2, asr #12", 0xc2bdf597, 0xdde1e6a4, r0,r1,r2, 0);
870TESTINST3("pkhtb r0, r1, r2, asr #16", 0x852e3a72, 0x157b0dea, r0,r1,r2, 0);
871TESTINST3("pkhtb r0, r1, r2, asr #24", 0xe7aa57b4, 0x1584bd74, r0,r1,r2, 0);
872TESTINST3("pkhtb r0, r1, r2, asr #31", 0xd4b64d54, 0xc53aaba9, r0,r1,r2, 0);
873TESTINST3("pkhtb r0, r1, r2, asr #32", 0xd4b64d54, 0xc53aaba9, r0,r1,r2, 0);
874
875 printf("----------------- USAT ----------------- \n");
876 TESTINST2("usat r0, #0, r1", 0x0123abcd, r0, r1, 0);
877 TESTINST2("usat r0, #1, r1", 0x0123abcd, r0, r1, 0);
878 TESTINST2("usat r0, #5, r1", 0x0123abcd, r0, r1, 0);
879 TESTINST2("usat r0, #8, r1", 0x0123abcd, r0, r1, 0);
880 TESTINST2("usat r0, #11, r1", 0x11110000, r0, r1, 0);
881 TESTINST2("usat r0, #13, r1", 0x11110000, r0, r1, 0);
882 TESTINST2("usat r0, #15, r1", 0x11110000, r0, r1, 0);
883TESTINST2("usat r0, #0, r1", 0xebbff82b, r0, r1, 0);
884TESTINST2("usat r0, #31, r1, lsl #0", 0x5f986e68, r0, r1, 0);
885TESTINST2("usat r0, #31, r1, lsl #0", 0xe7aa57b4, r0, r1, 0);
886TESTINST2("usat r0, #31, r1, lsl #0", 0x89d2ef86, r0, r1, 0);
887TESTINST2("usat r0, #31, r1, lsl #8", 0xc53aaba9, r0, r1, 0);
888TESTINST2("usat r0, #31, r1, lsl #8", 0x216158cb, r0, r1, 0);
889TESTINST2("usat r0, #31, r1, lsl #8", 0x3cd6cd94, r0, r1, 0);
890TESTINST2("usat r0, #0, r1, lsl #0", 0xf87b961e, r0, r1, 0);
891TESTINST2("usat r0, #0, r1, lsl #0", 0xc61b323b, r0, r1, 0);
892TESTINST2("usat r0, #0, r1, lsl #0", 0xa3268abe, r0, r1, 0);
893TESTINST2("usat r0, #0, r1, lsl #8", 0xbf73f0a5, r0, r1, 0);
894TESTINST2("usat r0, #0, r1, lsl #8", 0x925ef472, r0, r1, 0);
895TESTINST2("usat r0, #0, r1, lsl #8", 0x137741f4, r0, r1, 0);
896TESTINST2("usat r0, #24, r1, lsl #2", 0x50c28082, r0, r1, 0);
897TESTINST2("usat r0, #16, r1, lsl #3", 0x17962e8f, r0, r1, 0);
898TESTINST2("usat r0, #12, r1, lsl #4", 0xc57243b7, r0, r1, 0);
899TESTINST2("usat r0, #8, r1, lsl #8", 0xf20fb90f, r0, r1, 0);
900TESTINST2("usat r0, #4, r1, lsl #12", 0xbb151055, r0, r1, 0);
901TESTINST2("usat r0, #3, r1, lsl #16", 0x957440d2, r0, r1, 0);
902TESTINST2("usat r0, #2, r1, lsl #24", 0x728b7771, r0, r1, 0);
903TESTINST2("usat r0, #1, r1, lsl #31", 0xf13c20f3, r0, r1, 0);
904TESTINST2("usat r0, #0, r1", 0xebbff82b, r0, r1, 0);
905TESTINST2("usat r0, #31, r1, asr #0", 0x5f986e68, r0, r1, 0);
906TESTINST2("usat r0, #31, r1, asr #0", 0xe7aa57b4, r0, r1, 0);
907TESTINST2("usat r0, #31, r1, asr #0", 0x89d2ef86, r0, r1, 0);
908TESTINST2("usat r0, #31, r1, asr #8", 0xc53aaba9, r0, r1, 0);
909TESTINST2("usat r0, #31, r1, asr #8", 0x216158cb, r0, r1, 0);
910TESTINST2("usat r0, #31, r1, asr #8", 0x3cd6cd94, r0, r1, 0);
911TESTINST2("usat r0, #0, r1, asr #0", 0xf87b961e, r0, r1, 0);
912TESTINST2("usat r0, #0, r1, asr #0", 0xc61b323b, r0, r1, 0);
913TESTINST2("usat r0, #0, r1, asr #0", 0xa3268abe, r0, r1, 0);
914TESTINST2("usat r0, #0, r1, asr #8", 0xbf73f0a5, r0, r1, 0);
915TESTINST2("usat r0, #0, r1, asr #8", 0x925ef472, r0, r1, 0);
916TESTINST2("usat r0, #0, r1, asr #8", 0x137741f4, r0, r1, 0);
917TESTINST2("usat r0, #24, r1, asr #2", 0x50c28082, r0, r1, 0);
918TESTINST2("usat r0, #16, r1, asr #3", 0x17962e8f, r0, r1, 0);
919TESTINST2("usat r0, #12, r1, asr #4", 0xc57243b7, r0, r1, 0);
920TESTINST2("usat r0, #8, r1, asr #8", 0xf20fb90f, r0, r1, 0);
921TESTINST2("usat r0, #4, r1, asr #12", 0xbb151055, r0, r1, 0);
922TESTINST2("usat r0, #3, r1, asr #16", 0x957440d2, r0, r1, 0);
923TESTINST2("usat r0, #2, r1, asr #24", 0x728b7771, r0, r1, 0);
924TESTINST2("usat r0, #1, r1, asr #31", 0xf13c20f3, r0, r1, 0);
925TESTINST2("usat r0, #0, r1", 0xebbff82b, r0, r1, 0);
926TESTINST2("usat r0, #31, r1, asr #0", 0x5f986e68, r0, r1, 0);
927TESTINST2("usat r0, #31, r1, asr #0", 0xe7aa57b4, r0, r1, 0);
928TESTINST2("usat r0, #31, r1, asr #0", 0x89d2ef86, r0, r1, 0);
929TESTINST2("usat r0, #31, r1, asr #8", 0xc53aaba9, r0, r1, 0);
930TESTINST2("usat r0, #31, r1, asr #8", 0x216158cb, r0, r1, 0);
931TESTINST2("usat r0, #31, r1, asr #8", 0x3cd6cd94, r0, r1, 0);
932TESTINST2("usat r0, #0, r1, asr #0", 0xf87b961e, r0, r1, 0);
933TESTINST2("usat r0, #0, r1, asr #0", 0xc61b323b, r0, r1, 0);
934TESTINST2("usat r0, #0, r1, asr #0", 0xa3268abe, r0, r1, 0);
935TESTINST2("usat r0, #0, r1, asr #8", 0xbf73f0a5, r0, r1, 0);
936TESTINST2("usat r0, #0, r1, asr #8", 0x925ef472, r0, r1, 0);
937TESTINST2("usat r0, #0, r1, asr #8", 0x137741f4, r0, r1, 0);
938TESTINST2("usat r0, #24, r1, asr #2", 0x50c28082, r0, r1, 0);
939TESTINST2("usat r0, #16, r1, asr #3", 0x17962e8f, r0, r1, 0);
940TESTINST2("usat r0, #12, r1, asr #4", 0xc57243b7, r0, r1, 0);
941TESTINST2("usat r0, #8, r1, asr #8", 0xf20fb90f, r0, r1, 0);
942TESTINST2("usat r0, #4, r1, asr #12", 0xbb151055, r0, r1, 0);
943TESTINST2("usat r0, #3, r1, asr #16", 0x957440d2, r0, r1, 0);
944TESTINST2("usat r0, #2, r1, asr #24", 0x728b7771, r0, r1, 0);
945TESTINST2("usat r0, #1, r1, asr #31", 0xf13c20f3, r0, r1, 0);
946#ifndef __thumb__
947TESTINST2("usat r0, #0, r1, asr #32", 0xa9085781, r0, r1, 0);
948TESTINST2("usat r0, #31, r1, asr #32", 0x40b094e2, r0, r1, 0);
949TESTINST2("usat r0, #31, r1, asr #32", 0x17913309, r0, r1, 0);
950TESTINST2("usat r0, #31, r1, asr #32", 0x5388b5cd, r0, r1, 0);
951TESTINST2("usat r0, #24, r1, asr #32", 0x86582032, r0, r1, 0);
952TESTINST2("usat r0, #16, r1, asr #32", 0x5de41558, r0, r1, 0);
953TESTINST2("usat r0, #12, r1, asr #32", 0xccfa1c7e, r0, r1, 0);
954TESTINST2("usat r0, #8, r1, asr #32", 0x23ba1b46, r0, r1, 0);
955TESTINST2("usat r0, #4, r1, asr #32", 0x4437983c, r0, r1, 0);
956TESTINST2("usat r0, #3, r1, asr #32", 0x48d06549, r0, r1, 0);
957TESTINST2("usat r0, #2, r1, asr #32", 0xa9085781, r0, r1, 0);
958TESTINST2("usat r0, #1, r1, asr #32", 0xc6b4ac58, r0, r1, 0);
959#endif
960
961 printf("------------ USAT16 sat_imm ------------ \n");
962 TESTINST2("usat16 r0, #0, r1", 0x0123abcd, r0, r1, 0);
963 TESTINST2("usat16 r0, #1, r1", 0xffcdabcd, r0, r1, 0);
964 TESTINST2("usat16 r0, #5, r1", 0x0123feff, r0, r1, 0);
965 TESTINST2("usat16 r0, #8, r1", 0x0123abcd, r0, r1, 0);
966 TESTINST2("usat16 r0, #11, r1", 0x11110000, r0, r1, 0);
967 TESTINST2("usat16 r0, #13, r1", 0x1111f111, r0, r1, 0);
968 TESTINST2("usat16 r0, #15, r1", 0x00001111, r0, r1, 0);
969TESTINST2("usat16 r0, #0, r1", 0xebbff82b, r0, r1, 0);
970TESTINST2("usat16 r0, #1, r1", 0xebbff82b, r0, r1, 0);
971TESTINST2("usat16 r0, #3, r1", 0x50c28082, r0, r1, 0);
972TESTINST2("usat16 r0, #5, r1", 0x17962e8f, r0, r1, 0);
973TESTINST2("usat16 r0, #8, r1", 0xc57243b7, r0, r1, 0);
974TESTINST2("usat16 r0, #10, r1", 0xf20fb90f, r0, r1, 0);
975TESTINST2("usat16 r0, #11, r1", 0xbb151055, r0, r1, 0);
976TESTINST2("usat16 r0, #13, r1", 0x957440d2, r0, r1, 0);
977TESTINST2("usat16 r0, #14, r1", 0x728b7771, r0, r1, 0);
978TESTINST2("usat16 r0, #15, r1", 0xf13c20f3, r0, r1, 0);
979TESTINST2("usat16 r0, #0, r1", 0x86398371, r0, r1, 0);
980TESTINST2("usat16 r0, #1, r1", 0x03d0fb78, r0, r1, 0);
981TESTINST2("usat16 r0, #3, r1", 0xd0d49b7c, r0, r1, 0);
982TESTINST2("usat16 r0, #5, r1", 0x76354a58, r0, r1, 0);
983TESTINST2("usat16 r0, #8, r1", 0x9fa45fb7, r0, r1, 0);
984TESTINST2("usat16 r0, #10, r1", 0x7572bdec, r0, r1, 0);
985TESTINST2("usat16 r0, #11, r1", 0xfea59eb6, r0, r1, 0);
986TESTINST2("usat16 r0, #13, r1", 0xf2669090, r0, r1, 0);
987TESTINST2("usat16 r0, #14, r1", 0xbc1ff573, r0, r1, 0);
988TESTINST2("usat16 r0, #15, r1", 0x7eb226ac, r0, r1, 0);
989TESTINST2("usat16 r0, #0, r1", 0x22b65db1, r0, r1, 0);
990TESTINST2("usat16 r0, #1, r1", 0x776c41c7, r0, r1, 0);
991TESTINST2("usat16 r0, #3, r1", 0xe50dd77c, r0, r1, 0);
992TESTINST2("usat16 r0, #5, r1", 0xd6f9a698, r0, r1, 0);
993TESTINST2("usat16 r0, #8, r1", 0xeda5110c, r0, r1, 0);
994TESTINST2("usat16 r0, #10, r1", 0x0be36f70, r0, r1, 0);
995TESTINST2("usat16 r0, #11, r1", 0xd759eb72, r0, r1, 0);
996TESTINST2("usat16 r0, #13, r1", 0xd9c4b1f4, r0, r1, 0);
997TESTINST2("usat16 r0, #14, r1", 0xa29eb320, r0, r1, 0);
998TESTINST2("usat16 r0, #15, r1", 0xcf1e4487, r0, r1, 0);
999TESTINST2("usat16 r0, #0, r1", 0x2eb68500, r0, r1, 0);
1000TESTINST2("usat16 r0, #1, r1", 0xcdb7ed11, r0, r1, 0);
1001TESTINST2("usat16 r0, #3, r1", 0x2eaea305, r0, r1, 0);
1002TESTINST2("usat16 r0, #5, r1", 0x6ebd04d9, r0, r1, 0);
1003TESTINST2("usat16 r0, #8, r1", 0xa5ec1aa8, r0, r1, 0);
1004TESTINST2("usat16 r0, #10, r1", 0x72f33509, r0, r1, 0);
1005TESTINST2("usat16 r0, #11, r1", 0xa3e6f759, r0, r1, 0);
1006TESTINST2("usat16 r0, #13, r1", 0xfaceab39, r0, r1, 0);
1007TESTINST2("usat16 r0, #14, r1", 0x2738f0ff, r0, r1, 0);
1008TESTINST2("usat16 r0, #15, r1", 0xe79fd570, r0, r1, 0);
1009TESTINST2("usat16 r0, #0, r1", 0x55ea3e4e, r0, r1, 0);
1010TESTINST2("usat16 r0, #1, r1", 0x2b62ba5a, r0, r1, 0);
1011TESTINST2("usat16 r0, #3, r1", 0x9b41bfb1, r0, r1, 0);
1012TESTINST2("usat16 r0, #5, r1", 0x557c7ba2, r0, r1, 0);
1013TESTINST2("usat16 r0, #8, r1", 0x2973c051, r0, r1, 0);
1014TESTINST2("usat16 r0, #10, r1", 0x6a228b19, r0, r1, 0);
1015TESTINST2("usat16 r0, #11, r1", 0x0cdafabe, r0, r1, 0);
1016TESTINST2("usat16 r0, #13, r1", 0x50865114, r0, r1, 0);
1017TESTINST2("usat16 r0, #14, r1", 0xd83b849b, r0, r1, 0);
1018TESTINST2("usat16 r0, #15, r1", 0xca5e5605, r0, r1, 0);
1019
1020 printf("---------------- UADD16 ---------------- \n");
1021 TESTINST3("uadd16 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
1022 TESTINST3("uadd16 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
1023 TESTINST3("uadd16 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
1024 TESTINST3("uadd16 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
1025TESTINST3("uadd16 r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
1026TESTINST3("uadd16 r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
1027TESTINST3("uadd16 r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
1028TESTINST3("uadd16 r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
1029TESTINST3("uadd16 r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
1030TESTINST3("uadd16 r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
1031TESTINST3("uadd16 r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
1032TESTINST3("uadd16 r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
1033TESTINST3("uadd16 r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
1034TESTINST3("uadd16 r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
1035TESTINST3("uadd16 r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
1036TESTINST3("uadd16 r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
1037TESTINST3("uadd16 r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
1038TESTINST3("uadd16 r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
1039TESTINST3("uadd16 r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
1040TESTINST3("uadd16 r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
1041TESTINST3("uadd16 r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
1042TESTINST3("uadd16 r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
1043TESTINST3("uadd16 r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
1044TESTINST3("uadd16 r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
1045TESTINST3("uadd16 r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
1046TESTINST3("uadd16 r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
1047TESTINST3("uadd16 r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
1048TESTINST3("uadd16 r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
1049TESTINST3("uadd16 r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
1050TESTINST3("uadd16 r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
1051TESTINST3("uadd16 r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
1052TESTINST3("uadd16 r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
1053TESTINST3("uadd16 r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
1054TESTINST3("uadd16 r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
1055TESTINST3("uadd16 r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
1056TESTINST3("uadd16 r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
1057TESTINST3("uadd16 r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
1058TESTINST3("uadd16 r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
1059TESTINST3("uadd16 r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
1060TESTINST3("uadd16 r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
1061TESTINST3("uadd16 r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
1062TESTINST3("uadd16 r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
1063TESTINST3("uadd16 r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
1064TESTINST3("uadd16 r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
1065TESTINST3("uadd16 r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
1066TESTINST3("uadd16 r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
1067TESTINST3("uadd16 r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
1068TESTINST3("uadd16 r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
1069TESTINST3("uadd16 r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
1070TESTINST3("uadd16 r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
1071TESTINST3("uadd16 r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
1072TESTINST3("uadd16 r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
1073TESTINST3("uadd16 r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
1074TESTINST3("uadd16 r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
1075
1076 printf("---------------- USUB16 ---------------- \n");
1077 TESTINST3("usub16 r0, r1, r2", 0x04000022, 0x03000011, r0, r1, r2, 0);
1078 TESTINST3("usub16 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
1079 TESTINST3("usub16 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
1080 TESTINST3("usub16 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
1081 TESTINST3("usub16 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
1082TESTINST3("usub16 r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
1083TESTINST3("usub16 r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
1084TESTINST3("usub16 r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
1085TESTINST3("usub16 r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
1086TESTINST3("usub16 r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
1087TESTINST3("usub16 r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
1088TESTINST3("usub16 r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
1089TESTINST3("usub16 r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
1090TESTINST3("usub16 r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
1091TESTINST3("usub16 r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
1092TESTINST3("usub16 r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
1093TESTINST3("usub16 r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
1094TESTINST3("usub16 r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
1095TESTINST3("usub16 r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
1096TESTINST3("usub16 r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
1097TESTINST3("usub16 r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
1098TESTINST3("usub16 r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
1099TESTINST3("usub16 r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
1100TESTINST3("usub16 r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
1101TESTINST3("usub16 r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
1102TESTINST3("usub16 r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
1103TESTINST3("usub16 r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
1104TESTINST3("usub16 r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
1105TESTINST3("usub16 r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
1106TESTINST3("usub16 r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
1107TESTINST3("usub16 r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
1108TESTINST3("usub16 r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
1109TESTINST3("usub16 r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
1110TESTINST3("usub16 r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
1111TESTINST3("usub16 r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
1112TESTINST3("usub16 r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
1113TESTINST3("usub16 r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
1114TESTINST3("usub16 r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
1115TESTINST3("usub16 r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
1116TESTINST3("usub16 r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
1117TESTINST3("usub16 r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
1118TESTINST3("usub16 r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
1119TESTINST3("usub16 r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
1120TESTINST3("usub16 r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
1121TESTINST3("usub16 r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
1122TESTINST3("usub16 r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
1123TESTINST3("usub16 r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
1124TESTINST3("usub16 r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
1125TESTINST3("usub16 r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
1126TESTINST3("usub16 r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
1127TESTINST3("usub16 r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
1128TESTINST3("usub16 r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
1129TESTINST3("usub16 r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
1130TESTINST3("usub16 r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
1131TESTINST3("usub16 r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
1132
1133 printf("---------------- UADD8 ----------------- \n");
1134 TESTINST3("uadd8 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
1135 TESTINST3("uadd8 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
1136 TESTINST3("uadd8 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
1137 TESTINST3("uadd8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
1138 TESTINST3("uadd8 r0, r1, r2", 0x00000318, 0xff00ff09, r0, r1, r2, 0);
1139 TESTINST3("uadd8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
1140 TESTINST3("uadd8 r0, r1, r2", 0x00020318, 0xff07ff09, r0, r1, r2, 0);
1141 TESTINST3("uadd8 r0, r1, r2", 0xff07ff09, 0x00020318, r0, r1, r2, 0);
1142TESTINST3("uadd8 r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
1143TESTINST3("uadd8 r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
1144TESTINST3("uadd8 r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
1145TESTINST3("uadd8 r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
1146TESTINST3("uadd8 r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
1147TESTINST3("uadd8 r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
1148TESTINST3("uadd8 r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
1149TESTINST3("uadd8 r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
1150TESTINST3("uadd8 r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
1151TESTINST3("uadd8 r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
1152TESTINST3("uadd8 r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
1153TESTINST3("uadd8 r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
1154TESTINST3("uadd8 r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
1155TESTINST3("uadd8 r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
1156TESTINST3("uadd8 r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
1157TESTINST3("uadd8 r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
1158TESTINST3("uadd8 r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
1159TESTINST3("uadd8 r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
1160TESTINST3("uadd8 r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
1161TESTINST3("uadd8 r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
1162TESTINST3("uadd8 r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
1163TESTINST3("uadd8 r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
1164TESTINST3("uadd8 r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
1165TESTINST3("uadd8 r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
1166TESTINST3("uadd8 r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
1167TESTINST3("uadd8 r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
1168TESTINST3("uadd8 r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
1169TESTINST3("uadd8 r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
1170TESTINST3("uadd8 r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
1171TESTINST3("uadd8 r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
1172TESTINST3("uadd8 r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
1173TESTINST3("uadd8 r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
1174TESTINST3("uadd8 r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
1175TESTINST3("uadd8 r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
1176TESTINST3("uadd8 r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
1177TESTINST3("uadd8 r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
1178TESTINST3("uadd8 r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
1179TESTINST3("uadd8 r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
1180TESTINST3("uadd8 r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
1181TESTINST3("uadd8 r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
1182TESTINST3("uadd8 r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
1183TESTINST3("uadd8 r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
1184TESTINST3("uadd8 r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
1185TESTINST3("uadd8 r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
1186TESTINST3("uadd8 r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
1187TESTINST3("uadd8 r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
1188TESTINST3("uadd8 r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
1189TESTINST3("uadd8 r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
1190TESTINST3("uadd8 r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
1191TESTINST3("uadd8 r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
1192
1193 printf("---------------- USUB8 ----------------- \n");
1194 TESTINST3("usub8 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
1195 TESTINST3("usub8 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
1196 TESTINST3("usub8 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
1197 TESTINST3("usub8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
1198 TESTINST3("usub8 r0, r1, r2", 0x00000318, 0xff00ff09, r0, r1, r2, 0);
1199 TESTINST3("usub8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
1200 TESTINST3("usub8 r0, r1, r2", 0x00020318, 0xff07ff09, r0, r1, r2, 0);
1201 TESTINST3("usub8 r0, r1, r2", 0xff07ff09, 0x00020318, r0, r1, r2, 0);
1202TESTINST3("usub8 r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
1203TESTINST3("usub8 r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
1204TESTINST3("usub8 r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
1205TESTINST3("usub8 r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
1206TESTINST3("usub8 r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
1207TESTINST3("usub8 r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
1208TESTINST3("usub8 r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
1209TESTINST3("usub8 r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
1210TESTINST3("usub8 r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
1211TESTINST3("usub8 r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
1212TESTINST3("usub8 r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
1213TESTINST3("usub8 r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
1214TESTINST3("usub8 r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
1215TESTINST3("usub8 r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
1216TESTINST3("usub8 r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
1217TESTINST3("usub8 r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
1218TESTINST3("usub8 r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
1219TESTINST3("usub8 r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
1220TESTINST3("usub8 r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
1221TESTINST3("usub8 r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
1222TESTINST3("usub8 r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
1223TESTINST3("usub8 r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
1224TESTINST3("usub8 r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
1225TESTINST3("usub8 r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
1226TESTINST3("usub8 r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
1227TESTINST3("usub8 r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
1228TESTINST3("usub8 r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
1229TESTINST3("usub8 r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
1230TESTINST3("usub8 r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
1231TESTINST3("usub8 r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
1232TESTINST3("usub8 r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
1233TESTINST3("usub8 r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
1234TESTINST3("usub8 r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
1235TESTINST3("usub8 r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
1236TESTINST3("usub8 r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
1237TESTINST3("usub8 r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
1238TESTINST3("usub8 r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
1239TESTINST3("usub8 r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
1240TESTINST3("usub8 r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
1241TESTINST3("usub8 r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
1242TESTINST3("usub8 r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
1243TESTINST3("usub8 r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
1244TESTINST3("usub8 r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
1245TESTINST3("usub8 r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
1246TESTINST3("usub8 r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
1247TESTINST3("usub8 r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
1248TESTINST3("usub8 r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
1249TESTINST3("usub8 r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
1250TESTINST3("usub8 r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
1251TESTINST3("usub8 r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
1252
1253 printf("---------------- QADD16 ---------------- \n");
1254 TESTINST3("qadd16 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
1255 TESTINST3("qadd16 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
1256 TESTINST3("qadd16 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
1257 TESTINST3("qadd16 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
1258TESTINST3("qadd16 r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
1259TESTINST3("qadd16 r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
1260TESTINST3("qadd16 r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
1261TESTINST3("qadd16 r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
1262TESTINST3("qadd16 r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
1263TESTINST3("qadd16 r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
1264TESTINST3("qadd16 r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
1265TESTINST3("qadd16 r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
1266TESTINST3("qadd16 r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
1267TESTINST3("qadd16 r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
1268TESTINST3("qadd16 r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
1269TESTINST3("qadd16 r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
1270TESTINST3("qadd16 r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
1271TESTINST3("qadd16 r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
1272TESTINST3("qadd16 r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
1273TESTINST3("qadd16 r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
1274TESTINST3("qadd16 r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
1275TESTINST3("qadd16 r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
1276TESTINST3("qadd16 r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
1277TESTINST3("qadd16 r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
1278TESTINST3("qadd16 r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
1279TESTINST3("qadd16 r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
1280TESTINST3("qadd16 r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
1281TESTINST3("qadd16 r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
1282TESTINST3("qadd16 r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
1283TESTINST3("qadd16 r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
1284TESTINST3("qadd16 r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
1285TESTINST3("qadd16 r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
1286TESTINST3("qadd16 r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
1287TESTINST3("qadd16 r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
1288TESTINST3("qadd16 r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
1289TESTINST3("qadd16 r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
1290TESTINST3("qadd16 r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
1291TESTINST3("qadd16 r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
1292TESTINST3("qadd16 r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
1293TESTINST3("qadd16 r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
1294TESTINST3("qadd16 r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
1295TESTINST3("qadd16 r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
1296TESTINST3("qadd16 r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
1297TESTINST3("qadd16 r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
1298TESTINST3("qadd16 r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
1299TESTINST3("qadd16 r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
1300TESTINST3("qadd16 r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
1301TESTINST3("qadd16 r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
1302TESTINST3("qadd16 r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
1303TESTINST3("qadd16 r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
1304TESTINST3("qadd16 r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
1305TESTINST3("qadd16 r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
1306TESTINST3("qadd16 r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
1307TESTINST3("qadd16 r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
1308
1309 printf("---------------- QSUB16 ---------------- \n");
1310 TESTINST3("qsub16 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
1311 TESTINST3("qsub16 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
1312 TESTINST3("qsub16 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
1313 TESTINST3("qsub16 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
1314TESTINST3("qsub16 r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
1315TESTINST3("qsub16 r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
1316TESTINST3("qsub16 r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
1317TESTINST3("qsub16 r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
1318TESTINST3("qsub16 r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
1319TESTINST3("qsub16 r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
1320TESTINST3("qsub16 r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
1321TESTINST3("qsub16 r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
1322TESTINST3("qsub16 r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
1323TESTINST3("qsub16 r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
1324TESTINST3("qsub16 r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
1325TESTINST3("qsub16 r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
1326TESTINST3("qsub16 r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
1327TESTINST3("qsub16 r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
1328TESTINST3("qsub16 r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
1329TESTINST3("qsub16 r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
1330TESTINST3("qsub16 r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
1331TESTINST3("qsub16 r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
1332TESTINST3("qsub16 r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
1333TESTINST3("qsub16 r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
1334TESTINST3("qsub16 r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
1335TESTINST3("qsub16 r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
1336TESTINST3("qsub16 r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
1337TESTINST3("qsub16 r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
1338TESTINST3("qsub16 r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
1339TESTINST3("qsub16 r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
1340TESTINST3("qsub16 r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
1341TESTINST3("qsub16 r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
1342TESTINST3("qsub16 r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
1343TESTINST3("qsub16 r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
1344TESTINST3("qsub16 r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
1345TESTINST3("qsub16 r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
1346TESTINST3("qsub16 r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
1347TESTINST3("qsub16 r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
1348TESTINST3("qsub16 r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
1349TESTINST3("qsub16 r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
1350TESTINST3("qsub16 r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
1351TESTINST3("qsub16 r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
1352TESTINST3("qsub16 r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
1353TESTINST3("qsub16 r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
1354TESTINST3("qsub16 r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
1355TESTINST3("qsub16 r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
1356TESTINST3("qsub16 r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
1357TESTINST3("qsub16 r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
1358TESTINST3("qsub16 r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
1359TESTINST3("qsub16 r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
1360TESTINST3("qsub16 r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
1361TESTINST3("qsub16 r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
1362TESTINST3("qsub16 r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
1363TESTINST3("qsub16 r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
1364
1365 printf("----------------- QSAX ----------------- \n");
1366 TESTINST3("qsax r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
1367 TESTINST3("qsax r0, r1, r2", 0x7fff7fff, 0x00010001, r0, r1, r2, 0);
1368 TESTINST3("qsax r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
1369 TESTINST3("qsax r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
1370 TESTINST3("qsax r0, r1, r2", 0x00640064, 0x00030003, r0, r1, r2, 0);
1371 TESTINST3("qsax r0, r1, r2", 0x00030003, 0x00640064, r0, r1, r2, 0);
1372TESTINST3("qsax r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
1373TESTINST3("qsax r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
1374TESTINST3("qsax r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
1375TESTINST3("qsax r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
1376TESTINST3("qsax r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
1377TESTINST3("qsax r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
1378TESTINST3("qsax r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
1379TESTINST3("qsax r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
1380TESTINST3("qsax r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
1381TESTINST3("qsax r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
1382TESTINST3("qsax r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
1383TESTINST3("qsax r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
1384TESTINST3("qsax r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
1385TESTINST3("qsax r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
1386TESTINST3("qsax r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
1387TESTINST3("qsax r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
1388TESTINST3("qsax r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
1389TESTINST3("qsax r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
1390TESTINST3("qsax r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
1391TESTINST3("qsax r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
1392TESTINST3("qsax r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
1393TESTINST3("qsax r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
1394TESTINST3("qsax r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
1395TESTINST3("qsax r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
1396TESTINST3("qsax r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
1397TESTINST3("qsax r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
1398TESTINST3("qsax r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
1399TESTINST3("qsax r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
1400TESTINST3("qsax r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
1401TESTINST3("qsax r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
1402TESTINST3("qsax r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
1403TESTINST3("qsax r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
1404TESTINST3("qsax r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
1405TESTINST3("qsax r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
1406TESTINST3("qsax r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
1407TESTINST3("qsax r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
1408TESTINST3("qsax r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
1409TESTINST3("qsax r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
1410TESTINST3("qsax r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
1411TESTINST3("qsax r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
1412TESTINST3("qsax r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
1413TESTINST3("qsax r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
1414TESTINST3("qsax r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
1415TESTINST3("qsax r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
1416TESTINST3("qsax r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
1417TESTINST3("qsax r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
1418TESTINST3("qsax r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
1419TESTINST3("qsax r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
1420TESTINST3("qsax r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
1421TESTINST3("qsax r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
1422
1423 printf("----------------- QASX ----------------- \n");
1424 TESTINST3("qasx r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
1425 TESTINST3("qasx r0, r1, r2", 0x7fff7fff, 0x00010001, r0, r1, r2, 0);
1426 TESTINST3("qasx r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
1427 TESTINST3("qasx r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
1428 TESTINST3("qasx r0, r1, r2", 0x00640064, 0x00030003, r0, r1, r2, 0);
1429 TESTINST3("qasx r0, r1, r2", 0x00030003, 0x00640064, r0, r1, r2, 0);
1430TESTINST3("qasx r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
1431TESTINST3("qasx r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
1432TESTINST3("qasx r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
1433TESTINST3("qasx r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
1434TESTINST3("qasx r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
1435TESTINST3("qasx r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
1436TESTINST3("qasx r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
1437TESTINST3("qasx r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
1438TESTINST3("qasx r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
1439TESTINST3("qasx r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
1440TESTINST3("qasx r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
1441TESTINST3("qasx r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
1442TESTINST3("qasx r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
1443TESTINST3("qasx r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
1444TESTINST3("qasx r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
1445TESTINST3("qasx r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
1446TESTINST3("qasx r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
1447TESTINST3("qasx r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
1448TESTINST3("qasx r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
1449TESTINST3("qasx r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
1450TESTINST3("qasx r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
1451TESTINST3("qasx r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
1452TESTINST3("qasx r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
1453TESTINST3("qasx r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
1454TESTINST3("qasx r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
1455TESTINST3("qasx r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
1456TESTINST3("qasx r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
1457TESTINST3("qasx r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
1458TESTINST3("qasx r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
1459TESTINST3("qasx r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
1460TESTINST3("qasx r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
1461TESTINST3("qasx r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
1462TESTINST3("qasx r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
1463TESTINST3("qasx r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
1464TESTINST3("qasx r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
1465TESTINST3("qasx r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
1466TESTINST3("qasx r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
1467TESTINST3("qasx r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
1468TESTINST3("qasx r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
1469TESTINST3("qasx r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
1470TESTINST3("qasx r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
1471TESTINST3("qasx r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
1472TESTINST3("qasx r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
1473TESTINST3("qasx r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
1474TESTINST3("qasx r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
1475TESTINST3("qasx r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
1476TESTINST3("qasx r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
1477TESTINST3("qasx r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
1478TESTINST3("qasx r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
1479TESTINST3("qasx r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
1480
1481 printf("----------------- SMUAD ----------------- \n");
1482 TESTINST3("smuad r0, r1, r2", 0x80008000, 0x80008000, r0, r1, r2, 0);
1483 TESTINST3("smuad r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
1484 TESTINST3("smuad r0, r1, r2", 0x7fff7fff, 0x00010001, r0, r1, r2, 0);
1485 TESTINST3("smuad r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
1486 TESTINST3("smuad r0, r1, r2", 0x00640064, 0x00030003, r0, r1, r2, 0);
1487 TESTINST3("smuad r0, r1, r2", 0xffffffff, 0xfffc0001, r0, r1, r2, 0);
1488 TESTINST3("smuad r0, r1, r2", 0xfff70fff, 0x00030003, r0, r1, r2, 0);
1489TESTINST3("smuad r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
1490TESTINST3("smuad r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
1491TESTINST3("smuad r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
1492TESTINST3("smuad r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
1493TESTINST3("smuad r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
1494TESTINST3("smuad r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
1495TESTINST3("smuad r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
1496TESTINST3("smuad r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
1497TESTINST3("smuad r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
1498TESTINST3("smuad r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
1499TESTINST3("smuad r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
1500TESTINST3("smuad r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
1501TESTINST3("smuad r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
1502TESTINST3("smuad r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
1503TESTINST3("smuad r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
1504TESTINST3("smuad r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
1505TESTINST3("smuad r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
1506TESTINST3("smuad r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
1507TESTINST3("smuad r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
1508TESTINST3("smuad r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
1509TESTINST3("smuad r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
1510TESTINST3("smuad r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
1511TESTINST3("smuad r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
1512TESTINST3("smuad r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
1513TESTINST3("smuad r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
1514TESTINST3("smuad r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
1515TESTINST3("smuad r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
1516TESTINST3("smuad r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
1517TESTINST3("smuad r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
1518TESTINST3("smuad r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
1519TESTINST3("smuad r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
1520TESTINST3("smuad r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
1521TESTINST3("smuad r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
1522TESTINST3("smuad r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
1523TESTINST3("smuad r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
1524TESTINST3("smuad r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
1525TESTINST3("smuad r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
1526TESTINST3("smuad r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
1527TESTINST3("smuad r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
1528TESTINST3("smuad r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
1529TESTINST3("smuad r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
1530TESTINST3("smuad r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
1531TESTINST3("smuad r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
1532TESTINST3("smuad r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
1533TESTINST3("smuad r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
1534TESTINST3("smuad r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
1535TESTINST3("smuad r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
1536TESTINST3("smuad r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
1537TESTINST3("smuad r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
1538TESTINST3("smuad r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
1539 printf("----------------- SMUADX ---------------- \n");
1540 TESTINST3("smuadx r0, r1, r2", 0x80008000, 0x80008000, r0, r1, r2, 0);
1541 TESTINST3("smuadx r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
1542 TESTINST3("smuadx r0, r1, r2", 0x7fff7fff, 0x00010001, r0, r1, r2, 0);
1543 TESTINST3("smuadx r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
1544 TESTINST3("smuadx r0, r1, r2", 0x00640064, 0x00030003, r0, r1, r2, 0);
1545 TESTINST3("smuadx r0, r1, r2", 0xffffffff, 0xfffc0001, r0, r1, r2, 0);
1546 TESTINST3("smuadx r0, r1, r2", 0xfff70fff, 0x00030003, r0, r1, r2, 0);
1547TESTINST3("smuadx r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
1548TESTINST3("smuadx r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
1549TESTINST3("smuadx r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
1550TESTINST3("smuadx r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
1551TESTINST3("smuadx r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
1552TESTINST3("smuadx r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
1553TESTINST3("smuadx r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
1554TESTINST3("smuadx r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
1555TESTINST3("smuadx r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
1556TESTINST3("smuadx r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
1557TESTINST3("smuadx r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
1558TESTINST3("smuadx r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
1559TESTINST3("smuadx r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
1560TESTINST3("smuadx r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
1561TESTINST3("smuadx r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
1562TESTINST3("smuadx r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
1563TESTINST3("smuadx r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
1564TESTINST3("smuadx r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
1565TESTINST3("smuadx r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
1566TESTINST3("smuadx r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
1567TESTINST3("smuadx r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
1568TESTINST3("smuadx r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
1569TESTINST3("smuadx r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
1570TESTINST3("smuadx r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
1571TESTINST3("smuadx r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
1572TESTINST3("smuadx r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
1573TESTINST3("smuadx r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
1574TESTINST3("smuadx r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
1575TESTINST3("smuadx r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
1576TESTINST3("smuadx r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
1577TESTINST3("smuadx r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
1578TESTINST3("smuadx r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
1579TESTINST3("smuadx r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
1580TESTINST3("smuadx r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
1581TESTINST3("smuadx r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
1582TESTINST3("smuadx r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
1583TESTINST3("smuadx r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
1584TESTINST3("smuadx r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
1585TESTINST3("smuadx r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
1586TESTINST3("smuadx r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
1587TESTINST3("smuadx r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
1588TESTINST3("smuadx r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
1589TESTINST3("smuadx r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
1590TESTINST3("smuadx r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
1591TESTINST3("smuadx r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
1592TESTINST3("smuadx r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
1593TESTINST3("smuadx r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
1594TESTINST3("smuadx r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
1595TESTINST3("smuadx r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
1596TESTINST3("smuadx r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
1597
1598 printf("----------------- SMLAD ----------------- \n");
1599 TESTINST4("smlad r0, r1, r2, r3",
1600 0x7fff7fff, 0x00000000, 0x00000000, r0, r1, r2, r3, 0);
1601 TESTINST4("smlad r0, r1, r2, r3",
1602 0x7fff7fff, 0x00010001, 0x00000001, r0, r1, r2, r3, 0);
1603 TESTINST4("smlad r0, r1, r2, r3",
1604 0x80008000, 0xffffffff, 0x0000001f, r0, r1, r2, r3, 0);
1605 TESTINST4("smlad r0, r1, r2, r3",
1606 0x00640064, 0x00030003, 0x00000020, r0, r1, r2, r3, 0);
1607 TESTINST4("smlad r0, r1, r2, r3",
1608 0xffffffff, 0xfffc0001, 0x000000ff, r0, r1, r2, r3, 0);
1609 TESTINST4("smlad r0, r1, r2, r3",
1610 0xfff70fff, 0x00030003, 0x00000100, r0, r1, r2, r3, 0);
1611TESTINST4("smlad r0, r1, r2, r3",
1612 0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
1613TESTINST4("smlad r0, r1, r2, r3",
1614 0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
1615TESTINST4("smlad r0, r1, r2, r3",
1616 0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
1617TESTINST4("smlad r0, r1, r2, r3",
1618 0x32fa0095, 0x36f26261, 0x89d2ef86, r0, r1, r2, r3, 0);
1619TESTINST4("smlad r0, r1, r2, r3",
1620 0x8ed8287c, 0x02c90120, 0xd4b64d54, r0, r1, r2, r3, 0);
1621TESTINST4("smlad r0, r1, r2, r3",
1622 0xc53aaba9, 0x29300837, 0x0b02c58a, r0, r1, r2, r3, 0);
1623TESTINST4("smlad r0, r1, r2, r3",
1624 0x216158cb, 0x57a50a01, 0xb0d20777, r0, r1, r2, r3, 0);
1625TESTINST4("smlad r0, r1, r2, r3",
1626 0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0, r1, r2, r3, 0);
1627TESTINST4("smlad r0, r1, r2, r3",
1628 0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0, r1, r2, r3, 0);
1629TESTINST4("smlad r0, r1, r2, r3",
1630 0xf87b961e, 0x1d66879f, 0xf2b64835, r0, r1, r2, r3, 0);
1631TESTINST4("smlad r0, r1, r2, r3",
1632 0xd65db979, 0xc61b323b, 0xae930a1a, r0, r1, r2, r3, 0);
1633TESTINST4("smlad r0, r1, r2, r3",
1634 0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0, r1, r2, r3, 0);
1635TESTINST4("smlad r0, r1, r2, r3",
1636 0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0, r1, r2, r3, 0);
1637TESTINST4("smlad r0, r1, r2, r3",
1638 0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, r3, 0);
1639TESTINST4("smlad r0, r1, r2, r3",
1640 0xeaa652c7, 0x137741f4, 0x3dba1164, r0, r1, r2, r3, 0);
1641TESTINST4("smlad r0, r1, r2, r3",
1642 0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0, r1, r2, r3, 0);
1643TESTINST4("smlad r0, r1, r2, r3",
1644 0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0, r1, r2, r3, 0);
1645TESTINST4("smlad r0, r1, r2, r3",
1646 0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, r3, 0);
1647TESTINST4("smlad r0, r1, r2, r3",
1648 0xe1bb8606, 0x58293969, 0x81616d13, r0, r1, r2, r3, 0);
1649TESTINST4("smlad r0, r1, r2, r3",
1650 0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0, r1, r2, r3, 0);
1651TESTINST4("smlad r0, r1, r2, r3",
1652 0x0849a0c2, 0x0872f25a, 0x40b094e2, r0, r1, r2, r3, 0);
1653TESTINST4("smlad r0, r1, r2, r3",
1654 0x17913309, 0xf1e03d7e, 0x91edc21d, r0, r1, r2, r3, 0);
1655TESTINST4("smlad r0, r1, r2, r3",
1656 0x5388b5cd, 0x86582032, 0x6034078d, r0, r1, r2, r3, 0);
1657TESTINST4("smlad r0, r1, r2, r3",
1658 0x181c436b, 0x5de41558, 0xccfa1c7e, r0, r1, r2, r3, 0);
1659TESTINST4("smlad r0, r1, r2, r3",
1660 0x23ba1b46, 0x4437983c, 0x48d06549, r0, r1, r2, r3, 0);
1661TESTINST4("smlad r0, r1, r2, r3",
1662 0xa9085781, 0xc6b4ac58, 0xb2aead21, r0, r1, r2, r3, 0);
1663TESTINST4("smlad r0, r1, r2, r3",
1664 0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0, r1, r2, r3, 0);
1665TESTINST4("smlad r0, r1, r2, r3",
1666 0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, r3, 0);
1667TESTINST4("smlad r0, r1, r2, r3",
1668 0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0, r1, r2, r3, 0);
1669TESTINST4("smlad r0, r1, r2, r3",
1670 0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0, r1, r2, r3, 0);
1671TESTINST4("smlad r0, r1, r2, r3",
1672 0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0, r1, r2, r3, 0);
1673TESTINST4("smlad r0, r1, r2, r3",
1674 0xd7ce1909, 0x3e435701, 0x85fbf196, r0, r1, r2, r3, 0);
1675TESTINST4("smlad r0, r1, r2, r3",
1676 0xb4e16b6e, 0x6e13680a, 0x89436f88, r0, r1, r2, r3, 0);
1677TESTINST4("smlad r0, r1, r2, r3",
1678 0x44858efc, 0x9002bc30, 0x390d2c2f, r0, r1, r2, r3, 0);
1679TESTINST4("smlad r0, r1, r2, r3",
1680 0xbea121ab, 0x953ff6ec, 0x80657c40, r0, r1, r2, r3, 0);
1681TESTINST4("smlad r0, r1, r2, r3",
1682 0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, r3, 0);
1683TESTINST4("smlad r0, r1, r2, r3",
1684 0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0, r1, r2, r3, 0);
1685TESTINST4("smlad r0, r1, r2, r3",
1686 0xec0c2f30, 0x5736ed46, 0x231348c0, r0, r1, r2, r3, 0);
1687TESTINST4("smlad r0, r1, r2, r3",
1688 0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0, r1, r2, r3, 0);
1689TESTINST4("smlad r0, r1, r2, r3",
1690 0xc1553709, 0x0112b30a, 0x69ec0212, r0, r1, r2, r3, 0);
1691TESTINST4("smlad r0, r1, r2, r3",
1692 0x74bd0223, 0x03fa9bb5, 0x899d9192, r0, r1, r2, r3, 0);
1693TESTINST4("smlad r0, r1, r2, r3",
1694 0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, r3, 0);
1695TESTINST4("smlad r0, r1, r2, r3",
1696 0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0, r1, r2, r3, 0);
1697TESTINST4("smlad r0, r1, r2, r3",
1698 0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0, r1, r2, r3, 0);
1699TESTINST4("smlad r0, r1, r2, r3",
1700 0x299da970, 0xe8108f1b, 0xf5818cfb, r0, r1, r2, r3, 0);
1701TESTINST4("smlad r0, r1, r2, r3",
1702 0xcd90d604, 0xaa5e9444, 0x8217b7df, r0, r1, r2, r3, 0);
1703TESTINST4("smlad r0, r1, r2, r3",
1704 0xe60743c3, 0x7acb4de3, 0x73c29060, r0, r1, r2, r3, 0);
1705TESTINST4("smlad r0, r1, r2, r3",
1706 0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0, r1, r2, r3, 0);
1707TESTINST4("smlad r0, r1, r2, r3",
1708 0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0, r1, r2, r3, 0);
1709TESTINST4("smlad r0, r1, r2, r3",
1710 0xde99ac2f, 0x0be36f70, 0xeda5110c, r0, r1, r2, r3, 0);
1711TESTINST4("smlad r0, r1, r2, r3",
1712 0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0);
1713
1714 printf("------------ SMLABB, SMLATT, SMLATB, SMLABT ------------\n");
1715 /* smlabb rD, rN, rM, rA */
1716 TESTINST4("smlabb r0, r1, r2, r3",
1717 0x00030000, 0x00040000, 0x00000000, r0,r1,r2,r3, 0);
1718 TESTINST4("smlabb r0, r1, r2, r3",
1719 0x00030001, 0x00040002, 0x00007fff, r0,r1,r2,r3, 0);
1720 TESTINST4("smlabb r0, r1, r2, r3",
1721 0x00038001, 0x00047fff, 0x00005fff, r0,r1,r2,r3, 0);
1722 TESTINST4("smlabb r0, r1, r2, r3",
1723 0x00037fff, 0x00047fff, 0x00007fff, r0,r1,r2,r3, 0);
1724 TESTINST4("smlabb r0, r1, r2, r3",
1725 0x0003ffff, 0x0004ffff, 0x7fff7fff, r0,r1,r2,r3, 0);
1726 TESTINST4("smlabb r0, r1, r2, r3",
1727 0x0003fffc, 0x0004ffff, 0xffffffff, r0,r1,r2,r3, 0);
1728TESTINST4("smlabb r0, r1, r2, r3",
1729 0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
1730TESTINST4("smlabb r0, r1, r2, r3",
1731 0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
1732TESTINST4("smlabb r0, r1, r2, r3",
1733 0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
1734TESTINST4("smlabb r0, r1, r2, r3",
1735 0x32fa0095, 0x36f26261, 0x89d2ef86, r0, r1, r2, r3, 0);
1736TESTINST4("smlabb r0, r1, r2, r3",
1737 0x8ed8287c, 0x02c90120, 0xd4b64d54, r0, r1, r2, r3, 0);
1738TESTINST4("smlabb r0, r1, r2, r3",
1739 0xc53aaba9, 0x29300837, 0x0b02c58a, r0, r1, r2, r3, 0);
1740TESTINST4("smlabb r0, r1, r2, r3",
1741 0x216158cb, 0x57a50a01, 0xb0d20777, r0, r1, r2, r3, 0);
1742TESTINST4("smlabb r0, r1, r2, r3",
1743 0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0, r1, r2, r3, 0);
1744TESTINST4("smlabb r0, r1, r2, r3",
1745 0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0, r1, r2, r3, 0);
1746TESTINST4("smlabb r0, r1, r2, r3",
1747 0xf87b961e, 0x1d66879f, 0xf2b64835, r0, r1, r2, r3, 0);
1748TESTINST4("smlabb r0, r1, r2, r3",
1749 0xd65db979, 0xc61b323b, 0xae930a1a, r0, r1, r2, r3, 0);
1750TESTINST4("smlabb r0, r1, r2, r3",
1751 0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0, r1, r2, r3, 0);
1752TESTINST4("smlabb r0, r1, r2, r3",
1753 0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0, r1, r2, r3, 0);
1754TESTINST4("smlabb r0, r1, r2, r3",
1755 0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, r3, 0);
1756TESTINST4("smlabb r0, r1, r2, r3",
1757 0xeaa652c7, 0x137741f4, 0x3dba1164, r0, r1, r2, r3, 0);
1758TESTINST4("smlabb r0, r1, r2, r3",
1759 0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0, r1, r2, r3, 0);
1760TESTINST4("smlabb r0, r1, r2, r3",
1761 0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0, r1, r2, r3, 0);
1762TESTINST4("smlabb r0, r1, r2, r3",
1763 0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, r3, 0);
1764TESTINST4("smlabb r0, r1, r2, r3",
1765 0xe1bb8606, 0x58293969, 0x81616d13, r0, r1, r2, r3, 0);
1766TESTINST4("smlabb r0, r1, r2, r3",
1767 0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0, r1, r2, r3, 0);
1768TESTINST4("smlabb r0, r1, r2, r3",
1769 0x0849a0c2, 0x0872f25a, 0x40b094e2, r0, r1, r2, r3, 0);
1770TESTINST4("smlabb r0, r1, r2, r3",
1771 0x17913309, 0xf1e03d7e, 0x91edc21d, r0, r1, r2, r3, 0);
1772TESTINST4("smlabb r0, r1, r2, r3",
1773 0x5388b5cd, 0x86582032, 0x6034078d, r0, r1, r2, r3, 0);
1774TESTINST4("smlabb r0, r1, r2, r3",
1775 0x181c436b, 0x5de41558, 0xccfa1c7e, r0, r1, r2, r3, 0);
1776TESTINST4("smlabb r0, r1, r2, r3",
1777 0x23ba1b46, 0x4437983c, 0x48d06549, r0, r1, r2, r3, 0);
1778TESTINST4("smlabb r0, r1, r2, r3",
1779 0xa9085781, 0xc6b4ac58, 0xb2aead21, r0, r1, r2, r3, 0);
1780TESTINST4("smlabb r0, r1, r2, r3",
1781 0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0, r1, r2, r3, 0);
1782TESTINST4("smlabb r0, r1, r2, r3",
1783 0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, r3, 0);
1784TESTINST4("smlabb r0, r1, r2, r3",
1785 0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0, r1, r2, r3, 0);
1786TESTINST4("smlabb r0, r1, r2, r3",
1787 0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0, r1, r2, r3, 0);
1788TESTINST4("smlabb r0, r1, r2, r3",
1789 0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0, r1, r2, r3, 0);
1790TESTINST4("smlabb r0, r1, r2, r3",
1791 0xd7ce1909, 0x3e435701, 0x85fbf196, r0, r1, r2, r3, 0);
1792TESTINST4("smlabb r0, r1, r2, r3",
1793 0xb4e16b6e, 0x6e13680a, 0x89436f88, r0, r1, r2, r3, 0);
1794TESTINST4("smlabb r0, r1, r2, r3",
1795 0x44858efc, 0x9002bc30, 0x390d2c2f, r0, r1, r2, r3, 0);
1796TESTINST4("smlabb r0, r1, r2, r3",
1797 0xbea121ab, 0x953ff6ec, 0x80657c40, r0, r1, r2, r3, 0);
1798TESTINST4("smlabb r0, r1, r2, r3",
1799 0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, r3, 0);
1800TESTINST4("smlabb r0, r1, r2, r3",
1801 0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0, r1, r2, r3, 0);
1802TESTINST4("smlabb r0, r1, r2, r3",
1803 0xec0c2f30, 0x5736ed46, 0x231348c0, r0, r1, r2, r3, 0);
1804TESTINST4("smlabb r0, r1, r2, r3",
1805 0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0, r1, r2, r3, 0);
1806TESTINST4("smlabb r0, r1, r2, r3",
1807 0xc1553709, 0x0112b30a, 0x69ec0212, r0, r1, r2, r3, 0);
1808TESTINST4("smlabb r0, r1, r2, r3",
1809 0x74bd0223, 0x03fa9bb5, 0x899d9192, r0, r1, r2, r3, 0);
1810TESTINST4("smlabb r0, r1, r2, r3",
1811 0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, r3, 0);
1812TESTINST4("smlabb r0, r1, r2, r3",
1813 0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0, r1, r2, r3, 0);
1814TESTINST4("smlabb r0, r1, r2, r3",
1815 0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0, r1, r2, r3, 0);
1816TESTINST4("smlabb r0, r1, r2, r3",
1817 0x299da970, 0xe8108f1b, 0xf5818cfb, r0, r1, r2, r3, 0);
1818TESTINST4("smlabb r0, r1, r2, r3",
1819 0xcd90d604, 0xaa5e9444, 0x8217b7df, r0, r1, r2, r3, 0);
1820TESTINST4("smlabb r0, r1, r2, r3",
1821 0xe60743c3, 0x7acb4de3, 0x73c29060, r0, r1, r2, r3, 0);
1822TESTINST4("smlabb r0, r1, r2, r3",
1823 0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0, r1, r2, r3, 0);
1824TESTINST4("smlabb r0, r1, r2, r3",
1825 0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0, r1, r2, r3, 0);
1826TESTINST4("smlabb r0, r1, r2, r3",
1827 0xde99ac2f, 0x0be36f70, 0xeda5110c, r0, r1, r2, r3, 0);
1828TESTINST4("smlabb r0, r1, r2, r3",
1829 0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0);
1830 /* smlatt rD, rN, rM, rA */
1831 TESTINST4("smlatt r0, r1, r2, r3",
1832 0x00000003, 0x00000004, 0x00000000, r0,r1,r2,r3, 0);
1833 TESTINST4("smlatt r0, r1, r2, r3",
1834 0x00010003, 0x00020004, 0x00007fff, r0,r1,r2,r3, 0);
1835 TESTINST4("smlatt r0, r1, r2, r3",
1836 0x80010003, 0x7fff0004, 0x00005fff, r0,r1,r2,r3, 0);
1837 TESTINST4("smlatt r0, r1, r2, r3",
1838 0x7fff0003, 0x7fff0004, 0x00007fff, r0,r1,r2,r3, 0);
1839 TESTINST4("smlatt r0, r1, r2, r3",
1840 0xffff0003, 0xffff0004, 0x7fff7fff, r0,r1,r2,r3, 0);
1841 TESTINST4("smlatt r0, r1, r2, r3",
1842 0xfffc0003, 0xffff0004, 0xffffffff, r0,r1,r2,r3, 0);
1843TESTINST4("smlatt r0, r1, r2, r3",
1844 0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
1845TESTINST4("smlatt r0, r1, r2, r3",
1846 0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
1847TESTINST4("smlatt r0, r1, r2, r3",
1848 0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
1849TESTINST4("smlatt r0, r1, r2, r3",
1850 0x32fa0095, 0x36f26261, 0x89d2ef86, r0, r1, r2, r3, 0);
1851TESTINST4("smlatt r0, r1, r2, r3",
1852 0x8ed8287c, 0x02c90120, 0xd4b64d54, r0, r1, r2, r3, 0);
1853TESTINST4("smlatt r0, r1, r2, r3",
1854 0xc53aaba9, 0x29300837, 0x0b02c58a, r0, r1, r2, r3, 0);
1855TESTINST4("smlatt r0, r1, r2, r3",
1856 0x216158cb, 0x57a50a01, 0xb0d20777, r0, r1, r2, r3, 0);
1857TESTINST4("smlatt r0, r1, r2, r3",
1858 0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0, r1, r2, r3, 0);
1859TESTINST4("smlatt r0, r1, r2, r3",
1860 0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0, r1, r2, r3, 0);
1861TESTINST4("smlatt r0, r1, r2, r3",
1862 0xf87b961e, 0x1d66879f, 0xf2b64835, r0, r1, r2, r3, 0);
1863TESTINST4("smlatt r0, r1, r2, r3",
1864 0xd65db979, 0xc61b323b, 0xae930a1a, r0, r1, r2, r3, 0);
1865TESTINST4("smlatt r0, r1, r2, r3",
1866 0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0, r1, r2, r3, 0);
1867TESTINST4("smlatt r0, r1, r2, r3",
1868 0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0, r1, r2, r3, 0);
1869TESTINST4("smlatt r0, r1, r2, r3",
1870 0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, r3, 0);
1871TESTINST4("smlatt r0, r1, r2, r3",
1872 0xeaa652c7, 0x137741f4, 0x3dba1164, r0, r1, r2, r3, 0);
1873TESTINST4("smlatt r0, r1, r2, r3",
1874 0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0, r1, r2, r3, 0);
1875TESTINST4("smlatt r0, r1, r2, r3",
1876 0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0, r1, r2, r3, 0);
1877TESTINST4("smlatt r0, r1, r2, r3",
1878 0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, r3, 0);
1879TESTINST4("smlatt r0, r1, r2, r3",
1880 0xe1bb8606, 0x58293969, 0x81616d13, r0, r1, r2, r3, 0);
1881TESTINST4("smlatt r0, r1, r2, r3",
1882 0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0, r1, r2, r3, 0);
1883TESTINST4("smlatt r0, r1, r2, r3",
1884 0x0849a0c2, 0x0872f25a, 0x40b094e2, r0, r1, r2, r3, 0);
1885TESTINST4("smlatt r0, r1, r2, r3",
1886 0x17913309, 0xf1e03d7e, 0x91edc21d, r0, r1, r2, r3, 0);
1887TESTINST4("smlatt r0, r1, r2, r3",
1888 0x5388b5cd, 0x86582032, 0x6034078d, r0, r1, r2, r3, 0);
1889TESTINST4("smlatt r0, r1, r2, r3",
1890 0x181c436b, 0x5de41558, 0xccfa1c7e, r0, r1, r2, r3, 0);
1891TESTINST4("smlatt r0, r1, r2, r3",
1892 0x23ba1b46, 0x4437983c, 0x48d06549, r0, r1, r2, r3, 0);
1893TESTINST4("smlatt r0, r1, r2, r3",
1894 0xa9085781, 0xc6b4ac58, 0xb2aead21, r0, r1, r2, r3, 0);
1895TESTINST4("smlatt r0, r1, r2, r3",
1896 0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0, r1, r2, r3, 0);
1897TESTINST4("smlatt r0, r1, r2, r3",
1898 0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, r3, 0);
1899TESTINST4("smlatt r0, r1, r2, r3",
1900 0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0, r1, r2, r3, 0);
1901TESTINST4("smlatt r0, r1, r2, r3",
1902 0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0, r1, r2, r3, 0);
1903TESTINST4("smlatt r0, r1, r2, r3",
1904 0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0, r1, r2, r3, 0);
1905TESTINST4("smlatt r0, r1, r2, r3",
1906 0xd7ce1909, 0x3e435701, 0x85fbf196, r0, r1, r2, r3, 0);
1907TESTINST4("smlatt r0, r1, r2, r3",
1908 0xb4e16b6e, 0x6e13680a, 0x89436f88, r0, r1, r2, r3, 0);
1909TESTINST4("smlatt r0, r1, r2, r3",
1910 0x44858efc, 0x9002bc30, 0x390d2c2f, r0, r1, r2, r3, 0);
1911TESTINST4("smlatt r0, r1, r2, r3",
1912 0xbea121ab, 0x953ff6ec, 0x80657c40, r0, r1, r2, r3, 0);
1913TESTINST4("smlatt r0, r1, r2, r3",
1914 0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, r3, 0);
1915TESTINST4("smlatt r0, r1, r2, r3",
1916 0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0, r1, r2, r3, 0);
1917TESTINST4("smlatt r0, r1, r2, r3",
1918 0xec0c2f30, 0x5736ed46, 0x231348c0, r0, r1, r2, r3, 0);
1919TESTINST4("smlatt r0, r1, r2, r3",
1920 0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0, r1, r2, r3, 0);
1921TESTINST4("smlatt r0, r1, r2, r3",
1922 0xc1553709, 0x0112b30a, 0x69ec0212, r0, r1, r2, r3, 0);
1923TESTINST4("smlatt r0, r1, r2, r3",
1924 0x74bd0223, 0x03fa9bb5, 0x899d9192, r0, r1, r2, r3, 0);
1925TESTINST4("smlatt r0, r1, r2, r3",
1926 0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, r3, 0);
1927TESTINST4("smlatt r0, r1, r2, r3",
1928 0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0, r1, r2, r3, 0);
1929TESTINST4("smlatt r0, r1, r2, r3",
1930 0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0, r1, r2, r3, 0);
1931TESTINST4("smlatt r0, r1, r2, r3",
1932 0x299da970, 0xe8108f1b, 0xf5818cfb, r0, r1, r2, r3, 0);
1933TESTINST4("smlatt r0, r1, r2, r3",
1934 0xcd90d604, 0xaa5e9444, 0x8217b7df, r0, r1, r2, r3, 0);
1935TESTINST4("smlatt r0, r1, r2, r3",
1936 0xe60743c3, 0x7acb4de3, 0x73c29060, r0, r1, r2, r3, 0);
1937TESTINST4("smlatt r0, r1, r2, r3",
1938 0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0, r1, r2, r3, 0);
1939TESTINST4("smlatt r0, r1, r2, r3",
1940 0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0, r1, r2, r3, 0);
1941TESTINST4("smlatt r0, r1, r2, r3",
1942 0xde99ac2f, 0x0be36f70, 0xeda5110c, r0, r1, r2, r3, 0);
1943TESTINST4("smlatt r0, r1, r2, r3",
1944 0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0);
1945 /* smlatb rD, rN, rM, rA */
1946 TESTINST4("smlatb r0, r1, r2, r3",
1947 0x00000003, 0x00040000, 0x00000000, r0,r1,r2,r3, 0);
1948 TESTINST4("smlatb r0, r1, r2, r3",
1949 0x00010003, 0x00040002, 0x00007fff, r0,r1,r2,r3, 0);
1950 TESTINST4("smlatb r0, r1, r2, r3",
1951 0x80010003, 0x00047fff, 0x00005fff, r0,r1,r2,r3, 0);
1952 TESTINST4("smlatb r0, r1, r2, r3",
1953 0x7fff0003, 0x00047fff, 0x00007fff, r0,r1,r2,r3, 0);
1954 TESTINST4("smlatb r0, r1, r2, r3",
1955 0xffff0003, 0x0004ffff, 0x7fff7fff, r0,r1,r2,r3, 0);
1956 TESTINST4("smlatb r0, r1, r2, r3",
1957 0xfffc0003, 0x0004ffff, 0xffffffff, r0,r1,r2,r3, 0);
1958TESTINST4("smlatb r0, r1, r2, r3",
1959 0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
1960TESTINST4("smlatb r0, r1, r2, r3",
1961 0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
1962TESTINST4("smlatb r0, r1, r2, r3",
1963 0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
1964TESTINST4("smlatb r0, r1, r2, r3",
1965 0x32fa0095, 0x36f26261, 0x89d2ef86, r0, r1, r2, r3, 0);
1966TESTINST4("smlatb r0, r1, r2, r3",
1967 0x8ed8287c, 0x02c90120, 0xd4b64d54, r0, r1, r2, r3, 0);
1968TESTINST4("smlatb r0, r1, r2, r3",
1969 0xc53aaba9, 0x29300837, 0x0b02c58a, r0, r1, r2, r3, 0);
1970TESTINST4("smlatb r0, r1, r2, r3",
1971 0x216158cb, 0x57a50a01, 0xb0d20777, r0, r1, r2, r3, 0);
1972TESTINST4("smlatb r0, r1, r2, r3",
1973 0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0, r1, r2, r3, 0);
1974TESTINST4("smlatb r0, r1, r2, r3",
1975 0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0, r1, r2, r3, 0);
1976TESTINST4("smlatb r0, r1, r2, r3",
1977 0xf87b961e, 0x1d66879f, 0xf2b64835, r0, r1, r2, r3, 0);
1978TESTINST4("smlatb r0, r1, r2, r3",
1979 0xd65db979, 0xc61b323b, 0xae930a1a, r0, r1, r2, r3, 0);
1980TESTINST4("smlatb r0, r1, r2, r3",
1981 0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0, r1, r2, r3, 0);
1982TESTINST4("smlatb r0, r1, r2, r3",
1983 0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0, r1, r2, r3, 0);
1984TESTINST4("smlatb r0, r1, r2, r3",
1985 0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, r3, 0);
1986TESTINST4("smlatb r0, r1, r2, r3",
1987 0xeaa652c7, 0x137741f4, 0x3dba1164, r0, r1, r2, r3, 0);
1988TESTINST4("smlatb r0, r1, r2, r3",
1989 0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0, r1, r2, r3, 0);
1990TESTINST4("smlatb r0, r1, r2, r3",
1991 0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0, r1, r2, r3, 0);
1992TESTINST4("smlatb r0, r1, r2, r3",
1993 0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, r3, 0);
1994TESTINST4("smlatb r0, r1, r2, r3",
1995 0xe1bb8606, 0x58293969, 0x81616d13, r0, r1, r2, r3, 0);
1996TESTINST4("smlatb r0, r1, r2, r3",
1997 0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0, r1, r2, r3, 0);
1998TESTINST4("smlatb r0, r1, r2, r3",
1999 0x0849a0c2, 0x0872f25a, 0x40b094e2, r0, r1, r2, r3, 0);
2000TESTINST4("smlatb r0, r1, r2, r3",
2001 0x17913309, 0xf1e03d7e, 0x91edc21d, r0, r1, r2, r3, 0);
2002TESTINST4("smlatb r0, r1, r2, r3",
2003 0x5388b5cd, 0x86582032, 0x6034078d, r0, r1, r2, r3, 0);
2004TESTINST4("smlatb r0, r1, r2, r3",
2005 0x181c436b, 0x5de41558, 0xccfa1c7e, r0, r1, r2, r3, 0);
2006TESTINST4("smlatb r0, r1, r2, r3",
2007 0x23ba1b46, 0x4437983c, 0x48d06549, r0, r1, r2, r3, 0);
2008TESTINST4("smlatb r0, r1, r2, r3",
2009 0xa9085781, 0xc6b4ac58, 0xb2aead21, r0, r1, r2, r3, 0);
2010TESTINST4("smlatb r0, r1, r2, r3",
2011 0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0, r1, r2, r3, 0);
2012TESTINST4("smlatb r0, r1, r2, r3",
2013 0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, r3, 0);
2014TESTINST4("smlatb r0, r1, r2, r3",
2015 0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0, r1, r2, r3, 0);
2016TESTINST4("smlatb r0, r1, r2, r3",
2017 0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0, r1, r2, r3, 0);
2018TESTINST4("smlatb r0, r1, r2, r3",
2019 0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0, r1, r2, r3, 0);
2020TESTINST4("smlatb r0, r1, r2, r3",
2021 0xd7ce1909, 0x3e435701, 0x85fbf196, r0, r1, r2, r3, 0);
2022TESTINST4("smlatb r0, r1, r2, r3",
2023 0xb4e16b6e, 0x6e13680a, 0x89436f88, r0, r1, r2, r3, 0);
2024TESTINST4("smlatb r0, r1, r2, r3",
2025 0x44858efc, 0x9002bc30, 0x390d2c2f, r0, r1, r2, r3, 0);
2026TESTINST4("smlatb r0, r1, r2, r3",
2027 0xbea121ab, 0x953ff6ec, 0x80657c40, r0, r1, r2, r3, 0);
2028TESTINST4("smlatb r0, r1, r2, r3",
2029 0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, r3, 0);
2030TESTINST4("smlatb r0, r1, r2, r3",
2031 0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0, r1, r2, r3, 0);
2032TESTINST4("smlatb r0, r1, r2, r3",
2033 0xec0c2f30, 0x5736ed46, 0x231348c0, r0, r1, r2, r3, 0);
2034TESTINST4("smlatb r0, r1, r2, r3",
2035 0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0, r1, r2, r3, 0);
2036TESTINST4("smlatb r0, r1, r2, r3",
2037 0xc1553709, 0x0112b30a, 0x69ec0212, r0, r1, r2, r3, 0);
2038TESTINST4("smlatb r0, r1, r2, r3",
2039 0x74bd0223, 0x03fa9bb5, 0x899d9192, r0, r1, r2, r3, 0);
2040TESTINST4("smlatb r0, r1, r2, r3",
2041 0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, r3, 0);
2042TESTINST4("smlatb r0, r1, r2, r3",
2043 0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0, r1, r2, r3, 0);
2044TESTINST4("smlatb r0, r1, r2, r3",
2045 0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0, r1, r2, r3, 0);
2046TESTINST4("smlatb r0, r1, r2, r3",
2047 0x299da970, 0xe8108f1b, 0xf5818cfb, r0, r1, r2, r3, 0);
2048TESTINST4("smlatb r0, r1, r2, r3",
2049 0xcd90d604, 0xaa5e9444, 0x8217b7df, r0, r1, r2, r3, 0);
2050TESTINST4("smlatb r0, r1, r2, r3",
2051 0xe60743c3, 0x7acb4de3, 0x73c29060, r0, r1, r2, r3, 0);
2052TESTINST4("smlatb r0, r1, r2, r3",
2053 0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0, r1, r2, r3, 0);
2054TESTINST4("smlatb r0, r1, r2, r3",
2055 0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0, r1, r2, r3, 0);
2056TESTINST4("smlatb r0, r1, r2, r3",
2057 0xde99ac2f, 0x0be36f70, 0xeda5110c, r0, r1, r2, r3, 0);
2058TESTINST4("smlatb r0, r1, r2, r3",
2059 0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0);
2060 /* smlabt rD, rN, rM, rA */
2061 TESTINST4("smlabt r0, r1, r2, r3",
2062 0x00030000, 0x00000004, 0x00000000, r0,r1,r2,r3, 0);
2063 TESTINST4("smlabt r0, r1, r2, r3",
2064 0x00030001, 0x00020004, 0x00007fff, r0,r1,r2,r3, 0);
2065 TESTINST4("smlabt r0, r1, r2, r3",
2066 0x00038001, 0x7fff0004, 0x00005fff, r0,r1,r2,r3, 0);
2067 TESTINST4("smlabt r0, r1, r2, r3",
2068 0x00037fff, 0x7fff0004, 0x00007fff, r0,r1,r2,r3, 0);
2069 TESTINST4("smlabt r0, r1, r2, r3",
2070 0x0003ffff, 0xffff0004, 0x7fff7fff, r0,r1,r2,r3, 0);
2071 TESTINST4("smlabt r0, r1, r2, r3",
2072 0x0003fffc, 0xffff0004, 0xffffffff, r0,r1,r2,r3, 0);
2073TESTINST4("smlabt r0, r1, r2, r3",
2074 0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
2075TESTINST4("smlabt r0, r1, r2, r3",
2076 0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
2077TESTINST4("smlabt r0, r1, r2, r3",
2078 0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
2079TESTINST4("smlabt r0, r1, r2, r3",
2080 0x32fa0095, 0x36f26261, 0x89d2ef86, r0, r1, r2, r3, 0);
2081TESTINST4("smlabt r0, r1, r2, r3",
2082 0x8ed8287c, 0x02c90120, 0xd4b64d54, r0, r1, r2, r3, 0);
2083TESTINST4("smlabt r0, r1, r2, r3",
2084 0xc53aaba9, 0x29300837, 0x0b02c58a, r0, r1, r2, r3, 0);
2085TESTINST4("smlabt r0, r1, r2, r3",
2086 0x216158cb, 0x57a50a01, 0xb0d20777, r0, r1, r2, r3, 0);
2087TESTINST4("smlabt r0, r1, r2, r3",
2088 0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0, r1, r2, r3, 0);
2089TESTINST4("smlabt r0, r1, r2, r3",
2090 0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0, r1, r2, r3, 0);
2091TESTINST4("smlabt r0, r1, r2, r3",
2092 0xf87b961e, 0x1d66879f, 0xf2b64835, r0, r1, r2, r3, 0);
2093TESTINST4("smlabt r0, r1, r2, r3",
2094 0xd65db979, 0xc61b323b, 0xae930a1a, r0, r1, r2, r3, 0);
2095TESTINST4("smlabt r0, r1, r2, r3",
2096 0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0, r1, r2, r3, 0);
2097TESTINST4("smlabt r0, r1, r2, r3",
2098 0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0, r1, r2, r3, 0);
2099TESTINST4("smlabt r0, r1, r2, r3",
2100 0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, r3, 0);
2101TESTINST4("smlabt r0, r1, r2, r3",
2102 0xeaa652c7, 0x137741f4, 0x3dba1164, r0, r1, r2, r3, 0);
2103TESTINST4("smlabt r0, r1, r2, r3",
2104 0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0, r1, r2, r3, 0);
2105TESTINST4("smlabt r0, r1, r2, r3",
2106 0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0, r1, r2, r3, 0);
2107TESTINST4("smlabt r0, r1, r2, r3",
2108 0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, r3, 0);
2109TESTINST4("smlabt r0, r1, r2, r3",
2110 0xe1bb8606, 0x58293969, 0x81616d13, r0, r1, r2, r3, 0);
2111TESTINST4("smlabt r0, r1, r2, r3",
2112 0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0, r1, r2, r3, 0);
2113TESTINST4("smlabt r0, r1, r2, r3",
2114 0x0849a0c2, 0x0872f25a, 0x40b094e2, r0, r1, r2, r3, 0);
2115TESTINST4("smlabt r0, r1, r2, r3",
2116 0x17913309, 0xf1e03d7e, 0x91edc21d, r0, r1, r2, r3, 0);
2117TESTINST4("smlabt r0, r1, r2, r3",
2118 0x5388b5cd, 0x86582032, 0x6034078d, r0, r1, r2, r3, 0);
2119TESTINST4("smlabt r0, r1, r2, r3",
2120 0x181c436b, 0x5de41558, 0xccfa1c7e, r0, r1, r2, r3, 0);
2121TESTINST4("smlabt r0, r1, r2, r3",
2122 0x23ba1b46, 0x4437983c, 0x48d06549, r0, r1, r2, r3, 0);
2123TESTINST4("smlabt r0, r1, r2, r3",
2124 0xa9085781, 0xc6b4ac58, 0xb2aead21, r0, r1, r2, r3, 0);
2125TESTINST4("smlabt r0, r1, r2, r3",
2126 0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0, r1, r2, r3, 0);
2127TESTINST4("smlabt r0, r1, r2, r3",
2128 0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, r3, 0);
2129TESTINST4("smlabt r0, r1, r2, r3",
2130 0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0, r1, r2, r3, 0);
2131TESTINST4("smlabt r0, r1, r2, r3",
2132 0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0, r1, r2, r3, 0);
2133TESTINST4("smlabt r0, r1, r2, r3",
2134 0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0, r1, r2, r3, 0);
2135TESTINST4("smlabt r0, r1, r2, r3",
2136 0xd7ce1909, 0x3e435701, 0x85fbf196, r0, r1, r2, r3, 0);
2137TESTINST4("smlabt r0, r1, r2, r3",
2138 0xb4e16b6e, 0x6e13680a, 0x89436f88, r0, r1, r2, r3, 0);
2139TESTINST4("smlabt r0, r1, r2, r3",
2140 0x44858efc, 0x9002bc30, 0x390d2c2f, r0, r1, r2, r3, 0);
2141TESTINST4("smlabt r0, r1, r2, r3",
2142 0xbea121ab, 0x953ff6ec, 0x80657c40, r0, r1, r2, r3, 0);
2143TESTINST4("smlabt r0, r1, r2, r3",
2144 0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, r3, 0);
2145TESTINST4("smlabt r0, r1, r2, r3",
2146 0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0, r1, r2, r3, 0);
2147TESTINST4("smlabt r0, r1, r2, r3",
2148 0xec0c2f30, 0x5736ed46, 0x231348c0, r0, r1, r2, r3, 0);
2149TESTINST4("smlabt r0, r1, r2, r3",
2150 0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0, r1, r2, r3, 0);
2151TESTINST4("smlabt r0, r1, r2, r3",
2152 0xc1553709, 0x0112b30a, 0x69ec0212, r0, r1, r2, r3, 0);
2153TESTINST4("smlabt r0, r1, r2, r3",
2154 0x74bd0223, 0x03fa9bb5, 0x899d9192, r0, r1, r2, r3, 0);
2155TESTINST4("smlabt r0, r1, r2, r3",
2156 0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, r3, 0);
2157TESTINST4("smlabt r0, r1, r2, r3",
2158 0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0, r1, r2, r3, 0);
2159TESTINST4("smlabt r0, r1, r2, r3",
2160 0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0, r1, r2, r3, 0);
2161TESTINST4("smlabt r0, r1, r2, r3",
2162 0x299da970, 0xe8108f1b, 0xf5818cfb, r0, r1, r2, r3, 0);
2163TESTINST4("smlabt r0, r1, r2, r3",
2164 0xcd90d604, 0xaa5e9444, 0x8217b7df, r0, r1, r2, r3, 0);
2165TESTINST4("smlabt r0, r1, r2, r3",
2166 0xe60743c3, 0x7acb4de3, 0x73c29060, r0, r1, r2, r3, 0);
2167TESTINST4("smlabt r0, r1, r2, r3",
2168 0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0, r1, r2, r3, 0);
2169TESTINST4("smlabt r0, r1, r2, r3",
2170 0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0, r1, r2, r3, 0);
2171TESTINST4("smlabt r0, r1, r2, r3",
2172 0xde99ac2f, 0x0be36f70, 0xeda5110c, r0, r1, r2, r3, 0);
2173TESTINST4("smlabt r0, r1, r2, r3",
2174 0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0);
2175
2176 printf("------------ UQSUB8 -----------------------------------\n");
2177 TESTINST3("uqsub8 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
2178 TESTINST3("uqsub8 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
2179 TESTINST3("uqsub8 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
2180 TESTINST3("uqsub8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
2181 TESTINST3("uqsub8 r0, r1, r2", 0x00000318, 0xff00ff09, r0, r1, r2, 0);
2182 TESTINST3("uqsub8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
2183 TESTINST3("uqsub8 r0, r1, r2", 0x00020318, 0xff07ff09, r0, r1, r2, 0);
2184 TESTINST3("uqsub8 r0, r1, r2", 0xff07ff09, 0x00020318, r0, r1, r2, 0);
2185TESTINST3("uqsub8 r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
2186TESTINST3("uqsub8 r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
2187TESTINST3("uqsub8 r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
2188TESTINST3("uqsub8 r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
2189TESTINST3("uqsub8 r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
2190TESTINST3("uqsub8 r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
2191TESTINST3("uqsub8 r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
2192TESTINST3("uqsub8 r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
2193TESTINST3("uqsub8 r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
2194TESTINST3("uqsub8 r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
2195TESTINST3("uqsub8 r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
2196TESTINST3("uqsub8 r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
2197TESTINST3("uqsub8 r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
2198TESTINST3("uqsub8 r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
2199TESTINST3("uqsub8 r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
2200TESTINST3("uqsub8 r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
2201TESTINST3("uqsub8 r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
2202TESTINST3("uqsub8 r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
2203TESTINST3("uqsub8 r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
2204TESTINST3("uqsub8 r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
2205TESTINST3("uqsub8 r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
2206TESTINST3("uqsub8 r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
2207TESTINST3("uqsub8 r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
2208TESTINST3("uqsub8 r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
2209TESTINST3("uqsub8 r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
2210TESTINST3("uqsub8 r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
2211TESTINST3("uqsub8 r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
2212TESTINST3("uqsub8 r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
2213TESTINST3("uqsub8 r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
2214TESTINST3("uqsub8 r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
2215TESTINST3("uqsub8 r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
2216TESTINST3("uqsub8 r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
2217TESTINST3("uqsub8 r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
2218TESTINST3("uqsub8 r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
2219TESTINST3("uqsub8 r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
2220TESTINST3("uqsub8 r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
2221TESTINST3("uqsub8 r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
2222TESTINST3("uqsub8 r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
2223TESTINST3("uqsub8 r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
2224TESTINST3("uqsub8 r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
2225TESTINST3("uqsub8 r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
2226TESTINST3("uqsub8 r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
2227TESTINST3("uqsub8 r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
2228TESTINST3("uqsub8 r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
2229TESTINST3("uqsub8 r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
2230TESTINST3("uqsub8 r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
2231TESTINST3("uqsub8 r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
2232TESTINST3("uqsub8 r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
2233TESTINST3("uqsub8 r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
2234TESTINST3("uqsub8 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
2235TESTINST3("uqsub8 r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
2236
2237 printf("------------ UQADD8 -----------------------------------\n");
2238 TESTINST3("uqadd8 r0, r1, r2", 0x0009ffff, 0x001800aa, r0, r1, r2, 0);
2239 TESTINST3("uqadd8 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
2240 TESTINST3("uqadd8 r0, r1, r2", 0x00aa0018, 0xffff0009, r0, r1, r2, 0);
2241 TESTINST3("uqadd8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
2242 TESTINST3("uqadd8 r0, r1, r2", 0x0000aa18, 0xff00ff09, r0, r1, r2, 0);
2243 TESTINST3("uqadd8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
2244 TESTINST3("uqadd8 r0, r1, r2", 0xff9fefcc, 0xff9ffedd, r0, r1, r2, 0);
2245 TESTINST3("uqadd8 r0, r1, r2", 0xff07ff09, 0xaa020318, r0, r1, r2, 0);
2246TESTINST3("uqadd8 r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
2247TESTINST3("uqadd8 r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
2248TESTINST3("uqadd8 r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
2249TESTINST3("uqadd8 r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
2250TESTINST3("uqadd8 r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
2251TESTINST3("uqadd8 r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
2252TESTINST3("uqadd8 r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
2253TESTINST3("uqadd8 r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
2254TESTINST3("uqadd8 r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
2255TESTINST3("uqadd8 r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
2256TESTINST3("uqadd8 r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
2257TESTINST3("uqadd8 r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
2258TESTINST3("uqadd8 r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
2259TESTINST3("uqadd8 r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
2260TESTINST3("uqadd8 r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
2261TESTINST3("uqadd8 r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
2262TESTINST3("uqadd8 r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
2263TESTINST3("uqadd8 r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
2264TESTINST3("uqadd8 r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
2265TESTINST3("uqadd8 r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
2266TESTINST3("uqadd8 r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
2267TESTINST3("uqadd8 r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
2268TESTINST3("uqadd8 r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
2269TESTINST3("uqadd8 r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
2270TESTINST3("uqadd8 r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
2271TESTINST3("uqadd8 r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
2272TESTINST3("uqadd8 r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
2273TESTINST3("uqadd8 r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
2274TESTINST3("uqadd8 r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
2275TESTINST3("uqadd8 r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
2276TESTINST3("uqadd8 r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
2277TESTINST3("uqadd8 r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
2278TESTINST3("uqadd8 r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
2279TESTINST3("uqadd8 r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
2280TESTINST3("uqadd8 r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
2281TESTINST3("uqadd8 r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
2282TESTINST3("uqadd8 r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
2283TESTINST3("uqadd8 r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
2284TESTINST3("uqadd8 r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
2285TESTINST3("uqadd8 r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
2286TESTINST3("uqadd8 r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
2287TESTINST3("uqadd8 r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
2288TESTINST3("uqadd8 r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
2289TESTINST3("uqadd8 r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
2290TESTINST3("uqadd8 r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
2291TESTINST3("uqadd8 r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
2292TESTINST3("uqadd8 r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
2293TESTINST3("uqadd8 r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
2294TESTINST3("uqadd8 r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
2295TESTINST3("uqadd8 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
2296TESTINST3("uqadd8 r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
2297
2298 printf("------------ SEL --------------------------------------\n");
2299 TESTINST3("sel r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
2300 TESTINST3("sel r0, r1, r2", 0x7fff7fff, 0x00010001, r0, r1, r2, 0);
2301 TESTINST3("sel r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
2302 TESTINST3("sel r0, r1, r2", 0x00640064, 0x00030003, r0, r1, r2, 0);
2303 TESTINST3("sel r0, r1, r2", 0xfffcffff, 0xffff0001, r0, r1, r2, 0);
2304 TESTINST3("sel r0, r1, r2", 0xfff70fff, 0x00030003, r0, r1, r2, 0);
2305TESTINST3("sel r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
2306TESTINST3("sel r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
2307TESTINST3("sel r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
2308TESTINST3("sel r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
2309TESTINST3("sel r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
2310TESTINST3("sel r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
2311TESTINST3("sel r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
2312TESTINST3("sel r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
2313TESTINST3("sel r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
2314TESTINST3("sel r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
2315TESTINST3("sel r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
2316TESTINST3("sel r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
2317TESTINST3("sel r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
2318TESTINST3("sel r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
2319TESTINST3("sel r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
2320TESTINST3("sel r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
2321TESTINST3("sel r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
2322TESTINST3("sel r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
2323TESTINST3("sel r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
2324TESTINST3("sel r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
2325TESTINST3("sel r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
2326TESTINST3("sel r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
2327TESTINST3("sel r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
2328TESTINST3("sel r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
2329TESTINST3("sel r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
2330TESTINST3("sel r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
2331TESTINST3("sel r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
2332TESTINST3("sel r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
2333TESTINST3("sel r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
2334TESTINST3("sel r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
2335TESTINST3("sel r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
2336TESTINST3("sel r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
2337TESTINST3("sel r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
2338TESTINST3("sel r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
2339TESTINST3("sel r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
2340TESTINST3("sel r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
2341TESTINST3("sel r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
2342TESTINST3("sel r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
2343TESTINST3("sel r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
2344TESTINST3("sel r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
2345TESTINST3("sel r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
2346TESTINST3("sel r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
2347TESTINST3("sel r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
2348TESTINST3("sel r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
2349TESTINST3("sel r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
2350TESTINST3("sel r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
2351TESTINST3("sel r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
2352TESTINST3("sel r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
2353TESTINST3("sel r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
2354TESTINST3("sel r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
2355TESTINST3("sel r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
2356
2357 printf("------------ QSUB8-------------------------------------\n");
2358 TESTINST3("qsub8 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
2359 TESTINST3("qsub8 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
2360 TESTINST3("qsub8 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
2361 TESTINST3("qsub8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
2362 TESTINST3("qsub8 r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
2363 TESTINST3("qsub8 r0, r1, r2", 0x7fff00ff, 0x80017f01, r0, r1, r2, 0);
2364 TESTINST3("qsub8 r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
2365 TESTINST3("qsub8 r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
2366TESTINST3("qsub8 r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
2367TESTINST3("qsub8 r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
2368TESTINST3("qsub8 r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
2369TESTINST3("qsub8 r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
2370TESTINST3("qsub8 r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
2371TESTINST3("qsub8 r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
2372TESTINST3("qsub8 r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
2373TESTINST3("qsub8 r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
2374TESTINST3("qsub8 r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
2375TESTINST3("qsub8 r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
2376TESTINST3("qsub8 r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
2377TESTINST3("qsub8 r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
2378TESTINST3("qsub8 r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
2379TESTINST3("qsub8 r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
2380TESTINST3("qsub8 r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
2381TESTINST3("qsub8 r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
2382TESTINST3("qsub8 r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
2383TESTINST3("qsub8 r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
2384TESTINST3("qsub8 r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
2385TESTINST3("qsub8 r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
2386TESTINST3("qsub8 r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
2387TESTINST3("qsub8 r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
2388TESTINST3("qsub8 r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
2389TESTINST3("qsub8 r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
2390TESTINST3("qsub8 r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
2391TESTINST3("qsub8 r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
2392TESTINST3("qsub8 r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
2393TESTINST3("qsub8 r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
2394TESTINST3("qsub8 r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
2395TESTINST3("qsub8 r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
2396TESTINST3("qsub8 r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
2397TESTINST3("qsub8 r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
2398TESTINST3("qsub8 r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
2399TESTINST3("qsub8 r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
2400TESTINST3("qsub8 r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
2401TESTINST3("qsub8 r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
2402TESTINST3("qsub8 r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
2403TESTINST3("qsub8 r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
2404TESTINST3("qsub8 r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
2405TESTINST3("qsub8 r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
2406TESTINST3("qsub8 r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
2407TESTINST3("qsub8 r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
2408TESTINST3("qsub8 r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
2409TESTINST3("qsub8 r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
2410TESTINST3("qsub8 r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
2411TESTINST3("qsub8 r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
2412TESTINST3("qsub8 r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
2413TESTINST3("qsub8 r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
2414TESTINST3("qsub8 r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
2415TESTINST3("qsub8 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
2416TESTINST3("qsub8 r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
2417
2418 printf("------------ QADD8-------------------------------------\n");
2419 TESTINST3("qadd8 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
2420 TESTINST3("qadd8 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
2421 TESTINST3("qadd8 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
2422 TESTINST3("qadd8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
2423 TESTINST3("qadd8 r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
2424 TESTINST3("qadd8 r0, r1, r2", 0x7fff00ff, 0x80017f01, r0, r1, r2, 0);
2425 TESTINST3("qadd8 r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
2426 TESTINST3("qadd8 r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
2427TESTINST3("qadd8 r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
2428TESTINST3("qadd8 r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
2429TESTINST3("qadd8 r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
2430TESTINST3("qadd8 r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
2431TESTINST3("qadd8 r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
2432TESTINST3("qadd8 r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
2433TESTINST3("qadd8 r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
2434TESTINST3("qadd8 r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
2435TESTINST3("qadd8 r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
2436TESTINST3("qadd8 r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
2437TESTINST3("qadd8 r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
2438TESTINST3("qadd8 r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
2439TESTINST3("qadd8 r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
2440TESTINST3("qadd8 r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
2441TESTINST3("qadd8 r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
2442TESTINST3("qadd8 r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
2443TESTINST3("qadd8 r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
2444TESTINST3("qadd8 r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
2445TESTINST3("qadd8 r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
2446TESTINST3("qadd8 r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
2447TESTINST3("qadd8 r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
2448TESTINST3("qadd8 r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
2449TESTINST3("qadd8 r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
2450TESTINST3("qadd8 r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
2451TESTINST3("qadd8 r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
2452TESTINST3("qadd8 r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
2453TESTINST3("qadd8 r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
2454TESTINST3("qadd8 r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
2455TESTINST3("qadd8 r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
2456TESTINST3("qadd8 r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
2457TESTINST3("qadd8 r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
2458TESTINST3("qadd8 r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
2459TESTINST3("qadd8 r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
2460TESTINST3("qadd8 r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
2461TESTINST3("qadd8 r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
2462TESTINST3("qadd8 r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
2463TESTINST3("qadd8 r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
2464TESTINST3("qadd8 r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
2465TESTINST3("qadd8 r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
2466TESTINST3("qadd8 r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
2467TESTINST3("qadd8 r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
2468TESTINST3("qadd8 r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
2469TESTINST3("qadd8 r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
2470TESTINST3("qadd8 r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
2471TESTINST3("qadd8 r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
2472TESTINST3("qadd8 r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
2473TESTINST3("qadd8 r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
2474TESTINST3("qadd8 r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
2475TESTINST3("qadd8 r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
2476TESTINST3("qadd8 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
2477TESTINST3("qadd8 r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
2478
2479 printf("------------ SHADD8 -----------------------------------\n");
2480 TESTINST3("shadd8 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
2481 TESTINST3("shadd8 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
2482 TESTINST3("shadd8 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
2483 TESTINST3("shadd8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
2484 TESTINST3("shadd8 r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
2485 TESTINST3("shadd8 r0, r1, r2", 0x7fff00ff, 0x80017f01, r0, r1, r2, 0);
2486 TESTINST3("shadd8 r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
2487 TESTINST3("shadd8 r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
2488TESTINST3("shadd8 r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
2489TESTINST3("shadd8 r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
2490TESTINST3("shadd8 r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
2491TESTINST3("shadd8 r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
2492TESTINST3("shadd8 r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
2493TESTINST3("shadd8 r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
2494TESTINST3("shadd8 r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
2495TESTINST3("shadd8 r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
2496TESTINST3("shadd8 r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
2497TESTINST3("shadd8 r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
2498TESTINST3("shadd8 r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
2499TESTINST3("shadd8 r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
2500TESTINST3("shadd8 r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
2501TESTINST3("shadd8 r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
2502TESTINST3("shadd8 r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
2503TESTINST3("shadd8 r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
2504TESTINST3("shadd8 r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
2505TESTINST3("shadd8 r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
2506TESTINST3("shadd8 r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
2507TESTINST3("shadd8 r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
2508TESTINST3("shadd8 r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
2509TESTINST3("shadd8 r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
2510TESTINST3("shadd8 r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
2511TESTINST3("shadd8 r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
2512TESTINST3("shadd8 r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
2513TESTINST3("shadd8 r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
2514TESTINST3("shadd8 r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
2515TESTINST3("shadd8 r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
2516TESTINST3("shadd8 r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
2517TESTINST3("shadd8 r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
2518TESTINST3("shadd8 r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
2519TESTINST3("shadd8 r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
2520TESTINST3("shadd8 r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
2521TESTINST3("shadd8 r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
2522TESTINST3("shadd8 r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
2523TESTINST3("shadd8 r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
2524TESTINST3("shadd8 r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
2525TESTINST3("shadd8 r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
2526TESTINST3("shadd8 r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
2527TESTINST3("shadd8 r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
2528TESTINST3("shadd8 r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
2529TESTINST3("shadd8 r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
2530TESTINST3("shadd8 r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
2531TESTINST3("shadd8 r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
2532TESTINST3("shadd8 r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
2533TESTINST3("shadd8 r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
2534TESTINST3("shadd8 r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
2535TESTINST3("shadd8 r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
2536TESTINST3("shadd8 r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
2537TESTINST3("shadd8 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
2538TESTINST3("shadd8 r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
2539
2540 printf("----------------- SSAT ----------------- \n");
2541 TESTINST2("ssat r0, #1, r1, LSL #31", 0x80008000, r0, r1, 0);
2542 TESTINST2("ssat r0, #6, r1, LSL #24", 0x80008000, r0, r1, 0);
2543 TESTINST2("ssat r0, #8, r1, ASR #18", 0x80008000, r0, r1, 0);
2544 TESTINST2("ssat r0, #12, r1, ASR #16", 0x80008000, r0, r1, 0);
2545 TESTINST2("ssat r0, #16, r1, LSL #12", 0xffff0009, r0, r1, 0);
2546 TESTINST2("ssat r0, #18, r1, LSL #8", 0xffff0009, r0, r1, 0);
2547 TESTINST2("ssat r0, #24, r1, ASR #6", 0xffff0009, r0, r1, 0);
2548 TESTINST2("ssat r0, #31, r1, ASR #1", 0xffff0009, r0, r1, 0);
2549TESTINST2("ssat r0, #1, r1", 0x256bfdd6, r0, r1, 0);
2550TESTINST2("ssat r0, #1, r1", 0xc02a0c05, r0, r1, 0);
2551TESTINST2("ssat r0, #1, r1", 0xee2fa46e, r0, r1, 0);
2552TESTINST2("ssat r0, #1, r1", 0x97a7da20, r0, r1, 0);
2553TESTINST2("ssat r0, #32, r1", 0xa231d5e6, r0, r1, 0);
2554TESTINST2("ssat r0, #32, r1", 0x10e1968a, r0, r1, 0);
2555TESTINST2("ssat r0, #32, r1", 0x0e089270, r0, r1, 0);
2556TESTINST2("ssat r0, #32, r1", 0x9e8e0185, r0, r1, 0);
2557TESTINST2("ssat r0, #32, r1", 0x3096f12e, r0, r1, 0);
2558TESTINST2("ssat r0, #32, r1", 0xffc134df, r0, r1, 0);
2559TESTINST2("ssat r0, #1, r1, LSL #31", 0x256bfdd6, r0, r1, 0);
2560TESTINST2("ssat r0, #1, r1, LSL #31", 0xc02a0c05, r0, r1, 0);
2561TESTINST2("ssat r0, #1, r1, LSL #31", 0xee2fa46e, r0, r1, 0);
2562TESTINST2("ssat r0, #1, r1, LSL #31", 0x97a7da20, r0, r1, 0);
2563TESTINST2("ssat r0, #1, r1, LSL #31", 0xa231d5e6, r0, r1, 0);
2564TESTINST2("ssat r0, #1, r1, LSL #31", 0x10e1968a, r0, r1, 0);
2565TESTINST2("ssat r0, #1, r1, LSL #31", 0x0e089270, r0, r1, 0);
2566TESTINST2("ssat r0, #1, r1, LSL #31", 0x9e8e0185, r0, r1, 0);
2567TESTINST2("ssat r0, #1, r1, LSL #31", 0x3096f12e, r0, r1, 0);
2568TESTINST2("ssat r0, #1, r1, LSL #31", 0xffc134df, r0, r1, 0);
2569TESTINST2("ssat r0, #3, r1, LSL #28", 0x256bfdd6, r0, r1, 0);
2570TESTINST2("ssat r0, #3, r1, LSL #28", 0xc02a0c05, r0, r1, 0);
2571TESTINST2("ssat r0, #3, r1, LSL #28", 0xee2fa46e, r0, r1, 0);
2572TESTINST2("ssat r0, #3, r1, LSL #28", 0x97a7da20, r0, r1, 0);
2573TESTINST2("ssat r0, #3, r1, LSL #28", 0xa231d5e6, r0, r1, 0);
2574TESTINST2("ssat r0, #3, r1, LSL #28", 0x10e1968a, r0, r1, 0);
2575TESTINST2("ssat r0, #3, r1, LSL #28", 0x0e089270, r0, r1, 0);
2576TESTINST2("ssat r0, #3, r1, LSL #28", 0x9e8e0185, r0, r1, 0);
2577TESTINST2("ssat r0, #3, r1, LSL #28", 0x3096f12e, r0, r1, 0);
2578TESTINST2("ssat r0, #3, r1, LSL #28", 0xffc134df, r0, r1, 0);
2579TESTINST2("ssat r0, #6, r1, LSL #24", 0x256bfdd6, r0, r1, 0);
2580TESTINST2("ssat r0, #6, r1, LSL #24", 0xc02a0c05, r0, r1, 0);
2581TESTINST2("ssat r0, #6, r1, LSL #24", 0xee2fa46e, r0, r1, 0);
2582TESTINST2("ssat r0, #6, r1, LSL #24", 0x97a7da20, r0, r1, 0);
2583TESTINST2("ssat r0, #6, r1, LSL #24", 0xa231d5e6, r0, r1, 0);
2584TESTINST2("ssat r0, #6, r1, LSL #24", 0x10e1968a, r0, r1, 0);
2585TESTINST2("ssat r0, #6, r1, LSL #24", 0x0e089270, r0, r1, 0);
2586TESTINST2("ssat r0, #6, r1, LSL #24", 0x9e8e0185, r0, r1, 0);
2587TESTINST2("ssat r0, #6, r1, LSL #24", 0x3096f12e, r0, r1, 0);
2588TESTINST2("ssat r0, #6, r1, LSL #24", 0xffc134df, r0, r1, 0);
2589TESTINST2("ssat r0, #8, r1, ASR #18", 0x256bfdd6, r0, r1, 0);
2590TESTINST2("ssat r0, #8, r1, ASR #18", 0xc02a0c05, r0, r1, 0);
2591TESTINST2("ssat r0, #8, r1, ASR #18", 0xee2fa46e, r0, r1, 0);
2592TESTINST2("ssat r0, #8, r1, ASR #18", 0x97a7da20, r0, r1, 0);
2593TESTINST2("ssat r0, #8, r1, ASR #18", 0xa231d5e6, r0, r1, 0);
2594TESTINST2("ssat r0, #8, r1, ASR #18", 0x10e1968a, r0, r1, 0);
2595TESTINST2("ssat r0, #8, r1, ASR #18", 0x0e089270, r0, r1, 0);
2596TESTINST2("ssat r0, #8, r1, ASR #18", 0x9e8e0185, r0, r1, 0);
2597TESTINST2("ssat r0, #8, r1, ASR #18", 0x3096f12e, r0, r1, 0);
2598TESTINST2("ssat r0, #8, r1, ASR #18", 0xffc134df, r0, r1, 0);
2599TESTINST2("ssat r0, #12, r1, ASR #16", 0x256bfdd6, r0, r1, 0);
2600TESTINST2("ssat r0, #12, r1, ASR #16", 0xc02a0c05, r0, r1, 0);
2601TESTINST2("ssat r0, #12, r1, ASR #16", 0xee2fa46e, r0, r1, 0);
2602TESTINST2("ssat r0, #12, r1, ASR #16", 0x97a7da20, r0, r1, 0);
2603TESTINST2("ssat r0, #12, r1, ASR #16", 0xa231d5e6, r0, r1, 0);
2604TESTINST2("ssat r0, #12, r1, ASR #16", 0x10e1968a, r0, r1, 0);
2605TESTINST2("ssat r0, #12, r1, ASR #16", 0x0e089270, r0, r1, 0);
2606TESTINST2("ssat r0, #12, r1, ASR #16", 0x9e8e0185, r0, r1, 0);
2607TESTINST2("ssat r0, #12, r1, ASR #16", 0x3096f12e, r0, r1, 0);
2608TESTINST2("ssat r0, #12, r1, ASR #16", 0xffc134df, r0, r1, 0);
2609TESTINST2("ssat r0, #16, r1, LSL #12", 0x256bfdd6, r0, r1, 0);
2610TESTINST2("ssat r0, #16, r1, LSL #12", 0xc02a0c05, r0, r1, 0);
2611TESTINST2("ssat r0, #16, r1, LSL #12", 0xee2fa46e, r0, r1, 0);
2612TESTINST2("ssat r0, #16, r1, LSL #12", 0x97a7da20, r0, r1, 0);
2613TESTINST2("ssat r0, #16, r1, LSL #12", 0xa231d5e6, r0, r1, 0);
2614TESTINST2("ssat r0, #16, r1, LSL #12", 0x10e1968a, r0, r1, 0);
2615TESTINST2("ssat r0, #16, r1, LSL #12", 0x0e089270, r0, r1, 0);
2616TESTINST2("ssat r0, #16, r1, LSL #12", 0x9e8e0185, r0, r1, 0);
2617TESTINST2("ssat r0, #16, r1, LSL #12", 0x3096f12e, r0, r1, 0);
2618TESTINST2("ssat r0, #16, r1, LSL #12", 0xffc134df, r0, r1, 0);
2619TESTINST2("ssat r0, #18, r1, LSL #8", 0x256bfdd6, r0, r1, 0);
2620TESTINST2("ssat r0, #18, r1, LSL #8", 0xc02a0c05, r0, r1, 0);
2621TESTINST2("ssat r0, #18, r1, LSL #8", 0xee2fa46e, r0, r1, 0);
2622TESTINST2("ssat r0, #18, r1, LSL #8", 0x97a7da20, r0, r1, 0);
2623TESTINST2("ssat r0, #18, r1, LSL #8", 0xa231d5e6, r0, r1, 0);
2624TESTINST2("ssat r0, #18, r1, LSL #8", 0x10e1968a, r0, r1, 0);
2625TESTINST2("ssat r0, #18, r1, LSL #8", 0x0e089270, r0, r1, 0);
2626TESTINST2("ssat r0, #18, r1, LSL #8", 0x9e8e0185, r0, r1, 0);
2627TESTINST2("ssat r0, #18, r1, LSL #8", 0x3096f12e, r0, r1, 0);
2628TESTINST2("ssat r0, #18, r1, LSL #8", 0xffc134df, r0, r1, 0);
2629TESTINST2("ssat r0, #24, r1, ASR #6", 0x256bfdd6, r0, r1, 0);
2630TESTINST2("ssat r0, #24, r1, ASR #6", 0xc02a0c05, r0, r1, 0);
2631TESTINST2("ssat r0, #24, r1, ASR #6", 0xee2fa46e, r0, r1, 0);
2632TESTINST2("ssat r0, #24, r1, ASR #6", 0x97a7da20, r0, r1, 0);
2633TESTINST2("ssat r0, #24, r1, ASR #6", 0xa231d5e6, r0, r1, 0);
2634TESTINST2("ssat r0, #24, r1, ASR #6", 0x10e1968a, r0, r1, 0);
2635TESTINST2("ssat r0, #24, r1, ASR #6", 0x0e089270, r0, r1, 0);
2636TESTINST2("ssat r0, #24, r1, ASR #6", 0x9e8e0185, r0, r1, 0);
2637TESTINST2("ssat r0, #24, r1, ASR #6", 0x3096f12e, r0, r1, 0);
2638TESTINST2("ssat r0, #24, r1, ASR #6", 0xffc134df, r0, r1, 0);
2639TESTINST2("ssat r0, #28, r1, ASR #3", 0x256bfdd6, r0, r1, 0);
2640TESTINST2("ssat r0, #28, r1, ASR #3", 0xc02a0c05, r0, r1, 0);
2641TESTINST2("ssat r0, #28, r1, ASR #3", 0xee2fa46e, r0, r1, 0);
2642TESTINST2("ssat r0, #28, r1, ASR #3", 0x97a7da20, r0, r1, 0);
2643TESTINST2("ssat r0, #28, r1, ASR #3", 0xa231d5e6, r0, r1, 0);
2644TESTINST2("ssat r0, #28, r1, ASR #3", 0x10e1968a, r0, r1, 0);
2645TESTINST2("ssat r0, #28, r1, ASR #3", 0x0e089270, r0, r1, 0);
2646TESTINST2("ssat r0, #28, r1, ASR #3", 0x9e8e0185, r0, r1, 0);
2647TESTINST2("ssat r0, #28, r1, ASR #3", 0x3096f12e, r0, r1, 0);
2648TESTINST2("ssat r0, #28, r1, ASR #3", 0xffc134df, r0, r1, 0);
2649TESTINST2("ssat r0, #31, r1, ASR #1", 0x256bfdd6, r0, r1, 0);
2650TESTINST2("ssat r0, #31, r1, ASR #1", 0xc02a0c05, r0, r1, 0);
2651TESTINST2("ssat r0, #31, r1, ASR #1", 0xee2fa46e, r0, r1, 0);
2652TESTINST2("ssat r0, #31, r1, ASR #1", 0x97a7da20, r0, r1, 0);
2653TESTINST2("ssat r0, #31, r1, ASR #1", 0xa231d5e6, r0, r1, 0);
2654TESTINST2("ssat r0, #31, r1, ASR #1", 0x10e1968a, r0, r1, 0);
2655TESTINST2("ssat r0, #31, r1, ASR #1", 0x0e089270, r0, r1, 0);
2656TESTINST2("ssat r0, #31, r1, ASR #1", 0x9e8e0185, r0, r1, 0);
2657TESTINST2("ssat r0, #31, r1, ASR #1", 0x3096f12e, r0, r1, 0);
2658TESTINST2("ssat r0, #31, r1, ASR #1", 0xffc134df, r0, r1, 0);
2659#ifndef __thumb__
2660TESTINST2("ssat r0, #1, r1, ASR #32", 0x256bfdd6, r0, r1, 0);
2661TESTINST2("ssat r0, #1, r1, ASR #32", 0xc02a0c05, r0, r1, 0);
2662TESTINST2("ssat r0, #1, r1, ASR #32", 0xee2fa46e, r0, r1, 0);
2663TESTINST2("ssat r0, #1, r1, ASR #32", 0x97a7da20, r0, r1, 0);
2664TESTINST2("ssat r0, #1, r1, ASR #32", 0xa231d5e6, r0, r1, 0);
2665TESTINST2("ssat r0, #1, r1, ASR #32", 0x10e1968a, r0, r1, 0);
2666TESTINST2("ssat r0, #1, r1, ASR #32", 0x0e089270, r0, r1, 0);
2667TESTINST2("ssat r0, #1, r1, ASR #32", 0x9e8e0185, r0, r1, 0);
2668TESTINST2("ssat r0, #1, r1, ASR #32", 0x3096f12e, r0, r1, 0);
2669TESTINST2("ssat r0, #1, r1, ASR #32", 0xffc134df, r0, r1, 0);
2670TESTINST2("ssat r0, #32, r1, ASR #32", 0x256bfdd6, r0, r1, 0);
2671TESTINST2("ssat r0, #32, r1, ASR #32", 0xc02a0c05, r0, r1, 0);
2672TESTINST2("ssat r0, #32, r1, ASR #32", 0xee2fa46e, r0, r1, 0);
2673TESTINST2("ssat r0, #32, r1, ASR #32", 0x97a7da20, r0, r1, 0);
2674TESTINST2("ssat r0, #32, r1, ASR #32", 0xa231d5e6, r0, r1, 0);
2675TESTINST2("ssat r0, #32, r1, ASR #32", 0x10e1968a, r0, r1, 0);
2676TESTINST2("ssat r0, #32, r1, ASR #32", 0x0e089270, r0, r1, 0);
2677TESTINST2("ssat r0, #32, r1, ASR #32", 0x9e8e0185, r0, r1, 0);
2678TESTINST2("ssat r0, #32, r1, ASR #32", 0x3096f12e, r0, r1, 0);
2679TESTINST2("ssat r0, #32, r1, ASR #32", 0xffc134df, r0, r1, 0);
2680#endif
2681
2682 printf("---------------- SADD8 ----------------- \n");
2683 TESTINST3("sadd8 r0, r1, r2", 0x00f7ffff, 0x00e800fd, r0, r1, r2, 0);
2684 TESTINST3("sadd8 r0, r1, r2", 0x00e800fd, 0x00f7ffff, r0, r1, r2, 0);
2685 TESTINST3("sadd8 r0, r1, r2", 0x00fd00e8, 0xffff00f7, r0, r1, r2, 0);
2686 TESTINST3("sadd8 r0, r1, r2", 0xffff00f7, 0x00fd0018, r0, r1, r2, 0);
2687 TESTINST3("sadd8 r0, r1, r2", 0x0000fd18, 0xff00fff7, r0, r1, r2, 0);
2688 TESTINST3("sadd8 r0, r1, r2", 0xffff00f7, 0x00fd00e8, r0, r1, r2, 0);
2689 TESTINST3("sadd8 r0, r1, r2", 0x00fefd18, 0xff07fff7, r0, r1, r2, 0);
2690 TESTINST3("sadd8 r0, r1, r2", 0xff07fff7, 0x00fefde8, r0, r1, r2, 0);
2691TESTINST3("sadd8 r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
2692TESTINST3("sadd8 r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
2693TESTINST3("sadd8 r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
2694TESTINST3("sadd8 r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
2695TESTINST3("sadd8 r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
2696TESTINST3("sadd8 r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
2697TESTINST3("sadd8 r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
2698TESTINST3("sadd8 r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
2699TESTINST3("sadd8 r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
2700TESTINST3("sadd8 r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
2701TESTINST3("sadd8 r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
2702TESTINST3("sadd8 r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
2703TESTINST3("sadd8 r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
2704TESTINST3("sadd8 r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
2705TESTINST3("sadd8 r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
2706TESTINST3("sadd8 r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
2707TESTINST3("sadd8 r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
2708TESTINST3("sadd8 r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
2709TESTINST3("sadd8 r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
2710TESTINST3("sadd8 r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
2711TESTINST3("sadd8 r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
2712TESTINST3("sadd8 r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
2713TESTINST3("sadd8 r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
2714TESTINST3("sadd8 r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
2715TESTINST3("sadd8 r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
2716TESTINST3("sadd8 r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
2717TESTINST3("sadd8 r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
2718TESTINST3("sadd8 r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
2719TESTINST3("sadd8 r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
2720TESTINST3("sadd8 r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
2721TESTINST3("sadd8 r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
2722TESTINST3("sadd8 r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
2723TESTINST3("sadd8 r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
2724TESTINST3("sadd8 r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
2725TESTINST3("sadd8 r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
2726TESTINST3("sadd8 r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
2727TESTINST3("sadd8 r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
2728TESTINST3("sadd8 r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
2729TESTINST3("sadd8 r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
2730TESTINST3("sadd8 r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
2731TESTINST3("sadd8 r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
2732TESTINST3("sadd8 r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
2733TESTINST3("sadd8 r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
2734TESTINST3("sadd8 r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
2735TESTINST3("sadd8 r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
2736TESTINST3("sadd8 r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
2737TESTINST3("sadd8 r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
2738TESTINST3("sadd8 r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
2739TESTINST3("sadd8 r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
2740TESTINST3("sadd8 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
2741TESTINST3("sadd8 r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
2742
2743 printf("------------ SXTAB ------------\n");
2744 TESTINST3("sxtab r0, r1, r2, ROR #24", 0x31415927, 0x27182819, r0, r1, r2, 0);
2745 TESTINST3("sxtab r0, r1, r2, ROR #16", 0x31415927, 0x27182819, r0, r1, r2, 0);
2746 TESTINST3("sxtab r0, r1, r2, ROR #8", 0x31415927, 0x27182819, r0, r1, r2, 0);
2747 TESTINST3("sxtab r0, r1, r2, ROR #0", 0x31415927, 0x27182819, r0, r1, r2, 0);
2748
2749 TESTINST3("sxtab r0, r1, r2, ROR #24", 0x31415927, 0x27182899, r0, r1, r2, 0);
2750 TESTINST3("sxtab r0, r1, r2, ROR #16", 0x31415927, 0x27182899, r0, r1, r2, 0);
2751 TESTINST3("sxtab r0, r1, r2, ROR #8", 0x31415927, 0x27182899, r0, r1, r2, 0);
2752 TESTINST3("sxtab r0, r1, r2, ROR #0", 0x31415927, 0x27182899, r0, r1, r2, 0);
2753
2754TESTINST3("sxtab r0, r1, r2, ROR #24", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
2755TESTINST3("sxtab r0, r1, r2, ROR #24", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
2756TESTINST3("sxtab r0, r1, r2, ROR #24", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
2757TESTINST3("sxtab r0, r1, r2, ROR #24", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
2758TESTINST3("sxtab r0, r1, r2, ROR #24", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
2759TESTINST3("sxtab r0, r1, r2, ROR #24", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
2760TESTINST3("sxtab r0, r1, r2, ROR #24", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
2761TESTINST3("sxtab r0, r1, r2, ROR #24", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
2762TESTINST3("sxtab r0, r1, r2, ROR #24", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
2763TESTINST3("sxtab r0, r1, r2, ROR #24", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
2764
2765TESTINST3("sxtab r0, r1, r2, ROR #16", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
2766TESTINST3("sxtab r0, r1, r2, ROR #16", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
2767TESTINST3("sxtab r0, r1, r2, ROR #16", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
2768TESTINST3("sxtab r0, r1, r2, ROR #16", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
2769TESTINST3("sxtab r0, r1, r2, ROR #16", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
2770TESTINST3("sxtab r0, r1, r2, ROR #16", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
2771TESTINST3("sxtab r0, r1, r2, ROR #16", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
2772TESTINST3("sxtab r0, r1, r2, ROR #16", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
2773TESTINST3("sxtab r0, r1, r2, ROR #16", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
2774TESTINST3("sxtab r0, r1, r2, ROR #16", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
2775
2776TESTINST3("sxtab r0, r1, r2, ROR #8", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
2777TESTINST3("sxtab r0, r1, r2, ROR #8", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
2778TESTINST3("sxtab r0, r1, r2, ROR #8", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
2779TESTINST3("sxtab r0, r1, r2, ROR #8", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
2780TESTINST3("sxtab r0, r1, r2, ROR #8", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
2781TESTINST3("sxtab r0, r1, r2, ROR #8", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
2782TESTINST3("sxtab r0, r1, r2, ROR #8", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
2783TESTINST3("sxtab r0, r1, r2, ROR #8", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
2784TESTINST3("sxtab r0, r1, r2, ROR #8", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
2785TESTINST3("sxtab r0, r1, r2, ROR #8", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
2786
2787TESTINST3("sxtab r0, r1, r2, ROR #0", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
2788TESTINST3("sxtab r0, r1, r2, ROR #0", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
2789TESTINST3("sxtab r0, r1, r2, ROR #0", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
2790TESTINST3("sxtab r0, r1, r2, ROR #0", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
2791TESTINST3("sxtab r0, r1, r2, ROR #0", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
2792TESTINST3("sxtab r0, r1, r2, ROR #0", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
2793TESTINST3("sxtab r0, r1, r2, ROR #0", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
2794TESTINST3("sxtab r0, r1, r2, ROR #0", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
2795TESTINST3("sxtab r0, r1, r2, ROR #0", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
2796TESTINST3("sxtab r0, r1, r2, ROR #0", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
2797
2798 printf("------------ UXTAB ------------\n");
2799 TESTINST3("uxtab r0, r1, r2, ROR #24", 0x31415927, 0x27182819, r0, r1, r2, 0);
2800 TESTINST3("uxtab r0, r1, r2, ROR #16", 0x31415927, 0x27182819, r0, r1, r2, 0);
2801 TESTINST3("uxtab r0, r1, r2, ROR #8", 0x31415927, 0x27182819, r0, r1, r2, 0);
2802 TESTINST3("uxtab r0, r1, r2, ROR #0", 0x31415927, 0x27182819, r0, r1, r2, 0);
2803
2804 TESTINST3("uxtab r0, r1, r2, ROR #24", 0x31415927, 0x27182899, r0, r1, r2, 0);
2805 TESTINST3("uxtab r0, r1, r2, ROR #16", 0x31415927, 0x27182899, r0, r1, r2, 0);
2806 TESTINST3("uxtab r0, r1, r2, ROR #8", 0x31415927, 0x27182899, r0, r1, r2, 0);
2807 TESTINST3("uxtab r0, r1, r2, ROR #0", 0x31415927, 0x27182899, r0, r1, r2, 0);
2808
2809TESTINST3("uxtab r0, r1, r2, ROR #24", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
2810TESTINST3("uxtab r0, r1, r2, ROR #24", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
2811TESTINST3("uxtab r0, r1, r2, ROR #24", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
2812TESTINST3("uxtab r0, r1, r2, ROR #24", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
2813TESTINST3("uxtab r0, r1, r2, ROR #24", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
2814TESTINST3("uxtab r0, r1, r2, ROR #24", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
2815TESTINST3("uxtab r0, r1, r2, ROR #24", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
2816TESTINST3("uxtab r0, r1, r2, ROR #24", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
2817TESTINST3("uxtab r0, r1, r2, ROR #24", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
2818TESTINST3("uxtab r0, r1, r2, ROR #24", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
2819
2820TESTINST3("uxtab r0, r1, r2, ROR #16", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
2821TESTINST3("uxtab r0, r1, r2, ROR #16", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
2822TESTINST3("uxtab r0, r1, r2, ROR #16", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
2823TESTINST3("uxtab r0, r1, r2, ROR #16", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
2824TESTINST3("uxtab r0, r1, r2, ROR #16", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
2825TESTINST3("uxtab r0, r1, r2, ROR #16", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
2826TESTINST3("uxtab r0, r1, r2, ROR #16", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
2827TESTINST3("uxtab r0, r1, r2, ROR #16", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
2828TESTINST3("uxtab r0, r1, r2, ROR #16", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
2829TESTINST3("uxtab r0, r1, r2, ROR #16", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
2830
2831TESTINST3("uxtab r0, r1, r2, ROR #8", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
2832TESTINST3("uxtab r0, r1, r2, ROR #8", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
2833TESTINST3("uxtab r0, r1, r2, ROR #8", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
2834TESTINST3("uxtab r0, r1, r2, ROR #8", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
2835TESTINST3("uxtab r0, r1, r2, ROR #8", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
2836TESTINST3("uxtab r0, r1, r2, ROR #8", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
2837TESTINST3("uxtab r0, r1, r2, ROR #8", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
2838TESTINST3("uxtab r0, r1, r2, ROR #8", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
2839TESTINST3("uxtab r0, r1, r2, ROR #8", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
2840TESTINST3("uxtab r0, r1, r2, ROR #8", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
2841
2842TESTINST3("uxtab r0, r1, r2, ROR #0", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
2843TESTINST3("uxtab r0, r1, r2, ROR #0", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
2844TESTINST3("uxtab r0, r1, r2, ROR #0", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
2845TESTINST3("uxtab r0, r1, r2, ROR #0", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
2846TESTINST3("uxtab r0, r1, r2, ROR #0", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
2847TESTINST3("uxtab r0, r1, r2, ROR #0", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
2848TESTINST3("uxtab r0, r1, r2, ROR #0", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
2849TESTINST3("uxtab r0, r1, r2, ROR #0", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
2850TESTINST3("uxtab r0, r1, r2, ROR #0", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
2851TESTINST3("uxtab r0, r1, r2, ROR #0", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
2852
2853 printf("----------- UXTAB16 -----------\n");
2854 TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0x31415927, 0x27182819, r0, r1, r2, 0);
2855 TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0x31415927, 0x27182819, r0, r1, r2, 0);
2856 TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0x31415927, 0x27182819, r0, r1, r2, 0);
2857 TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0x31415927, 0x27182819, r0, r1, r2, 0);
2858
2859 TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0x31415927, 0x27182899, r0, r1, r2, 0);
2860 TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0x31415927, 0x27182899, r0, r1, r2, 0);
2861 TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0x31415927, 0x27182899, r0, r1, r2, 0);
2862 TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0x31415927, 0x27182899, r0, r1, r2, 0);
2863 TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0x3141FFFF, 0x27182899, r0, r1, r2, 0);
2864
2865TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
2866TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
2867TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
2868TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
2869TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
2870TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
2871TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
2872TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
2873TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
2874TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
2875
2876TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
2877TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
2878TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
2879TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
2880TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
2881TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
2882TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
2883TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
2884TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
2885TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
2886
2887TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
2888TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
2889TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
2890TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
2891TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
2892TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
2893TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
2894TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
2895TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
2896TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
2897
2898TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
2899TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
2900TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
2901TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
2902TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
2903TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
2904TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
2905TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
2906TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
2907TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
2908
2909 printf("------------ SXTAH ------------\n");
2910 TESTINST3("sxtah r0, r1, r2, ROR #24", 0x31415927, 0x27182819, r0, r1, r2, 0);
2911 TESTINST3("sxtah r0, r1, r2, ROR #16", 0x31415927, 0x27182819, r0, r1, r2, 0);
2912 TESTINST3("sxtah r0, r1, r2, ROR #8 ", 0x31415927, 0x27182819, r0, r1, r2, 0);
2913 TESTINST3("sxtah r0, r1, r2, ROR #0 ", 0x31415927, 0x27182819, r0, r1, r2, 0);
2914
2915 TESTINST3("sxtah r0, r1, r2, ROR #24", 0x31415927, 0x27189819, r0, r1, r2, 0);
2916 TESTINST3("sxtah r0, r1, r2, ROR #16", 0x31415927, 0x27189819, r0, r1, r2, 0);
2917 TESTINST3("sxtah r0, r1, r2, ROR #8 ", 0x31415927, 0x27189819, r0, r1, r2, 0);
2918 TESTINST3("sxtah r0, r1, r2, ROR #0 ", 0x31415927, 0x27189819, r0, r1, r2, 0);
2919
2920TESTINST3("sxtah r0, r1, r2, ROR #24", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
2921TESTINST3("sxtah r0, r1, r2, ROR #24", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
2922TESTINST3("sxtah r0, r1, r2, ROR #24", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
2923TESTINST3("sxtah r0, r1, r2, ROR #24", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
2924TESTINST3("sxtah r0, r1, r2, ROR #24", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
2925TESTINST3("sxtah r0, r1, r2, ROR #24", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
2926TESTINST3("sxtah r0, r1, r2, ROR #24", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
2927TESTINST3("sxtah r0, r1, r2, ROR #24", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
2928TESTINST3("sxtah r0, r1, r2, ROR #24", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
2929TESTINST3("sxtah r0, r1, r2, ROR #24", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
2930
2931TESTINST3("sxtah r0, r1, r2, ROR #16", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
2932TESTINST3("sxtah r0, r1, r2, ROR #16", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
2933TESTINST3("sxtah r0, r1, r2, ROR #16", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
2934TESTINST3("sxtah r0, r1, r2, ROR #16", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
2935TESTINST3("sxtah r0, r1, r2, ROR #16", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
2936TESTINST3("sxtah r0, r1, r2, ROR #16", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
2937TESTINST3("sxtah r0, r1, r2, ROR #16", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
2938TESTINST3("sxtah r0, r1, r2, ROR #16", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
2939TESTINST3("sxtah r0, r1, r2, ROR #16", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
2940TESTINST3("sxtah r0, r1, r2, ROR #16", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
2941
2942TESTINST3("sxtah r0, r1, r2, ROR #8", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
2943TESTINST3("sxtah r0, r1, r2, ROR #8", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
2944TESTINST3("sxtah r0, r1, r2, ROR #8", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
2945TESTINST3("sxtah r0, r1, r2, ROR #8", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
2946TESTINST3("sxtah r0, r1, r2, ROR #8", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
2947TESTINST3("sxtah r0, r1, r2, ROR #8", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
2948TESTINST3("sxtah r0, r1, r2, ROR #8", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
2949TESTINST3("sxtah r0, r1, r2, ROR #8", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
2950TESTINST3("sxtah r0, r1, r2, ROR #8", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
2951TESTINST3("sxtah r0, r1, r2, ROR #8", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
2952
2953TESTINST3("sxtah r0, r1, r2, ROR #0", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
2954TESTINST3("sxtah r0, r1, r2, ROR #0", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
2955TESTINST3("sxtah r0, r1, r2, ROR #0", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
2956TESTINST3("sxtah r0, r1, r2, ROR #0", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
2957TESTINST3("sxtah r0, r1, r2, ROR #0", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
2958TESTINST3("sxtah r0, r1, r2, ROR #0", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
2959TESTINST3("sxtah r0, r1, r2, ROR #0", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
2960TESTINST3("sxtah r0, r1, r2, ROR #0", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
2961TESTINST3("sxtah r0, r1, r2, ROR #0", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
2962TESTINST3("sxtah r0, r1, r2, ROR #0", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
2963
2964 printf("------------ UXTAH ------------\n");
2965 TESTINST3("uxtah r0, r1, r2, ROR #24", 0x31415927, 0x27182819, r0, r1, r2, 0);
2966 TESTINST3("uxtah r0, r1, r2, ROR #16", 0x31415927, 0x27182819, r0, r1, r2, 0);
2967 TESTINST3("uxtah r0, r1, r2, ROR #8 ", 0x31415927, 0x27182819, r0, r1, r2, 0);
2968 TESTINST3("uxtah r0, r1, r2, ROR #0 ", 0x31415927, 0x27182819, r0, r1, r2, 0);
2969
2970 TESTINST3("uxtah r0, r1, r2, ROR #24", 0x31415927, 0x27189819, r0, r1, r2, 0);
2971 TESTINST3("uxtah r0, r1, r2, ROR #16", 0x31415927, 0x27189819, r0, r1, r2, 0);
2972 TESTINST3("uxtah r0, r1, r2, ROR #8 ", 0x31415927, 0x27189819, r0, r1, r2, 0);
2973 TESTINST3("uxtah r0, r1, r2, ROR #0 ", 0x31415927, 0x27189819, r0, r1, r2, 0);
2974
2975TESTINST3("uxtah r0, r1, r2, ROR #24", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
2976TESTINST3("uxtah r0, r1, r2, ROR #24", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
2977TESTINST3("uxtah r0, r1, r2, ROR #24", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
2978TESTINST3("uxtah r0, r1, r2, ROR #24", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
2979TESTINST3("uxtah r0, r1, r2, ROR #24", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
2980TESTINST3("uxtah r0, r1, r2, ROR #24", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
2981TESTINST3("uxtah r0, r1, r2, ROR #24", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
2982TESTINST3("uxtah r0, r1, r2, ROR #24", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
2983TESTINST3("uxtah r0, r1, r2, ROR #24", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
2984TESTINST3("uxtah r0, r1, r2, ROR #24", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
2985
2986TESTINST3("uxtah r0, r1, r2, ROR #16", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
2987TESTINST3("uxtah r0, r1, r2, ROR #16", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
2988TESTINST3("uxtah r0, r1, r2, ROR #16", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
2989TESTINST3("uxtah r0, r1, r2, ROR #16", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
2990TESTINST3("uxtah r0, r1, r2, ROR #16", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
2991TESTINST3("uxtah r0, r1, r2, ROR #16", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
2992TESTINST3("uxtah r0, r1, r2, ROR #16", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
2993TESTINST3("uxtah r0, r1, r2, ROR #16", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
2994TESTINST3("uxtah r0, r1, r2, ROR #16", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
2995TESTINST3("uxtah r0, r1, r2, ROR #16", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
2996
2997TESTINST3("uxtah r0, r1, r2, ROR #8", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
2998TESTINST3("uxtah r0, r1, r2, ROR #8", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
2999TESTINST3("uxtah r0, r1, r2, ROR #8", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3000TESTINST3("uxtah r0, r1, r2, ROR #8", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3001TESTINST3("uxtah r0, r1, r2, ROR #8", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3002TESTINST3("uxtah r0, r1, r2, ROR #8", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3003TESTINST3("uxtah r0, r1, r2, ROR #8", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3004TESTINST3("uxtah r0, r1, r2, ROR #8", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3005TESTINST3("uxtah r0, r1, r2, ROR #8", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3006TESTINST3("uxtah r0, r1, r2, ROR #8", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3007
3008TESTINST3("uxtah r0, r1, r2, ROR #0", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3009TESTINST3("uxtah r0, r1, r2, ROR #0", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3010TESTINST3("uxtah r0, r1, r2, ROR #0", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3011TESTINST3("uxtah r0, r1, r2, ROR #0", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3012TESTINST3("uxtah r0, r1, r2, ROR #0", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3013TESTINST3("uxtah r0, r1, r2, ROR #0", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3014TESTINST3("uxtah r0, r1, r2, ROR #0", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3015TESTINST3("uxtah r0, r1, r2, ROR #0", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3016TESTINST3("uxtah r0, r1, r2, ROR #0", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3017TESTINST3("uxtah r0, r1, r2, ROR #0", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3018
3019/*
3020TESTINST3("theinsn", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3021TESTINST3("theinsn", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3022TESTINST3("theinsn", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3023TESTINST3("theinsn", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3024TESTINST3("theinsn", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3025TESTINST3("theinsn", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3026TESTINST3("theinsn", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3027TESTINST3("theinsn", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3028TESTINST3("theinsn", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3029TESTINST3("theinsn", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3030*/
3031
3032 return 0;
3033}