blob: 2828a882d7d122b8a58307ac61d587e4ee5d3055 [file] [log] [blame]
sewardj81e06dc2010-08-29 12:35:37 +00001
2/* How to compile:
sewardjef64c472010-10-18 16:35:38 +00003 gcc -g -Wall -mcpu=cortex-a8 -o v6mediaA -marm none/tests/arm/v6media.c
4 or
5 gcc -g -Wall -mcpu=cortex-a8 -o v6mediaT -mthumb none/tests/arm/v6media.c
sewardj81e06dc2010-08-29 12:35:37 +00006*/
7
8#include <stdio.h>
9
10static int gen_cin(cin)
11{
12 int r = ((cin & 1) ? (1<<29) : 0);
13 //r |= (1 << 31) | (1 << 30);
14 return r;
15}
16
17/* test macros to generate and output the result of a single instruction */
18#define TESTINST2(instruction, RMval, RD, RM, carryin) \
19{ \
20 unsigned int out; \
21 unsigned int cpsr; \
22\
23 __asm__ volatile( \
24 "msr cpsr_fs, %3;" \
25 "mov " #RM ",%2;" \
26 /* set #RD to 0x55555555 so we can see which parts get overwritten */ \
27 "mov " #RD ", #0x55" "\n\t" \
28 "orr " #RD "," #RD "," #RD ", LSL #8" "\n\t" \
29 "orr " #RD "," #RD "," #RD ", LSL #16" "\n\t" \
30 instruction ";" \
31 "mov %0," #RD ";" \
32 "mrs %1,cpsr;" \
33 : "=&r" (out), "=&r" (cpsr) \
34 : "r" (RMval), "r" (gen_cin(carryin)) \
35 : #RD, #RM, "cc", "memory" \
36 ); \
37 printf("%s :: rd 0x%08x rm 0x%08x, carryin %d, cpsr 0x%08x %c%c%c%c%c ge[3:0]=%d%d%d%d\n", \
38 instruction, out, RMval, \
39 carryin ? 1 : 0, \
40 cpsr & 0xffff0000, \
41 ((1<<31) & cpsr) ? 'N' : ' ', \
42 ((1<<30) & cpsr) ? 'Z' : ' ', \
43 ((1<<29) & cpsr) ? 'C' : ' ', \
44 ((1<<28) & cpsr) ? 'V' : ' ', \
45 ((1<<27) & cpsr) ? 'Q' : ' ', \
46 (cpsr >> 19) & 1, (cpsr >> 18) & 1, (cpsr >> 17) & 1, (cpsr >> 16) & 1 \
47 ); \
48}
49
50#define TESTINST3(instruction, RMval, RNval, RD, RM, RN, carryin) \
51{ \
52 unsigned int out; \
53 unsigned int cpsr; \
54\
55 __asm__ volatile( \
56 "msr cpsr_fs, %4;" \
57 "mov " #RM ",%2;" \
58 "mov " #RN ",%3;" \
59 instruction ";" \
60 "mov %0," #RD ";" \
61 "mrs %1,cpsr;" \
62 : "=&r" (out), "=&r" (cpsr) \
63 : "r" (RMval), "r" (RNval), "r" (gen_cin(carryin)) \
64 : #RD, #RM, #RN, "cc", "memory" \
65 ); \
66 printf("%s :: rd 0x%08x rm 0x%08x, rn 0x%08x, carryin %d, cpsr 0x%08x %c%c%c%c%c ge[3:0]=%d%d%d%d\n", \
67 instruction, out, RMval, RNval, \
68 carryin ? 1 : 0, \
69 cpsr & 0xffff0000, \
70 ((1<<31) & cpsr) ? 'N' : ' ', \
71 ((1<<30) & cpsr) ? 'Z' : ' ', \
72 ((1<<29) & cpsr) ? 'C' : ' ', \
73 ((1<<28) & cpsr) ? 'V' : ' ', \
74 ((1<<27) & cpsr) ? 'Q' : ' ', \
75 (cpsr >> 19) & 1, (cpsr >> 18) & 1, (cpsr >> 17) & 1, (cpsr >> 16) & 1 \
76 ); \
77}
78
79#define TESTINST4(instruction, RMval, RNval, RSval, RD, RM, RN, RS, carryin) \
80{ \
81 unsigned int out; \
82 unsigned int cpsr; \
83\
84 __asm__ volatile( \
85 "msr cpsr_fs, %5;" \
86 "mov " #RM ",%2;" \
87 "mov " #RN ",%3;" \
88 "mov " #RS ",%4;" \
89 instruction ";" \
90 "mov %0," #RD ";" \
91 "mrs %1,cpsr;" \
92 : "=&r" (out), "=&r" (cpsr) \
93 : "r" (RMval), "r" (RNval), "r" (RSval), "r" (gen_cin(carryin)) \
94 : #RD, #RM, #RN, #RS, "cc", "memory" \
95 ); \
96 printf("%s :: rd 0x%08x rm 0x%08x, rn 0x%08x rs 0x%08x, carryin %d, cpsr 0x%08x %c%c%c%c%c ge[3:0]=%d%d%d%d\n", \
97 instruction, out, RMval, RNval, RSval, \
98 carryin ? 1 : 0, \
99 cpsr & 0xffff0000, \
100 ((1<<31) & cpsr) ? 'N' : ' ', \
101 ((1<<30) & cpsr) ? 'Z' : ' ', \
102 ((1<<29) & cpsr) ? 'C' : ' ', \
103 ((1<<28) & cpsr) ? 'V' : ' ', \
104 ((1<<27) & cpsr) ? 'Q' : ' ', \
105 (cpsr >> 19) & 1, (cpsr >> 18) & 1, (cpsr >> 17) & 1, (cpsr >> 16) & 1 \
106 ); \
107}
108
109#define TESTINST4_2OUT(instruction, RDval, RD2val, RMval, RSval, RD, RD2, RM, RS, carryin) \
110{ \
111 unsigned int out; \
112 unsigned int out2; \
113 unsigned int cpsr; \
114\
115 __asm__ volatile( \
116 "msr cpsr_fs, %7;" \
117 "mov " #RD ",%3;" \
118 "mov " #RD2 ",%4;" \
119 "mov " #RM ",%5;" \
120 "mov " #RS ",%6;" \
121 instruction ";" \
122 "mov %0," #RD ";" \
123 "mov %1," #RD2 ";" \
124 "mrs %2,cpsr;" \
125 : "=&r" (out), "=&r" (out2), "=&r" (cpsr) \
126 : "r" (RDval), "r" (RD2val), "r" (RMval), "r" (RSval), "r" (gen_cin(carryin)) \
127 : #RD, #RD2, #RM, #RS, "cc", "memory" \
128 ); \
129 printf("%s :: rd 0x%08x rd2 0x%08x, rm 0x%08x rs 0x%08x, carryin %d, cpsr 0x%08x %c%c%c%c%c ge[3:0]=%d%d%d%d\n", \
130 instruction, out, out2, RMval, RSval, \
131 carryin ? 1 : 0, \
132 cpsr & 0xffff0000, \
133 ((1<<31) & cpsr) ? 'N' : ' ', \
134 ((1<<30) & cpsr) ? 'Z' : ' ', \
135 ((1<<29) & cpsr) ? 'C' : ' ', \
136 ((1<<28) & cpsr) ? 'V' : ' ', \
137 ((1<<27) & cpsr) ? 'Q' : ' ', \
138 (cpsr >> 19) & 1, (cpsr >> 18) & 1, (cpsr >> 17) & 1, (cpsr >> 16) & 1 \
139 ); \
140}
141
142/* helpers */
143#define TESTCARRY { int c = 0; for (c = 0; c < 2; c++) {
144#define TESTCARRYEND }}
145
146
147
148
149int main(int argc, char **argv)
150{
151 printf("MUL\n");
152 TESTINST3("mul r0, r1, r2", 0, 0, r0, r1, r2, 0);
153 TESTINST3("mul r0, r1, r2", 0xffffffff, 0, r0, r1, r2, 0);
154 TESTINST3("mul r0, r1, r2", 0, 0xffffffff, r0, r1, r2, 0);
155 TESTINST3("mul r0, r1, r2", 0xffffffff, 0xffffffff, r0, r1, r2, 0);
156 TESTINST3("mul r0, r1, r2", 0x7fffffff, 0x7fffffff, r0, r1, r2, 0);
157 TESTINST3("mul r0, r1, r2", 0x0000ffff, 0x0000ffff, r0, r1, r2, 0);
158
159#if 0
160 printf("MULS\n");
161 TESTINST3("muls r0, r1, r2", 0, 0, r0, r1, r2, 0);
162 TESTINST3("muls r0, r1, r2", 0xffffffff, 0, r0, r1, r2, 0);
163 TESTINST3("muls r0, r1, r2", 0, 0xffffffff, r0, r1, r2, 0);
164 TESTINST3("muls r0, r1, r2", 0xffffffff, 0xffffffff, r0, r1, r2, 0);
165 TESTINST3("muls r0, r1, r2", 0x7fffffff, 0x7fffffff, r0, r1, r2, 0);
166 TESTINST3("muls r0, r1, r2", 0x0000ffff, 0x0000ffff, r0, r1, r2, 0);
167#endif
168
169 printf("MLA\n");
170 TESTINST4("mla r0, r1, r2, r3", 0, 0, 1, r0, r1, r2, r3, 0);
171 TESTINST4("mla r0, r1, r2, r3", 0xffffffff, 0, 1, r0, r1, r2, r3, 0);
172 TESTINST4("mla r0, r1, r2, r3", 0, 0xffffffff, 1, r0, r1, r2, r3, 0);
173 TESTINST4("mla r0, r1, r2, r3", 0xffffffff, 0xffffffff, 1, r0, r1, r2, r3, 0);
174 TESTINST4("mla r0, r1, r2, r3", 0x7fffffff, 0x7fffffff, 1, r0, r1, r2, r3, 0);
175 TESTINST4("mla r0, r1, r2, r3", 0x0000ffff, 0x0000ffff, 1, r0, r1, r2, r3, 0);
176
177#if 0
178 printf("MLAS\n");
179 TESTINST4("mlas r0, r1, r2, r3", 0, 0, 1, r0, r1, r2, r3, 0);
180 TESTINST4("mlas r0, r1, r2, r3", 0xffffffff, 0, 1, r0, r1, r2, r3, 0);
181 TESTINST4("mlas r0, r1, r2, r3", 0, 0xffffffff, 1, r0, r1, r2, r3, 0);
182 TESTINST4("mlas r0, r1, r2, r3", 0xffffffff, 0xffffffff, 1, r0, r1, r2, r3, 0);
183 TESTINST4("mlas r0, r1, r2, r3", 0x7fffffff, 0x7fffffff, 1, r0, r1, r2, r3, 0);
184 TESTINST4("mlas r0, r1, r2, r3", 0x0000ffff, 0x0000ffff, 1, r0, r1, r2, r3, 0);
185#endif
186
187 printf("MLS\n");
188 TESTINST4("mls r0, r1, r2, r3", 0, 0, 1, r0, r1, r2, r3, 0);
189 TESTINST4("mls r0, r1, r2, r3", 0xffffffff, 0, 1, r0, r1, r2, r3, 0);
190 TESTINST4("mls r0, r1, r2, r3", 0, 0xffffffff, 1, r0, r1, r2, r3, 0);
191 TESTINST4("mls r0, r1, r2, r3", 0xffffffff, 0xffffffff, 1, r0, r1, r2, r3, 0);
192 TESTINST4("mls r0, r1, r2, r3", 0x7fffffff, 0x7fffffff, 1, r0, r1, r2, r3, 0);
193 TESTINST4("mls r0, r1, r2, r3", 0x0000ffff, 0x0000ffff, 1, r0, r1, r2, r3, 0);
194
195 printf("UMULL\n");
196 TESTINST4_2OUT("umull r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
197 TESTINST4_2OUT("umull r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
198 TESTINST4_2OUT("umull r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
199 TESTINST4_2OUT("umull r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
200 TESTINST4_2OUT("umull r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
201 TESTINST4_2OUT("umull r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
202#if 0
203 TESTINST4_2OUT("umulls r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
204 TESTINST4_2OUT("umulls r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
205 TESTINST4_2OUT("umulls r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
206 TESTINST4_2OUT("umulls r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
207 TESTINST4_2OUT("umulls r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
208 TESTINST4_2OUT("umulls r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
209#endif
210 printf("SMULL\n");
211 TESTINST4_2OUT("smull r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
212 TESTINST4_2OUT("smull r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
213 TESTINST4_2OUT("smull r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
214 TESTINST4_2OUT("smull r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
215 TESTINST4_2OUT("smull r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
216 TESTINST4_2OUT("smull r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
217#if 0
218 TESTINST4_2OUT("smulls r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
219 TESTINST4_2OUT("smulls r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
220 TESTINST4_2OUT("smulls r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
221 TESTINST4_2OUT("smulls r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
222 TESTINST4_2OUT("smulls r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
223 TESTINST4_2OUT("smulls r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
224#endif
225
226 printf("UMLAL\n");
227 TESTINST4_2OUT("umlal r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
228 TESTINST4_2OUT("umlal r0, r1, r2, r3", 0, 1, 0, 0, r0, r1, r2, r3, 0);
229 TESTINST4_2OUT("umlal r0, r1, r2, r3", 1, 1, 0, 0, r0, r1, r2, r3, 0);
230 TESTINST4_2OUT("umlal r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0, r1, r2, r3, 0);
231 TESTINST4_2OUT("umlal r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
232 TESTINST4_2OUT("umlal r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
233 TESTINST4_2OUT("umlal r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
234 TESTINST4_2OUT("umlal r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
235 TESTINST4_2OUT("umlal r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
236#if 0
237 TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
238 TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 1, 0, 0, r0, r1, r2, r3, 0);
239 TESTINST4_2OUT("umlals r0, r1, r2, r3", 1, 1, 0, 0, r0, r1, r2, r3, 0);
240 TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0, r1, r2, r3, 0);
241 TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
242 TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
243 TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
244 TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
245 TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
246#endif
247
248 printf("SMLAL\n");
249 TESTINST4_2OUT("smlal r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
250 TESTINST4_2OUT("smlal r0, r1, r2, r3", 0, 1, 0, 0, r0, r1, r2, r3, 0);
251 TESTINST4_2OUT("smlal r0, r1, r2, r3", 1, 1, 0, 0, r0, r1, r2, r3, 0);
252 TESTINST4_2OUT("smlal r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0, r1, r2, r3, 0);
253 TESTINST4_2OUT("smlal r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
254 TESTINST4_2OUT("smlal r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
255 TESTINST4_2OUT("smlal r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
256 TESTINST4_2OUT("smlal r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
257 TESTINST4_2OUT("smlal r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
258#if 0
259 TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
260 TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 1, 0, 0, r0, r1, r2, r3, 0);
261 TESTINST4_2OUT("smlals r0, r1, r2, r3", 1, 1, 0, 0, r0, r1, r2, r3, 0);
262 TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0, r1, r2, r3, 0);
263 TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
264 TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
265 TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
266 TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
267 TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
268#endif
269
270 printf("CLZ\n");
271 TESTCARRY
272 TESTINST2("clz r0, r1", 0, r0, r1, c);
273 TESTINST2("clz r0, r1", 1, r0, r1, c);
274 TESTINST2("clz r0, r1", 0x10, r0, r1, c);
275 TESTINST2("clz r0, r1", 0xffffffff, r0, r1, c);
276 TESTCARRYEND
277
278 printf("extend instructions\n");
279 TESTINST2("uxtb r0, r1", 0, r0, r1, 0);
280 TESTINST2("uxtb r0, r1", 1, r0, r1, 0);
281 TESTINST2("uxtb r0, r1", 0xff, r0, r1, 0);
282 TESTINST2("uxtb r0, r1", 0xffffffff, r0, r1, 0);
283 TESTINST2("sxtb r0, r1", 0, r0, r1, 0);
284 TESTINST2("sxtb r0, r1", 1, r0, r1, 0);
285 TESTINST2("sxtb r0, r1", 0xff, r0, r1, 0);
286 TESTINST2("sxtb r0, r1", 0xffffffff, r0, r1, 0);
287
288 TESTINST2("uxth r0, r1", 0, r0, r1, 0);
289 TESTINST2("uxth r0, r1", 1, r0, r1, 0);
290 TESTINST2("uxth r0, r1", 0xffff, r0, r1, 0);
291 TESTINST2("uxth r0, r1", 0xffffffff, r0, r1, 0);
292 TESTINST2("sxth r0, r1", 0, r0, r1, 0);
293 TESTINST2("sxth r0, r1", 1, r0, r1, 0);
294 TESTINST2("sxth r0, r1", 0x7fff, r0, r1, 0);
295 TESTINST2("sxth r0, r1", 0xffff, r0, r1, 0);
296 TESTINST2("sxth r0, r1", 0x10ffff, r0, r1, 0);
297 TESTINST2("sxth r0, r1", 0x107fff, r0, r1, 0);
298 TESTINST2("sxth r0, r1", 0xffffffff, r0, r1, 0);
299
300 TESTINST2("uxtb r0, r1, ror #0", 0x000000ff, r0, r1, 0);
301 TESTINST2("uxtb r0, r1, ror #8", 0x000000ff, r0, r1, 0);
302 TESTINST2("uxtb r0, r1, ror #8", 0x0000ff00, r0, r1, 0);
303 TESTINST2("uxtb r0, r1, ror #16", 0x00ff0000, r0, r1, 0);
304 TESTINST2("uxtb r0, r1, ror #24", 0xff000000, r0, r1, 0);
305
306 TESTINST2("uxtb16 r0, r1", 0xffffffff, r0, r1, 0);
307 TESTINST2("uxtb16 r0, r1, ror #16", 0x0000ffff, r0, r1, 0);
308 TESTINST2("sxtb16 r0, r1", 0xffffffff, r0, r1, 0);
309 TESTINST2("sxtb16 r0, r1", 0x00ff00ff, r0, r1, 0);
310 TESTINST2("sxtb16 r0, r1", 0x007f007f, r0, r1, 0);
311
312 printf("------------ BFI ------------\n");
313 /* bfi rDst, rSrc, #lsb-in-dst, #number-of-bits-to-copy */
314 TESTINST2("bfi r0, r1, #0, #11", 0xAAAAAAAA, r0, r1, 0);
315 TESTINST2("bfi r0, r1, #1, #11", 0xAAAAAAAA, r0, r1, 0);
316 TESTINST2("bfi r0, r1, #2, #11", 0xAAAAAAAA, r0, r1, 0);
317
318 TESTINST2("bfi r0, r1, #19, #11", 0xFFFFFFFF, r0, r1, 0);
319 TESTINST2("bfi r0, r1, #20, #11", 0xFFFFFFFF, r0, r1, 0);
320 TESTINST2("bfi r0, r1, #21, #11", 0xFFFFFFFF, r0, r1, 0);
321
322 TESTINST2("bfi r0, r1, #0, #32", 0xFFFFFFFF, r0, r1, 0);
323 TESTINST2("bfi r0, r1, #1, #31", 0xFFFFFFFF, r0, r1, 0);
324
325 TESTINST2("bfi r0, r1, #29, #3", 0xFFFFFFFF, r0, r1, 0);
326 TESTINST2("bfi r0, r1, #30, #2", 0xFFFFFFFF, r0, r1, 0);
327 TESTINST2("bfi r0, r1, #31, #1", 0xFFFFFFFF, r0, r1, 0);
328
329 printf("------------ BFC ------------\n");
330 /* bfi rDst, #lsb-in-dst, #number-of-bits-to-copy */
331 TESTINST2("bfc r0, #0, #11", 0xAAAAAAAA, r0, r1, 0);
332 TESTINST2("bfc r0, #1, #11", 0xAAAAAAAA, r0, r1, 0);
333 TESTINST2("bfc r0, #2, #11", 0xAAAAAAAA, r0, r1, 0);
334
335 TESTINST2("bfc r0, #19, #11", 0xFFFFFFFF, r0, r1, 0);
336 TESTINST2("bfc r0, #20, #11", 0xFFFFFFFF, r0, r1, 0);
337 TESTINST2("bfc r0, #21, #11", 0xFFFFFFFF, r0, r1, 0);
338
339 TESTINST2("bfc r0, #0, #32", 0xFFFFFFFF, r0, r1, 0);
340 TESTINST2("bfc r0, #1, #31", 0xFFFFFFFF, r0, r1, 0);
341
342 TESTINST2("bfc r0, #29, #3", 0xFFFFFFFF, r0, r1, 0);
343 TESTINST2("bfc r0, #30, #2", 0xFFFFFFFF, r0, r1, 0);
344 TESTINST2("bfc r0, #31, #1", 0xFFFFFFFF, r0, r1, 0);
345
346 printf("------------ SBFX ------------\n");
347 /* sbfx rDst, rSrc, #lsb, #width */
348 TESTINST2("sbfx r0, r1, #0, #1", 0x00000000, r0, r1, 0);
349 TESTINST2("sbfx r0, r1, #0, #1", 0x00000001, r0, r1, 0);
350 TESTINST2("sbfx r0, r1, #1, #1", 0x00000000, r0, r1, 0);
351 TESTINST2("sbfx r0, r1, #1, #1", 0x00000001, r0, r1, 0);
352 TESTINST2("sbfx r0, r1, #1, #1", 0x00000002, r0, r1, 0);
353 TESTINST2("sbfx r0, r1, #1, #1", 0x00000003, r0, r1, 0);
354
355 TESTINST2("sbfx r0, r1, #0, #2", 0x00000000, r0, r1, 0);
356 TESTINST2("sbfx r0, r1, #0, #2", 0x00000001, r0, r1, 0);
357 TESTINST2("sbfx r0, r1, #1, #2", 0x00000000, r0, r1, 0);
358 TESTINST2("sbfx r0, r1, #1, #2", 0x00000001, r0, r1, 0);
359 TESTINST2("sbfx r0, r1, #1, #2", 0x00000002, r0, r1, 0);
360 TESTINST2("sbfx r0, r1, #1, #2", 0x00000003, r0, r1, 0);
361
362 TESTINST2("sbfx r0, r1, #0, #11", 0xAAAAAAAA, r0, r1, 0);
363 TESTINST2("sbfx r0, r1, #1, #11", 0xAAAAAAAA, r0, r1, 0);
364 TESTINST2("sbfx r0, r1, #2, #11", 0xAAAAAAAA, r0, r1, 0);
365 TESTINST2("sbfx r0, r1, #2, #11", 0xAAAAAAAA, r0, r1, 0);
366 TESTINST2("sbfx r0, r1, #31, #1", 0xAAAAAAAA, r0, r1, 0);
367 TESTINST2("sbfx r0, r1, #30, #2", 0xAAAAAAAA, r0, r1, 0);
368
369 printf("------------ UBFX ------------\n");
370 /* ubfx rDst, rSrc, #lsb, #width */
371 TESTINST2("ubfx r0, r1, #0, #1", 0x00000000, r0, r1, 0);
372 TESTINST2("ubfx r0, r1, #0, #1", 0x00000001, r0, r1, 0);
373 TESTINST2("ubfx r0, r1, #1, #1", 0x00000000, r0, r1, 0);
374 TESTINST2("ubfx r0, r1, #1, #1", 0x00000001, r0, r1, 0);
375 TESTINST2("ubfx r0, r1, #1, #1", 0x00000002, r0, r1, 0);
376 TESTINST2("ubfx r0, r1, #1, #1", 0x00000003, r0, r1, 0);
377
378 TESTINST2("ubfx r0, r1, #0, #2", 0x00000000, r0, r1, 0);
379 TESTINST2("ubfx r0, r1, #0, #2", 0x00000001, r0, r1, 0);
380 TESTINST2("ubfx r0, r1, #1, #2", 0x00000000, r0, r1, 0);
381 TESTINST2("ubfx r0, r1, #1, #2", 0x00000001, r0, r1, 0);
382 TESTINST2("ubfx r0, r1, #1, #2", 0x00000002, r0, r1, 0);
383 TESTINST2("ubfx r0, r1, #1, #2", 0x00000003, r0, r1, 0);
384
385 TESTINST2("ubfx r0, r1, #0, #11", 0xAAAAAAAA, r0, r1, 0);
386 TESTINST2("ubfx r0, r1, #1, #11", 0xAAAAAAAA, r0, r1, 0);
387 TESTINST2("ubfx r0, r1, #2, #11", 0xAAAAAAAA, r0, r1, 0);
388 TESTINST2("ubfx r0, r1, #2, #11", 0xAAAAAAAA, r0, r1, 0);
389 TESTINST2("ubfx r0, r1, #31, #1", 0xAAAAAAAA, r0, r1, 0);
390 TESTINST2("ubfx r0, r1, #30, #2", 0xAAAAAAAA, r0, r1, 0);
391
392 printf("------------ SMUL{B,T}{B,T} ------------\n");
393 /* SMULbb rD, rN, rM */
394 TESTINST3("smulbb r0, r1, r2", 0x00030000, 0x00040000, r0, r1, r2, 0);
395 TESTINST3("smulbb r0, r1, r2", 0x00030001, 0x00040002, r0, r1, r2, 0);
396 TESTINST3("smulbb r0, r1, r2", 0x00038001, 0x00047fff, r0, r1, r2, 0);
397 TESTINST3("smulbb r0, r1, r2", 0x00037fff, 0x00047fff, r0, r1, r2, 0);
398 TESTINST3("smulbb r0, r1, r2", 0x0003ffff, 0x0004ffff, r0, r1, r2, 0);
399TESTINST3("smulbb r0, r1, r2", 0x2575feb2, 0xd2c4287c, r0, r1, r2, 0);
400TESTINST3("smulbb r0, r1, r2", 0xfb412431, 0x4b90362d, r0, r1, r2, 0);
401TESTINST3("smulbb r0, r1, r2", 0x004dfbe5, 0xe87927cc, r0, r1, r2, 0);
402TESTINST3("smulbb r0, r1, r2", 0xf6a3fa3c, 0x083b3571, r0, r1, r2, 0);
403TESTINST3("smulbb r0, r1, r2", 0xbf17fb9a, 0xb9743941, r0, r1, r2, 0);
404TESTINST3("smulbb r0, r1, r2", 0x2c0bd024, 0xbce5f924, r0, r1, r2, 0);
405TESTINST3("smulbb r0, r1, r2", 0x3e976e2e, 0xcc3c201c, r0, r1, r2, 0);
406TESTINST3("smulbb r0, r1, r2", 0xb4bfb365, 0x1ebaf88e, r0, r1, r2, 0);
407TESTINST3("smulbb r0, r1, r2", 0x288593c0, 0x722d5e20, r0, r1, r2, 0);
408TESTINST3("smulbb r0, r1, r2", 0x4d7ff5b4, 0xa1d6f791, r0, r1, r2, 0);
409TESTINST3("smulbb r0, r1, r2", 0x4557be13, 0x7b11bee7, r0, r1, r2, 0);
410TESTINST3("smulbb r0, r1, r2", 0xadcf5772, 0xa5631488, r0, r1, r2, 0);
411TESTINST3("smulbb r0, r1, r2", 0x989a7235, 0xb10bcc65, r0, r1, r2, 0);
412TESTINST3("smulbb r0, r1, r2", 0x4d6f393a, 0x73f39fca, r0, r1, r2, 0);
413TESTINST3("smulbb r0, r1, r2", 0x24a3291e, 0x5648e540, r0, r1, r2, 0);
414TESTINST3("smulbb r0, r1, r2", 0xdd91eebf, 0xc54f79e6, r0, r1, r2, 0);
415TESTINST3("smulbb r0, r1, r2", 0xf7ce2ec6, 0x5fc92974, r0, r1, r2, 0);
416TESTINST3("smulbb r0, r1, r2", 0xbc1083e8, 0x7e08184e, r0, r1, r2, 0);
417TESTINST3("smulbb r0, r1, r2", 0xa617cc31, 0x71c8315f, r0, r1, r2, 0);
418TESTINST3("smulbb r0, r1, r2", 0xdfe1e8f0, 0x9493110e, r0, r1, r2, 0);
419TESTINST3("smulbb r0, r1, r2", 0x6ef49020, 0xba8a7e0d, r0, r1, r2, 0);
420TESTINST3("smulbb r0, r1, r2", 0x3dc4e36b, 0x21568e39, r0, r1, r2, 0);
421TESTINST3("smulbb r0, r1, r2", 0x52db4a9d, 0x55fcc8cf, r0, r1, r2, 0);
422TESTINST3("smulbb r0, r1, r2", 0x3564c76c, 0x14434a2a, r0, r1, r2, 0);
423TESTINST3("smulbb r0, r1, r2", 0x27836b0c, 0x3c855ca8, r0, r1, r2, 0);
424TESTINST3("smulbb r0, r1, r2", 0x62ff7c30, 0x30ece28e, r0, r1, r2, 0);
425TESTINST3("smulbb r0, r1, r2", 0x40955fdf, 0x057b562c, r0, r1, r2, 0);
426TESTINST3("smulbb r0, r1, r2", 0x3b34c270, 0x27e1475b, r0, r1, r2, 0);
427TESTINST3("smulbb r0, r1, r2", 0x7fdcda96, 0xd05893a7, r0, r1, r2, 0);
428TESTINST3("smulbb r0, r1, r2", 0xb6ab141d, 0x2dc43624, r0, r1, r2, 0);
429TESTINST3("smulbb r0, r1, r2", 0x403d53cb, 0x5328d58c, r0, r1, r2, 0);
430TESTINST3("smulbb r0, r1, r2", 0x21ef1aef, 0x87488a4a, r0, r1, r2, 0);
431TESTINST3("smulbb r0, r1, r2", 0x31458a23, 0xbb246228, r0, r1, r2, 0);
432TESTINST3("smulbb r0, r1, r2", 0x848af791, 0x339d8d88, r0, r1, r2, 0);
433TESTINST3("smulbb r0, r1, r2", 0xda3bacdc, 0x70974249, r0, r1, r2, 0);
434TESTINST3("smulbb r0, r1, r2", 0x649d5cbd, 0x8a8d4e7d, r0, r1, r2, 0);
435TESTINST3("smulbb r0, r1, r2", 0xc0c8c881, 0xeb1b4335, r0, r1, r2, 0);
436TESTINST3("smulbb r0, r1, r2", 0x7dd81a20, 0x0cd6b508, r0, r1, r2, 0);
437TESTINST3("smulbb r0, r1, r2", 0x6892886c, 0x6731e282, r0, r1, r2, 0);
438TESTINST3("smulbb r0, r1, r2", 0x112dcffc, 0xb6edf28f, r0, r1, r2, 0);
439TESTINST3("smulbb r0, r1, r2", 0xabfabbe6, 0x4b4ec9ca, r0, r1, r2, 0);
440TESTINST3("smulbb r0, r1, r2", 0xe52aabf8, 0xc1037fa4, r0, r1, r2, 0);
441TESTINST3("smulbb r0, r1, r2", 0xf2f4df1f, 0xcb4ab48f, r0, r1, r2, 0);
442TESTINST3("smulbb r0, r1, r2", 0x435f909a, 0xaf8f7e18, r0, r1, r2, 0);
443TESTINST3("smulbb r0, r1, r2", 0x2106ba5f, 0x87df4510, r0, r1, r2, 0);
444TESTINST3("smulbb r0, r1, r2", 0x246a6376, 0xabf4e8e1, r0, r1, r2, 0);
445TESTINST3("smulbb r0, r1, r2", 0x1046a1a3, 0xf4c0eeac, r0, r1, r2, 0);
446TESTINST3("smulbb r0, r1, r2", 0x638ca515, 0x006a54f2, r0, r1, r2, 0);
447TESTINST3("smulbb r0, r1, r2", 0xf63e7a9d, 0x79f74493, r0, r1, r2, 0);
448TESTINST3("smulbb r0, r1, r2", 0xbd6845cd, 0x9c09e313, r0, r1, r2, 0);
449 /* SMULtt rD, rN, rM */
450 TESTINST3("smultt r0, r1, r2", 0x00000003, 0x00000004, r0, r1, r2, 0);
451 TESTINST3("smultt r0, r1, r2", 0x00010003, 0x00020004, r0, r1, r2, 0);
452 TESTINST3("smultt r0, r1, r2", 0x80010003, 0x7fff0004, r0, r1, r2, 0);
453 TESTINST3("smultt r0, r1, r2", 0x7fff0003, 0x7fff0004, r0, r1, r2, 0);
454 TESTINST3("smultt r0, r1, r2", 0xffff0003, 0xffff0004, r0, r1, r2, 0);
455TESTINST3("smultt r0, r1, r2", 0x2575feb2, 0xd2c4287c, r0, r1, r2, 0);
456TESTINST3("smultt r0, r1, r2", 0xfb412431, 0x4b90362d, r0, r1, r2, 0);
457TESTINST3("smultt r0, r1, r2", 0x004dfbe5, 0xe87927cc, r0, r1, r2, 0);
458TESTINST3("smultt r0, r1, r2", 0xf6a3fa3c, 0x083b3571, r0, r1, r2, 0);
459TESTINST3("smultt r0, r1, r2", 0xbf17fb9a, 0xb9743941, r0, r1, r2, 0);
460TESTINST3("smultt r0, r1, r2", 0x2c0bd024, 0xbce5f924, r0, r1, r2, 0);
461TESTINST3("smultt r0, r1, r2", 0x3e976e2e, 0xcc3c201c, r0, r1, r2, 0);
462TESTINST3("smultt r0, r1, r2", 0xb4bfb365, 0x1ebaf88e, r0, r1, r2, 0);
463TESTINST3("smultt r0, r1, r2", 0x288593c0, 0x722d5e20, r0, r1, r2, 0);
464TESTINST3("smultt r0, r1, r2", 0x4d7ff5b4, 0xa1d6f791, r0, r1, r2, 0);
465TESTINST3("smultt r0, r1, r2", 0x4557be13, 0x7b11bee7, r0, r1, r2, 0);
466TESTINST3("smultt r0, r1, r2", 0xadcf5772, 0xa5631488, r0, r1, r2, 0);
467TESTINST3("smultt r0, r1, r2", 0x989a7235, 0xb10bcc65, r0, r1, r2, 0);
468TESTINST3("smultt r0, r1, r2", 0x4d6f393a, 0x73f39fca, r0, r1, r2, 0);
469TESTINST3("smultt r0, r1, r2", 0x24a3291e, 0x5648e540, r0, r1, r2, 0);
470TESTINST3("smultt r0, r1, r2", 0xdd91eebf, 0xc54f79e6, r0, r1, r2, 0);
471TESTINST3("smultt r0, r1, r2", 0xf7ce2ec6, 0x5fc92974, r0, r1, r2, 0);
472TESTINST3("smultt r0, r1, r2", 0xbc1083e8, 0x7e08184e, r0, r1, r2, 0);
473TESTINST3("smultt r0, r1, r2", 0xa617cc31, 0x71c8315f, r0, r1, r2, 0);
474TESTINST3("smultt r0, r1, r2", 0xdfe1e8f0, 0x9493110e, r0, r1, r2, 0);
475TESTINST3("smultt r0, r1, r2", 0x6ef49020, 0xba8a7e0d, r0, r1, r2, 0);
476TESTINST3("smultt r0, r1, r2", 0x3dc4e36b, 0x21568e39, r0, r1, r2, 0);
477TESTINST3("smultt r0, r1, r2", 0x52db4a9d, 0x55fcc8cf, r0, r1, r2, 0);
478TESTINST3("smultt r0, r1, r2", 0x3564c76c, 0x14434a2a, r0, r1, r2, 0);
479TESTINST3("smultt r0, r1, r2", 0x27836b0c, 0x3c855ca8, r0, r1, r2, 0);
480TESTINST3("smultt r0, r1, r2", 0x62ff7c30, 0x30ece28e, r0, r1, r2, 0);
481TESTINST3("smultt r0, r1, r2", 0x40955fdf, 0x057b562c, r0, r1, r2, 0);
482TESTINST3("smultt r0, r1, r2", 0x3b34c270, 0x27e1475b, r0, r1, r2, 0);
483TESTINST3("smultt r0, r1, r2", 0x7fdcda96, 0xd05893a7, r0, r1, r2, 0);
484TESTINST3("smultt r0, r1, r2", 0xb6ab141d, 0x2dc43624, r0, r1, r2, 0);
485TESTINST3("smultt r0, r1, r2", 0x403d53cb, 0x5328d58c, r0, r1, r2, 0);
486TESTINST3("smultt r0, r1, r2", 0x21ef1aef, 0x87488a4a, r0, r1, r2, 0);
487TESTINST3("smultt r0, r1, r2", 0x31458a23, 0xbb246228, r0, r1, r2, 0);
488TESTINST3("smultt r0, r1, r2", 0x848af791, 0x339d8d88, r0, r1, r2, 0);
489TESTINST3("smultt r0, r1, r2", 0xda3bacdc, 0x70974249, r0, r1, r2, 0);
490TESTINST3("smultt r0, r1, r2", 0x649d5cbd, 0x8a8d4e7d, r0, r1, r2, 0);
491TESTINST3("smultt r0, r1, r2", 0xc0c8c881, 0xeb1b4335, r0, r1, r2, 0);
492TESTINST3("smultt r0, r1, r2", 0x7dd81a20, 0x0cd6b508, r0, r1, r2, 0);
493TESTINST3("smultt r0, r1, r2", 0x6892886c, 0x6731e282, r0, r1, r2, 0);
494TESTINST3("smultt r0, r1, r2", 0x112dcffc, 0xb6edf28f, r0, r1, r2, 0);
495TESTINST3("smultt r0, r1, r2", 0xabfabbe6, 0x4b4ec9ca, r0, r1, r2, 0);
496TESTINST3("smultt r0, r1, r2", 0xe52aabf8, 0xc1037fa4, r0, r1, r2, 0);
497TESTINST3("smultt r0, r1, r2", 0xf2f4df1f, 0xcb4ab48f, r0, r1, r2, 0);
498TESTINST3("smultt r0, r1, r2", 0x435f909a, 0xaf8f7e18, r0, r1, r2, 0);
499TESTINST3("smultt r0, r1, r2", 0x2106ba5f, 0x87df4510, r0, r1, r2, 0);
500TESTINST3("smultt r0, r1, r2", 0x246a6376, 0xabf4e8e1, r0, r1, r2, 0);
501TESTINST3("smultt r0, r1, r2", 0x1046a1a3, 0xf4c0eeac, r0, r1, r2, 0);
502TESTINST3("smultt r0, r1, r2", 0x638ca515, 0x006a54f2, r0, r1, r2, 0);
503TESTINST3("smultt r0, r1, r2", 0xf63e7a9d, 0x79f74493, r0, r1, r2, 0);
504TESTINST3("smultt r0, r1, r2", 0xbd6845cd, 0x9c09e313, r0, r1, r2, 0);
505 /* SMULtb rD, rN, rM */
506 TESTINST3("smultb r0, r1, r2", 0x00000003, 0x00040000, r0, r1, r2, 0);
507 TESTINST3("smultb r0, r1, r2", 0x00010003, 0x00040002, r0, r1, r2, 0);
508 TESTINST3("smultb r0, r1, r2", 0x80010003, 0x00047fff, r0, r1, r2, 0);
509 TESTINST3("smultb r0, r1, r2", 0x7fff0003, 0x00047fff, r0, r1, r2, 0);
510 TESTINST3("smultb r0, r1, r2", 0xffff0003, 0x0004ffff, r0, r1, r2, 0);
511TESTINST3("smultb r0, r1, r2", 0x2575feb2, 0xd2c4287c, r0, r1, r2, 0);
512TESTINST3("smultb r0, r1, r2", 0xfb412431, 0x4b90362d, r0, r1, r2, 0);
513TESTINST3("smultb r0, r1, r2", 0x004dfbe5, 0xe87927cc, r0, r1, r2, 0);
514TESTINST3("smultb r0, r1, r2", 0xf6a3fa3c, 0x083b3571, r0, r1, r2, 0);
515TESTINST3("smultb r0, r1, r2", 0xbf17fb9a, 0xb9743941, r0, r1, r2, 0);
516TESTINST3("smultb r0, r1, r2", 0x2c0bd024, 0xbce5f924, r0, r1, r2, 0);
517TESTINST3("smultb r0, r1, r2", 0x3e976e2e, 0xcc3c201c, r0, r1, r2, 0);
518TESTINST3("smultb r0, r1, r2", 0xb4bfb365, 0x1ebaf88e, r0, r1, r2, 0);
519TESTINST3("smultb r0, r1, r2", 0x288593c0, 0x722d5e20, r0, r1, r2, 0);
520TESTINST3("smultb r0, r1, r2", 0x4d7ff5b4, 0xa1d6f791, r0, r1, r2, 0);
521TESTINST3("smultb r0, r1, r2", 0x4557be13, 0x7b11bee7, r0, r1, r2, 0);
522TESTINST3("smultb r0, r1, r2", 0xadcf5772, 0xa5631488, r0, r1, r2, 0);
523TESTINST3("smultb r0, r1, r2", 0x989a7235, 0xb10bcc65, r0, r1, r2, 0);
524TESTINST3("smultb r0, r1, r2", 0x4d6f393a, 0x73f39fca, r0, r1, r2, 0);
525TESTINST3("smultb r0, r1, r2", 0x24a3291e, 0x5648e540, r0, r1, r2, 0);
526TESTINST3("smultb r0, r1, r2", 0xdd91eebf, 0xc54f79e6, r0, r1, r2, 0);
527TESTINST3("smultb r0, r1, r2", 0xf7ce2ec6, 0x5fc92974, r0, r1, r2, 0);
528TESTINST3("smultb r0, r1, r2", 0xbc1083e8, 0x7e08184e, r0, r1, r2, 0);
529TESTINST3("smultb r0, r1, r2", 0xa617cc31, 0x71c8315f, r0, r1, r2, 0);
530TESTINST3("smultb r0, r1, r2", 0xdfe1e8f0, 0x9493110e, r0, r1, r2, 0);
531TESTINST3("smultb r0, r1, r2", 0x6ef49020, 0xba8a7e0d, r0, r1, r2, 0);
532TESTINST3("smultb r0, r1, r2", 0x3dc4e36b, 0x21568e39, r0, r1, r2, 0);
533TESTINST3("smultb r0, r1, r2", 0x52db4a9d, 0x55fcc8cf, r0, r1, r2, 0);
534TESTINST3("smultb r0, r1, r2", 0x3564c76c, 0x14434a2a, r0, r1, r2, 0);
535TESTINST3("smultb r0, r1, r2", 0x27836b0c, 0x3c855ca8, r0, r1, r2, 0);
536TESTINST3("smultb r0, r1, r2", 0x62ff7c30, 0x30ece28e, r0, r1, r2, 0);
537TESTINST3("smultb r0, r1, r2", 0x40955fdf, 0x057b562c, r0, r1, r2, 0);
538TESTINST3("smultb r0, r1, r2", 0x3b34c270, 0x27e1475b, r0, r1, r2, 0);
539TESTINST3("smultb r0, r1, r2", 0x7fdcda96, 0xd05893a7, r0, r1, r2, 0);
540TESTINST3("smultb r0, r1, r2", 0xb6ab141d, 0x2dc43624, r0, r1, r2, 0);
541TESTINST3("smultb r0, r1, r2", 0x403d53cb, 0x5328d58c, r0, r1, r2, 0);
542TESTINST3("smultb r0, r1, r2", 0x21ef1aef, 0x87488a4a, r0, r1, r2, 0);
543TESTINST3("smultb r0, r1, r2", 0x31458a23, 0xbb246228, r0, r1, r2, 0);
544TESTINST3("smultb r0, r1, r2", 0x848af791, 0x339d8d88, r0, r1, r2, 0);
545TESTINST3("smultb r0, r1, r2", 0xda3bacdc, 0x70974249, r0, r1, r2, 0);
546TESTINST3("smultb r0, r1, r2", 0x649d5cbd, 0x8a8d4e7d, r0, r1, r2, 0);
547TESTINST3("smultb r0, r1, r2", 0xc0c8c881, 0xeb1b4335, r0, r1, r2, 0);
548TESTINST3("smultb r0, r1, r2", 0x7dd81a20, 0x0cd6b508, r0, r1, r2, 0);
549TESTINST3("smultb r0, r1, r2", 0x6892886c, 0x6731e282, r0, r1, r2, 0);
550TESTINST3("smultb r0, r1, r2", 0x112dcffc, 0xb6edf28f, r0, r1, r2, 0);
551TESTINST3("smultb r0, r1, r2", 0xabfabbe6, 0x4b4ec9ca, r0, r1, r2, 0);
552TESTINST3("smultb r0, r1, r2", 0xe52aabf8, 0xc1037fa4, r0, r1, r2, 0);
553TESTINST3("smultb r0, r1, r2", 0xf2f4df1f, 0xcb4ab48f, r0, r1, r2, 0);
554TESTINST3("smultb r0, r1, r2", 0x435f909a, 0xaf8f7e18, r0, r1, r2, 0);
555TESTINST3("smultb r0, r1, r2", 0x2106ba5f, 0x87df4510, r0, r1, r2, 0);
556TESTINST3("smultb r0, r1, r2", 0x246a6376, 0xabf4e8e1, r0, r1, r2, 0);
557TESTINST3("smultb r0, r1, r2", 0x1046a1a3, 0xf4c0eeac, r0, r1, r2, 0);
558TESTINST3("smultb r0, r1, r2", 0x638ca515, 0x006a54f2, r0, r1, r2, 0);
559TESTINST3("smultb r0, r1, r2", 0xf63e7a9d, 0x79f74493, r0, r1, r2, 0);
560TESTINST3("smultb r0, r1, r2", 0xbd6845cd, 0x9c09e313, r0, r1, r2, 0);
561 /* SMULbt rD, rN, rM */
562 TESTINST3("smulbt r0, r1, r2", 0x00030000, 0x00000004, r0, r1, r2, 0);
563 TESTINST3("smulbt r0, r1, r2", 0x00030001, 0x00020004, r0, r1, r2, 0);
564 TESTINST3("smulbt r0, r1, r2", 0x00038001, 0x7fff0004, r0, r1, r2, 0);
565 TESTINST3("smulbt r0, r1, r2", 0x00037fff, 0x7fff0004, r0, r1, r2, 0);
566 TESTINST3("smulbt r0, r1, r2", 0x0003ffff, 0xffff0004, r0, r1, r2, 0);
567TESTINST3("smulbt r0, r1, r2", 0x2575feb2, 0xd2c4287c, r0, r1, r2, 0);
568TESTINST3("smulbt r0, r1, r2", 0xfb412431, 0x4b90362d, r0, r1, r2, 0);
569TESTINST3("smulbt r0, r1, r2", 0x004dfbe5, 0xe87927cc, r0, r1, r2, 0);
570TESTINST3("smulbt r0, r1, r2", 0xf6a3fa3c, 0x083b3571, r0, r1, r2, 0);
571TESTINST3("smulbt r0, r1, r2", 0xbf17fb9a, 0xb9743941, r0, r1, r2, 0);
572TESTINST3("smulbt r0, r1, r2", 0x2c0bd024, 0xbce5f924, r0, r1, r2, 0);
573TESTINST3("smulbt r0, r1, r2", 0x3e976e2e, 0xcc3c201c, r0, r1, r2, 0);
574TESTINST3("smulbt r0, r1, r2", 0xb4bfb365, 0x1ebaf88e, r0, r1, r2, 0);
575TESTINST3("smulbt r0, r1, r2", 0x288593c0, 0x722d5e20, r0, r1, r2, 0);
576TESTINST3("smulbt r0, r1, r2", 0x4d7ff5b4, 0xa1d6f791, r0, r1, r2, 0);
577TESTINST3("smulbt r0, r1, r2", 0x4557be13, 0x7b11bee7, r0, r1, r2, 0);
578TESTINST3("smulbt r0, r1, r2", 0xadcf5772, 0xa5631488, r0, r1, r2, 0);
579TESTINST3("smulbt r0, r1, r2", 0x989a7235, 0xb10bcc65, r0, r1, r2, 0);
580TESTINST3("smulbt r0, r1, r2", 0x4d6f393a, 0x73f39fca, r0, r1, r2, 0);
581TESTINST3("smulbt r0, r1, r2", 0x24a3291e, 0x5648e540, r0, r1, r2, 0);
582TESTINST3("smulbt r0, r1, r2", 0xdd91eebf, 0xc54f79e6, r0, r1, r2, 0);
583TESTINST3("smulbt r0, r1, r2", 0xf7ce2ec6, 0x5fc92974, r0, r1, r2, 0);
584TESTINST3("smulbt r0, r1, r2", 0xbc1083e8, 0x7e08184e, r0, r1, r2, 0);
585TESTINST3("smulbt r0, r1, r2", 0xa617cc31, 0x71c8315f, r0, r1, r2, 0);
586TESTINST3("smulbt r0, r1, r2", 0xdfe1e8f0, 0x9493110e, r0, r1, r2, 0);
587TESTINST3("smulbt r0, r1, r2", 0x6ef49020, 0xba8a7e0d, r0, r1, r2, 0);
588TESTINST3("smulbt r0, r1, r2", 0x3dc4e36b, 0x21568e39, r0, r1, r2, 0);
589TESTINST3("smulbt r0, r1, r2", 0x52db4a9d, 0x55fcc8cf, r0, r1, r2, 0);
590TESTINST3("smulbt r0, r1, r2", 0x3564c76c, 0x14434a2a, r0, r1, r2, 0);
591TESTINST3("smulbt r0, r1, r2", 0x27836b0c, 0x3c855ca8, r0, r1, r2, 0);
592TESTINST3("smulbt r0, r1, r2", 0x62ff7c30, 0x30ece28e, r0, r1, r2, 0);
593TESTINST3("smulbt r0, r1, r2", 0x40955fdf, 0x057b562c, r0, r1, r2, 0);
594TESTINST3("smulbt r0, r1, r2", 0x3b34c270, 0x27e1475b, r0, r1, r2, 0);
595TESTINST3("smulbt r0, r1, r2", 0x7fdcda96, 0xd05893a7, r0, r1, r2, 0);
596TESTINST3("smulbt r0, r1, r2", 0xb6ab141d, 0x2dc43624, r0, r1, r2, 0);
597TESTINST3("smulbt r0, r1, r2", 0x403d53cb, 0x5328d58c, r0, r1, r2, 0);
598TESTINST3("smulbt r0, r1, r2", 0x21ef1aef, 0x87488a4a, r0, r1, r2, 0);
599TESTINST3("smulbt r0, r1, r2", 0x31458a23, 0xbb246228, r0, r1, r2, 0);
600TESTINST3("smulbt r0, r1, r2", 0x848af791, 0x339d8d88, r0, r1, r2, 0);
601TESTINST3("smulbt r0, r1, r2", 0xda3bacdc, 0x70974249, r0, r1, r2, 0);
602TESTINST3("smulbt r0, r1, r2", 0x649d5cbd, 0x8a8d4e7d, r0, r1, r2, 0);
603TESTINST3("smulbt r0, r1, r2", 0xc0c8c881, 0xeb1b4335, r0, r1, r2, 0);
604TESTINST3("smulbt r0, r1, r2", 0x7dd81a20, 0x0cd6b508, r0, r1, r2, 0);
605TESTINST3("smulbt r0, r1, r2", 0x6892886c, 0x6731e282, r0, r1, r2, 0);
606TESTINST3("smulbt r0, r1, r2", 0x112dcffc, 0xb6edf28f, r0, r1, r2, 0);
607TESTINST3("smulbt r0, r1, r2", 0xabfabbe6, 0x4b4ec9ca, r0, r1, r2, 0);
608TESTINST3("smulbt r0, r1, r2", 0xe52aabf8, 0xc1037fa4, r0, r1, r2, 0);
609TESTINST3("smulbt r0, r1, r2", 0xf2f4df1f, 0xcb4ab48f, r0, r1, r2, 0);
610TESTINST3("smulbt r0, r1, r2", 0x435f909a, 0xaf8f7e18, r0, r1, r2, 0);
611TESTINST3("smulbt r0, r1, r2", 0x2106ba5f, 0x87df4510, r0, r1, r2, 0);
612TESTINST3("smulbt r0, r1, r2", 0x246a6376, 0xabf4e8e1, r0, r1, r2, 0);
613TESTINST3("smulbt r0, r1, r2", 0x1046a1a3, 0xf4c0eeac, r0, r1, r2, 0);
614TESTINST3("smulbt r0, r1, r2", 0x638ca515, 0x006a54f2, r0, r1, r2, 0);
615TESTINST3("smulbt r0, r1, r2", 0xf63e7a9d, 0x79f74493, r0, r1, r2, 0);
616TESTINST3("smulbt r0, r1, r2", 0xbd6845cd, 0x9c09e313, r0, r1, r2, 0);
617
618 printf("-------------- SMULW{B,T} --------------\n");
619 /* SMULWB rD, rN, rM : Rn x Rm[31..16] */
620 TESTINST3("smulwb r0, r1, r2", 0x00000003, 0x00020004, r0, r1, r2, 0);
621 TESTINST3("smulwb r0, r1, r2", 0x00010003, 0x47ff0004, r0, r1, r2, 0);
622 TESTINST3("smulwb r0, r1, r2", 0x80010003, 0x7fff0004, r0, r1, r2, 0);
623 TESTINST3("smulwb r0, r1, r2", 0x7fff0003, 0x7fff0004, r0, r1, r2, 0);
624 TESTINST3("smulwb r0, r1, r2", 0xffff0003, 0xffff0004, r0, r1, r2, 0);
625TESTINST3("smulwb r0, r1, r2", 0x2575feb2, 0xd2c4287c, r0, r1, r2, 0);
626TESTINST3("smulwb r0, r1, r2", 0xfb412431, 0x4b90362d, r0, r1, r2, 0);
627TESTINST3("smulwb r0, r1, r2", 0x004dfbe5, 0xe87927cc, r0, r1, r2, 0);
628TESTINST3("smulwb r0, r1, r2", 0xf6a3fa3c, 0x083b3571, r0, r1, r2, 0);
629TESTINST3("smulwb r0, r1, r2", 0xbf17fb9a, 0xb9743941, r0, r1, r2, 0);
630TESTINST3("smulwb r0, r1, r2", 0x2c0bd024, 0xbce5f924, r0, r1, r2, 0);
631TESTINST3("smulwb r0, r1, r2", 0x3e976e2e, 0xcc3c201c, r0, r1, r2, 0);
632TESTINST3("smulwb r0, r1, r2", 0xb4bfb365, 0x1ebaf88e, r0, r1, r2, 0);
633TESTINST3("smulwb r0, r1, r2", 0x288593c0, 0x722d5e20, r0, r1, r2, 0);
634TESTINST3("smulwb r0, r1, r2", 0x4d7ff5b4, 0xa1d6f791, r0, r1, r2, 0);
635TESTINST3("smulwb r0, r1, r2", 0x4557be13, 0x7b11bee7, r0, r1, r2, 0);
636TESTINST3("smulwb r0, r1, r2", 0xadcf5772, 0xa5631488, r0, r1, r2, 0);
637TESTINST3("smulwb r0, r1, r2", 0x989a7235, 0xb10bcc65, r0, r1, r2, 0);
638TESTINST3("smulwb r0, r1, r2", 0x4d6f393a, 0x73f39fca, r0, r1, r2, 0);
639TESTINST3("smulwb r0, r1, r2", 0x24a3291e, 0x5648e540, r0, r1, r2, 0);
640TESTINST3("smulwb r0, r1, r2", 0xdd91eebf, 0xc54f79e6, r0, r1, r2, 0);
641TESTINST3("smulwb r0, r1, r2", 0xf7ce2ec6, 0x5fc92974, r0, r1, r2, 0);
642TESTINST3("smulwb r0, r1, r2", 0xbc1083e8, 0x7e08184e, r0, r1, r2, 0);
643TESTINST3("smulwb r0, r1, r2", 0xa617cc31, 0x71c8315f, r0, r1, r2, 0);
644TESTINST3("smulwb r0, r1, r2", 0xdfe1e8f0, 0x9493110e, r0, r1, r2, 0);
645TESTINST3("smulwb r0, r1, r2", 0x6ef49020, 0xba8a7e0d, r0, r1, r2, 0);
646TESTINST3("smulwb r0, r1, r2", 0x3dc4e36b, 0x21568e39, r0, r1, r2, 0);
647TESTINST3("smulwb r0, r1, r2", 0x52db4a9d, 0x55fcc8cf, r0, r1, r2, 0);
648TESTINST3("smulwb r0, r1, r2", 0x3564c76c, 0x14434a2a, r0, r1, r2, 0);
649TESTINST3("smulwb r0, r1, r2", 0x27836b0c, 0x3c855ca8, r0, r1, r2, 0);
650TESTINST3("smulwb r0, r1, r2", 0x62ff7c30, 0x30ece28e, r0, r1, r2, 0);
651TESTINST3("smulwb r0, r1, r2", 0x40955fdf, 0x057b562c, r0, r1, r2, 0);
652TESTINST3("smulwb r0, r1, r2", 0x3b34c270, 0x27e1475b, r0, r1, r2, 0);
653TESTINST3("smulwb r0, r1, r2", 0x7fdcda96, 0xd05893a7, r0, r1, r2, 0);
654TESTINST3("smulwb r0, r1, r2", 0xb6ab141d, 0x2dc43624, r0, r1, r2, 0);
655TESTINST3("smulwb r0, r1, r2", 0x403d53cb, 0x5328d58c, r0, r1, r2, 0);
656TESTINST3("smulwb r0, r1, r2", 0x21ef1aef, 0x87488a4a, r0, r1, r2, 0);
657TESTINST3("smulwb r0, r1, r2", 0x31458a23, 0xbb246228, r0, r1, r2, 0);
658TESTINST3("smulwb r0, r1, r2", 0x848af791, 0x339d8d88, r0, r1, r2, 0);
659TESTINST3("smulwb r0, r1, r2", 0xda3bacdc, 0x70974249, r0, r1, r2, 0);
660TESTINST3("smulwb r0, r1, r2", 0x649d5cbd, 0x8a8d4e7d, r0, r1, r2, 0);
661TESTINST3("smulwb r0, r1, r2", 0xc0c8c881, 0xeb1b4335, r0, r1, r2, 0);
662TESTINST3("smulwb r0, r1, r2", 0x7dd81a20, 0x0cd6b508, r0, r1, r2, 0);
663TESTINST3("smulwb r0, r1, r2", 0x6892886c, 0x6731e282, r0, r1, r2, 0);
664TESTINST3("smulwb r0, r1, r2", 0x112dcffc, 0xb6edf28f, r0, r1, r2, 0);
665TESTINST3("smulwb r0, r1, r2", 0xabfabbe6, 0x4b4ec9ca, r0, r1, r2, 0);
666TESTINST3("smulwb r0, r1, r2", 0xe52aabf8, 0xc1037fa4, r0, r1, r2, 0);
667TESTINST3("smulwb r0, r1, r2", 0xf2f4df1f, 0xcb4ab48f, r0, r1, r2, 0);
668TESTINST3("smulwb r0, r1, r2", 0x435f909a, 0xaf8f7e18, r0, r1, r2, 0);
669TESTINST3("smulwb r0, r1, r2", 0x2106ba5f, 0x87df4510, r0, r1, r2, 0);
670TESTINST3("smulwb r0, r1, r2", 0x246a6376, 0xabf4e8e1, r0, r1, r2, 0);
671TESTINST3("smulwb r0, r1, r2", 0x1046a1a3, 0xf4c0eeac, r0, r1, r2, 0);
672TESTINST3("smulwb r0, r1, r2", 0x638ca515, 0x006a54f2, r0, r1, r2, 0);
673TESTINST3("smulwb r0, r1, r2", 0xf63e7a9d, 0x79f74493, r0, r1, r2, 0);
674TESTINST3("smulwb r0, r1, r2", 0xbd6845cd, 0x9c09e313, r0, r1, r2, 0);
675 /* SMULWT rD, rN, rM - Rn x Rm[15.. 0] */
676 TESTINST3("smulwt r0, r1, r2", 0x00000003, 0x00040000, r0, r1, r2, 0);
677 TESTINST3("smulwt r0, r1, r2", 0x00010003, 0x00040002, r0, r1, r2, 0);
678 TESTINST3("smulwt r0, r1, r2", 0x80010003, 0x00047fff, r0, r1, r2, 0);
679 TESTINST3("smulwt r0, r1, r2", 0x7fff0003, 0x00047fff, r0, r1, r2, 0);
680 TESTINST3("smulwt r0, r1, r2", 0xffff0003, 0x0004ffff, r0, r1, r2, 0);
681TESTINST3("smulwt r0, r1, r2", 0x2575feb2, 0xd2c4287c, r0, r1, r2, 0);
682TESTINST3("smulwt r0, r1, r2", 0xfb412431, 0x4b90362d, r0, r1, r2, 0);
683TESTINST3("smulwt r0, r1, r2", 0x004dfbe5, 0xe87927cc, r0, r1, r2, 0);
684TESTINST3("smulwt r0, r1, r2", 0xf6a3fa3c, 0x083b3571, r0, r1, r2, 0);
685TESTINST3("smulwt r0, r1, r2", 0xbf17fb9a, 0xb9743941, r0, r1, r2, 0);
686TESTINST3("smulwt r0, r1, r2", 0x2c0bd024, 0xbce5f924, r0, r1, r2, 0);
687TESTINST3("smulwt r0, r1, r2", 0x3e976e2e, 0xcc3c201c, r0, r1, r2, 0);
688TESTINST3("smulwt r0, r1, r2", 0xb4bfb365, 0x1ebaf88e, r0, r1, r2, 0);
689TESTINST3("smulwt r0, r1, r2", 0x288593c0, 0x722d5e20, r0, r1, r2, 0);
690TESTINST3("smulwt r0, r1, r2", 0x4d7ff5b4, 0xa1d6f791, r0, r1, r2, 0);
691TESTINST3("smulwt r0, r1, r2", 0x4557be13, 0x7b11bee7, r0, r1, r2, 0);
692TESTINST3("smulwt r0, r1, r2", 0xadcf5772, 0xa5631488, r0, r1, r2, 0);
693TESTINST3("smulwt r0, r1, r2", 0x989a7235, 0xb10bcc65, r0, r1, r2, 0);
694TESTINST3("smulwt r0, r1, r2", 0x4d6f393a, 0x73f39fca, r0, r1, r2, 0);
695TESTINST3("smulwt r0, r1, r2", 0x24a3291e, 0x5648e540, r0, r1, r2, 0);
696TESTINST3("smulwt r0, r1, r2", 0xdd91eebf, 0xc54f79e6, r0, r1, r2, 0);
697TESTINST3("smulwt r0, r1, r2", 0xf7ce2ec6, 0x5fc92974, r0, r1, r2, 0);
698TESTINST3("smulwt r0, r1, r2", 0xbc1083e8, 0x7e08184e, r0, r1, r2, 0);
699TESTINST3("smulwt r0, r1, r2", 0xa617cc31, 0x71c8315f, r0, r1, r2, 0);
700TESTINST3("smulwt r0, r1, r2", 0xdfe1e8f0, 0x9493110e, r0, r1, r2, 0);
701TESTINST3("smulwt r0, r1, r2", 0x6ef49020, 0xba8a7e0d, r0, r1, r2, 0);
702TESTINST3("smulwt r0, r1, r2", 0x3dc4e36b, 0x21568e39, r0, r1, r2, 0);
703TESTINST3("smulwt r0, r1, r2", 0x52db4a9d, 0x55fcc8cf, r0, r1, r2, 0);
704TESTINST3("smulwt r0, r1, r2", 0x3564c76c, 0x14434a2a, r0, r1, r2, 0);
705TESTINST3("smulwt r0, r1, r2", 0x27836b0c, 0x3c855ca8, r0, r1, r2, 0);
706TESTINST3("smulwt r0, r1, r2", 0x62ff7c30, 0x30ece28e, r0, r1, r2, 0);
707TESTINST3("smulwt r0, r1, r2", 0x40955fdf, 0x057b562c, r0, r1, r2, 0);
708TESTINST3("smulwt r0, r1, r2", 0x3b34c270, 0x27e1475b, r0, r1, r2, 0);
709TESTINST3("smulwt r0, r1, r2", 0x7fdcda96, 0xd05893a7, r0, r1, r2, 0);
710TESTINST3("smulwt r0, r1, r2", 0xb6ab141d, 0x2dc43624, r0, r1, r2, 0);
711TESTINST3("smulwt r0, r1, r2", 0x403d53cb, 0x5328d58c, r0, r1, r2, 0);
712TESTINST3("smulwt r0, r1, r2", 0x21ef1aef, 0x87488a4a, r0, r1, r2, 0);
713TESTINST3("smulwt r0, r1, r2", 0x31458a23, 0xbb246228, r0, r1, r2, 0);
714TESTINST3("smulwt r0, r1, r2", 0x848af791, 0x339d8d88, r0, r1, r2, 0);
715TESTINST3("smulwt r0, r1, r2", 0xda3bacdc, 0x70974249, r0, r1, r2, 0);
716TESTINST3("smulwt r0, r1, r2", 0x649d5cbd, 0x8a8d4e7d, r0, r1, r2, 0);
717TESTINST3("smulwt r0, r1, r2", 0xc0c8c881, 0xeb1b4335, r0, r1, r2, 0);
718TESTINST3("smulwt r0, r1, r2", 0x7dd81a20, 0x0cd6b508, r0, r1, r2, 0);
719TESTINST3("smulwt r0, r1, r2", 0x6892886c, 0x6731e282, r0, r1, r2, 0);
720TESTINST3("smulwt r0, r1, r2", 0x112dcffc, 0xb6edf28f, r0, r1, r2, 0);
721TESTINST3("smulwt r0, r1, r2", 0xabfabbe6, 0x4b4ec9ca, r0, r1, r2, 0);
722TESTINST3("smulwt r0, r1, r2", 0xe52aabf8, 0xc1037fa4, r0, r1, r2, 0);
723TESTINST3("smulwt r0, r1, r2", 0xf2f4df1f, 0xcb4ab48f, r0, r1, r2, 0);
724TESTINST3("smulwt r0, r1, r2", 0x435f909a, 0xaf8f7e18, r0, r1, r2, 0);
725TESTINST3("smulwt r0, r1, r2", 0x2106ba5f, 0x87df4510, r0, r1, r2, 0);
726TESTINST3("smulwt r0, r1, r2", 0x246a6376, 0xabf4e8e1, r0, r1, r2, 0);
727TESTINST3("smulwt r0, r1, r2", 0x1046a1a3, 0xf4c0eeac, r0, r1, r2, 0);
728TESTINST3("smulwt r0, r1, r2", 0x638ca515, 0x006a54f2, r0, r1, r2, 0);
729TESTINST3("smulwt r0, r1, r2", 0xf63e7a9d, 0x79f74493, r0, r1, r2, 0);
730TESTINST3("smulwt r0, r1, r2", 0xbd6845cd, 0x9c09e313, r0, r1, r2, 0);
731
732 printf("------------ PKHBT / PKHTB ------------\n");
733 /* PKHBT */
734 TESTINST3("pkhbt r0, r1, r2, lsl #0", 0x11223344, 0x55667788, r0,r1,r2, 0);
735 TESTINST3("pkhbt r0, r1, r2, lsl #1", 0x11223344, 0x55667788, r0,r1,r2, 0);
736 TESTINST3("pkhbt r0, r1, r2, lsl #2", 0x11223344, 0x55667788, r0,r1,r2, 0);
737 TESTINST3("pkhbt r0, r1, r2, lsl #3", 0x11223344, 0x55667788, r0,r1,r2, 0);
738 TESTINST3("pkhbt r0, r1, r2, lsl #4", 0x11223344, 0x55667788, r0,r1,r2, 0);
739 TESTINST3("pkhbt r0, r1, r2, lsl #16", 0x11223344, 0x55667788, r0,r1,r2, 0);
740 TESTINST3("pkhbt r0, r1, r2, lsl #22", 0x11223344, 0x55667788, r0,r1,r2, 0);
741 TESTINST3("pkhbt r0, r1, r2, lsl #31", 0x11223344, 0x55667788, r0,r1,r2, 0);
742TESTINST3("pkhbt r0, r1, r2", 0x50c28082, 0xc1553709, r0,r1,r2, 0);
743TESTINST3("pkhbt r0, r1, r2", 0x17962e8f, 0x69ec0212, r0,r1,r2, 0);
744TESTINST3("pkhbt r0, r1, r2", 0xc57243b7, 0x03fa9bb5, r0,r1,r2, 0);
745TESTINST3("pkhbt r0, r1, r2", 0x7eb226ac, 0xf52e9fbf, r0,r1,r2, 0);
746TESTINST3("pkhbt r0, r1, r2", 0xbce0f026, 0x7fcbe5a9, r0,r1,r2, 0);
747TESTINST3("pkhbt r0, r1, r2", 0xa5757252, 0x2dd01366, r0,r1,r2, 0);
748TESTINST3("pkhbt r0, r1, r2", 0xf4a477c1, 0x5e4b1cbf, r0,r1,r2, 0);
749TESTINST3("pkhbt r0, r1, r2", 0x76723a21, 0x464a21cc, r0,r1,r2, 0);
750TESTINST3("pkhbt r0, r1, r2", 0x74d01105, 0xe8108f1b, r0,r1,r2, 0);
751TESTINST3("pkhbt r0, r1, r2", 0xc1273e2c, 0xcd90d604, r0,r1,r2, 0);
752TESTINST3("pkhbt r0, r1, r2, lsl #0", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
753TESTINST3("pkhbt r0, r1, r2, lsl #1", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
754TESTINST3("pkhbt r0, r1, r2, lsl #2", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
755TESTINST3("pkhbt r0, r1, r2, lsl #3", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
756TESTINST3("pkhbt r0, r1, r2, lsl #4", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
757TESTINST3("pkhbt r0, r1, r2, lsl #8", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
758TESTINST3("pkhbt r0, r1, r2, lsl #12", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
759TESTINST3("pkhbt r0, r1, r2, lsl #16", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
760TESTINST3("pkhbt r0, r1, r2, lsl #24", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
761TESTINST3("pkhbt r0, r1, r2, lsl #31", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
762TESTINST3("pkhbt r0, r1, r2, lsl #0", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
763TESTINST3("pkhbt r0, r1, r2, lsl #1", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
764TESTINST3("pkhbt r0, r1, r2, lsl #2", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
765TESTINST3("pkhbt r0, r1, r2, lsl #3", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
766TESTINST3("pkhbt r0, r1, r2, lsl #4", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
767TESTINST3("pkhbt r0, r1, r2, lsl #8", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
768TESTINST3("pkhbt r0, r1, r2, lsl #12", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
769TESTINST3("pkhbt r0, r1, r2, lsl #16", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
770TESTINST3("pkhbt r0, r1, r2, lsl #24", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
771TESTINST3("pkhbt r0, r1, r2, lsl #31", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
772TESTINST3("pkhbt r0, r1, r2, lsl #0", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
773TESTINST3("pkhbt r0, r1, r2, lsl #1", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
774TESTINST3("pkhbt r0, r1, r2, lsl #2", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
775TESTINST3("pkhbt r0, r1, r2, lsl #3", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
776TESTINST3("pkhbt r0, r1, r2, lsl #4", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
777TESTINST3("pkhbt r0, r1, r2, lsl #8", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
778TESTINST3("pkhbt r0, r1, r2, lsl #12", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
779TESTINST3("pkhbt r0, r1, r2, lsl #16", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
780TESTINST3("pkhbt r0, r1, r2, lsl #24", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
781TESTINST3("pkhbt r0, r1, r2, lsl #31", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
782TESTINST3("pkhbt r0, r1, r2, lsl #0", 0xd5dc5407, 0xf87b961e, r0,r1,r2, 0);
783TESTINST3("pkhbt r0, r1, r2, lsl #1", 0xd65db979, 0xc61b323b, r0,r1,r2, 0);
784TESTINST3("pkhbt r0, r1, r2, lsl #2", 0xa3268abe, 0xed2cbf78, r0,r1,r2, 0);
785TESTINST3("pkhbt r0, r1, r2, lsl #3", 0xbf73f0a5, 0x2fb714c9, r0,r1,r2, 0);
786TESTINST3("pkhbt r0, r1, r2, lsl #4", 0x281703ed, 0x925ef472, r0,r1,r2, 0);
787TESTINST3("pkhbt r0, r1, r2, lsl #8", 0xeaa652c7, 0x137741f4, r0,r1,r2, 0);
788TESTINST3("pkhbt r0, r1, r2, lsl #12", 0x71fbde8b, 0xdba5bd25, r0,r1,r2, 0);
789TESTINST3("pkhbt r0, r1, r2, lsl #16", 0x884c0ad8, 0xc00b821a, r0,r1,r2, 0);
790TESTINST3("pkhbt r0, r1, r2, lsl #24", 0xe1bb8606, 0x58293969, r0,r1,r2, 0);
791TESTINST3("pkhbt r0, r1, r2, lsl #31", 0xa3cfd624, 0x6077fb1f, r0,r1,r2, 0);
792TESTINST3("pkhbt r0, r1, r2, lsl #0", 0x40b094e2, 0x17913309, r0,r1,r2, 0);
793TESTINST3("pkhbt r0, r1, r2, lsl #1", 0x5388b5cd, 0x86582032, r0,r1,r2, 0);
794TESTINST3("pkhbt r0, r1, r2, lsl #2", 0x5de41558, 0xccfa1c7e, r0,r1,r2, 0);
795TESTINST3("pkhbt r0, r1, r2, lsl #3", 0x23ba1b46, 0x4437983c, r0,r1,r2, 0);
796TESTINST3("pkhbt r0, r1, r2, lsl #4", 0x48d06549, 0xa9085781, r0,r1,r2, 0);
797TESTINST3("pkhbt r0, r1, r2, lsl #8", 0xc6b4ac58, 0xb2aead21, r0,r1,r2, 0);
798TESTINST3("pkhbt r0, r1, r2, lsl #12", 0xc2bdf597, 0xdde1e6a4, r0,r1,r2, 0);
799TESTINST3("pkhbt r0, r1, r2, lsl #16", 0x852e3a72, 0x157b0dea, r0,r1,r2, 0);
800TESTINST3("pkhbt r0, r1, r2, lsl #24", 0xe7aa57b4, 0x1584bd74, r0,r1,r2, 0);
801TESTINST3("pkhbt r0, r1, r2, lsl #31", 0xd4b64d54, 0xc53aaba9, r0,r1,r2, 0);
802 /* PKHTB */
803 TESTINST3("pkhtb r0, r1, r2, asr #0", 0x11223344, 0x55667788, r0,r1,r2, 0);
804 TESTINST3("pkhtb r0, r1, r2, asr #1", 0x11223344, 0x55667788, r0,r1,r2, 0);
805 TESTINST3("pkhtb r0, r1, r2, asr #2", 0x11223344, 0x55667788, r0,r1,r2, 0);
806 TESTINST3("pkhtb r0, r1, r2, asr #3", 0x11223344, 0x55667788, r0,r1,r2, 0);
807 TESTINST3("pkhtb r0, r1, r2, asr #4", 0x11223344, 0x55667788, r0,r1,r2, 0);
808 TESTINST3("pkhtb r0, r1, r2, asr #16", 0x11223344, 0x55667788, r0,r1,r2, 0);
809 TESTINST3("pkhtb r0, r1, r2, asr #22", 0x11223344, 0x55667788, r0,r1,r2, 0);
810 TESTINST3("pkhtb r0, r1, r2, asr #31", 0x11223344, 0x55667788, r0,r1,r2, 0);
811TESTINST3("pkhtb r0, r1, r2", 0x50c28082, 0xc1553709, r0,r1,r2, 0);
812TESTINST3("pkhtb r0, r1, r2", 0x17962e8f, 0x69ec0212, r0,r1,r2, 0);
813TESTINST3("pkhtb r0, r1, r2", 0xc57243b7, 0x03fa9bb5, r0,r1,r2, 0);
814TESTINST3("pkhtb r0, r1, r2", 0x7eb226ac, 0xf52e9fbf, r0,r1,r2, 0);
815TESTINST3("pkhtb r0, r1, r2", 0xbce0f026, 0x7fcbe5a9, r0,r1,r2, 0);
816TESTINST3("pkhtb r0, r1, r2", 0xa5757252, 0x2dd01366, r0,r1,r2, 0);
817TESTINST3("pkhtb r0, r1, r2", 0xf4a477c1, 0x5e4b1cbf, r0,r1,r2, 0);
818TESTINST3("pkhtb r0, r1, r2", 0x76723a21, 0x464a21cc, r0,r1,r2, 0);
819TESTINST3("pkhtb r0, r1, r2", 0x74d01105, 0xe8108f1b, r0,r1,r2, 0);
820TESTINST3("pkhtb r0, r1, r2", 0xc1273e2c, 0xcd90d604, r0,r1,r2, 0);
821TESTINST3("pkhtb r0, r1, r2, asr #0", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
822TESTINST3("pkhtb r0, r1, r2, asr #1", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
823TESTINST3("pkhtb r0, r1, r2, asr #2", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
824TESTINST3("pkhtb r0, r1, r2, asr #3", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
825TESTINST3("pkhtb r0, r1, r2, asr #4", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
826TESTINST3("pkhtb r0, r1, r2, asr #8", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
827TESTINST3("pkhtb r0, r1, r2, asr #12", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
828TESTINST3("pkhtb r0, r1, r2, asr #16", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
829TESTINST3("pkhtb r0, r1, r2, asr #24", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
830TESTINST3("pkhtb r0, r1, r2, asr #31", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
831TESTINST3("pkhtb r0, r1, r2, asr #32", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
832TESTINST3("pkhtb r0, r1, r2, asr #0", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
833TESTINST3("pkhtb r0, r1, r2, asr #1", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
834TESTINST3("pkhtb r0, r1, r2, asr #2", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
835TESTINST3("pkhtb r0, r1, r2, asr #3", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
836TESTINST3("pkhtb r0, r1, r2, asr #4", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
837TESTINST3("pkhtb r0, r1, r2, asr #8", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
838TESTINST3("pkhtb r0, r1, r2, asr #12", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
839TESTINST3("pkhtb r0, r1, r2, asr #16", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
840TESTINST3("pkhtb r0, r1, r2, asr #24", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
841TESTINST3("pkhtb r0, r1, r2, asr #31", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
842TESTINST3("pkhtb r0, r1, r2, asr #32", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
843TESTINST3("pkhtb r0, r1, r2, asr #0", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
844TESTINST3("pkhtb r0, r1, r2, asr #1", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
845TESTINST3("pkhtb r0, r1, r2, asr #2", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
846TESTINST3("pkhtb r0, r1, r2, asr #3", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
847TESTINST3("pkhtb r0, r1, r2, asr #4", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
848TESTINST3("pkhtb r0, r1, r2, asr #8", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
849TESTINST3("pkhtb r0, r1, r2, asr #12", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
850TESTINST3("pkhtb r0, r1, r2, asr #16", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
851TESTINST3("pkhtb r0, r1, r2, asr #24", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
852TESTINST3("pkhtb r0, r1, r2, asr #31", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
853TESTINST3("pkhtb r0, r1, r2, asr #32", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
854TESTINST3("pkhtb r0, r1, r2, asr #0", 0xd5dc5407, 0xf87b961e, r0,r1,r2, 0);
855TESTINST3("pkhtb r0, r1, r2, asr #1", 0xd65db979, 0xc61b323b, r0,r1,r2, 0);
856TESTINST3("pkhtb r0, r1, r2, asr #2", 0xa3268abe, 0xed2cbf78, r0,r1,r2, 0);
857TESTINST3("pkhtb r0, r1, r2, asr #3", 0xbf73f0a5, 0x2fb714c9, r0,r1,r2, 0);
858TESTINST3("pkhtb r0, r1, r2, asr #4", 0x281703ed, 0x925ef472, r0,r1,r2, 0);
859TESTINST3("pkhtb r0, r1, r2, asr #8", 0xeaa652c7, 0x137741f4, r0,r1,r2, 0);
860TESTINST3("pkhtb r0, r1, r2, asr #12", 0x71fbde8b, 0xdba5bd25, r0,r1,r2, 0);
861TESTINST3("pkhtb r0, r1, r2, asr #16", 0x884c0ad8, 0xc00b821a, r0,r1,r2, 0);
862TESTINST3("pkhtb r0, r1, r2, asr #24", 0xe1bb8606, 0x58293969, r0,r1,r2, 0);
863TESTINST3("pkhtb r0, r1, r2, asr #31", 0xa3cfd624, 0x6077fb1f, r0,r1,r2, 0);
864TESTINST3("pkhtb r0, r1, r2, asr #32", 0xa3cfd624, 0x6077fb1f, r0,r1,r2, 0);
865TESTINST3("pkhtb r0, r1, r2, asr #0", 0x40b094e2, 0x17913309, r0,r1,r2, 0);
866TESTINST3("pkhtb r0, r1, r2, asr #1", 0x5388b5cd, 0x86582032, r0,r1,r2, 0);
867TESTINST3("pkhtb r0, r1, r2, asr #2", 0x5de41558, 0xccfa1c7e, r0,r1,r2, 0);
868TESTINST3("pkhtb r0, r1, r2, asr #3", 0x23ba1b46, 0x4437983c, r0,r1,r2, 0);
869TESTINST3("pkhtb r0, r1, r2, asr #4", 0x48d06549, 0xa9085781, r0,r1,r2, 0);
870TESTINST3("pkhtb r0, r1, r2, asr #8", 0xc6b4ac58, 0xb2aead21, r0,r1,r2, 0);
871TESTINST3("pkhtb r0, r1, r2, asr #12", 0xc2bdf597, 0xdde1e6a4, r0,r1,r2, 0);
872TESTINST3("pkhtb r0, r1, r2, asr #16", 0x852e3a72, 0x157b0dea, r0,r1,r2, 0);
873TESTINST3("pkhtb r0, r1, r2, asr #24", 0xe7aa57b4, 0x1584bd74, r0,r1,r2, 0);
874TESTINST3("pkhtb r0, r1, r2, asr #31", 0xd4b64d54, 0xc53aaba9, r0,r1,r2, 0);
875TESTINST3("pkhtb r0, r1, r2, asr #32", 0xd4b64d54, 0xc53aaba9, r0,r1,r2, 0);
876
877 printf("----------------- USAT ----------------- \n");
878 TESTINST2("usat r0, #0, r1", 0x0123abcd, r0, r1, 0);
879 TESTINST2("usat r0, #1, r1", 0x0123abcd, r0, r1, 0);
880 TESTINST2("usat r0, #5, r1", 0x0123abcd, r0, r1, 0);
881 TESTINST2("usat r0, #8, r1", 0x0123abcd, r0, r1, 0);
882 TESTINST2("usat r0, #11, r1", 0x11110000, r0, r1, 0);
883 TESTINST2("usat r0, #13, r1", 0x11110000, r0, r1, 0);
884 TESTINST2("usat r0, #15, r1", 0x11110000, r0, r1, 0);
885TESTINST2("usat r0, #0, r1", 0xebbff82b, r0, r1, 0);
886TESTINST2("usat r0, #31, r1, lsl #0", 0x5f986e68, r0, r1, 0);
887TESTINST2("usat r0, #31, r1, lsl #0", 0xe7aa57b4, r0, r1, 0);
888TESTINST2("usat r0, #31, r1, lsl #0", 0x89d2ef86, r0, r1, 0);
889TESTINST2("usat r0, #31, r1, lsl #8", 0xc53aaba9, r0, r1, 0);
890TESTINST2("usat r0, #31, r1, lsl #8", 0x216158cb, r0, r1, 0);
891TESTINST2("usat r0, #31, r1, lsl #8", 0x3cd6cd94, r0, r1, 0);
892TESTINST2("usat r0, #0, r1, lsl #0", 0xf87b961e, r0, r1, 0);
893TESTINST2("usat r0, #0, r1, lsl #0", 0xc61b323b, r0, r1, 0);
894TESTINST2("usat r0, #0, r1, lsl #0", 0xa3268abe, r0, r1, 0);
895TESTINST2("usat r0, #0, r1, lsl #8", 0xbf73f0a5, r0, r1, 0);
896TESTINST2("usat r0, #0, r1, lsl #8", 0x925ef472, r0, r1, 0);
897TESTINST2("usat r0, #0, r1, lsl #8", 0x137741f4, r0, r1, 0);
898TESTINST2("usat r0, #24, r1, lsl #2", 0x50c28082, r0, r1, 0);
899TESTINST2("usat r0, #16, r1, lsl #3", 0x17962e8f, r0, r1, 0);
900TESTINST2("usat r0, #12, r1, lsl #4", 0xc57243b7, r0, r1, 0);
901TESTINST2("usat r0, #8, r1, lsl #8", 0xf20fb90f, r0, r1, 0);
902TESTINST2("usat r0, #4, r1, lsl #12", 0xbb151055, r0, r1, 0);
903TESTINST2("usat r0, #3, r1, lsl #16", 0x957440d2, r0, r1, 0);
904TESTINST2("usat r0, #2, r1, lsl #24", 0x728b7771, r0, r1, 0);
905TESTINST2("usat r0, #1, r1, lsl #31", 0xf13c20f3, r0, r1, 0);
906TESTINST2("usat r0, #0, r1", 0xebbff82b, r0, r1, 0);
907TESTINST2("usat r0, #31, r1, asr #0", 0x5f986e68, r0, r1, 0);
908TESTINST2("usat r0, #31, r1, asr #0", 0xe7aa57b4, r0, r1, 0);
909TESTINST2("usat r0, #31, r1, asr #0", 0x89d2ef86, r0, r1, 0);
910TESTINST2("usat r0, #31, r1, asr #8", 0xc53aaba9, r0, r1, 0);
911TESTINST2("usat r0, #31, r1, asr #8", 0x216158cb, r0, r1, 0);
912TESTINST2("usat r0, #31, r1, asr #8", 0x3cd6cd94, r0, r1, 0);
913TESTINST2("usat r0, #0, r1, asr #0", 0xf87b961e, r0, r1, 0);
914TESTINST2("usat r0, #0, r1, asr #0", 0xc61b323b, r0, r1, 0);
915TESTINST2("usat r0, #0, r1, asr #0", 0xa3268abe, r0, r1, 0);
916TESTINST2("usat r0, #0, r1, asr #8", 0xbf73f0a5, r0, r1, 0);
917TESTINST2("usat r0, #0, r1, asr #8", 0x925ef472, r0, r1, 0);
918TESTINST2("usat r0, #0, r1, asr #8", 0x137741f4, r0, r1, 0);
919TESTINST2("usat r0, #24, r1, asr #2", 0x50c28082, r0, r1, 0);
920TESTINST2("usat r0, #16, r1, asr #3", 0x17962e8f, r0, r1, 0);
921TESTINST2("usat r0, #12, r1, asr #4", 0xc57243b7, r0, r1, 0);
922TESTINST2("usat r0, #8, r1, asr #8", 0xf20fb90f, r0, r1, 0);
923TESTINST2("usat r0, #4, r1, asr #12", 0xbb151055, r0, r1, 0);
924TESTINST2("usat r0, #3, r1, asr #16", 0x957440d2, r0, r1, 0);
925TESTINST2("usat r0, #2, r1, asr #24", 0x728b7771, r0, r1, 0);
926TESTINST2("usat r0, #1, r1, asr #31", 0xf13c20f3, r0, r1, 0);
927TESTINST2("usat r0, #0, r1", 0xebbff82b, r0, r1, 0);
928TESTINST2("usat r0, #31, r1, asr #0", 0x5f986e68, r0, r1, 0);
929TESTINST2("usat r0, #31, r1, asr #0", 0xe7aa57b4, r0, r1, 0);
930TESTINST2("usat r0, #31, r1, asr #0", 0x89d2ef86, r0, r1, 0);
931TESTINST2("usat r0, #31, r1, asr #8", 0xc53aaba9, r0, r1, 0);
932TESTINST2("usat r0, #31, r1, asr #8", 0x216158cb, r0, r1, 0);
933TESTINST2("usat r0, #31, r1, asr #8", 0x3cd6cd94, r0, r1, 0);
934TESTINST2("usat r0, #0, r1, asr #0", 0xf87b961e, r0, r1, 0);
935TESTINST2("usat r0, #0, r1, asr #0", 0xc61b323b, r0, r1, 0);
936TESTINST2("usat r0, #0, r1, asr #0", 0xa3268abe, r0, r1, 0);
937TESTINST2("usat r0, #0, r1, asr #8", 0xbf73f0a5, r0, r1, 0);
938TESTINST2("usat r0, #0, r1, asr #8", 0x925ef472, r0, r1, 0);
939TESTINST2("usat r0, #0, r1, asr #8", 0x137741f4, r0, r1, 0);
940TESTINST2("usat r0, #24, r1, asr #2", 0x50c28082, r0, r1, 0);
941TESTINST2("usat r0, #16, r1, asr #3", 0x17962e8f, r0, r1, 0);
942TESTINST2("usat r0, #12, r1, asr #4", 0xc57243b7, r0, r1, 0);
943TESTINST2("usat r0, #8, r1, asr #8", 0xf20fb90f, r0, r1, 0);
944TESTINST2("usat r0, #4, r1, asr #12", 0xbb151055, r0, r1, 0);
945TESTINST2("usat r0, #3, r1, asr #16", 0x957440d2, r0, r1, 0);
946TESTINST2("usat r0, #2, r1, asr #24", 0x728b7771, r0, r1, 0);
947TESTINST2("usat r0, #1, r1, asr #31", 0xf13c20f3, r0, r1, 0);
948#ifndef __thumb__
949TESTINST2("usat r0, #0, r1, asr #32", 0xa9085781, r0, r1, 0);
950TESTINST2("usat r0, #31, r1, asr #32", 0x40b094e2, r0, r1, 0);
951TESTINST2("usat r0, #31, r1, asr #32", 0x17913309, r0, r1, 0);
952TESTINST2("usat r0, #31, r1, asr #32", 0x5388b5cd, r0, r1, 0);
953TESTINST2("usat r0, #24, r1, asr #32", 0x86582032, r0, r1, 0);
954TESTINST2("usat r0, #16, r1, asr #32", 0x5de41558, r0, r1, 0);
955TESTINST2("usat r0, #12, r1, asr #32", 0xccfa1c7e, r0, r1, 0);
956TESTINST2("usat r0, #8, r1, asr #32", 0x23ba1b46, r0, r1, 0);
957TESTINST2("usat r0, #4, r1, asr #32", 0x4437983c, r0, r1, 0);
958TESTINST2("usat r0, #3, r1, asr #32", 0x48d06549, r0, r1, 0);
959TESTINST2("usat r0, #2, r1, asr #32", 0xa9085781, r0, r1, 0);
960TESTINST2("usat r0, #1, r1, asr #32", 0xc6b4ac58, r0, r1, 0);
961#endif
962
963 printf("------------ USAT16 sat_imm ------------ \n");
964 TESTINST2("usat16 r0, #0, r1", 0x0123abcd, r0, r1, 0);
965 TESTINST2("usat16 r0, #1, r1", 0xffcdabcd, r0, r1, 0);
966 TESTINST2("usat16 r0, #5, r1", 0x0123feff, r0, r1, 0);
967 TESTINST2("usat16 r0, #8, r1", 0x0123abcd, r0, r1, 0);
968 TESTINST2("usat16 r0, #11, r1", 0x11110000, r0, r1, 0);
969 TESTINST2("usat16 r0, #13, r1", 0x1111f111, r0, r1, 0);
970 TESTINST2("usat16 r0, #15, r1", 0x00001111, r0, r1, 0);
971TESTINST2("usat16 r0, #0, r1", 0xebbff82b, r0, r1, 0);
972TESTINST2("usat16 r0, #1, r1", 0xebbff82b, r0, r1, 0);
973TESTINST2("usat16 r0, #3, r1", 0x50c28082, r0, r1, 0);
974TESTINST2("usat16 r0, #5, r1", 0x17962e8f, r0, r1, 0);
975TESTINST2("usat16 r0, #8, r1", 0xc57243b7, r0, r1, 0);
976TESTINST2("usat16 r0, #10, r1", 0xf20fb90f, r0, r1, 0);
977TESTINST2("usat16 r0, #11, r1", 0xbb151055, r0, r1, 0);
978TESTINST2("usat16 r0, #13, r1", 0x957440d2, r0, r1, 0);
979TESTINST2("usat16 r0, #14, r1", 0x728b7771, r0, r1, 0);
980TESTINST2("usat16 r0, #15, r1", 0xf13c20f3, r0, r1, 0);
981TESTINST2("usat16 r0, #0, r1", 0x86398371, r0, r1, 0);
982TESTINST2("usat16 r0, #1, r1", 0x03d0fb78, r0, r1, 0);
983TESTINST2("usat16 r0, #3, r1", 0xd0d49b7c, r0, r1, 0);
984TESTINST2("usat16 r0, #5, r1", 0x76354a58, r0, r1, 0);
985TESTINST2("usat16 r0, #8, r1", 0x9fa45fb7, r0, r1, 0);
986TESTINST2("usat16 r0, #10, r1", 0x7572bdec, r0, r1, 0);
987TESTINST2("usat16 r0, #11, r1", 0xfea59eb6, r0, r1, 0);
988TESTINST2("usat16 r0, #13, r1", 0xf2669090, r0, r1, 0);
989TESTINST2("usat16 r0, #14, r1", 0xbc1ff573, r0, r1, 0);
990TESTINST2("usat16 r0, #15, r1", 0x7eb226ac, r0, r1, 0);
991TESTINST2("usat16 r0, #0, r1", 0x22b65db1, r0, r1, 0);
992TESTINST2("usat16 r0, #1, r1", 0x776c41c7, r0, r1, 0);
993TESTINST2("usat16 r0, #3, r1", 0xe50dd77c, r0, r1, 0);
994TESTINST2("usat16 r0, #5, r1", 0xd6f9a698, r0, r1, 0);
995TESTINST2("usat16 r0, #8, r1", 0xeda5110c, r0, r1, 0);
996TESTINST2("usat16 r0, #10, r1", 0x0be36f70, r0, r1, 0);
997TESTINST2("usat16 r0, #11, r1", 0xd759eb72, r0, r1, 0);
998TESTINST2("usat16 r0, #13, r1", 0xd9c4b1f4, r0, r1, 0);
999TESTINST2("usat16 r0, #14, r1", 0xa29eb320, r0, r1, 0);
1000TESTINST2("usat16 r0, #15, r1", 0xcf1e4487, r0, r1, 0);
1001TESTINST2("usat16 r0, #0, r1", 0x2eb68500, r0, r1, 0);
1002TESTINST2("usat16 r0, #1, r1", 0xcdb7ed11, r0, r1, 0);
1003TESTINST2("usat16 r0, #3, r1", 0x2eaea305, r0, r1, 0);
1004TESTINST2("usat16 r0, #5, r1", 0x6ebd04d9, r0, r1, 0);
1005TESTINST2("usat16 r0, #8, r1", 0xa5ec1aa8, r0, r1, 0);
1006TESTINST2("usat16 r0, #10, r1", 0x72f33509, r0, r1, 0);
1007TESTINST2("usat16 r0, #11, r1", 0xa3e6f759, r0, r1, 0);
1008TESTINST2("usat16 r0, #13, r1", 0xfaceab39, r0, r1, 0);
1009TESTINST2("usat16 r0, #14, r1", 0x2738f0ff, r0, r1, 0);
1010TESTINST2("usat16 r0, #15, r1", 0xe79fd570, r0, r1, 0);
1011TESTINST2("usat16 r0, #0, r1", 0x55ea3e4e, r0, r1, 0);
1012TESTINST2("usat16 r0, #1, r1", 0x2b62ba5a, r0, r1, 0);
1013TESTINST2("usat16 r0, #3, r1", 0x9b41bfb1, r0, r1, 0);
1014TESTINST2("usat16 r0, #5, r1", 0x557c7ba2, r0, r1, 0);
1015TESTINST2("usat16 r0, #8, r1", 0x2973c051, r0, r1, 0);
1016TESTINST2("usat16 r0, #10, r1", 0x6a228b19, r0, r1, 0);
1017TESTINST2("usat16 r0, #11, r1", 0x0cdafabe, r0, r1, 0);
1018TESTINST2("usat16 r0, #13, r1", 0x50865114, r0, r1, 0);
1019TESTINST2("usat16 r0, #14, r1", 0xd83b849b, r0, r1, 0);
1020TESTINST2("usat16 r0, #15, r1", 0xca5e5605, r0, r1, 0);
1021
1022 printf("---------------- UADD16 ---------------- \n");
1023 TESTINST3("uadd16 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
1024 TESTINST3("uadd16 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
1025 TESTINST3("uadd16 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
1026 TESTINST3("uadd16 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
sewardj5c9b2932010-09-22 01:00:06 +00001027
1028 TESTINST3("uadd16 r0, r1, r2", 0x00000000, 0x00000000, r0, r1, r2, 0);
1029 TESTINST3("uadd16 r0, r1, r2", 0x00000001, 0x00000000, r0, r1, r2, 0);
1030 TESTINST3("uadd16 r0, r1, r2", 0x00000000, 0x00000001, r0, r1, r2, 0);
1031 TESTINST3("uadd16 r0, r1, r2", 0x00000001, 0x00000001, r0, r1, r2, 0);
1032 TESTINST3("uadd16 r0, r1, r2", 0x00000000, 0x0000ffff, r0, r1, r2, 0);
1033 TESTINST3("uadd16 r0, r1, r2", 0x0000ffff, 0x00000000, r0, r1, r2, 0);
1034 TESTINST3("uadd16 r0, r1, r2", 0x0000ffff, 0x0000ffff, r0, r1, r2, 0);
1035
1036 TESTINST3("uadd16 r0, r1, r2", 0x00000000, 0x00000000, r0, r1, r2, 0);
1037 TESTINST3("uadd16 r0, r1, r2", 0x00010000, 0x00000000, r0, r1, r2, 0);
1038 TESTINST3("uadd16 r0, r1, r2", 0x00000000, 0x00010000, r0, r1, r2, 0);
1039 TESTINST3("uadd16 r0, r1, r2", 0x00010000, 0x00010000, r0, r1, r2, 0);
1040 TESTINST3("uadd16 r0, r1, r2", 0x00000000, 0xffff0000, r0, r1, r2, 0);
1041 TESTINST3("uadd16 r0, r1, r2", 0xffff0000, 0x00000000, r0, r1, r2, 0);
1042 TESTINST3("uadd16 r0, r1, r2", 0xffff0000, 0xffff0000, r0, r1, r2, 0);
1043
sewardj81e06dc2010-08-29 12:35:37 +00001044TESTINST3("uadd16 r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
1045TESTINST3("uadd16 r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
1046TESTINST3("uadd16 r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
1047TESTINST3("uadd16 r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
1048TESTINST3("uadd16 r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
1049TESTINST3("uadd16 r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
1050TESTINST3("uadd16 r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
1051TESTINST3("uadd16 r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
1052TESTINST3("uadd16 r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
1053TESTINST3("uadd16 r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
1054TESTINST3("uadd16 r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
1055TESTINST3("uadd16 r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
1056TESTINST3("uadd16 r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
1057TESTINST3("uadd16 r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
1058TESTINST3("uadd16 r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
1059TESTINST3("uadd16 r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
1060TESTINST3("uadd16 r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
1061TESTINST3("uadd16 r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
1062TESTINST3("uadd16 r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
1063TESTINST3("uadd16 r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
1064TESTINST3("uadd16 r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
1065TESTINST3("uadd16 r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
1066TESTINST3("uadd16 r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
1067TESTINST3("uadd16 r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
1068TESTINST3("uadd16 r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
1069TESTINST3("uadd16 r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
1070TESTINST3("uadd16 r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
1071TESTINST3("uadd16 r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
1072TESTINST3("uadd16 r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
1073TESTINST3("uadd16 r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
1074TESTINST3("uadd16 r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
1075TESTINST3("uadd16 r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
1076TESTINST3("uadd16 r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
1077TESTINST3("uadd16 r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
1078TESTINST3("uadd16 r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
1079TESTINST3("uadd16 r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
1080TESTINST3("uadd16 r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
1081TESTINST3("uadd16 r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
1082TESTINST3("uadd16 r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
1083TESTINST3("uadd16 r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
1084TESTINST3("uadd16 r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
1085TESTINST3("uadd16 r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
1086TESTINST3("uadd16 r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
1087TESTINST3("uadd16 r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
1088TESTINST3("uadd16 r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
1089TESTINST3("uadd16 r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
1090TESTINST3("uadd16 r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
1091TESTINST3("uadd16 r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
1092TESTINST3("uadd16 r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
1093TESTINST3("uadd16 r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
1094
sewardj9745a822010-09-20 22:54:25 +00001095 printf("---------------- SADD16 ---------------- \n");
1096 TESTINST3("sadd16 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
1097 TESTINST3("sadd16 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
1098 TESTINST3("sadd16 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
1099 TESTINST3("sadd16 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
sewardj5c9b2932010-09-22 01:00:06 +00001100
1101 TESTINST3("sadd16 r0, r1, r2", 0x00000000, 0x00000000, r0, r1, r2, 0);
1102 TESTINST3("sadd16 r0, r1, r2", 0x00000001, 0x00000000, r0, r1, r2, 0);
1103 TESTINST3("sadd16 r0, r1, r2", 0x00000000, 0x00000001, r0, r1, r2, 0);
1104 TESTINST3("sadd16 r0, r1, r2", 0x00000001, 0x00000001, r0, r1, r2, 0);
1105 TESTINST3("sadd16 r0, r1, r2", 0x00000000, 0x0000ffff, r0, r1, r2, 0);
1106 TESTINST3("sadd16 r0, r1, r2", 0x0000ffff, 0x00000000, r0, r1, r2, 0);
1107 TESTINST3("sadd16 r0, r1, r2", 0x0000ffff, 0x0000ffff, r0, r1, r2, 0);
1108
1109 TESTINST3("sadd16 r0, r1, r2", 0x00000000, 0x00000000, r0, r1, r2, 0);
1110 TESTINST3("sadd16 r0, r1, r2", 0x00010000, 0x00000000, r0, r1, r2, 0);
1111 TESTINST3("sadd16 r0, r1, r2", 0x00000000, 0x00010000, r0, r1, r2, 0);
1112 TESTINST3("sadd16 r0, r1, r2", 0x00010000, 0x00010000, r0, r1, r2, 0);
1113 TESTINST3("sadd16 r0, r1, r2", 0x00000000, 0xffff0000, r0, r1, r2, 0);
1114 TESTINST3("sadd16 r0, r1, r2", 0xffff0000, 0x00000000, r0, r1, r2, 0);
1115 TESTINST3("sadd16 r0, r1, r2", 0xffff0000, 0xffff0000, r0, r1, r2, 0);
1116
sewardj9745a822010-09-20 22:54:25 +00001117TESTINST3("sadd16 r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
1118TESTINST3("sadd16 r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
1119TESTINST3("sadd16 r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
1120TESTINST3("sadd16 r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
1121TESTINST3("sadd16 r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
1122TESTINST3("sadd16 r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
1123TESTINST3("sadd16 r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
1124TESTINST3("sadd16 r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
1125TESTINST3("sadd16 r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
1126TESTINST3("sadd16 r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
1127TESTINST3("sadd16 r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
1128TESTINST3("sadd16 r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
1129TESTINST3("sadd16 r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
1130TESTINST3("sadd16 r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
1131TESTINST3("sadd16 r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
1132TESTINST3("sadd16 r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
1133TESTINST3("sadd16 r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
1134TESTINST3("sadd16 r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
1135TESTINST3("sadd16 r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
1136TESTINST3("sadd16 r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
1137TESTINST3("sadd16 r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
1138TESTINST3("sadd16 r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
1139TESTINST3("sadd16 r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
1140TESTINST3("sadd16 r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
1141TESTINST3("sadd16 r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
1142TESTINST3("sadd16 r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
1143TESTINST3("sadd16 r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
1144TESTINST3("sadd16 r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
1145TESTINST3("sadd16 r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
1146TESTINST3("sadd16 r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
1147TESTINST3("sadd16 r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
1148TESTINST3("sadd16 r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
1149TESTINST3("sadd16 r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
1150TESTINST3("sadd16 r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
1151TESTINST3("sadd16 r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
1152TESTINST3("sadd16 r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
1153TESTINST3("sadd16 r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
1154TESTINST3("sadd16 r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
1155TESTINST3("sadd16 r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
1156TESTINST3("sadd16 r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
1157TESTINST3("sadd16 r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
1158TESTINST3("sadd16 r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
1159TESTINST3("sadd16 r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
1160TESTINST3("sadd16 r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
1161TESTINST3("sadd16 r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
1162TESTINST3("sadd16 r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
1163TESTINST3("sadd16 r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
1164TESTINST3("sadd16 r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
1165TESTINST3("sadd16 r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
1166TESTINST3("sadd16 r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
1167
sewardj81e06dc2010-08-29 12:35:37 +00001168 printf("---------------- USUB16 ---------------- \n");
1169 TESTINST3("usub16 r0, r1, r2", 0x04000022, 0x03000011, r0, r1, r2, 0);
1170 TESTINST3("usub16 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
1171 TESTINST3("usub16 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
1172 TESTINST3("usub16 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
1173 TESTINST3("usub16 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
sewardj5c9b2932010-09-22 01:00:06 +00001174
1175 TESTINST3("usub16 r0, r1, r2", 0x00000000, 0x00000000, r0, r1, r2, 0);
1176 TESTINST3("usub16 r0, r1, r2", 0x00000001, 0x00000000, r0, r1, r2, 0);
1177 TESTINST3("usub16 r0, r1, r2", 0x00000000, 0x00000001, r0, r1, r2, 0);
1178 TESTINST3("usub16 r0, r1, r2", 0x00000001, 0x00000001, r0, r1, r2, 0);
1179 TESTINST3("usub16 r0, r1, r2", 0x00000000, 0x0000ffff, r0, r1, r2, 0);
1180 TESTINST3("usub16 r0, r1, r2", 0x0000ffff, 0x00000000, r0, r1, r2, 0);
1181 TESTINST3("usub16 r0, r1, r2", 0x0000ffff, 0x0000ffff, r0, r1, r2, 0);
1182
1183 TESTINST3("usub16 r0, r1, r2", 0x00000000, 0x00000000, r0, r1, r2, 0);
1184 TESTINST3("usub16 r0, r1, r2", 0x00010000, 0x00000000, r0, r1, r2, 0);
1185 TESTINST3("usub16 r0, r1, r2", 0x00000000, 0x00010000, r0, r1, r2, 0);
1186 TESTINST3("usub16 r0, r1, r2", 0x00010000, 0x00010000, r0, r1, r2, 0);
1187 TESTINST3("usub16 r0, r1, r2", 0x00000000, 0xffff0000, r0, r1, r2, 0);
1188 TESTINST3("usub16 r0, r1, r2", 0xffff0000, 0x00000000, r0, r1, r2, 0);
1189 TESTINST3("usub16 r0, r1, r2", 0xffff0000, 0xffff0000, r0, r1, r2, 0);
1190
sewardj81e06dc2010-08-29 12:35:37 +00001191TESTINST3("usub16 r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
1192TESTINST3("usub16 r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
1193TESTINST3("usub16 r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
1194TESTINST3("usub16 r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
1195TESTINST3("usub16 r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
1196TESTINST3("usub16 r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
1197TESTINST3("usub16 r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
1198TESTINST3("usub16 r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
1199TESTINST3("usub16 r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
1200TESTINST3("usub16 r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
1201TESTINST3("usub16 r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
1202TESTINST3("usub16 r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
1203TESTINST3("usub16 r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
1204TESTINST3("usub16 r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
1205TESTINST3("usub16 r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
1206TESTINST3("usub16 r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
1207TESTINST3("usub16 r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
1208TESTINST3("usub16 r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
1209TESTINST3("usub16 r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
1210TESTINST3("usub16 r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
1211TESTINST3("usub16 r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
1212TESTINST3("usub16 r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
1213TESTINST3("usub16 r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
1214TESTINST3("usub16 r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
1215TESTINST3("usub16 r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
1216TESTINST3("usub16 r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
1217TESTINST3("usub16 r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
1218TESTINST3("usub16 r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
1219TESTINST3("usub16 r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
1220TESTINST3("usub16 r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
1221TESTINST3("usub16 r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
1222TESTINST3("usub16 r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
1223TESTINST3("usub16 r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
1224TESTINST3("usub16 r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
1225TESTINST3("usub16 r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
1226TESTINST3("usub16 r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
1227TESTINST3("usub16 r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
1228TESTINST3("usub16 r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
1229TESTINST3("usub16 r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
1230TESTINST3("usub16 r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
1231TESTINST3("usub16 r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
1232TESTINST3("usub16 r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
1233TESTINST3("usub16 r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
1234TESTINST3("usub16 r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
1235TESTINST3("usub16 r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
1236TESTINST3("usub16 r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
1237TESTINST3("usub16 r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
1238TESTINST3("usub16 r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
1239TESTINST3("usub16 r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
1240TESTINST3("usub16 r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
1241
sewardj9745a822010-09-20 22:54:25 +00001242 printf("---------------- SSUB16 ---------------- \n");
1243 TESTINST3("ssub16 r0, r1, r2", 0x04000022, 0x03000011, r0, r1, r2, 0);
1244 TESTINST3("ssub16 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
1245 TESTINST3("ssub16 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
1246 TESTINST3("ssub16 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
1247 TESTINST3("ssub16 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
sewardj5c9b2932010-09-22 01:00:06 +00001248
1249 TESTINST3("ssub16 r0, r1, r2", 0x00000000, 0x00000000, r0, r1, r2, 0);
1250 TESTINST3("ssub16 r0, r1, r2", 0x00000001, 0x00000000, r0, r1, r2, 0);
1251 TESTINST3("ssub16 r0, r1, r2", 0x00000000, 0x00000001, r0, r1, r2, 0);
1252 TESTINST3("ssub16 r0, r1, r2", 0x00000001, 0x00000001, r0, r1, r2, 0);
1253 TESTINST3("ssub16 r0, r1, r2", 0x00000000, 0x0000ffff, r0, r1, r2, 0);
1254 TESTINST3("ssub16 r0, r1, r2", 0x0000ffff, 0x00000000, r0, r1, r2, 0);
1255 TESTINST3("ssub16 r0, r1, r2", 0x0000ffff, 0x0000ffff, r0, r1, r2, 0);
1256
1257 TESTINST3("ssub16 r0, r1, r2", 0x00000000, 0x00000000, r0, r1, r2, 0);
1258 TESTINST3("ssub16 r0, r1, r2", 0x00010000, 0x00000000, r0, r1, r2, 0);
1259 TESTINST3("ssub16 r0, r1, r2", 0x00000000, 0x00010000, r0, r1, r2, 0);
1260 TESTINST3("ssub16 r0, r1, r2", 0x00010000, 0x00010000, r0, r1, r2, 0);
1261 TESTINST3("ssub16 r0, r1, r2", 0x00000000, 0xffff0000, r0, r1, r2, 0);
1262 TESTINST3("ssub16 r0, r1, r2", 0xffff0000, 0x00000000, r0, r1, r2, 0);
1263 TESTINST3("ssub16 r0, r1, r2", 0xffff0000, 0xffff0000, r0, r1, r2, 0);
1264
sewardj9745a822010-09-20 22:54:25 +00001265TESTINST3("ssub16 r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
1266TESTINST3("ssub16 r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
1267TESTINST3("ssub16 r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
1268TESTINST3("ssub16 r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
1269TESTINST3("ssub16 r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
1270TESTINST3("ssub16 r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
1271TESTINST3("ssub16 r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
1272TESTINST3("ssub16 r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
1273TESTINST3("ssub16 r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
1274TESTINST3("ssub16 r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
1275TESTINST3("ssub16 r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
1276TESTINST3("ssub16 r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
1277TESTINST3("ssub16 r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
1278TESTINST3("ssub16 r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
1279TESTINST3("ssub16 r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
1280TESTINST3("ssub16 r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
1281TESTINST3("ssub16 r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
1282TESTINST3("ssub16 r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
1283TESTINST3("ssub16 r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
1284TESTINST3("ssub16 r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
1285TESTINST3("ssub16 r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
1286TESTINST3("ssub16 r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
1287TESTINST3("ssub16 r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
1288TESTINST3("ssub16 r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
1289TESTINST3("ssub16 r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
1290TESTINST3("ssub16 r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
1291TESTINST3("ssub16 r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
1292TESTINST3("ssub16 r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
1293TESTINST3("ssub16 r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
1294TESTINST3("ssub16 r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
1295TESTINST3("ssub16 r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
1296TESTINST3("ssub16 r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
1297TESTINST3("ssub16 r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
1298TESTINST3("ssub16 r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
1299TESTINST3("ssub16 r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
1300TESTINST3("ssub16 r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
1301TESTINST3("ssub16 r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
1302TESTINST3("ssub16 r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
1303TESTINST3("ssub16 r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
1304TESTINST3("ssub16 r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
1305TESTINST3("ssub16 r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
1306TESTINST3("ssub16 r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
1307TESTINST3("ssub16 r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
1308TESTINST3("ssub16 r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
1309TESTINST3("ssub16 r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
1310TESTINST3("ssub16 r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
1311TESTINST3("ssub16 r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
1312TESTINST3("ssub16 r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
1313TESTINST3("ssub16 r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
1314TESTINST3("ssub16 r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
1315
sewardj81e06dc2010-08-29 12:35:37 +00001316 printf("---------------- UADD8 ----------------- \n");
1317 TESTINST3("uadd8 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
1318 TESTINST3("uadd8 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
1319 TESTINST3("uadd8 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
1320 TESTINST3("uadd8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
1321 TESTINST3("uadd8 r0, r1, r2", 0x00000318, 0xff00ff09, r0, r1, r2, 0);
1322 TESTINST3("uadd8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
1323 TESTINST3("uadd8 r0, r1, r2", 0x00020318, 0xff07ff09, r0, r1, r2, 0);
1324 TESTINST3("uadd8 r0, r1, r2", 0xff07ff09, 0x00020318, r0, r1, r2, 0);
1325TESTINST3("uadd8 r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
1326TESTINST3("uadd8 r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
1327TESTINST3("uadd8 r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
1328TESTINST3("uadd8 r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
1329TESTINST3("uadd8 r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
1330TESTINST3("uadd8 r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
1331TESTINST3("uadd8 r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
1332TESTINST3("uadd8 r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
1333TESTINST3("uadd8 r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
1334TESTINST3("uadd8 r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
1335TESTINST3("uadd8 r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
1336TESTINST3("uadd8 r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
1337TESTINST3("uadd8 r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
1338TESTINST3("uadd8 r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
1339TESTINST3("uadd8 r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
1340TESTINST3("uadd8 r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
1341TESTINST3("uadd8 r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
1342TESTINST3("uadd8 r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
1343TESTINST3("uadd8 r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
1344TESTINST3("uadd8 r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
1345TESTINST3("uadd8 r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
1346TESTINST3("uadd8 r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
1347TESTINST3("uadd8 r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
1348TESTINST3("uadd8 r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
1349TESTINST3("uadd8 r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
1350TESTINST3("uadd8 r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
1351TESTINST3("uadd8 r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
1352TESTINST3("uadd8 r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
1353TESTINST3("uadd8 r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
1354TESTINST3("uadd8 r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
1355TESTINST3("uadd8 r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
1356TESTINST3("uadd8 r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
1357TESTINST3("uadd8 r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
1358TESTINST3("uadd8 r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
1359TESTINST3("uadd8 r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
1360TESTINST3("uadd8 r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
1361TESTINST3("uadd8 r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
1362TESTINST3("uadd8 r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
1363TESTINST3("uadd8 r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
1364TESTINST3("uadd8 r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
1365TESTINST3("uadd8 r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
1366TESTINST3("uadd8 r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
1367TESTINST3("uadd8 r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
1368TESTINST3("uadd8 r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
1369TESTINST3("uadd8 r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
1370TESTINST3("uadd8 r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
1371TESTINST3("uadd8 r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
1372TESTINST3("uadd8 r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
1373TESTINST3("uadd8 r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
1374TESTINST3("uadd8 r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
1375
1376 printf("---------------- USUB8 ----------------- \n");
1377 TESTINST3("usub8 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
1378 TESTINST3("usub8 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
1379 TESTINST3("usub8 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
1380 TESTINST3("usub8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
1381 TESTINST3("usub8 r0, r1, r2", 0x00000318, 0xff00ff09, r0, r1, r2, 0);
1382 TESTINST3("usub8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
1383 TESTINST3("usub8 r0, r1, r2", 0x00020318, 0xff07ff09, r0, r1, r2, 0);
1384 TESTINST3("usub8 r0, r1, r2", 0xff07ff09, 0x00020318, r0, r1, r2, 0);
1385TESTINST3("usub8 r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
1386TESTINST3("usub8 r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
1387TESTINST3("usub8 r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
1388TESTINST3("usub8 r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
1389TESTINST3("usub8 r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
1390TESTINST3("usub8 r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
1391TESTINST3("usub8 r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
1392TESTINST3("usub8 r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
1393TESTINST3("usub8 r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
1394TESTINST3("usub8 r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
1395TESTINST3("usub8 r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
1396TESTINST3("usub8 r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
1397TESTINST3("usub8 r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
1398TESTINST3("usub8 r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
1399TESTINST3("usub8 r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
1400TESTINST3("usub8 r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
1401TESTINST3("usub8 r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
1402TESTINST3("usub8 r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
1403TESTINST3("usub8 r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
1404TESTINST3("usub8 r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
1405TESTINST3("usub8 r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
1406TESTINST3("usub8 r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
1407TESTINST3("usub8 r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
1408TESTINST3("usub8 r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
1409TESTINST3("usub8 r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
1410TESTINST3("usub8 r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
1411TESTINST3("usub8 r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
1412TESTINST3("usub8 r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
1413TESTINST3("usub8 r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
1414TESTINST3("usub8 r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
1415TESTINST3("usub8 r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
1416TESTINST3("usub8 r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
1417TESTINST3("usub8 r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
1418TESTINST3("usub8 r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
1419TESTINST3("usub8 r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
1420TESTINST3("usub8 r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
1421TESTINST3("usub8 r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
1422TESTINST3("usub8 r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
1423TESTINST3("usub8 r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
1424TESTINST3("usub8 r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
1425TESTINST3("usub8 r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
1426TESTINST3("usub8 r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
1427TESTINST3("usub8 r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
1428TESTINST3("usub8 r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
1429TESTINST3("usub8 r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
1430TESTINST3("usub8 r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
1431TESTINST3("usub8 r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
1432TESTINST3("usub8 r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
1433TESTINST3("usub8 r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
1434TESTINST3("usub8 r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
1435
1436 printf("---------------- QADD16 ---------------- \n");
1437 TESTINST3("qadd16 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
1438 TESTINST3("qadd16 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
1439 TESTINST3("qadd16 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
1440 TESTINST3("qadd16 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
1441TESTINST3("qadd16 r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
1442TESTINST3("qadd16 r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
1443TESTINST3("qadd16 r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
1444TESTINST3("qadd16 r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
1445TESTINST3("qadd16 r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
1446TESTINST3("qadd16 r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
1447TESTINST3("qadd16 r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
1448TESTINST3("qadd16 r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
1449TESTINST3("qadd16 r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
1450TESTINST3("qadd16 r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
1451TESTINST3("qadd16 r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
1452TESTINST3("qadd16 r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
1453TESTINST3("qadd16 r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
1454TESTINST3("qadd16 r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
1455TESTINST3("qadd16 r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
1456TESTINST3("qadd16 r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
1457TESTINST3("qadd16 r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
1458TESTINST3("qadd16 r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
1459TESTINST3("qadd16 r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
1460TESTINST3("qadd16 r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
1461TESTINST3("qadd16 r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
1462TESTINST3("qadd16 r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
1463TESTINST3("qadd16 r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
1464TESTINST3("qadd16 r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
1465TESTINST3("qadd16 r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
1466TESTINST3("qadd16 r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
1467TESTINST3("qadd16 r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
1468TESTINST3("qadd16 r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
1469TESTINST3("qadd16 r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
1470TESTINST3("qadd16 r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
1471TESTINST3("qadd16 r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
1472TESTINST3("qadd16 r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
1473TESTINST3("qadd16 r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
1474TESTINST3("qadd16 r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
1475TESTINST3("qadd16 r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
1476TESTINST3("qadd16 r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
1477TESTINST3("qadd16 r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
1478TESTINST3("qadd16 r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
1479TESTINST3("qadd16 r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
1480TESTINST3("qadd16 r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
1481TESTINST3("qadd16 r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
1482TESTINST3("qadd16 r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
1483TESTINST3("qadd16 r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
1484TESTINST3("qadd16 r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
1485TESTINST3("qadd16 r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
1486TESTINST3("qadd16 r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
1487TESTINST3("qadd16 r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
1488TESTINST3("qadd16 r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
1489TESTINST3("qadd16 r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
1490TESTINST3("qadd16 r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
1491
1492 printf("---------------- QSUB16 ---------------- \n");
1493 TESTINST3("qsub16 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
1494 TESTINST3("qsub16 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
1495 TESTINST3("qsub16 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
1496 TESTINST3("qsub16 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
1497TESTINST3("qsub16 r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
1498TESTINST3("qsub16 r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
1499TESTINST3("qsub16 r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
1500TESTINST3("qsub16 r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
1501TESTINST3("qsub16 r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
1502TESTINST3("qsub16 r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
1503TESTINST3("qsub16 r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
1504TESTINST3("qsub16 r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
1505TESTINST3("qsub16 r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
1506TESTINST3("qsub16 r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
1507TESTINST3("qsub16 r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
1508TESTINST3("qsub16 r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
1509TESTINST3("qsub16 r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
1510TESTINST3("qsub16 r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
1511TESTINST3("qsub16 r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
1512TESTINST3("qsub16 r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
1513TESTINST3("qsub16 r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
1514TESTINST3("qsub16 r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
1515TESTINST3("qsub16 r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
1516TESTINST3("qsub16 r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
1517TESTINST3("qsub16 r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
1518TESTINST3("qsub16 r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
1519TESTINST3("qsub16 r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
1520TESTINST3("qsub16 r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
1521TESTINST3("qsub16 r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
1522TESTINST3("qsub16 r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
1523TESTINST3("qsub16 r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
1524TESTINST3("qsub16 r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
1525TESTINST3("qsub16 r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
1526TESTINST3("qsub16 r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
1527TESTINST3("qsub16 r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
1528TESTINST3("qsub16 r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
1529TESTINST3("qsub16 r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
1530TESTINST3("qsub16 r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
1531TESTINST3("qsub16 r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
1532TESTINST3("qsub16 r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
1533TESTINST3("qsub16 r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
1534TESTINST3("qsub16 r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
1535TESTINST3("qsub16 r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
1536TESTINST3("qsub16 r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
1537TESTINST3("qsub16 r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
1538TESTINST3("qsub16 r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
1539TESTINST3("qsub16 r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
1540TESTINST3("qsub16 r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
1541TESTINST3("qsub16 r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
1542TESTINST3("qsub16 r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
1543TESTINST3("qsub16 r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
1544TESTINST3("qsub16 r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
1545TESTINST3("qsub16 r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
1546TESTINST3("qsub16 r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
1547
1548 printf("----------------- QSAX ----------------- \n");
1549 TESTINST3("qsax r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
1550 TESTINST3("qsax r0, r1, r2", 0x7fff7fff, 0x00010001, r0, r1, r2, 0);
1551 TESTINST3("qsax r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
1552 TESTINST3("qsax r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
1553 TESTINST3("qsax r0, r1, r2", 0x00640064, 0x00030003, r0, r1, r2, 0);
1554 TESTINST3("qsax r0, r1, r2", 0x00030003, 0x00640064, r0, r1, r2, 0);
1555TESTINST3("qsax r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
1556TESTINST3("qsax r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
1557TESTINST3("qsax r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
1558TESTINST3("qsax r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
1559TESTINST3("qsax r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
1560TESTINST3("qsax r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
1561TESTINST3("qsax r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
1562TESTINST3("qsax r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
1563TESTINST3("qsax r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
1564TESTINST3("qsax r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
1565TESTINST3("qsax r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
1566TESTINST3("qsax r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
1567TESTINST3("qsax r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
1568TESTINST3("qsax r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
1569TESTINST3("qsax r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
1570TESTINST3("qsax r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
1571TESTINST3("qsax r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
1572TESTINST3("qsax r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
1573TESTINST3("qsax r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
1574TESTINST3("qsax r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
1575TESTINST3("qsax r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
1576TESTINST3("qsax r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
1577TESTINST3("qsax r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
1578TESTINST3("qsax r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
1579TESTINST3("qsax r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
1580TESTINST3("qsax r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
1581TESTINST3("qsax r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
1582TESTINST3("qsax r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
1583TESTINST3("qsax r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
1584TESTINST3("qsax r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
1585TESTINST3("qsax r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
1586TESTINST3("qsax r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
1587TESTINST3("qsax r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
1588TESTINST3("qsax r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
1589TESTINST3("qsax r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
1590TESTINST3("qsax r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
1591TESTINST3("qsax r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
1592TESTINST3("qsax r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
1593TESTINST3("qsax r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
1594TESTINST3("qsax r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
1595TESTINST3("qsax r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
1596TESTINST3("qsax r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
1597TESTINST3("qsax r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
1598TESTINST3("qsax r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
1599TESTINST3("qsax r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
1600TESTINST3("qsax r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
1601TESTINST3("qsax r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
1602TESTINST3("qsax r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
1603TESTINST3("qsax r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
1604TESTINST3("qsax r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
1605
1606 printf("----------------- QASX ----------------- \n");
1607 TESTINST3("qasx r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
1608 TESTINST3("qasx r0, r1, r2", 0x7fff7fff, 0x00010001, r0, r1, r2, 0);
1609 TESTINST3("qasx r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
1610 TESTINST3("qasx r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
1611 TESTINST3("qasx r0, r1, r2", 0x00640064, 0x00030003, r0, r1, r2, 0);
1612 TESTINST3("qasx r0, r1, r2", 0x00030003, 0x00640064, r0, r1, r2, 0);
1613TESTINST3("qasx r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
1614TESTINST3("qasx r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
1615TESTINST3("qasx r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
1616TESTINST3("qasx r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
1617TESTINST3("qasx r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
1618TESTINST3("qasx r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
1619TESTINST3("qasx r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
1620TESTINST3("qasx r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
1621TESTINST3("qasx r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
1622TESTINST3("qasx r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
1623TESTINST3("qasx r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
1624TESTINST3("qasx r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
1625TESTINST3("qasx r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
1626TESTINST3("qasx r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
1627TESTINST3("qasx r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
1628TESTINST3("qasx r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
1629TESTINST3("qasx r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
1630TESTINST3("qasx r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
1631TESTINST3("qasx r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
1632TESTINST3("qasx r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
1633TESTINST3("qasx r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
1634TESTINST3("qasx r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
1635TESTINST3("qasx r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
1636TESTINST3("qasx r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
1637TESTINST3("qasx r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
1638TESTINST3("qasx r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
1639TESTINST3("qasx r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
1640TESTINST3("qasx r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
1641TESTINST3("qasx r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
1642TESTINST3("qasx r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
1643TESTINST3("qasx r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
1644TESTINST3("qasx r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
1645TESTINST3("qasx r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
1646TESTINST3("qasx r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
1647TESTINST3("qasx r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
1648TESTINST3("qasx r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
1649TESTINST3("qasx r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
1650TESTINST3("qasx r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
1651TESTINST3("qasx r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
1652TESTINST3("qasx r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
1653TESTINST3("qasx r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
1654TESTINST3("qasx r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
1655TESTINST3("qasx r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
1656TESTINST3("qasx r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
1657TESTINST3("qasx r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
1658TESTINST3("qasx r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
1659TESTINST3("qasx r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
1660TESTINST3("qasx r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
1661TESTINST3("qasx r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
1662TESTINST3("qasx r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
1663
sewardj9745a822010-09-20 22:54:25 +00001664 printf("----------------- SASX ----------------- \n");
1665 TESTINST3("sasx r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
1666 TESTINST3("sasx r0, r1, r2", 0x7fff7fff, 0x00010001, r0, r1, r2, 0);
1667 TESTINST3("sasx r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
1668 TESTINST3("sasx r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
1669 TESTINST3("sasx r0, r1, r2", 0x00640064, 0x00030003, r0, r1, r2, 0);
1670 TESTINST3("sasx r0, r1, r2", 0x00030003, 0x00640064, r0, r1, r2, 0);
1671TESTINST3("sasx r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
1672TESTINST3("sasx r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
1673TESTINST3("sasx r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
1674TESTINST3("sasx r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
1675TESTINST3("sasx r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
1676TESTINST3("sasx r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
1677TESTINST3("sasx r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
1678TESTINST3("sasx r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
1679TESTINST3("sasx r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
1680TESTINST3("sasx r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
1681TESTINST3("sasx r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
1682TESTINST3("sasx r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
1683TESTINST3("sasx r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
1684TESTINST3("sasx r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
1685TESTINST3("sasx r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
1686TESTINST3("sasx r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
1687TESTINST3("sasx r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
1688TESTINST3("sasx r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
1689TESTINST3("sasx r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
1690TESTINST3("sasx r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
1691TESTINST3("sasx r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
1692TESTINST3("sasx r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
1693TESTINST3("sasx r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
1694TESTINST3("sasx r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
1695TESTINST3("sasx r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
1696TESTINST3("sasx r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
1697TESTINST3("sasx r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
1698TESTINST3("sasx r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
1699TESTINST3("sasx r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
1700TESTINST3("sasx r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
1701TESTINST3("sasx r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
1702TESTINST3("sasx r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
1703TESTINST3("sasx r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
1704TESTINST3("sasx r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
1705TESTINST3("sasx r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
1706TESTINST3("sasx r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
1707TESTINST3("sasx r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
1708TESTINST3("sasx r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
1709TESTINST3("sasx r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
1710TESTINST3("sasx r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
1711TESTINST3("sasx r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
1712TESTINST3("sasx r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
1713TESTINST3("sasx r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
1714TESTINST3("sasx r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
1715TESTINST3("sasx r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
1716TESTINST3("sasx r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
1717TESTINST3("sasx r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
1718TESTINST3("sasx r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
1719TESTINST3("sasx r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
1720TESTINST3("sasx r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
1721
sewardj81e06dc2010-08-29 12:35:37 +00001722 printf("----------------- SMUAD ----------------- \n");
1723 TESTINST3("smuad r0, r1, r2", 0x80008000, 0x80008000, r0, r1, r2, 0);
1724 TESTINST3("smuad r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
1725 TESTINST3("smuad r0, r1, r2", 0x7fff7fff, 0x00010001, r0, r1, r2, 0);
1726 TESTINST3("smuad r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
1727 TESTINST3("smuad r0, r1, r2", 0x00640064, 0x00030003, r0, r1, r2, 0);
1728 TESTINST3("smuad r0, r1, r2", 0xffffffff, 0xfffc0001, r0, r1, r2, 0);
1729 TESTINST3("smuad r0, r1, r2", 0xfff70fff, 0x00030003, r0, r1, r2, 0);
1730TESTINST3("smuad r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
1731TESTINST3("smuad r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
1732TESTINST3("smuad r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
1733TESTINST3("smuad r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
1734TESTINST3("smuad r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
1735TESTINST3("smuad r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
1736TESTINST3("smuad r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
1737TESTINST3("smuad r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
1738TESTINST3("smuad r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
1739TESTINST3("smuad r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
1740TESTINST3("smuad r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
1741TESTINST3("smuad r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
1742TESTINST3("smuad r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
1743TESTINST3("smuad r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
1744TESTINST3("smuad r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
1745TESTINST3("smuad r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
1746TESTINST3("smuad r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
1747TESTINST3("smuad r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
1748TESTINST3("smuad r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
1749TESTINST3("smuad r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
1750TESTINST3("smuad r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
1751TESTINST3("smuad r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
1752TESTINST3("smuad r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
1753TESTINST3("smuad r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
1754TESTINST3("smuad r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
1755TESTINST3("smuad r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
1756TESTINST3("smuad r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
1757TESTINST3("smuad r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
1758TESTINST3("smuad r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
1759TESTINST3("smuad r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
1760TESTINST3("smuad r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
1761TESTINST3("smuad r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
1762TESTINST3("smuad r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
1763TESTINST3("smuad r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
1764TESTINST3("smuad r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
1765TESTINST3("smuad r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
1766TESTINST3("smuad r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
1767TESTINST3("smuad r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
1768TESTINST3("smuad r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
1769TESTINST3("smuad r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
1770TESTINST3("smuad r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
1771TESTINST3("smuad r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
1772TESTINST3("smuad r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
1773TESTINST3("smuad r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
1774TESTINST3("smuad r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
1775TESTINST3("smuad r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
1776TESTINST3("smuad r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
1777TESTINST3("smuad r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
1778TESTINST3("smuad r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
1779TESTINST3("smuad r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
1780 printf("----------------- SMUADX ---------------- \n");
1781 TESTINST3("smuadx r0, r1, r2", 0x80008000, 0x80008000, r0, r1, r2, 0);
1782 TESTINST3("smuadx r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
1783 TESTINST3("smuadx r0, r1, r2", 0x7fff7fff, 0x00010001, r0, r1, r2, 0);
1784 TESTINST3("smuadx r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
1785 TESTINST3("smuadx r0, r1, r2", 0x00640064, 0x00030003, r0, r1, r2, 0);
1786 TESTINST3("smuadx r0, r1, r2", 0xffffffff, 0xfffc0001, r0, r1, r2, 0);
1787 TESTINST3("smuadx r0, r1, r2", 0xfff70fff, 0x00030003, r0, r1, r2, 0);
1788TESTINST3("smuadx r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
1789TESTINST3("smuadx r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
1790TESTINST3("smuadx r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
1791TESTINST3("smuadx r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
1792TESTINST3("smuadx r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
1793TESTINST3("smuadx r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
1794TESTINST3("smuadx r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
1795TESTINST3("smuadx r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
1796TESTINST3("smuadx r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
1797TESTINST3("smuadx r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
1798TESTINST3("smuadx r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
1799TESTINST3("smuadx r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
1800TESTINST3("smuadx r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
1801TESTINST3("smuadx r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
1802TESTINST3("smuadx r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
1803TESTINST3("smuadx r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
1804TESTINST3("smuadx r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
1805TESTINST3("smuadx r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
1806TESTINST3("smuadx r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
1807TESTINST3("smuadx r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
1808TESTINST3("smuadx r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
1809TESTINST3("smuadx r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
1810TESTINST3("smuadx r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
1811TESTINST3("smuadx r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
1812TESTINST3("smuadx r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
1813TESTINST3("smuadx r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
1814TESTINST3("smuadx r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
1815TESTINST3("smuadx r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
1816TESTINST3("smuadx r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
1817TESTINST3("smuadx r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
1818TESTINST3("smuadx r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
1819TESTINST3("smuadx r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
1820TESTINST3("smuadx r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
1821TESTINST3("smuadx r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
1822TESTINST3("smuadx r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
1823TESTINST3("smuadx r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
1824TESTINST3("smuadx r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
1825TESTINST3("smuadx r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
1826TESTINST3("smuadx r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
1827TESTINST3("smuadx r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
1828TESTINST3("smuadx r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
1829TESTINST3("smuadx r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
1830TESTINST3("smuadx r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
1831TESTINST3("smuadx r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
1832TESTINST3("smuadx r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
1833TESTINST3("smuadx r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
1834TESTINST3("smuadx r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
1835TESTINST3("smuadx r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
1836TESTINST3("smuadx r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
1837TESTINST3("smuadx r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
1838
1839 printf("----------------- SMLAD ----------------- \n");
1840 TESTINST4("smlad r0, r1, r2, r3",
sewardjef64c472010-10-18 16:35:38 +00001841 0x80008000, 0x80008000, 0x00000000, r0, r1, r2, r3, 0);
1842 TESTINST4("smlad r0, r1, r2, r3",
sewardj81e06dc2010-08-29 12:35:37 +00001843 0x7fff7fff, 0x00000000, 0x00000000, r0, r1, r2, r3, 0);
1844 TESTINST4("smlad r0, r1, r2, r3",
1845 0x7fff7fff, 0x00010001, 0x00000001, r0, r1, r2, r3, 0);
1846 TESTINST4("smlad r0, r1, r2, r3",
1847 0x80008000, 0xffffffff, 0x0000001f, r0, r1, r2, r3, 0);
1848 TESTINST4("smlad r0, r1, r2, r3",
1849 0x00640064, 0x00030003, 0x00000020, r0, r1, r2, r3, 0);
1850 TESTINST4("smlad r0, r1, r2, r3",
1851 0xffffffff, 0xfffc0001, 0x000000ff, r0, r1, r2, r3, 0);
1852 TESTINST4("smlad r0, r1, r2, r3",
1853 0xfff70fff, 0x00030003, 0x00000100, r0, r1, r2, r3, 0);
1854TESTINST4("smlad r0, r1, r2, r3",
1855 0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
1856TESTINST4("smlad r0, r1, r2, r3",
1857 0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
1858TESTINST4("smlad r0, r1, r2, r3",
1859 0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
1860TESTINST4("smlad r0, r1, r2, r3",
1861 0x32fa0095, 0x36f26261, 0x89d2ef86, r0, r1, r2, r3, 0);
1862TESTINST4("smlad r0, r1, r2, r3",
1863 0x8ed8287c, 0x02c90120, 0xd4b64d54, r0, r1, r2, r3, 0);
1864TESTINST4("smlad r0, r1, r2, r3",
1865 0xc53aaba9, 0x29300837, 0x0b02c58a, r0, r1, r2, r3, 0);
1866TESTINST4("smlad r0, r1, r2, r3",
1867 0x216158cb, 0x57a50a01, 0xb0d20777, r0, r1, r2, r3, 0);
1868TESTINST4("smlad r0, r1, r2, r3",
1869 0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0, r1, r2, r3, 0);
1870TESTINST4("smlad r0, r1, r2, r3",
1871 0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0, r1, r2, r3, 0);
1872TESTINST4("smlad r0, r1, r2, r3",
1873 0xf87b961e, 0x1d66879f, 0xf2b64835, r0, r1, r2, r3, 0);
1874TESTINST4("smlad r0, r1, r2, r3",
1875 0xd65db979, 0xc61b323b, 0xae930a1a, r0, r1, r2, r3, 0);
1876TESTINST4("smlad r0, r1, r2, r3",
1877 0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0, r1, r2, r3, 0);
1878TESTINST4("smlad r0, r1, r2, r3",
1879 0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0, r1, r2, r3, 0);
1880TESTINST4("smlad r0, r1, r2, r3",
1881 0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, r3, 0);
1882TESTINST4("smlad r0, r1, r2, r3",
1883 0xeaa652c7, 0x137741f4, 0x3dba1164, r0, r1, r2, r3, 0);
1884TESTINST4("smlad r0, r1, r2, r3",
1885 0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0, r1, r2, r3, 0);
1886TESTINST4("smlad r0, r1, r2, r3",
1887 0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0, r1, r2, r3, 0);
1888TESTINST4("smlad r0, r1, r2, r3",
1889 0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, r3, 0);
1890TESTINST4("smlad r0, r1, r2, r3",
1891 0xe1bb8606, 0x58293969, 0x81616d13, r0, r1, r2, r3, 0);
1892TESTINST4("smlad r0, r1, r2, r3",
1893 0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0, r1, r2, r3, 0);
1894TESTINST4("smlad r0, r1, r2, r3",
1895 0x0849a0c2, 0x0872f25a, 0x40b094e2, r0, r1, r2, r3, 0);
1896TESTINST4("smlad r0, r1, r2, r3",
1897 0x17913309, 0xf1e03d7e, 0x91edc21d, r0, r1, r2, r3, 0);
1898TESTINST4("smlad r0, r1, r2, r3",
1899 0x5388b5cd, 0x86582032, 0x6034078d, r0, r1, r2, r3, 0);
1900TESTINST4("smlad r0, r1, r2, r3",
1901 0x181c436b, 0x5de41558, 0xccfa1c7e, r0, r1, r2, r3, 0);
1902TESTINST4("smlad r0, r1, r2, r3",
1903 0x23ba1b46, 0x4437983c, 0x48d06549, r0, r1, r2, r3, 0);
1904TESTINST4("smlad r0, r1, r2, r3",
1905 0xa9085781, 0xc6b4ac58, 0xb2aead21, r0, r1, r2, r3, 0);
1906TESTINST4("smlad r0, r1, r2, r3",
1907 0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0, r1, r2, r3, 0);
1908TESTINST4("smlad r0, r1, r2, r3",
1909 0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, r3, 0);
1910TESTINST4("smlad r0, r1, r2, r3",
1911 0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0, r1, r2, r3, 0);
1912TESTINST4("smlad r0, r1, r2, r3",
1913 0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0, r1, r2, r3, 0);
1914TESTINST4("smlad r0, r1, r2, r3",
1915 0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0, r1, r2, r3, 0);
1916TESTINST4("smlad r0, r1, r2, r3",
1917 0xd7ce1909, 0x3e435701, 0x85fbf196, r0, r1, r2, r3, 0);
1918TESTINST4("smlad r0, r1, r2, r3",
1919 0xb4e16b6e, 0x6e13680a, 0x89436f88, r0, r1, r2, r3, 0);
1920TESTINST4("smlad r0, r1, r2, r3",
1921 0x44858efc, 0x9002bc30, 0x390d2c2f, r0, r1, r2, r3, 0);
1922TESTINST4("smlad r0, r1, r2, r3",
1923 0xbea121ab, 0x953ff6ec, 0x80657c40, r0, r1, r2, r3, 0);
1924TESTINST4("smlad r0, r1, r2, r3",
1925 0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, r3, 0);
1926TESTINST4("smlad r0, r1, r2, r3",
1927 0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0, r1, r2, r3, 0);
1928TESTINST4("smlad r0, r1, r2, r3",
1929 0xec0c2f30, 0x5736ed46, 0x231348c0, r0, r1, r2, r3, 0);
1930TESTINST4("smlad r0, r1, r2, r3",
1931 0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0, r1, r2, r3, 0);
1932TESTINST4("smlad r0, r1, r2, r3",
1933 0xc1553709, 0x0112b30a, 0x69ec0212, r0, r1, r2, r3, 0);
1934TESTINST4("smlad r0, r1, r2, r3",
1935 0x74bd0223, 0x03fa9bb5, 0x899d9192, r0, r1, r2, r3, 0);
1936TESTINST4("smlad r0, r1, r2, r3",
1937 0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, r3, 0);
1938TESTINST4("smlad r0, r1, r2, r3",
1939 0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0, r1, r2, r3, 0);
1940TESTINST4("smlad r0, r1, r2, r3",
1941 0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0, r1, r2, r3, 0);
1942TESTINST4("smlad r0, r1, r2, r3",
1943 0x299da970, 0xe8108f1b, 0xf5818cfb, r0, r1, r2, r3, 0);
1944TESTINST4("smlad r0, r1, r2, r3",
1945 0xcd90d604, 0xaa5e9444, 0x8217b7df, r0, r1, r2, r3, 0);
1946TESTINST4("smlad r0, r1, r2, r3",
1947 0xe60743c3, 0x7acb4de3, 0x73c29060, r0, r1, r2, r3, 0);
1948TESTINST4("smlad r0, r1, r2, r3",
1949 0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0, r1, r2, r3, 0);
1950TESTINST4("smlad r0, r1, r2, r3",
1951 0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0, r1, r2, r3, 0);
1952TESTINST4("smlad r0, r1, r2, r3",
1953 0xde99ac2f, 0x0be36f70, 0xeda5110c, r0, r1, r2, r3, 0);
1954TESTINST4("smlad r0, r1, r2, r3",
1955 0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0);
1956
sewardjef64c472010-10-18 16:35:38 +00001957 printf("----------------- SMLADX ----------------- \n");
1958 TESTINST4("smladx r0, r1, r2, r3",
1959 0x80008000, 0x80008000, 0x00000000, r0, r1, r2, r3, 0);
1960 TESTINST4("smladx r0, r1, r2, r3",
1961 0x7fff7fff, 0x00000000, 0x00000000, r0, r1, r2, r3, 0);
1962 TESTINST4("smladx r0, r1, r2, r3",
1963 0x7fff7fff, 0x00010001, 0x00000001, r0, r1, r2, r3, 0);
1964 TESTINST4("smladx r0, r1, r2, r3",
1965 0x80008000, 0xffffffff, 0x0000001f, r0, r1, r2, r3, 0);
1966 TESTINST4("smladx r0, r1, r2, r3",
1967 0x00640064, 0x00030003, 0x00000020, r0, r1, r2, r3, 0);
1968 TESTINST4("smladx r0, r1, r2, r3",
1969 0xffffffff, 0xfffc0001, 0x000000ff, r0, r1, r2, r3, 0);
1970 TESTINST4("smladx r0, r1, r2, r3",
1971 0xfff70fff, 0x00030003, 0x00000100, r0, r1, r2, r3, 0);
1972TESTINST4("smladx r0, r1, r2, r3",
1973 0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
1974TESTINST4("smladx r0, r1, r2, r3",
1975 0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
1976TESTINST4("smladx r0, r1, r2, r3",
1977 0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
1978
sewardj81e06dc2010-08-29 12:35:37 +00001979 printf("------------ SMLABB, SMLATT, SMLATB, SMLABT ------------\n");
1980 /* smlabb rD, rN, rM, rA */
1981 TESTINST4("smlabb r0, r1, r2, r3",
1982 0x00030000, 0x00040000, 0x00000000, r0,r1,r2,r3, 0);
1983 TESTINST4("smlabb r0, r1, r2, r3",
1984 0x00030001, 0x00040002, 0x00007fff, r0,r1,r2,r3, 0);
1985 TESTINST4("smlabb r0, r1, r2, r3",
1986 0x00038001, 0x00047fff, 0x00005fff, r0,r1,r2,r3, 0);
1987 TESTINST4("smlabb r0, r1, r2, r3",
1988 0x00037fff, 0x00047fff, 0x00007fff, r0,r1,r2,r3, 0);
1989 TESTINST4("smlabb r0, r1, r2, r3",
1990 0x0003ffff, 0x0004ffff, 0x7fff7fff, r0,r1,r2,r3, 0);
1991 TESTINST4("smlabb r0, r1, r2, r3",
1992 0x0003fffc, 0x0004ffff, 0xffffffff, r0,r1,r2,r3, 0);
1993TESTINST4("smlabb r0, r1, r2, r3",
1994 0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
1995TESTINST4("smlabb r0, r1, r2, r3",
1996 0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
1997TESTINST4("smlabb r0, r1, r2, r3",
1998 0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
1999TESTINST4("smlabb r0, r1, r2, r3",
2000 0x32fa0095, 0x36f26261, 0x89d2ef86, r0, r1, r2, r3, 0);
2001TESTINST4("smlabb r0, r1, r2, r3",
2002 0x8ed8287c, 0x02c90120, 0xd4b64d54, r0, r1, r2, r3, 0);
2003TESTINST4("smlabb r0, r1, r2, r3",
2004 0xc53aaba9, 0x29300837, 0x0b02c58a, r0, r1, r2, r3, 0);
2005TESTINST4("smlabb r0, r1, r2, r3",
2006 0x216158cb, 0x57a50a01, 0xb0d20777, r0, r1, r2, r3, 0);
2007TESTINST4("smlabb r0, r1, r2, r3",
2008 0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0, r1, r2, r3, 0);
2009TESTINST4("smlabb r0, r1, r2, r3",
2010 0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0, r1, r2, r3, 0);
2011TESTINST4("smlabb r0, r1, r2, r3",
2012 0xf87b961e, 0x1d66879f, 0xf2b64835, r0, r1, r2, r3, 0);
2013TESTINST4("smlabb r0, r1, r2, r3",
2014 0xd65db979, 0xc61b323b, 0xae930a1a, r0, r1, r2, r3, 0);
2015TESTINST4("smlabb r0, r1, r2, r3",
2016 0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0, r1, r2, r3, 0);
2017TESTINST4("smlabb r0, r1, r2, r3",
2018 0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0, r1, r2, r3, 0);
2019TESTINST4("smlabb r0, r1, r2, r3",
2020 0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, r3, 0);
2021TESTINST4("smlabb r0, r1, r2, r3",
2022 0xeaa652c7, 0x137741f4, 0x3dba1164, r0, r1, r2, r3, 0);
2023TESTINST4("smlabb r0, r1, r2, r3",
2024 0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0, r1, r2, r3, 0);
2025TESTINST4("smlabb r0, r1, r2, r3",
2026 0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0, r1, r2, r3, 0);
2027TESTINST4("smlabb r0, r1, r2, r3",
2028 0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, r3, 0);
2029TESTINST4("smlabb r0, r1, r2, r3",
2030 0xe1bb8606, 0x58293969, 0x81616d13, r0, r1, r2, r3, 0);
2031TESTINST4("smlabb r0, r1, r2, r3",
2032 0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0, r1, r2, r3, 0);
2033TESTINST4("smlabb r0, r1, r2, r3",
2034 0x0849a0c2, 0x0872f25a, 0x40b094e2, r0, r1, r2, r3, 0);
2035TESTINST4("smlabb r0, r1, r2, r3",
2036 0x17913309, 0xf1e03d7e, 0x91edc21d, r0, r1, r2, r3, 0);
2037TESTINST4("smlabb r0, r1, r2, r3",
2038 0x5388b5cd, 0x86582032, 0x6034078d, r0, r1, r2, r3, 0);
2039TESTINST4("smlabb r0, r1, r2, r3",
2040 0x181c436b, 0x5de41558, 0xccfa1c7e, r0, r1, r2, r3, 0);
2041TESTINST4("smlabb r0, r1, r2, r3",
2042 0x23ba1b46, 0x4437983c, 0x48d06549, r0, r1, r2, r3, 0);
2043TESTINST4("smlabb r0, r1, r2, r3",
2044 0xa9085781, 0xc6b4ac58, 0xb2aead21, r0, r1, r2, r3, 0);
2045TESTINST4("smlabb r0, r1, r2, r3",
2046 0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0, r1, r2, r3, 0);
2047TESTINST4("smlabb r0, r1, r2, r3",
2048 0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, r3, 0);
2049TESTINST4("smlabb r0, r1, r2, r3",
2050 0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0, r1, r2, r3, 0);
2051TESTINST4("smlabb r0, r1, r2, r3",
2052 0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0, r1, r2, r3, 0);
2053TESTINST4("smlabb r0, r1, r2, r3",
2054 0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0, r1, r2, r3, 0);
2055TESTINST4("smlabb r0, r1, r2, r3",
2056 0xd7ce1909, 0x3e435701, 0x85fbf196, r0, r1, r2, r3, 0);
2057TESTINST4("smlabb r0, r1, r2, r3",
2058 0xb4e16b6e, 0x6e13680a, 0x89436f88, r0, r1, r2, r3, 0);
2059TESTINST4("smlabb r0, r1, r2, r3",
2060 0x44858efc, 0x9002bc30, 0x390d2c2f, r0, r1, r2, r3, 0);
2061TESTINST4("smlabb r0, r1, r2, r3",
2062 0xbea121ab, 0x953ff6ec, 0x80657c40, r0, r1, r2, r3, 0);
2063TESTINST4("smlabb r0, r1, r2, r3",
2064 0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, r3, 0);
2065TESTINST4("smlabb r0, r1, r2, r3",
2066 0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0, r1, r2, r3, 0);
2067TESTINST4("smlabb r0, r1, r2, r3",
2068 0xec0c2f30, 0x5736ed46, 0x231348c0, r0, r1, r2, r3, 0);
2069TESTINST4("smlabb r0, r1, r2, r3",
2070 0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0, r1, r2, r3, 0);
2071TESTINST4("smlabb r0, r1, r2, r3",
2072 0xc1553709, 0x0112b30a, 0x69ec0212, r0, r1, r2, r3, 0);
2073TESTINST4("smlabb r0, r1, r2, r3",
2074 0x74bd0223, 0x03fa9bb5, 0x899d9192, r0, r1, r2, r3, 0);
2075TESTINST4("smlabb r0, r1, r2, r3",
2076 0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, r3, 0);
2077TESTINST4("smlabb r0, r1, r2, r3",
2078 0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0, r1, r2, r3, 0);
2079TESTINST4("smlabb r0, r1, r2, r3",
2080 0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0, r1, r2, r3, 0);
2081TESTINST4("smlabb r0, r1, r2, r3",
2082 0x299da970, 0xe8108f1b, 0xf5818cfb, r0, r1, r2, r3, 0);
2083TESTINST4("smlabb r0, r1, r2, r3",
2084 0xcd90d604, 0xaa5e9444, 0x8217b7df, r0, r1, r2, r3, 0);
2085TESTINST4("smlabb r0, r1, r2, r3",
2086 0xe60743c3, 0x7acb4de3, 0x73c29060, r0, r1, r2, r3, 0);
2087TESTINST4("smlabb r0, r1, r2, r3",
2088 0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0, r1, r2, r3, 0);
2089TESTINST4("smlabb r0, r1, r2, r3",
2090 0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0, r1, r2, r3, 0);
2091TESTINST4("smlabb r0, r1, r2, r3",
2092 0xde99ac2f, 0x0be36f70, 0xeda5110c, r0, r1, r2, r3, 0);
2093TESTINST4("smlabb r0, r1, r2, r3",
2094 0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0);
2095 /* smlatt rD, rN, rM, rA */
2096 TESTINST4("smlatt r0, r1, r2, r3",
2097 0x00000003, 0x00000004, 0x00000000, r0,r1,r2,r3, 0);
2098 TESTINST4("smlatt r0, r1, r2, r3",
2099 0x00010003, 0x00020004, 0x00007fff, r0,r1,r2,r3, 0);
2100 TESTINST4("smlatt r0, r1, r2, r3",
2101 0x80010003, 0x7fff0004, 0x00005fff, r0,r1,r2,r3, 0);
2102 TESTINST4("smlatt r0, r1, r2, r3",
2103 0x7fff0003, 0x7fff0004, 0x00007fff, r0,r1,r2,r3, 0);
2104 TESTINST4("smlatt r0, r1, r2, r3",
2105 0xffff0003, 0xffff0004, 0x7fff7fff, r0,r1,r2,r3, 0);
2106 TESTINST4("smlatt r0, r1, r2, r3",
2107 0xfffc0003, 0xffff0004, 0xffffffff, r0,r1,r2,r3, 0);
2108TESTINST4("smlatt r0, r1, r2, r3",
2109 0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
2110TESTINST4("smlatt r0, r1, r2, r3",
2111 0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
2112TESTINST4("smlatt r0, r1, r2, r3",
2113 0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
2114TESTINST4("smlatt r0, r1, r2, r3",
2115 0x32fa0095, 0x36f26261, 0x89d2ef86, r0, r1, r2, r3, 0);
2116TESTINST4("smlatt r0, r1, r2, r3",
2117 0x8ed8287c, 0x02c90120, 0xd4b64d54, r0, r1, r2, r3, 0);
2118TESTINST4("smlatt r0, r1, r2, r3",
2119 0xc53aaba9, 0x29300837, 0x0b02c58a, r0, r1, r2, r3, 0);
2120TESTINST4("smlatt r0, r1, r2, r3",
2121 0x216158cb, 0x57a50a01, 0xb0d20777, r0, r1, r2, r3, 0);
2122TESTINST4("smlatt r0, r1, r2, r3",
2123 0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0, r1, r2, r3, 0);
2124TESTINST4("smlatt r0, r1, r2, r3",
2125 0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0, r1, r2, r3, 0);
2126TESTINST4("smlatt r0, r1, r2, r3",
2127 0xf87b961e, 0x1d66879f, 0xf2b64835, r0, r1, r2, r3, 0);
2128TESTINST4("smlatt r0, r1, r2, r3",
2129 0xd65db979, 0xc61b323b, 0xae930a1a, r0, r1, r2, r3, 0);
2130TESTINST4("smlatt r0, r1, r2, r3",
2131 0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0, r1, r2, r3, 0);
2132TESTINST4("smlatt r0, r1, r2, r3",
2133 0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0, r1, r2, r3, 0);
2134TESTINST4("smlatt r0, r1, r2, r3",
2135 0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, r3, 0);
2136TESTINST4("smlatt r0, r1, r2, r3",
2137 0xeaa652c7, 0x137741f4, 0x3dba1164, r0, r1, r2, r3, 0);
2138TESTINST4("smlatt r0, r1, r2, r3",
2139 0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0, r1, r2, r3, 0);
2140TESTINST4("smlatt r0, r1, r2, r3",
2141 0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0, r1, r2, r3, 0);
2142TESTINST4("smlatt r0, r1, r2, r3",
2143 0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, r3, 0);
2144TESTINST4("smlatt r0, r1, r2, r3",
2145 0xe1bb8606, 0x58293969, 0x81616d13, r0, r1, r2, r3, 0);
2146TESTINST4("smlatt r0, r1, r2, r3",
2147 0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0, r1, r2, r3, 0);
2148TESTINST4("smlatt r0, r1, r2, r3",
2149 0x0849a0c2, 0x0872f25a, 0x40b094e2, r0, r1, r2, r3, 0);
2150TESTINST4("smlatt r0, r1, r2, r3",
2151 0x17913309, 0xf1e03d7e, 0x91edc21d, r0, r1, r2, r3, 0);
2152TESTINST4("smlatt r0, r1, r2, r3",
2153 0x5388b5cd, 0x86582032, 0x6034078d, r0, r1, r2, r3, 0);
2154TESTINST4("smlatt r0, r1, r2, r3",
2155 0x181c436b, 0x5de41558, 0xccfa1c7e, r0, r1, r2, r3, 0);
2156TESTINST4("smlatt r0, r1, r2, r3",
2157 0x23ba1b46, 0x4437983c, 0x48d06549, r0, r1, r2, r3, 0);
2158TESTINST4("smlatt r0, r1, r2, r3",
2159 0xa9085781, 0xc6b4ac58, 0xb2aead21, r0, r1, r2, r3, 0);
2160TESTINST4("smlatt r0, r1, r2, r3",
2161 0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0, r1, r2, r3, 0);
2162TESTINST4("smlatt r0, r1, r2, r3",
2163 0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, r3, 0);
2164TESTINST4("smlatt r0, r1, r2, r3",
2165 0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0, r1, r2, r3, 0);
2166TESTINST4("smlatt r0, r1, r2, r3",
2167 0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0, r1, r2, r3, 0);
2168TESTINST4("smlatt r0, r1, r2, r3",
2169 0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0, r1, r2, r3, 0);
2170TESTINST4("smlatt r0, r1, r2, r3",
2171 0xd7ce1909, 0x3e435701, 0x85fbf196, r0, r1, r2, r3, 0);
2172TESTINST4("smlatt r0, r1, r2, r3",
2173 0xb4e16b6e, 0x6e13680a, 0x89436f88, r0, r1, r2, r3, 0);
2174TESTINST4("smlatt r0, r1, r2, r3",
2175 0x44858efc, 0x9002bc30, 0x390d2c2f, r0, r1, r2, r3, 0);
2176TESTINST4("smlatt r0, r1, r2, r3",
2177 0xbea121ab, 0x953ff6ec, 0x80657c40, r0, r1, r2, r3, 0);
2178TESTINST4("smlatt r0, r1, r2, r3",
2179 0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, r3, 0);
2180TESTINST4("smlatt r0, r1, r2, r3",
2181 0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0, r1, r2, r3, 0);
2182TESTINST4("smlatt r0, r1, r2, r3",
2183 0xec0c2f30, 0x5736ed46, 0x231348c0, r0, r1, r2, r3, 0);
2184TESTINST4("smlatt r0, r1, r2, r3",
2185 0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0, r1, r2, r3, 0);
2186TESTINST4("smlatt r0, r1, r2, r3",
2187 0xc1553709, 0x0112b30a, 0x69ec0212, r0, r1, r2, r3, 0);
2188TESTINST4("smlatt r0, r1, r2, r3",
2189 0x74bd0223, 0x03fa9bb5, 0x899d9192, r0, r1, r2, r3, 0);
2190TESTINST4("smlatt r0, r1, r2, r3",
2191 0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, r3, 0);
2192TESTINST4("smlatt r0, r1, r2, r3",
2193 0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0, r1, r2, r3, 0);
2194TESTINST4("smlatt r0, r1, r2, r3",
2195 0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0, r1, r2, r3, 0);
2196TESTINST4("smlatt r0, r1, r2, r3",
2197 0x299da970, 0xe8108f1b, 0xf5818cfb, r0, r1, r2, r3, 0);
2198TESTINST4("smlatt r0, r1, r2, r3",
2199 0xcd90d604, 0xaa5e9444, 0x8217b7df, r0, r1, r2, r3, 0);
2200TESTINST4("smlatt r0, r1, r2, r3",
2201 0xe60743c3, 0x7acb4de3, 0x73c29060, r0, r1, r2, r3, 0);
2202TESTINST4("smlatt r0, r1, r2, r3",
2203 0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0, r1, r2, r3, 0);
2204TESTINST4("smlatt r0, r1, r2, r3",
2205 0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0, r1, r2, r3, 0);
2206TESTINST4("smlatt r0, r1, r2, r3",
2207 0xde99ac2f, 0x0be36f70, 0xeda5110c, r0, r1, r2, r3, 0);
2208TESTINST4("smlatt r0, r1, r2, r3",
2209 0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0);
2210 /* smlatb rD, rN, rM, rA */
2211 TESTINST4("smlatb r0, r1, r2, r3",
2212 0x00000003, 0x00040000, 0x00000000, r0,r1,r2,r3, 0);
2213 TESTINST4("smlatb r0, r1, r2, r3",
2214 0x00010003, 0x00040002, 0x00007fff, r0,r1,r2,r3, 0);
2215 TESTINST4("smlatb r0, r1, r2, r3",
2216 0x80010003, 0x00047fff, 0x00005fff, r0,r1,r2,r3, 0);
2217 TESTINST4("smlatb r0, r1, r2, r3",
2218 0x7fff0003, 0x00047fff, 0x00007fff, r0,r1,r2,r3, 0);
2219 TESTINST4("smlatb r0, r1, r2, r3",
2220 0xffff0003, 0x0004ffff, 0x7fff7fff, r0,r1,r2,r3, 0);
2221 TESTINST4("smlatb r0, r1, r2, r3",
2222 0xfffc0003, 0x0004ffff, 0xffffffff, r0,r1,r2,r3, 0);
2223TESTINST4("smlatb r0, r1, r2, r3",
2224 0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
2225TESTINST4("smlatb r0, r1, r2, r3",
2226 0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
2227TESTINST4("smlatb r0, r1, r2, r3",
2228 0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
2229TESTINST4("smlatb r0, r1, r2, r3",
2230 0x32fa0095, 0x36f26261, 0x89d2ef86, r0, r1, r2, r3, 0);
2231TESTINST4("smlatb r0, r1, r2, r3",
2232 0x8ed8287c, 0x02c90120, 0xd4b64d54, r0, r1, r2, r3, 0);
2233TESTINST4("smlatb r0, r1, r2, r3",
2234 0xc53aaba9, 0x29300837, 0x0b02c58a, r0, r1, r2, r3, 0);
2235TESTINST4("smlatb r0, r1, r2, r3",
2236 0x216158cb, 0x57a50a01, 0xb0d20777, r0, r1, r2, r3, 0);
2237TESTINST4("smlatb r0, r1, r2, r3",
2238 0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0, r1, r2, r3, 0);
2239TESTINST4("smlatb r0, r1, r2, r3",
2240 0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0, r1, r2, r3, 0);
2241TESTINST4("smlatb r0, r1, r2, r3",
2242 0xf87b961e, 0x1d66879f, 0xf2b64835, r0, r1, r2, r3, 0);
2243TESTINST4("smlatb r0, r1, r2, r3",
2244 0xd65db979, 0xc61b323b, 0xae930a1a, r0, r1, r2, r3, 0);
2245TESTINST4("smlatb r0, r1, r2, r3",
2246 0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0, r1, r2, r3, 0);
2247TESTINST4("smlatb r0, r1, r2, r3",
2248 0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0, r1, r2, r3, 0);
2249TESTINST4("smlatb r0, r1, r2, r3",
2250 0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, r3, 0);
2251TESTINST4("smlatb r0, r1, r2, r3",
2252 0xeaa652c7, 0x137741f4, 0x3dba1164, r0, r1, r2, r3, 0);
2253TESTINST4("smlatb r0, r1, r2, r3",
2254 0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0, r1, r2, r3, 0);
2255TESTINST4("smlatb r0, r1, r2, r3",
2256 0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0, r1, r2, r3, 0);
2257TESTINST4("smlatb r0, r1, r2, r3",
2258 0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, r3, 0);
2259TESTINST4("smlatb r0, r1, r2, r3",
2260 0xe1bb8606, 0x58293969, 0x81616d13, r0, r1, r2, r3, 0);
2261TESTINST4("smlatb r0, r1, r2, r3",
2262 0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0, r1, r2, r3, 0);
2263TESTINST4("smlatb r0, r1, r2, r3",
2264 0x0849a0c2, 0x0872f25a, 0x40b094e2, r0, r1, r2, r3, 0);
2265TESTINST4("smlatb r0, r1, r2, r3",
2266 0x17913309, 0xf1e03d7e, 0x91edc21d, r0, r1, r2, r3, 0);
2267TESTINST4("smlatb r0, r1, r2, r3",
2268 0x5388b5cd, 0x86582032, 0x6034078d, r0, r1, r2, r3, 0);
2269TESTINST4("smlatb r0, r1, r2, r3",
2270 0x181c436b, 0x5de41558, 0xccfa1c7e, r0, r1, r2, r3, 0);
2271TESTINST4("smlatb r0, r1, r2, r3",
2272 0x23ba1b46, 0x4437983c, 0x48d06549, r0, r1, r2, r3, 0);
2273TESTINST4("smlatb r0, r1, r2, r3",
2274 0xa9085781, 0xc6b4ac58, 0xb2aead21, r0, r1, r2, r3, 0);
2275TESTINST4("smlatb r0, r1, r2, r3",
2276 0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0, r1, r2, r3, 0);
2277TESTINST4("smlatb r0, r1, r2, r3",
2278 0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, r3, 0);
2279TESTINST4("smlatb r0, r1, r2, r3",
2280 0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0, r1, r2, r3, 0);
2281TESTINST4("smlatb r0, r1, r2, r3",
2282 0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0, r1, r2, r3, 0);
2283TESTINST4("smlatb r0, r1, r2, r3",
2284 0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0, r1, r2, r3, 0);
2285TESTINST4("smlatb r0, r1, r2, r3",
2286 0xd7ce1909, 0x3e435701, 0x85fbf196, r0, r1, r2, r3, 0);
2287TESTINST4("smlatb r0, r1, r2, r3",
2288 0xb4e16b6e, 0x6e13680a, 0x89436f88, r0, r1, r2, r3, 0);
2289TESTINST4("smlatb r0, r1, r2, r3",
2290 0x44858efc, 0x9002bc30, 0x390d2c2f, r0, r1, r2, r3, 0);
2291TESTINST4("smlatb r0, r1, r2, r3",
2292 0xbea121ab, 0x953ff6ec, 0x80657c40, r0, r1, r2, r3, 0);
2293TESTINST4("smlatb r0, r1, r2, r3",
2294 0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, r3, 0);
2295TESTINST4("smlatb r0, r1, r2, r3",
2296 0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0, r1, r2, r3, 0);
2297TESTINST4("smlatb r0, r1, r2, r3",
2298 0xec0c2f30, 0x5736ed46, 0x231348c0, r0, r1, r2, r3, 0);
2299TESTINST4("smlatb r0, r1, r2, r3",
2300 0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0, r1, r2, r3, 0);
2301TESTINST4("smlatb r0, r1, r2, r3",
2302 0xc1553709, 0x0112b30a, 0x69ec0212, r0, r1, r2, r3, 0);
2303TESTINST4("smlatb r0, r1, r2, r3",
2304 0x74bd0223, 0x03fa9bb5, 0x899d9192, r0, r1, r2, r3, 0);
2305TESTINST4("smlatb r0, r1, r2, r3",
2306 0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, r3, 0);
2307TESTINST4("smlatb r0, r1, r2, r3",
2308 0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0, r1, r2, r3, 0);
2309TESTINST4("smlatb r0, r1, r2, r3",
2310 0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0, r1, r2, r3, 0);
2311TESTINST4("smlatb r0, r1, r2, r3",
2312 0x299da970, 0xe8108f1b, 0xf5818cfb, r0, r1, r2, r3, 0);
2313TESTINST4("smlatb r0, r1, r2, r3",
2314 0xcd90d604, 0xaa5e9444, 0x8217b7df, r0, r1, r2, r3, 0);
2315TESTINST4("smlatb r0, r1, r2, r3",
2316 0xe60743c3, 0x7acb4de3, 0x73c29060, r0, r1, r2, r3, 0);
2317TESTINST4("smlatb r0, r1, r2, r3",
2318 0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0, r1, r2, r3, 0);
2319TESTINST4("smlatb r0, r1, r2, r3",
2320 0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0, r1, r2, r3, 0);
2321TESTINST4("smlatb r0, r1, r2, r3",
2322 0xde99ac2f, 0x0be36f70, 0xeda5110c, r0, r1, r2, r3, 0);
2323TESTINST4("smlatb r0, r1, r2, r3",
2324 0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0);
2325 /* smlabt rD, rN, rM, rA */
2326 TESTINST4("smlabt r0, r1, r2, r3",
2327 0x00030000, 0x00000004, 0x00000000, r0,r1,r2,r3, 0);
2328 TESTINST4("smlabt r0, r1, r2, r3",
2329 0x00030001, 0x00020004, 0x00007fff, r0,r1,r2,r3, 0);
2330 TESTINST4("smlabt r0, r1, r2, r3",
2331 0x00038001, 0x7fff0004, 0x00005fff, r0,r1,r2,r3, 0);
2332 TESTINST4("smlabt r0, r1, r2, r3",
2333 0x00037fff, 0x7fff0004, 0x00007fff, r0,r1,r2,r3, 0);
2334 TESTINST4("smlabt r0, r1, r2, r3",
2335 0x0003ffff, 0xffff0004, 0x7fff7fff, r0,r1,r2,r3, 0);
2336 TESTINST4("smlabt r0, r1, r2, r3",
2337 0x0003fffc, 0xffff0004, 0xffffffff, r0,r1,r2,r3, 0);
2338TESTINST4("smlabt r0, r1, r2, r3",
2339 0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
2340TESTINST4("smlabt r0, r1, r2, r3",
2341 0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
2342TESTINST4("smlabt r0, r1, r2, r3",
2343 0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
2344TESTINST4("smlabt r0, r1, r2, r3",
2345 0x32fa0095, 0x36f26261, 0x89d2ef86, r0, r1, r2, r3, 0);
2346TESTINST4("smlabt r0, r1, r2, r3",
2347 0x8ed8287c, 0x02c90120, 0xd4b64d54, r0, r1, r2, r3, 0);
2348TESTINST4("smlabt r0, r1, r2, r3",
2349 0xc53aaba9, 0x29300837, 0x0b02c58a, r0, r1, r2, r3, 0);
2350TESTINST4("smlabt r0, r1, r2, r3",
2351 0x216158cb, 0x57a50a01, 0xb0d20777, r0, r1, r2, r3, 0);
2352TESTINST4("smlabt r0, r1, r2, r3",
2353 0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0, r1, r2, r3, 0);
2354TESTINST4("smlabt r0, r1, r2, r3",
2355 0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0, r1, r2, r3, 0);
2356TESTINST4("smlabt r0, r1, r2, r3",
2357 0xf87b961e, 0x1d66879f, 0xf2b64835, r0, r1, r2, r3, 0);
2358TESTINST4("smlabt r0, r1, r2, r3",
2359 0xd65db979, 0xc61b323b, 0xae930a1a, r0, r1, r2, r3, 0);
2360TESTINST4("smlabt r0, r1, r2, r3",
2361 0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0, r1, r2, r3, 0);
2362TESTINST4("smlabt r0, r1, r2, r3",
2363 0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0, r1, r2, r3, 0);
2364TESTINST4("smlabt r0, r1, r2, r3",
2365 0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, r3, 0);
2366TESTINST4("smlabt r0, r1, r2, r3",
2367 0xeaa652c7, 0x137741f4, 0x3dba1164, r0, r1, r2, r3, 0);
2368TESTINST4("smlabt r0, r1, r2, r3",
2369 0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0, r1, r2, r3, 0);
2370TESTINST4("smlabt r0, r1, r2, r3",
2371 0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0, r1, r2, r3, 0);
2372TESTINST4("smlabt r0, r1, r2, r3",
2373 0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, r3, 0);
2374TESTINST4("smlabt r0, r1, r2, r3",
2375 0xe1bb8606, 0x58293969, 0x81616d13, r0, r1, r2, r3, 0);
2376TESTINST4("smlabt r0, r1, r2, r3",
2377 0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0, r1, r2, r3, 0);
2378TESTINST4("smlabt r0, r1, r2, r3",
2379 0x0849a0c2, 0x0872f25a, 0x40b094e2, r0, r1, r2, r3, 0);
2380TESTINST4("smlabt r0, r1, r2, r3",
2381 0x17913309, 0xf1e03d7e, 0x91edc21d, r0, r1, r2, r3, 0);
2382TESTINST4("smlabt r0, r1, r2, r3",
2383 0x5388b5cd, 0x86582032, 0x6034078d, r0, r1, r2, r3, 0);
2384TESTINST4("smlabt r0, r1, r2, r3",
2385 0x181c436b, 0x5de41558, 0xccfa1c7e, r0, r1, r2, r3, 0);
2386TESTINST4("smlabt r0, r1, r2, r3",
2387 0x23ba1b46, 0x4437983c, 0x48d06549, r0, r1, r2, r3, 0);
2388TESTINST4("smlabt r0, r1, r2, r3",
2389 0xa9085781, 0xc6b4ac58, 0xb2aead21, r0, r1, r2, r3, 0);
2390TESTINST4("smlabt r0, r1, r2, r3",
2391 0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0, r1, r2, r3, 0);
2392TESTINST4("smlabt r0, r1, r2, r3",
2393 0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, r3, 0);
2394TESTINST4("smlabt r0, r1, r2, r3",
2395 0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0, r1, r2, r3, 0);
2396TESTINST4("smlabt r0, r1, r2, r3",
2397 0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0, r1, r2, r3, 0);
2398TESTINST4("smlabt r0, r1, r2, r3",
2399 0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0, r1, r2, r3, 0);
2400TESTINST4("smlabt r0, r1, r2, r3",
2401 0xd7ce1909, 0x3e435701, 0x85fbf196, r0, r1, r2, r3, 0);
2402TESTINST4("smlabt r0, r1, r2, r3",
2403 0xb4e16b6e, 0x6e13680a, 0x89436f88, r0, r1, r2, r3, 0);
2404TESTINST4("smlabt r0, r1, r2, r3",
2405 0x44858efc, 0x9002bc30, 0x390d2c2f, r0, r1, r2, r3, 0);
2406TESTINST4("smlabt r0, r1, r2, r3",
2407 0xbea121ab, 0x953ff6ec, 0x80657c40, r0, r1, r2, r3, 0);
2408TESTINST4("smlabt r0, r1, r2, r3",
2409 0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, r3, 0);
2410TESTINST4("smlabt r0, r1, r2, r3",
2411 0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0, r1, r2, r3, 0);
2412TESTINST4("smlabt r0, r1, r2, r3",
2413 0xec0c2f30, 0x5736ed46, 0x231348c0, r0, r1, r2, r3, 0);
2414TESTINST4("smlabt r0, r1, r2, r3",
2415 0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0, r1, r2, r3, 0);
2416TESTINST4("smlabt r0, r1, r2, r3",
2417 0xc1553709, 0x0112b30a, 0x69ec0212, r0, r1, r2, r3, 0);
2418TESTINST4("smlabt r0, r1, r2, r3",
2419 0x74bd0223, 0x03fa9bb5, 0x899d9192, r0, r1, r2, r3, 0);
2420TESTINST4("smlabt r0, r1, r2, r3",
2421 0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, r3, 0);
2422TESTINST4("smlabt r0, r1, r2, r3",
2423 0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0, r1, r2, r3, 0);
2424TESTINST4("smlabt r0, r1, r2, r3",
2425 0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0, r1, r2, r3, 0);
2426TESTINST4("smlabt r0, r1, r2, r3",
2427 0x299da970, 0xe8108f1b, 0xf5818cfb, r0, r1, r2, r3, 0);
2428TESTINST4("smlabt r0, r1, r2, r3",
2429 0xcd90d604, 0xaa5e9444, 0x8217b7df, r0, r1, r2, r3, 0);
2430TESTINST4("smlabt r0, r1, r2, r3",
2431 0xe60743c3, 0x7acb4de3, 0x73c29060, r0, r1, r2, r3, 0);
2432TESTINST4("smlabt r0, r1, r2, r3",
2433 0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0, r1, r2, r3, 0);
2434TESTINST4("smlabt r0, r1, r2, r3",
2435 0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0, r1, r2, r3, 0);
2436TESTINST4("smlabt r0, r1, r2, r3",
2437 0xde99ac2f, 0x0be36f70, 0xeda5110c, r0, r1, r2, r3, 0);
2438TESTINST4("smlabt r0, r1, r2, r3",
2439 0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0);
2440
2441 printf("------------ UQSUB8 -----------------------------------\n");
2442 TESTINST3("uqsub8 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
2443 TESTINST3("uqsub8 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
2444 TESTINST3("uqsub8 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
2445 TESTINST3("uqsub8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
2446 TESTINST3("uqsub8 r0, r1, r2", 0x00000318, 0xff00ff09, r0, r1, r2, 0);
2447 TESTINST3("uqsub8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
2448 TESTINST3("uqsub8 r0, r1, r2", 0x00020318, 0xff07ff09, r0, r1, r2, 0);
2449 TESTINST3("uqsub8 r0, r1, r2", 0xff07ff09, 0x00020318, r0, r1, r2, 0);
2450TESTINST3("uqsub8 r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
2451TESTINST3("uqsub8 r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
2452TESTINST3("uqsub8 r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
2453TESTINST3("uqsub8 r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
2454TESTINST3("uqsub8 r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
2455TESTINST3("uqsub8 r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
2456TESTINST3("uqsub8 r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
2457TESTINST3("uqsub8 r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
2458TESTINST3("uqsub8 r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
2459TESTINST3("uqsub8 r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
2460TESTINST3("uqsub8 r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
2461TESTINST3("uqsub8 r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
2462TESTINST3("uqsub8 r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
2463TESTINST3("uqsub8 r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
2464TESTINST3("uqsub8 r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
2465TESTINST3("uqsub8 r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
2466TESTINST3("uqsub8 r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
2467TESTINST3("uqsub8 r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
2468TESTINST3("uqsub8 r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
2469TESTINST3("uqsub8 r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
2470TESTINST3("uqsub8 r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
2471TESTINST3("uqsub8 r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
2472TESTINST3("uqsub8 r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
2473TESTINST3("uqsub8 r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
2474TESTINST3("uqsub8 r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
2475TESTINST3("uqsub8 r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
2476TESTINST3("uqsub8 r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
2477TESTINST3("uqsub8 r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
2478TESTINST3("uqsub8 r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
2479TESTINST3("uqsub8 r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
2480TESTINST3("uqsub8 r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
2481TESTINST3("uqsub8 r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
2482TESTINST3("uqsub8 r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
2483TESTINST3("uqsub8 r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
2484TESTINST3("uqsub8 r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
2485TESTINST3("uqsub8 r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
2486TESTINST3("uqsub8 r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
2487TESTINST3("uqsub8 r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
2488TESTINST3("uqsub8 r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
2489TESTINST3("uqsub8 r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
2490TESTINST3("uqsub8 r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
2491TESTINST3("uqsub8 r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
2492TESTINST3("uqsub8 r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
2493TESTINST3("uqsub8 r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
2494TESTINST3("uqsub8 r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
2495TESTINST3("uqsub8 r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
2496TESTINST3("uqsub8 r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
2497TESTINST3("uqsub8 r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
2498TESTINST3("uqsub8 r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
2499TESTINST3("uqsub8 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
2500TESTINST3("uqsub8 r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
2501
2502 printf("------------ UQADD8 -----------------------------------\n");
2503 TESTINST3("uqadd8 r0, r1, r2", 0x0009ffff, 0x001800aa, r0, r1, r2, 0);
2504 TESTINST3("uqadd8 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
2505 TESTINST3("uqadd8 r0, r1, r2", 0x00aa0018, 0xffff0009, r0, r1, r2, 0);
2506 TESTINST3("uqadd8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
2507 TESTINST3("uqadd8 r0, r1, r2", 0x0000aa18, 0xff00ff09, r0, r1, r2, 0);
2508 TESTINST3("uqadd8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
2509 TESTINST3("uqadd8 r0, r1, r2", 0xff9fefcc, 0xff9ffedd, r0, r1, r2, 0);
2510 TESTINST3("uqadd8 r0, r1, r2", 0xff07ff09, 0xaa020318, r0, r1, r2, 0);
2511TESTINST3("uqadd8 r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
2512TESTINST3("uqadd8 r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
2513TESTINST3("uqadd8 r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
2514TESTINST3("uqadd8 r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
2515TESTINST3("uqadd8 r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
2516TESTINST3("uqadd8 r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
2517TESTINST3("uqadd8 r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
2518TESTINST3("uqadd8 r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
2519TESTINST3("uqadd8 r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
2520TESTINST3("uqadd8 r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
2521TESTINST3("uqadd8 r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
2522TESTINST3("uqadd8 r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
2523TESTINST3("uqadd8 r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
2524TESTINST3("uqadd8 r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
2525TESTINST3("uqadd8 r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
2526TESTINST3("uqadd8 r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
2527TESTINST3("uqadd8 r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
2528TESTINST3("uqadd8 r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
2529TESTINST3("uqadd8 r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
2530TESTINST3("uqadd8 r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
2531TESTINST3("uqadd8 r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
2532TESTINST3("uqadd8 r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
2533TESTINST3("uqadd8 r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
2534TESTINST3("uqadd8 r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
2535TESTINST3("uqadd8 r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
2536TESTINST3("uqadd8 r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
2537TESTINST3("uqadd8 r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
2538TESTINST3("uqadd8 r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
2539TESTINST3("uqadd8 r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
2540TESTINST3("uqadd8 r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
2541TESTINST3("uqadd8 r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
2542TESTINST3("uqadd8 r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
2543TESTINST3("uqadd8 r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
2544TESTINST3("uqadd8 r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
2545TESTINST3("uqadd8 r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
2546TESTINST3("uqadd8 r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
2547TESTINST3("uqadd8 r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
2548TESTINST3("uqadd8 r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
2549TESTINST3("uqadd8 r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
2550TESTINST3("uqadd8 r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
2551TESTINST3("uqadd8 r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
2552TESTINST3("uqadd8 r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
2553TESTINST3("uqadd8 r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
2554TESTINST3("uqadd8 r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
2555TESTINST3("uqadd8 r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
2556TESTINST3("uqadd8 r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
2557TESTINST3("uqadd8 r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
2558TESTINST3("uqadd8 r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
2559TESTINST3("uqadd8 r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
2560TESTINST3("uqadd8 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
2561TESTINST3("uqadd8 r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
2562
2563 printf("------------ SEL --------------------------------------\n");
2564 TESTINST3("sel r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
2565 TESTINST3("sel r0, r1, r2", 0x7fff7fff, 0x00010001, r0, r1, r2, 0);
2566 TESTINST3("sel r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
2567 TESTINST3("sel r0, r1, r2", 0x00640064, 0x00030003, r0, r1, r2, 0);
2568 TESTINST3("sel r0, r1, r2", 0xfffcffff, 0xffff0001, r0, r1, r2, 0);
2569 TESTINST3("sel r0, r1, r2", 0xfff70fff, 0x00030003, r0, r1, r2, 0);
2570TESTINST3("sel r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
2571TESTINST3("sel r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
2572TESTINST3("sel r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
2573TESTINST3("sel r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
2574TESTINST3("sel r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
2575TESTINST3("sel r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
2576TESTINST3("sel r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
2577TESTINST3("sel r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
2578TESTINST3("sel r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
2579TESTINST3("sel r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
2580TESTINST3("sel r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
2581TESTINST3("sel r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
2582TESTINST3("sel r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
2583TESTINST3("sel r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
2584TESTINST3("sel r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
2585TESTINST3("sel r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
2586TESTINST3("sel r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
2587TESTINST3("sel r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
2588TESTINST3("sel r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
2589TESTINST3("sel r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
2590TESTINST3("sel r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
2591TESTINST3("sel r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
2592TESTINST3("sel r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
2593TESTINST3("sel r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
2594TESTINST3("sel r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
2595TESTINST3("sel r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
2596TESTINST3("sel r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
2597TESTINST3("sel r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
2598TESTINST3("sel r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
2599TESTINST3("sel r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
2600TESTINST3("sel r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
2601TESTINST3("sel r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
2602TESTINST3("sel r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
2603TESTINST3("sel r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
2604TESTINST3("sel r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
2605TESTINST3("sel r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
2606TESTINST3("sel r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
2607TESTINST3("sel r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
2608TESTINST3("sel r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
2609TESTINST3("sel r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
2610TESTINST3("sel r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
2611TESTINST3("sel r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
2612TESTINST3("sel r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
2613TESTINST3("sel r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
2614TESTINST3("sel r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
2615TESTINST3("sel r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
2616TESTINST3("sel r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
2617TESTINST3("sel r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
2618TESTINST3("sel r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
2619TESTINST3("sel r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
2620TESTINST3("sel r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
2621
2622 printf("------------ QSUB8-------------------------------------\n");
2623 TESTINST3("qsub8 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
2624 TESTINST3("qsub8 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
2625 TESTINST3("qsub8 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
2626 TESTINST3("qsub8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
2627 TESTINST3("qsub8 r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
2628 TESTINST3("qsub8 r0, r1, r2", 0x7fff00ff, 0x80017f01, r0, r1, r2, 0);
2629 TESTINST3("qsub8 r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
2630 TESTINST3("qsub8 r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
2631TESTINST3("qsub8 r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
2632TESTINST3("qsub8 r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
2633TESTINST3("qsub8 r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
2634TESTINST3("qsub8 r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
2635TESTINST3("qsub8 r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
2636TESTINST3("qsub8 r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
2637TESTINST3("qsub8 r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
2638TESTINST3("qsub8 r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
2639TESTINST3("qsub8 r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
2640TESTINST3("qsub8 r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
2641TESTINST3("qsub8 r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
2642TESTINST3("qsub8 r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
2643TESTINST3("qsub8 r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
2644TESTINST3("qsub8 r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
2645TESTINST3("qsub8 r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
2646TESTINST3("qsub8 r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
2647TESTINST3("qsub8 r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
2648TESTINST3("qsub8 r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
2649TESTINST3("qsub8 r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
2650TESTINST3("qsub8 r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
2651TESTINST3("qsub8 r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
2652TESTINST3("qsub8 r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
2653TESTINST3("qsub8 r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
2654TESTINST3("qsub8 r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
2655TESTINST3("qsub8 r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
2656TESTINST3("qsub8 r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
2657TESTINST3("qsub8 r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
2658TESTINST3("qsub8 r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
2659TESTINST3("qsub8 r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
2660TESTINST3("qsub8 r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
2661TESTINST3("qsub8 r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
2662TESTINST3("qsub8 r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
2663TESTINST3("qsub8 r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
2664TESTINST3("qsub8 r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
2665TESTINST3("qsub8 r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
2666TESTINST3("qsub8 r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
2667TESTINST3("qsub8 r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
2668TESTINST3("qsub8 r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
2669TESTINST3("qsub8 r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
2670TESTINST3("qsub8 r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
2671TESTINST3("qsub8 r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
2672TESTINST3("qsub8 r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
2673TESTINST3("qsub8 r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
2674TESTINST3("qsub8 r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
2675TESTINST3("qsub8 r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
2676TESTINST3("qsub8 r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
2677TESTINST3("qsub8 r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
2678TESTINST3("qsub8 r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
2679TESTINST3("qsub8 r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
2680TESTINST3("qsub8 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
2681TESTINST3("qsub8 r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
2682
2683 printf("------------ QADD8-------------------------------------\n");
2684 TESTINST3("qadd8 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
2685 TESTINST3("qadd8 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
2686 TESTINST3("qadd8 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
2687 TESTINST3("qadd8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
2688 TESTINST3("qadd8 r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
2689 TESTINST3("qadd8 r0, r1, r2", 0x7fff00ff, 0x80017f01, r0, r1, r2, 0);
2690 TESTINST3("qadd8 r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
2691 TESTINST3("qadd8 r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
2692TESTINST3("qadd8 r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
2693TESTINST3("qadd8 r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
2694TESTINST3("qadd8 r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
2695TESTINST3("qadd8 r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
2696TESTINST3("qadd8 r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
2697TESTINST3("qadd8 r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
2698TESTINST3("qadd8 r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
2699TESTINST3("qadd8 r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
2700TESTINST3("qadd8 r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
2701TESTINST3("qadd8 r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
2702TESTINST3("qadd8 r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
2703TESTINST3("qadd8 r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
2704TESTINST3("qadd8 r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
2705TESTINST3("qadd8 r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
2706TESTINST3("qadd8 r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
2707TESTINST3("qadd8 r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
2708TESTINST3("qadd8 r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
2709TESTINST3("qadd8 r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
2710TESTINST3("qadd8 r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
2711TESTINST3("qadd8 r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
2712TESTINST3("qadd8 r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
2713TESTINST3("qadd8 r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
2714TESTINST3("qadd8 r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
2715TESTINST3("qadd8 r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
2716TESTINST3("qadd8 r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
2717TESTINST3("qadd8 r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
2718TESTINST3("qadd8 r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
2719TESTINST3("qadd8 r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
2720TESTINST3("qadd8 r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
2721TESTINST3("qadd8 r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
2722TESTINST3("qadd8 r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
2723TESTINST3("qadd8 r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
2724TESTINST3("qadd8 r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
2725TESTINST3("qadd8 r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
2726TESTINST3("qadd8 r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
2727TESTINST3("qadd8 r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
2728TESTINST3("qadd8 r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
2729TESTINST3("qadd8 r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
2730TESTINST3("qadd8 r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
2731TESTINST3("qadd8 r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
2732TESTINST3("qadd8 r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
2733TESTINST3("qadd8 r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
2734TESTINST3("qadd8 r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
2735TESTINST3("qadd8 r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
2736TESTINST3("qadd8 r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
2737TESTINST3("qadd8 r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
2738TESTINST3("qadd8 r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
2739TESTINST3("qadd8 r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
2740TESTINST3("qadd8 r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
2741TESTINST3("qadd8 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
2742TESTINST3("qadd8 r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
2743
2744 printf("------------ SHADD8 -----------------------------------\n");
2745 TESTINST3("shadd8 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
2746 TESTINST3("shadd8 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
2747 TESTINST3("shadd8 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
2748 TESTINST3("shadd8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
2749 TESTINST3("shadd8 r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
2750 TESTINST3("shadd8 r0, r1, r2", 0x7fff00ff, 0x80017f01, r0, r1, r2, 0);
2751 TESTINST3("shadd8 r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
2752 TESTINST3("shadd8 r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
2753TESTINST3("shadd8 r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
2754TESTINST3("shadd8 r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
2755TESTINST3("shadd8 r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
2756TESTINST3("shadd8 r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
2757TESTINST3("shadd8 r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
2758TESTINST3("shadd8 r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
2759TESTINST3("shadd8 r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
2760TESTINST3("shadd8 r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
2761TESTINST3("shadd8 r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
2762TESTINST3("shadd8 r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
2763TESTINST3("shadd8 r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
2764TESTINST3("shadd8 r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
2765TESTINST3("shadd8 r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
2766TESTINST3("shadd8 r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
2767TESTINST3("shadd8 r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
2768TESTINST3("shadd8 r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
2769TESTINST3("shadd8 r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
2770TESTINST3("shadd8 r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
2771TESTINST3("shadd8 r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
2772TESTINST3("shadd8 r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
2773TESTINST3("shadd8 r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
2774TESTINST3("shadd8 r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
2775TESTINST3("shadd8 r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
2776TESTINST3("shadd8 r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
2777TESTINST3("shadd8 r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
2778TESTINST3("shadd8 r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
2779TESTINST3("shadd8 r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
2780TESTINST3("shadd8 r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
2781TESTINST3("shadd8 r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
2782TESTINST3("shadd8 r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
2783TESTINST3("shadd8 r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
2784TESTINST3("shadd8 r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
2785TESTINST3("shadd8 r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
2786TESTINST3("shadd8 r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
2787TESTINST3("shadd8 r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
2788TESTINST3("shadd8 r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
2789TESTINST3("shadd8 r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
2790TESTINST3("shadd8 r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
2791TESTINST3("shadd8 r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
2792TESTINST3("shadd8 r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
2793TESTINST3("shadd8 r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
2794TESTINST3("shadd8 r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
2795TESTINST3("shadd8 r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
2796TESTINST3("shadd8 r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
2797TESTINST3("shadd8 r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
2798TESTINST3("shadd8 r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
2799TESTINST3("shadd8 r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
2800TESTINST3("shadd8 r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
2801TESTINST3("shadd8 r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
2802TESTINST3("shadd8 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
2803TESTINST3("shadd8 r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
2804
sewardj9fd1aa32010-09-21 09:05:20 +00002805 printf("------------ UHADD8 -----------------------------------\n");
2806 TESTINST3("uhadd8 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
2807 TESTINST3("uhadd8 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
2808 TESTINST3("uhadd8 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
2809 TESTINST3("uhadd8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
2810 TESTINST3("uhadd8 r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
2811 TESTINST3("uhadd8 r0, r1, r2", 0x7fff00ff, 0x80017f01, r0, r1, r2, 0);
2812 TESTINST3("uhadd8 r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
2813 TESTINST3("uhadd8 r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
2814TESTINST3("uhadd8 r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
2815TESTINST3("uhadd8 r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
2816TESTINST3("uhadd8 r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
2817TESTINST3("uhadd8 r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
2818TESTINST3("uhadd8 r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
2819TESTINST3("uhadd8 r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
2820TESTINST3("uhadd8 r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
2821TESTINST3("uhadd8 r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
2822TESTINST3("uhadd8 r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
2823TESTINST3("uhadd8 r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
2824TESTINST3("uhadd8 r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
2825TESTINST3("uhadd8 r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
2826TESTINST3("uhadd8 r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
2827TESTINST3("uhadd8 r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
2828TESTINST3("uhadd8 r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
2829TESTINST3("uhadd8 r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
2830TESTINST3("uhadd8 r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
2831TESTINST3("uhadd8 r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
2832TESTINST3("uhadd8 r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
2833TESTINST3("uhadd8 r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
2834TESTINST3("uhadd8 r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
2835TESTINST3("uhadd8 r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
2836TESTINST3("uhadd8 r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
2837TESTINST3("uhadd8 r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
2838TESTINST3("uhadd8 r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
2839TESTINST3("uhadd8 r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
2840TESTINST3("uhadd8 r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
2841TESTINST3("uhadd8 r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
2842TESTINST3("uhadd8 r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
2843TESTINST3("uhadd8 r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
2844TESTINST3("uhadd8 r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
2845TESTINST3("uhadd8 r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
2846TESTINST3("uhadd8 r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
2847TESTINST3("uhadd8 r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
2848TESTINST3("uhadd8 r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
2849TESTINST3("uhadd8 r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
2850TESTINST3("uhadd8 r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
2851TESTINST3("uhadd8 r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
2852TESTINST3("uhadd8 r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
2853TESTINST3("uhadd8 r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
2854TESTINST3("uhadd8 r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
2855TESTINST3("uhadd8 r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
2856TESTINST3("uhadd8 r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
2857TESTINST3("uhadd8 r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
2858TESTINST3("uhadd8 r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
2859TESTINST3("uhadd8 r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
2860TESTINST3("uhadd8 r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
2861TESTINST3("uhadd8 r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
2862TESTINST3("uhadd8 r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
2863TESTINST3("uhadd8 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
2864TESTINST3("uhadd8 r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
2865
sewardja00c6742012-06-22 09:28:58 +00002866 printf("------------ UHADD16 -----------------------------------\n");
2867 TESTINST3("uhadd16 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
2868 TESTINST3("uhadd16 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
2869 TESTINST3("uhadd16 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
2870 TESTINST3("uhadd16 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
2871 TESTINST3("uhadd16 r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
2872 TESTINST3("uhadd16 r0, r1, r2", 0x7fff00ff, 0x80017f01, r0, r1, r2, 0);
2873 TESTINST3("uhadd16 r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
2874 TESTINST3("uhadd16 r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
2875TESTINST3("uhadd16 r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
2876TESTINST3("uhadd16 r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
2877TESTINST3("uhadd16 r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
2878TESTINST3("uhadd16 r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
2879TESTINST3("uhadd16 r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
2880TESTINST3("uhadd16 r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
2881TESTINST3("uhadd16 r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
2882TESTINST3("uhadd16 r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
2883TESTINST3("uhadd16 r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
2884TESTINST3("uhadd16 r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
2885TESTINST3("uhadd16 r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
2886TESTINST3("uhadd16 r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
2887TESTINST3("uhadd16 r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
2888TESTINST3("uhadd16 r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
2889TESTINST3("uhadd16 r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
2890TESTINST3("uhadd16 r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
2891TESTINST3("uhadd16 r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
2892TESTINST3("uhadd16 r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
2893TESTINST3("uhadd16 r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
2894TESTINST3("uhadd16 r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
2895TESTINST3("uhadd16 r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
2896TESTINST3("uhadd16 r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
2897TESTINST3("uhadd16 r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
2898TESTINST3("uhadd16 r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
2899TESTINST3("uhadd16 r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
2900TESTINST3("uhadd16 r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
2901TESTINST3("uhadd16 r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
2902TESTINST3("uhadd16 r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
2903TESTINST3("uhadd16 r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
2904TESTINST3("uhadd16 r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
2905TESTINST3("uhadd16 r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
2906TESTINST3("uhadd16 r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
2907TESTINST3("uhadd16 r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
2908TESTINST3("uhadd16 r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
2909TESTINST3("uhadd16 r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
2910TESTINST3("uhadd16 r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
2911TESTINST3("uhadd16 r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
2912TESTINST3("uhadd16 r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
2913TESTINST3("uhadd16 r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
2914TESTINST3("uhadd16 r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
2915TESTINST3("uhadd16 r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
2916TESTINST3("uhadd16 r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
2917TESTINST3("uhadd16 r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
2918TESTINST3("uhadd16 r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
2919TESTINST3("uhadd16 r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
2920TESTINST3("uhadd16 r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
2921TESTINST3("uhadd16 r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
2922TESTINST3("uhadd16 r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
2923TESTINST3("uhadd16 r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
2924TESTINST3("uhadd16 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
2925TESTINST3("uhadd16 r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
2926
sewardj81e06dc2010-08-29 12:35:37 +00002927 printf("----------------- SSAT ----------------- \n");
2928 TESTINST2("ssat r0, #1, r1, LSL #31", 0x80008000, r0, r1, 0);
2929 TESTINST2("ssat r0, #6, r1, LSL #24", 0x80008000, r0, r1, 0);
2930 TESTINST2("ssat r0, #8, r1, ASR #18", 0x80008000, r0, r1, 0);
2931 TESTINST2("ssat r0, #12, r1, ASR #16", 0x80008000, r0, r1, 0);
2932 TESTINST2("ssat r0, #16, r1, LSL #12", 0xffff0009, r0, r1, 0);
2933 TESTINST2("ssat r0, #18, r1, LSL #8", 0xffff0009, r0, r1, 0);
2934 TESTINST2("ssat r0, #24, r1, ASR #6", 0xffff0009, r0, r1, 0);
2935 TESTINST2("ssat r0, #31, r1, ASR #1", 0xffff0009, r0, r1, 0);
2936TESTINST2("ssat r0, #1, r1", 0x256bfdd6, r0, r1, 0);
2937TESTINST2("ssat r0, #1, r1", 0xc02a0c05, r0, r1, 0);
2938TESTINST2("ssat r0, #1, r1", 0xee2fa46e, r0, r1, 0);
2939TESTINST2("ssat r0, #1, r1", 0x97a7da20, r0, r1, 0);
2940TESTINST2("ssat r0, #32, r1", 0xa231d5e6, r0, r1, 0);
2941TESTINST2("ssat r0, #32, r1", 0x10e1968a, r0, r1, 0);
2942TESTINST2("ssat r0, #32, r1", 0x0e089270, r0, r1, 0);
2943TESTINST2("ssat r0, #32, r1", 0x9e8e0185, r0, r1, 0);
2944TESTINST2("ssat r0, #32, r1", 0x3096f12e, r0, r1, 0);
2945TESTINST2("ssat r0, #32, r1", 0xffc134df, r0, r1, 0);
2946TESTINST2("ssat r0, #1, r1, LSL #31", 0x256bfdd6, r0, r1, 0);
2947TESTINST2("ssat r0, #1, r1, LSL #31", 0xc02a0c05, r0, r1, 0);
2948TESTINST2("ssat r0, #1, r1, LSL #31", 0xee2fa46e, r0, r1, 0);
2949TESTINST2("ssat r0, #1, r1, LSL #31", 0x97a7da20, r0, r1, 0);
2950TESTINST2("ssat r0, #1, r1, LSL #31", 0xa231d5e6, r0, r1, 0);
2951TESTINST2("ssat r0, #1, r1, LSL #31", 0x10e1968a, r0, r1, 0);
2952TESTINST2("ssat r0, #1, r1, LSL #31", 0x0e089270, r0, r1, 0);
2953TESTINST2("ssat r0, #1, r1, LSL #31", 0x9e8e0185, r0, r1, 0);
2954TESTINST2("ssat r0, #1, r1, LSL #31", 0x3096f12e, r0, r1, 0);
2955TESTINST2("ssat r0, #1, r1, LSL #31", 0xffc134df, r0, r1, 0);
2956TESTINST2("ssat r0, #3, r1, LSL #28", 0x256bfdd6, r0, r1, 0);
2957TESTINST2("ssat r0, #3, r1, LSL #28", 0xc02a0c05, r0, r1, 0);
2958TESTINST2("ssat r0, #3, r1, LSL #28", 0xee2fa46e, r0, r1, 0);
2959TESTINST2("ssat r0, #3, r1, LSL #28", 0x97a7da20, r0, r1, 0);
2960TESTINST2("ssat r0, #3, r1, LSL #28", 0xa231d5e6, r0, r1, 0);
2961TESTINST2("ssat r0, #3, r1, LSL #28", 0x10e1968a, r0, r1, 0);
2962TESTINST2("ssat r0, #3, r1, LSL #28", 0x0e089270, r0, r1, 0);
2963TESTINST2("ssat r0, #3, r1, LSL #28", 0x9e8e0185, r0, r1, 0);
2964TESTINST2("ssat r0, #3, r1, LSL #28", 0x3096f12e, r0, r1, 0);
2965TESTINST2("ssat r0, #3, r1, LSL #28", 0xffc134df, r0, r1, 0);
2966TESTINST2("ssat r0, #6, r1, LSL #24", 0x256bfdd6, r0, r1, 0);
2967TESTINST2("ssat r0, #6, r1, LSL #24", 0xc02a0c05, r0, r1, 0);
2968TESTINST2("ssat r0, #6, r1, LSL #24", 0xee2fa46e, r0, r1, 0);
2969TESTINST2("ssat r0, #6, r1, LSL #24", 0x97a7da20, r0, r1, 0);
2970TESTINST2("ssat r0, #6, r1, LSL #24", 0xa231d5e6, r0, r1, 0);
2971TESTINST2("ssat r0, #6, r1, LSL #24", 0x10e1968a, r0, r1, 0);
2972TESTINST2("ssat r0, #6, r1, LSL #24", 0x0e089270, r0, r1, 0);
2973TESTINST2("ssat r0, #6, r1, LSL #24", 0x9e8e0185, r0, r1, 0);
2974TESTINST2("ssat r0, #6, r1, LSL #24", 0x3096f12e, r0, r1, 0);
2975TESTINST2("ssat r0, #6, r1, LSL #24", 0xffc134df, r0, r1, 0);
2976TESTINST2("ssat r0, #8, r1, ASR #18", 0x256bfdd6, r0, r1, 0);
2977TESTINST2("ssat r0, #8, r1, ASR #18", 0xc02a0c05, r0, r1, 0);
2978TESTINST2("ssat r0, #8, r1, ASR #18", 0xee2fa46e, r0, r1, 0);
2979TESTINST2("ssat r0, #8, r1, ASR #18", 0x97a7da20, r0, r1, 0);
2980TESTINST2("ssat r0, #8, r1, ASR #18", 0xa231d5e6, r0, r1, 0);
2981TESTINST2("ssat r0, #8, r1, ASR #18", 0x10e1968a, r0, r1, 0);
2982TESTINST2("ssat r0, #8, r1, ASR #18", 0x0e089270, r0, r1, 0);
2983TESTINST2("ssat r0, #8, r1, ASR #18", 0x9e8e0185, r0, r1, 0);
2984TESTINST2("ssat r0, #8, r1, ASR #18", 0x3096f12e, r0, r1, 0);
2985TESTINST2("ssat r0, #8, r1, ASR #18", 0xffc134df, r0, r1, 0);
2986TESTINST2("ssat r0, #12, r1, ASR #16", 0x256bfdd6, r0, r1, 0);
2987TESTINST2("ssat r0, #12, r1, ASR #16", 0xc02a0c05, r0, r1, 0);
2988TESTINST2("ssat r0, #12, r1, ASR #16", 0xee2fa46e, r0, r1, 0);
2989TESTINST2("ssat r0, #12, r1, ASR #16", 0x97a7da20, r0, r1, 0);
2990TESTINST2("ssat r0, #12, r1, ASR #16", 0xa231d5e6, r0, r1, 0);
2991TESTINST2("ssat r0, #12, r1, ASR #16", 0x10e1968a, r0, r1, 0);
2992TESTINST2("ssat r0, #12, r1, ASR #16", 0x0e089270, r0, r1, 0);
2993TESTINST2("ssat r0, #12, r1, ASR #16", 0x9e8e0185, r0, r1, 0);
2994TESTINST2("ssat r0, #12, r1, ASR #16", 0x3096f12e, r0, r1, 0);
2995TESTINST2("ssat r0, #12, r1, ASR #16", 0xffc134df, r0, r1, 0);
2996TESTINST2("ssat r0, #16, r1, LSL #12", 0x256bfdd6, r0, r1, 0);
2997TESTINST2("ssat r0, #16, r1, LSL #12", 0xc02a0c05, r0, r1, 0);
2998TESTINST2("ssat r0, #16, r1, LSL #12", 0xee2fa46e, r0, r1, 0);
2999TESTINST2("ssat r0, #16, r1, LSL #12", 0x97a7da20, r0, r1, 0);
3000TESTINST2("ssat r0, #16, r1, LSL #12", 0xa231d5e6, r0, r1, 0);
3001TESTINST2("ssat r0, #16, r1, LSL #12", 0x10e1968a, r0, r1, 0);
3002TESTINST2("ssat r0, #16, r1, LSL #12", 0x0e089270, r0, r1, 0);
3003TESTINST2("ssat r0, #16, r1, LSL #12", 0x9e8e0185, r0, r1, 0);
3004TESTINST2("ssat r0, #16, r1, LSL #12", 0x3096f12e, r0, r1, 0);
3005TESTINST2("ssat r0, #16, r1, LSL #12", 0xffc134df, r0, r1, 0);
3006TESTINST2("ssat r0, #18, r1, LSL #8", 0x256bfdd6, r0, r1, 0);
3007TESTINST2("ssat r0, #18, r1, LSL #8", 0xc02a0c05, r0, r1, 0);
3008TESTINST2("ssat r0, #18, r1, LSL #8", 0xee2fa46e, r0, r1, 0);
3009TESTINST2("ssat r0, #18, r1, LSL #8", 0x97a7da20, r0, r1, 0);
3010TESTINST2("ssat r0, #18, r1, LSL #8", 0xa231d5e6, r0, r1, 0);
3011TESTINST2("ssat r0, #18, r1, LSL #8", 0x10e1968a, r0, r1, 0);
3012TESTINST2("ssat r0, #18, r1, LSL #8", 0x0e089270, r0, r1, 0);
3013TESTINST2("ssat r0, #18, r1, LSL #8", 0x9e8e0185, r0, r1, 0);
3014TESTINST2("ssat r0, #18, r1, LSL #8", 0x3096f12e, r0, r1, 0);
3015TESTINST2("ssat r0, #18, r1, LSL #8", 0xffc134df, r0, r1, 0);
3016TESTINST2("ssat r0, #24, r1, ASR #6", 0x256bfdd6, r0, r1, 0);
3017TESTINST2("ssat r0, #24, r1, ASR #6", 0xc02a0c05, r0, r1, 0);
3018TESTINST2("ssat r0, #24, r1, ASR #6", 0xee2fa46e, r0, r1, 0);
3019TESTINST2("ssat r0, #24, r1, ASR #6", 0x97a7da20, r0, r1, 0);
3020TESTINST2("ssat r0, #24, r1, ASR #6", 0xa231d5e6, r0, r1, 0);
3021TESTINST2("ssat r0, #24, r1, ASR #6", 0x10e1968a, r0, r1, 0);
3022TESTINST2("ssat r0, #24, r1, ASR #6", 0x0e089270, r0, r1, 0);
3023TESTINST2("ssat r0, #24, r1, ASR #6", 0x9e8e0185, r0, r1, 0);
3024TESTINST2("ssat r0, #24, r1, ASR #6", 0x3096f12e, r0, r1, 0);
3025TESTINST2("ssat r0, #24, r1, ASR #6", 0xffc134df, r0, r1, 0);
3026TESTINST2("ssat r0, #28, r1, ASR #3", 0x256bfdd6, r0, r1, 0);
3027TESTINST2("ssat r0, #28, r1, ASR #3", 0xc02a0c05, r0, r1, 0);
3028TESTINST2("ssat r0, #28, r1, ASR #3", 0xee2fa46e, r0, r1, 0);
3029TESTINST2("ssat r0, #28, r1, ASR #3", 0x97a7da20, r0, r1, 0);
3030TESTINST2("ssat r0, #28, r1, ASR #3", 0xa231d5e6, r0, r1, 0);
3031TESTINST2("ssat r0, #28, r1, ASR #3", 0x10e1968a, r0, r1, 0);
3032TESTINST2("ssat r0, #28, r1, ASR #3", 0x0e089270, r0, r1, 0);
3033TESTINST2("ssat r0, #28, r1, ASR #3", 0x9e8e0185, r0, r1, 0);
3034TESTINST2("ssat r0, #28, r1, ASR #3", 0x3096f12e, r0, r1, 0);
3035TESTINST2("ssat r0, #28, r1, ASR #3", 0xffc134df, r0, r1, 0);
3036TESTINST2("ssat r0, #31, r1, ASR #1", 0x256bfdd6, r0, r1, 0);
3037TESTINST2("ssat r0, #31, r1, ASR #1", 0xc02a0c05, r0, r1, 0);
3038TESTINST2("ssat r0, #31, r1, ASR #1", 0xee2fa46e, r0, r1, 0);
3039TESTINST2("ssat r0, #31, r1, ASR #1", 0x97a7da20, r0, r1, 0);
3040TESTINST2("ssat r0, #31, r1, ASR #1", 0xa231d5e6, r0, r1, 0);
3041TESTINST2("ssat r0, #31, r1, ASR #1", 0x10e1968a, r0, r1, 0);
3042TESTINST2("ssat r0, #31, r1, ASR #1", 0x0e089270, r0, r1, 0);
3043TESTINST2("ssat r0, #31, r1, ASR #1", 0x9e8e0185, r0, r1, 0);
3044TESTINST2("ssat r0, #31, r1, ASR #1", 0x3096f12e, r0, r1, 0);
3045TESTINST2("ssat r0, #31, r1, ASR #1", 0xffc134df, r0, r1, 0);
3046#ifndef __thumb__
3047TESTINST2("ssat r0, #1, r1, ASR #32", 0x256bfdd6, r0, r1, 0);
3048TESTINST2("ssat r0, #1, r1, ASR #32", 0xc02a0c05, r0, r1, 0);
3049TESTINST2("ssat r0, #1, r1, ASR #32", 0xee2fa46e, r0, r1, 0);
3050TESTINST2("ssat r0, #1, r1, ASR #32", 0x97a7da20, r0, r1, 0);
3051TESTINST2("ssat r0, #1, r1, ASR #32", 0xa231d5e6, r0, r1, 0);
3052TESTINST2("ssat r0, #1, r1, ASR #32", 0x10e1968a, r0, r1, 0);
3053TESTINST2("ssat r0, #1, r1, ASR #32", 0x0e089270, r0, r1, 0);
3054TESTINST2("ssat r0, #1, r1, ASR #32", 0x9e8e0185, r0, r1, 0);
3055TESTINST2("ssat r0, #1, r1, ASR #32", 0x3096f12e, r0, r1, 0);
3056TESTINST2("ssat r0, #1, r1, ASR #32", 0xffc134df, r0, r1, 0);
3057TESTINST2("ssat r0, #32, r1, ASR #32", 0x256bfdd6, r0, r1, 0);
3058TESTINST2("ssat r0, #32, r1, ASR #32", 0xc02a0c05, r0, r1, 0);
3059TESTINST2("ssat r0, #32, r1, ASR #32", 0xee2fa46e, r0, r1, 0);
3060TESTINST2("ssat r0, #32, r1, ASR #32", 0x97a7da20, r0, r1, 0);
3061TESTINST2("ssat r0, #32, r1, ASR #32", 0xa231d5e6, r0, r1, 0);
3062TESTINST2("ssat r0, #32, r1, ASR #32", 0x10e1968a, r0, r1, 0);
3063TESTINST2("ssat r0, #32, r1, ASR #32", 0x0e089270, r0, r1, 0);
3064TESTINST2("ssat r0, #32, r1, ASR #32", 0x9e8e0185, r0, r1, 0);
3065TESTINST2("ssat r0, #32, r1, ASR #32", 0x3096f12e, r0, r1, 0);
3066TESTINST2("ssat r0, #32, r1, ASR #32", 0xffc134df, r0, r1, 0);
3067#endif
3068
3069 printf("---------------- SADD8 ----------------- \n");
3070 TESTINST3("sadd8 r0, r1, r2", 0x00f7ffff, 0x00e800fd, r0, r1, r2, 0);
3071 TESTINST3("sadd8 r0, r1, r2", 0x00e800fd, 0x00f7ffff, r0, r1, r2, 0);
3072 TESTINST3("sadd8 r0, r1, r2", 0x00fd00e8, 0xffff00f7, r0, r1, r2, 0);
3073 TESTINST3("sadd8 r0, r1, r2", 0xffff00f7, 0x00fd0018, r0, r1, r2, 0);
3074 TESTINST3("sadd8 r0, r1, r2", 0x0000fd18, 0xff00fff7, r0, r1, r2, 0);
3075 TESTINST3("sadd8 r0, r1, r2", 0xffff00f7, 0x00fd00e8, r0, r1, r2, 0);
3076 TESTINST3("sadd8 r0, r1, r2", 0x00fefd18, 0xff07fff7, r0, r1, r2, 0);
3077 TESTINST3("sadd8 r0, r1, r2", 0xff07fff7, 0x00fefde8, r0, r1, r2, 0);
3078TESTINST3("sadd8 r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
3079TESTINST3("sadd8 r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
3080TESTINST3("sadd8 r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
3081TESTINST3("sadd8 r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
3082TESTINST3("sadd8 r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
3083TESTINST3("sadd8 r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
3084TESTINST3("sadd8 r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
3085TESTINST3("sadd8 r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
3086TESTINST3("sadd8 r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
3087TESTINST3("sadd8 r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
3088TESTINST3("sadd8 r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
3089TESTINST3("sadd8 r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
3090TESTINST3("sadd8 r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
3091TESTINST3("sadd8 r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
3092TESTINST3("sadd8 r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
3093TESTINST3("sadd8 r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
3094TESTINST3("sadd8 r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
3095TESTINST3("sadd8 r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
3096TESTINST3("sadd8 r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
3097TESTINST3("sadd8 r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
3098TESTINST3("sadd8 r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
3099TESTINST3("sadd8 r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
3100TESTINST3("sadd8 r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
3101TESTINST3("sadd8 r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
3102TESTINST3("sadd8 r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
3103TESTINST3("sadd8 r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
3104TESTINST3("sadd8 r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
3105TESTINST3("sadd8 r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
3106TESTINST3("sadd8 r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
3107TESTINST3("sadd8 r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
3108TESTINST3("sadd8 r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
3109TESTINST3("sadd8 r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
3110TESTINST3("sadd8 r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
3111TESTINST3("sadd8 r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
3112TESTINST3("sadd8 r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
3113TESTINST3("sadd8 r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
3114TESTINST3("sadd8 r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
3115TESTINST3("sadd8 r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
3116TESTINST3("sadd8 r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
3117TESTINST3("sadd8 r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
3118TESTINST3("sadd8 r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
3119TESTINST3("sadd8 r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3120TESTINST3("sadd8 r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3121TESTINST3("sadd8 r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3122TESTINST3("sadd8 r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3123TESTINST3("sadd8 r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3124TESTINST3("sadd8 r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3125TESTINST3("sadd8 r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3126TESTINST3("sadd8 r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3127TESTINST3("sadd8 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3128TESTINST3("sadd8 r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3129
sewardj9fd1aa32010-09-21 09:05:20 +00003130 printf("---------------- SSUB8 ----------------- \n");
3131 TESTINST3("ssub8 r0, r1, r2", 0x00f7ffff, 0x00e800fd, r0, r1, r2, 0);
3132 TESTINST3("ssub8 r0, r1, r2", 0x00e800fd, 0x00f7ffff, r0, r1, r2, 0);
3133 TESTINST3("ssub8 r0, r1, r2", 0x00fd00e8, 0xffff00f7, r0, r1, r2, 0);
3134 TESTINST3("ssub8 r0, r1, r2", 0xffff00f7, 0x00fd0018, r0, r1, r2, 0);
3135 TESTINST3("ssub8 r0, r1, r2", 0x0000fd18, 0xff00fff7, r0, r1, r2, 0);
3136 TESTINST3("ssub8 r0, r1, r2", 0xffff00f7, 0x00fd00e8, r0, r1, r2, 0);
3137 TESTINST3("ssub8 r0, r1, r2", 0x00fefd18, 0xff07fff7, r0, r1, r2, 0);
3138 TESTINST3("ssub8 r0, r1, r2", 0xff07fff7, 0x00fefde8, r0, r1, r2, 0);
3139TESTINST3("ssub8 r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
3140TESTINST3("ssub8 r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
3141TESTINST3("ssub8 r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
3142TESTINST3("ssub8 r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
3143TESTINST3("ssub8 r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
3144TESTINST3("ssub8 r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
3145TESTINST3("ssub8 r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
3146TESTINST3("ssub8 r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
3147TESTINST3("ssub8 r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
3148TESTINST3("ssub8 r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
3149TESTINST3("ssub8 r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
3150TESTINST3("ssub8 r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
3151TESTINST3("ssub8 r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
3152TESTINST3("ssub8 r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
3153TESTINST3("ssub8 r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
3154TESTINST3("ssub8 r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
3155TESTINST3("ssub8 r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
3156TESTINST3("ssub8 r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
3157TESTINST3("ssub8 r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
3158TESTINST3("ssub8 r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
3159TESTINST3("ssub8 r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
3160TESTINST3("ssub8 r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
3161TESTINST3("ssub8 r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
3162TESTINST3("ssub8 r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
3163TESTINST3("ssub8 r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
3164TESTINST3("ssub8 r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
3165TESTINST3("ssub8 r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
3166TESTINST3("ssub8 r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
3167TESTINST3("ssub8 r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
3168TESTINST3("ssub8 r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
3169TESTINST3("ssub8 r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
3170TESTINST3("ssub8 r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
3171TESTINST3("ssub8 r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
3172TESTINST3("ssub8 r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
3173TESTINST3("ssub8 r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
3174TESTINST3("ssub8 r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
3175TESTINST3("ssub8 r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
3176TESTINST3("ssub8 r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
3177TESTINST3("ssub8 r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
3178TESTINST3("ssub8 r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
3179TESTINST3("ssub8 r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
3180TESTINST3("ssub8 r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3181TESTINST3("ssub8 r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3182TESTINST3("ssub8 r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3183TESTINST3("ssub8 r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3184TESTINST3("ssub8 r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3185TESTINST3("ssub8 r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3186TESTINST3("ssub8 r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3187TESTINST3("ssub8 r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3188TESTINST3("ssub8 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3189TESTINST3("ssub8 r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3190
sewardj81e06dc2010-08-29 12:35:37 +00003191 printf("------------ SXTAB ------------\n");
3192 TESTINST3("sxtab r0, r1, r2, ROR #24", 0x31415927, 0x27182819, r0, r1, r2, 0);
3193 TESTINST3("sxtab r0, r1, r2, ROR #16", 0x31415927, 0x27182819, r0, r1, r2, 0);
3194 TESTINST3("sxtab r0, r1, r2, ROR #8", 0x31415927, 0x27182819, r0, r1, r2, 0);
3195 TESTINST3("sxtab r0, r1, r2, ROR #0", 0x31415927, 0x27182819, r0, r1, r2, 0);
3196
3197 TESTINST3("sxtab r0, r1, r2, ROR #24", 0x31415927, 0x27182899, r0, r1, r2, 0);
3198 TESTINST3("sxtab r0, r1, r2, ROR #16", 0x31415927, 0x27182899, r0, r1, r2, 0);
3199 TESTINST3("sxtab r0, r1, r2, ROR #8", 0x31415927, 0x27182899, r0, r1, r2, 0);
3200 TESTINST3("sxtab r0, r1, r2, ROR #0", 0x31415927, 0x27182899, r0, r1, r2, 0);
3201
3202TESTINST3("sxtab r0, r1, r2, ROR #24", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3203TESTINST3("sxtab r0, r1, r2, ROR #24", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3204TESTINST3("sxtab r0, r1, r2, ROR #24", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3205TESTINST3("sxtab r0, r1, r2, ROR #24", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3206TESTINST3("sxtab r0, r1, r2, ROR #24", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3207TESTINST3("sxtab r0, r1, r2, ROR #24", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3208TESTINST3("sxtab r0, r1, r2, ROR #24", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3209TESTINST3("sxtab r0, r1, r2, ROR #24", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3210TESTINST3("sxtab r0, r1, r2, ROR #24", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3211TESTINST3("sxtab r0, r1, r2, ROR #24", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3212
3213TESTINST3("sxtab r0, r1, r2, ROR #16", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3214TESTINST3("sxtab r0, r1, r2, ROR #16", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3215TESTINST3("sxtab r0, r1, r2, ROR #16", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3216TESTINST3("sxtab r0, r1, r2, ROR #16", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3217TESTINST3("sxtab r0, r1, r2, ROR #16", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3218TESTINST3("sxtab r0, r1, r2, ROR #16", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3219TESTINST3("sxtab r0, r1, r2, ROR #16", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3220TESTINST3("sxtab r0, r1, r2, ROR #16", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3221TESTINST3("sxtab r0, r1, r2, ROR #16", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3222TESTINST3("sxtab r0, r1, r2, ROR #16", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3223
3224TESTINST3("sxtab r0, r1, r2, ROR #8", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3225TESTINST3("sxtab r0, r1, r2, ROR #8", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3226TESTINST3("sxtab r0, r1, r2, ROR #8", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3227TESTINST3("sxtab r0, r1, r2, ROR #8", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3228TESTINST3("sxtab r0, r1, r2, ROR #8", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3229TESTINST3("sxtab r0, r1, r2, ROR #8", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3230TESTINST3("sxtab r0, r1, r2, ROR #8", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3231TESTINST3("sxtab r0, r1, r2, ROR #8", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3232TESTINST3("sxtab r0, r1, r2, ROR #8", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3233TESTINST3("sxtab r0, r1, r2, ROR #8", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3234
3235TESTINST3("sxtab r0, r1, r2, ROR #0", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3236TESTINST3("sxtab r0, r1, r2, ROR #0", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3237TESTINST3("sxtab r0, r1, r2, ROR #0", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3238TESTINST3("sxtab r0, r1, r2, ROR #0", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3239TESTINST3("sxtab r0, r1, r2, ROR #0", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3240TESTINST3("sxtab r0, r1, r2, ROR #0", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3241TESTINST3("sxtab r0, r1, r2, ROR #0", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3242TESTINST3("sxtab r0, r1, r2, ROR #0", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3243TESTINST3("sxtab r0, r1, r2, ROR #0", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3244TESTINST3("sxtab r0, r1, r2, ROR #0", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3245
3246 printf("------------ UXTAB ------------\n");
3247 TESTINST3("uxtab r0, r1, r2, ROR #24", 0x31415927, 0x27182819, r0, r1, r2, 0);
3248 TESTINST3("uxtab r0, r1, r2, ROR #16", 0x31415927, 0x27182819, r0, r1, r2, 0);
3249 TESTINST3("uxtab r0, r1, r2, ROR #8", 0x31415927, 0x27182819, r0, r1, r2, 0);
3250 TESTINST3("uxtab r0, r1, r2, ROR #0", 0x31415927, 0x27182819, r0, r1, r2, 0);
3251
3252 TESTINST3("uxtab r0, r1, r2, ROR #24", 0x31415927, 0x27182899, r0, r1, r2, 0);
3253 TESTINST3("uxtab r0, r1, r2, ROR #16", 0x31415927, 0x27182899, r0, r1, r2, 0);
3254 TESTINST3("uxtab r0, r1, r2, ROR #8", 0x31415927, 0x27182899, r0, r1, r2, 0);
3255 TESTINST3("uxtab r0, r1, r2, ROR #0", 0x31415927, 0x27182899, r0, r1, r2, 0);
3256
3257TESTINST3("uxtab r0, r1, r2, ROR #24", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3258TESTINST3("uxtab r0, r1, r2, ROR #24", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3259TESTINST3("uxtab r0, r1, r2, ROR #24", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3260TESTINST3("uxtab r0, r1, r2, ROR #24", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3261TESTINST3("uxtab r0, r1, r2, ROR #24", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3262TESTINST3("uxtab r0, r1, r2, ROR #24", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3263TESTINST3("uxtab r0, r1, r2, ROR #24", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3264TESTINST3("uxtab r0, r1, r2, ROR #24", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3265TESTINST3("uxtab r0, r1, r2, ROR #24", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3266TESTINST3("uxtab r0, r1, r2, ROR #24", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3267
3268TESTINST3("uxtab r0, r1, r2, ROR #16", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3269TESTINST3("uxtab r0, r1, r2, ROR #16", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3270TESTINST3("uxtab r0, r1, r2, ROR #16", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3271TESTINST3("uxtab r0, r1, r2, ROR #16", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3272TESTINST3("uxtab r0, r1, r2, ROR #16", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3273TESTINST3("uxtab r0, r1, r2, ROR #16", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3274TESTINST3("uxtab r0, r1, r2, ROR #16", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3275TESTINST3("uxtab r0, r1, r2, ROR #16", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3276TESTINST3("uxtab r0, r1, r2, ROR #16", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3277TESTINST3("uxtab r0, r1, r2, ROR #16", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3278
3279TESTINST3("uxtab r0, r1, r2, ROR #8", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3280TESTINST3("uxtab r0, r1, r2, ROR #8", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3281TESTINST3("uxtab r0, r1, r2, ROR #8", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3282TESTINST3("uxtab r0, r1, r2, ROR #8", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3283TESTINST3("uxtab r0, r1, r2, ROR #8", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3284TESTINST3("uxtab r0, r1, r2, ROR #8", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3285TESTINST3("uxtab r0, r1, r2, ROR #8", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3286TESTINST3("uxtab r0, r1, r2, ROR #8", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3287TESTINST3("uxtab r0, r1, r2, ROR #8", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3288TESTINST3("uxtab r0, r1, r2, ROR #8", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3289
3290TESTINST3("uxtab r0, r1, r2, ROR #0", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3291TESTINST3("uxtab r0, r1, r2, ROR #0", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3292TESTINST3("uxtab r0, r1, r2, ROR #0", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3293TESTINST3("uxtab r0, r1, r2, ROR #0", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3294TESTINST3("uxtab r0, r1, r2, ROR #0", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3295TESTINST3("uxtab r0, r1, r2, ROR #0", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3296TESTINST3("uxtab r0, r1, r2, ROR #0", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3297TESTINST3("uxtab r0, r1, r2, ROR #0", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3298TESTINST3("uxtab r0, r1, r2, ROR #0", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3299TESTINST3("uxtab r0, r1, r2, ROR #0", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3300
3301 printf("----------- UXTAB16 -----------\n");
3302 TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0x31415927, 0x27182819, r0, r1, r2, 0);
3303 TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0x31415927, 0x27182819, r0, r1, r2, 0);
3304 TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0x31415927, 0x27182819, r0, r1, r2, 0);
3305 TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0x31415927, 0x27182819, r0, r1, r2, 0);
3306
3307 TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0x31415927, 0x27182899, r0, r1, r2, 0);
3308 TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0x31415927, 0x27182899, r0, r1, r2, 0);
3309 TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0x31415927, 0x27182899, r0, r1, r2, 0);
3310 TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0x31415927, 0x27182899, r0, r1, r2, 0);
3311 TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0x3141FFFF, 0x27182899, r0, r1, r2, 0);
3312
3313TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3314TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3315TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3316TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3317TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3318TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3319TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3320TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3321TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3322TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3323
3324TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3325TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3326TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3327TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3328TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3329TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3330TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3331TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3332TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3333TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3334
3335TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3336TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3337TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3338TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3339TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3340TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3341TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3342TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3343TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3344TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3345
3346TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3347TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3348TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3349TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3350TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3351TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3352TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3353TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3354TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3355TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3356
3357 printf("------------ SXTAH ------------\n");
3358 TESTINST3("sxtah r0, r1, r2, ROR #24", 0x31415927, 0x27182819, r0, r1, r2, 0);
3359 TESTINST3("sxtah r0, r1, r2, ROR #16", 0x31415927, 0x27182819, r0, r1, r2, 0);
3360 TESTINST3("sxtah r0, r1, r2, ROR #8 ", 0x31415927, 0x27182819, r0, r1, r2, 0);
3361 TESTINST3("sxtah r0, r1, r2, ROR #0 ", 0x31415927, 0x27182819, r0, r1, r2, 0);
3362
3363 TESTINST3("sxtah r0, r1, r2, ROR #24", 0x31415927, 0x27189819, r0, r1, r2, 0);
3364 TESTINST3("sxtah r0, r1, r2, ROR #16", 0x31415927, 0x27189819, r0, r1, r2, 0);
3365 TESTINST3("sxtah r0, r1, r2, ROR #8 ", 0x31415927, 0x27189819, r0, r1, r2, 0);
3366 TESTINST3("sxtah r0, r1, r2, ROR #0 ", 0x31415927, 0x27189819, r0, r1, r2, 0);
3367
3368TESTINST3("sxtah r0, r1, r2, ROR #24", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3369TESTINST3("sxtah r0, r1, r2, ROR #24", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3370TESTINST3("sxtah r0, r1, r2, ROR #24", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3371TESTINST3("sxtah r0, r1, r2, ROR #24", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3372TESTINST3("sxtah r0, r1, r2, ROR #24", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3373TESTINST3("sxtah r0, r1, r2, ROR #24", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3374TESTINST3("sxtah r0, r1, r2, ROR #24", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3375TESTINST3("sxtah r0, r1, r2, ROR #24", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3376TESTINST3("sxtah r0, r1, r2, ROR #24", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3377TESTINST3("sxtah r0, r1, r2, ROR #24", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3378
3379TESTINST3("sxtah r0, r1, r2, ROR #16", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3380TESTINST3("sxtah r0, r1, r2, ROR #16", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3381TESTINST3("sxtah r0, r1, r2, ROR #16", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3382TESTINST3("sxtah r0, r1, r2, ROR #16", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3383TESTINST3("sxtah r0, r1, r2, ROR #16", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3384TESTINST3("sxtah r0, r1, r2, ROR #16", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3385TESTINST3("sxtah r0, r1, r2, ROR #16", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3386TESTINST3("sxtah r0, r1, r2, ROR #16", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3387TESTINST3("sxtah r0, r1, r2, ROR #16", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3388TESTINST3("sxtah r0, r1, r2, ROR #16", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3389
3390TESTINST3("sxtah r0, r1, r2, ROR #8", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3391TESTINST3("sxtah r0, r1, r2, ROR #8", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3392TESTINST3("sxtah r0, r1, r2, ROR #8", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3393TESTINST3("sxtah r0, r1, r2, ROR #8", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3394TESTINST3("sxtah r0, r1, r2, ROR #8", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3395TESTINST3("sxtah r0, r1, r2, ROR #8", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3396TESTINST3("sxtah r0, r1, r2, ROR #8", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3397TESTINST3("sxtah r0, r1, r2, ROR #8", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3398TESTINST3("sxtah r0, r1, r2, ROR #8", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3399TESTINST3("sxtah r0, r1, r2, ROR #8", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3400
3401TESTINST3("sxtah r0, r1, r2, ROR #0", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3402TESTINST3("sxtah r0, r1, r2, ROR #0", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3403TESTINST3("sxtah r0, r1, r2, ROR #0", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3404TESTINST3("sxtah r0, r1, r2, ROR #0", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3405TESTINST3("sxtah r0, r1, r2, ROR #0", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3406TESTINST3("sxtah r0, r1, r2, ROR #0", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3407TESTINST3("sxtah r0, r1, r2, ROR #0", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3408TESTINST3("sxtah r0, r1, r2, ROR #0", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3409TESTINST3("sxtah r0, r1, r2, ROR #0", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3410TESTINST3("sxtah r0, r1, r2, ROR #0", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3411
3412 printf("------------ UXTAH ------------\n");
3413 TESTINST3("uxtah r0, r1, r2, ROR #24", 0x31415927, 0x27182819, r0, r1, r2, 0);
3414 TESTINST3("uxtah r0, r1, r2, ROR #16", 0x31415927, 0x27182819, r0, r1, r2, 0);
3415 TESTINST3("uxtah r0, r1, r2, ROR #8 ", 0x31415927, 0x27182819, r0, r1, r2, 0);
3416 TESTINST3("uxtah r0, r1, r2, ROR #0 ", 0x31415927, 0x27182819, r0, r1, r2, 0);
3417
3418 TESTINST3("uxtah r0, r1, r2, ROR #24", 0x31415927, 0x27189819, r0, r1, r2, 0);
3419 TESTINST3("uxtah r0, r1, r2, ROR #16", 0x31415927, 0x27189819, r0, r1, r2, 0);
3420 TESTINST3("uxtah r0, r1, r2, ROR #8 ", 0x31415927, 0x27189819, r0, r1, r2, 0);
3421 TESTINST3("uxtah r0, r1, r2, ROR #0 ", 0x31415927, 0x27189819, r0, r1, r2, 0);
3422
3423TESTINST3("uxtah r0, r1, r2, ROR #24", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3424TESTINST3("uxtah r0, r1, r2, ROR #24", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3425TESTINST3("uxtah r0, r1, r2, ROR #24", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3426TESTINST3("uxtah r0, r1, r2, ROR #24", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3427TESTINST3("uxtah r0, r1, r2, ROR #24", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3428TESTINST3("uxtah r0, r1, r2, ROR #24", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3429TESTINST3("uxtah r0, r1, r2, ROR #24", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3430TESTINST3("uxtah r0, r1, r2, ROR #24", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3431TESTINST3("uxtah r0, r1, r2, ROR #24", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3432TESTINST3("uxtah r0, r1, r2, ROR #24", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3433
3434TESTINST3("uxtah r0, r1, r2, ROR #16", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3435TESTINST3("uxtah r0, r1, r2, ROR #16", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3436TESTINST3("uxtah r0, r1, r2, ROR #16", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3437TESTINST3("uxtah r0, r1, r2, ROR #16", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3438TESTINST3("uxtah r0, r1, r2, ROR #16", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3439TESTINST3("uxtah r0, r1, r2, ROR #16", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3440TESTINST3("uxtah r0, r1, r2, ROR #16", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3441TESTINST3("uxtah r0, r1, r2, ROR #16", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3442TESTINST3("uxtah r0, r1, r2, ROR #16", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3443TESTINST3("uxtah r0, r1, r2, ROR #16", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3444
3445TESTINST3("uxtah r0, r1, r2, ROR #8", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3446TESTINST3("uxtah r0, r1, r2, ROR #8", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3447TESTINST3("uxtah r0, r1, r2, ROR #8", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3448TESTINST3("uxtah r0, r1, r2, ROR #8", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3449TESTINST3("uxtah r0, r1, r2, ROR #8", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3450TESTINST3("uxtah r0, r1, r2, ROR #8", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3451TESTINST3("uxtah r0, r1, r2, ROR #8", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3452TESTINST3("uxtah r0, r1, r2, ROR #8", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3453TESTINST3("uxtah r0, r1, r2, ROR #8", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3454TESTINST3("uxtah r0, r1, r2, ROR #8", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3455
3456TESTINST3("uxtah r0, r1, r2, ROR #0", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
3457TESTINST3("uxtah r0, r1, r2, ROR #0", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
3458TESTINST3("uxtah r0, r1, r2, ROR #0", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
3459TESTINST3("uxtah r0, r1, r2, ROR #0", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
3460TESTINST3("uxtah r0, r1, r2, ROR #0", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
3461TESTINST3("uxtah r0, r1, r2, ROR #0", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
3462TESTINST3("uxtah r0, r1, r2, ROR #0", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
3463TESTINST3("uxtah r0, r1, r2, ROR #0", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
3464TESTINST3("uxtah r0, r1, r2, ROR #0", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
3465TESTINST3("uxtah r0, r1, r2, ROR #0", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
3466
sewardj9745a822010-09-20 22:54:25 +00003467 printf("------------ SMLAWB ------------\n");
3468 /* smlawb rD, rN, rM, rA */
3469 TESTINST4("smlawb r0, r1, r2, r3",
3470 0x00030000, 0x00040000, 0x00000000, r0,r1,r2,r3, 0);
3471 TESTINST4("smlawb r0, r1, r2, r3",
3472 0x00030001, 0x00040002, 0x00007fff, r0,r1,r2,r3, 0);
3473 TESTINST4("smlawb r0, r1, r2, r3",
3474 0x00038001, 0x00047fff, 0x00005fff, r0,r1,r2,r3, 0);
3475 TESTINST4("smlawb r0, r1, r2, r3",
3476 0x00037fff, 0x00047fff, 0x00007fff, r0,r1,r2,r3, 0);
3477 TESTINST4("smlawb r0, r1, r2, r3",
3478 0x0003ffff, 0x0004ffff, 0x7fff7fff, r0,r1,r2,r3, 0);
3479 TESTINST4("smlawb r0, r1, r2, r3",
3480 0x0003fffc, 0x0004ffff, 0xffffffff, r0,r1,r2,r3, 0);
3481TESTINST4("smlawb r0, r1, r2, r3",
3482 0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
3483TESTINST4("smlawb r0, r1, r2, r3",
3484 0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
3485TESTINST4("smlawb r0, r1, r2, r3",
3486 0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
3487TESTINST4("smlawb r0, r1, r2, r3",
3488 0x32fa0095, 0x36f26261, 0x89d2ef86, r0, r1, r2, r3, 0);
3489TESTINST4("smlawb r0, r1, r2, r3",
3490 0x8ed8287c, 0x02c90120, 0xd4b64d54, r0, r1, r2, r3, 0);
3491TESTINST4("smlawb r0, r1, r2, r3",
3492 0xc53aaba9, 0x29300837, 0x0b02c58a, r0, r1, r2, r3, 0);
3493TESTINST4("smlawb r0, r1, r2, r3",
3494 0x216158cb, 0x57a50a01, 0xb0d20777, r0, r1, r2, r3, 0);
3495TESTINST4("smlawb r0, r1, r2, r3",
3496 0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0, r1, r2, r3, 0);
3497TESTINST4("smlawb r0, r1, r2, r3",
3498 0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0, r1, r2, r3, 0);
3499TESTINST4("smlawb r0, r1, r2, r3",
3500 0xf87b961e, 0x1d66879f, 0xf2b64835, r0, r1, r2, r3, 0);
3501TESTINST4("smlawb r0, r1, r2, r3",
3502 0xd65db979, 0xc61b323b, 0xae930a1a, r0, r1, r2, r3, 0);
3503TESTINST4("smlawb r0, r1, r2, r3",
3504 0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0, r1, r2, r3, 0);
3505TESTINST4("smlawb r0, r1, r2, r3",
3506 0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0, r1, r2, r3, 0);
3507TESTINST4("smlawb r0, r1, r2, r3",
3508 0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, r3, 0);
3509TESTINST4("smlawb r0, r1, r2, r3",
3510 0xeaa652c7, 0x137741f4, 0x3dba1164, r0, r1, r2, r3, 0);
3511TESTINST4("smlawb r0, r1, r2, r3",
3512 0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0, r1, r2, r3, 0);
3513TESTINST4("smlawb r0, r1, r2, r3",
3514 0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0, r1, r2, r3, 0);
3515TESTINST4("smlawb r0, r1, r2, r3",
3516 0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, r3, 0);
3517TESTINST4("smlawb r0, r1, r2, r3",
3518 0xe1bb8606, 0x58293969, 0x81616d13, r0, r1, r2, r3, 0);
3519TESTINST4("smlawb r0, r1, r2, r3",
3520 0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0, r1, r2, r3, 0);
3521TESTINST4("smlawb r0, r1, r2, r3",
3522 0x0849a0c2, 0x0872f25a, 0x40b094e2, r0, r1, r2, r3, 0);
3523TESTINST4("smlawb r0, r1, r2, r3",
3524 0x17913309, 0xf1e03d7e, 0x91edc21d, r0, r1, r2, r3, 0);
3525TESTINST4("smlawb r0, r1, r2, r3",
3526 0x5388b5cd, 0x86582032, 0x6034078d, r0, r1, r2, r3, 0);
3527TESTINST4("smlawb r0, r1, r2, r3",
3528 0x181c436b, 0x5de41558, 0xccfa1c7e, r0, r1, r2, r3, 0);
3529TESTINST4("smlawb r0, r1, r2, r3",
3530 0x23ba1b46, 0x4437983c, 0x48d06549, r0, r1, r2, r3, 0);
3531TESTINST4("smlawb r0, r1, r2, r3",
3532 0xa9085781, 0xc6b4ac58, 0xb2aead21, r0, r1, r2, r3, 0);
3533TESTINST4("smlawb r0, r1, r2, r3",
3534 0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0, r1, r2, r3, 0);
3535TESTINST4("smlawb r0, r1, r2, r3",
3536 0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, r3, 0);
3537TESTINST4("smlawb r0, r1, r2, r3",
3538 0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0, r1, r2, r3, 0);
3539TESTINST4("smlawb r0, r1, r2, r3",
3540 0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0, r1, r2, r3, 0);
3541TESTINST4("smlawb r0, r1, r2, r3",
3542 0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0, r1, r2, r3, 0);
3543TESTINST4("smlawb r0, r1, r2, r3",
3544 0xd7ce1909, 0x3e435701, 0x85fbf196, r0, r1, r2, r3, 0);
3545TESTINST4("smlawb r0, r1, r2, r3",
3546 0xb4e16b6e, 0x6e13680a, 0x89436f88, r0, r1, r2, r3, 0);
3547TESTINST4("smlawb r0, r1, r2, r3",
3548 0x44858efc, 0x9002bc30, 0x390d2c2f, r0, r1, r2, r3, 0);
3549TESTINST4("smlawb r0, r1, r2, r3",
3550 0xbea121ab, 0x953ff6ec, 0x80657c40, r0, r1, r2, r3, 0);
3551TESTINST4("smlawb r0, r1, r2, r3",
3552 0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, r3, 0);
3553TESTINST4("smlawb r0, r1, r2, r3",
3554 0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0, r1, r2, r3, 0);
3555TESTINST4("smlawb r0, r1, r2, r3",
3556 0xec0c2f30, 0x5736ed46, 0x231348c0, r0, r1, r2, r3, 0);
3557TESTINST4("smlawb r0, r1, r2, r3",
3558 0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0, r1, r2, r3, 0);
3559TESTINST4("smlawb r0, r1, r2, r3",
3560 0xc1553709, 0x0112b30a, 0x69ec0212, r0, r1, r2, r3, 0);
3561TESTINST4("smlawb r0, r1, r2, r3",
3562 0x74bd0223, 0x03fa9bb5, 0x899d9192, r0, r1, r2, r3, 0);
3563TESTINST4("smlawb r0, r1, r2, r3",
3564 0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, r3, 0);
3565TESTINST4("smlawb r0, r1, r2, r3",
3566 0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0, r1, r2, r3, 0);
3567TESTINST4("smlawb r0, r1, r2, r3",
3568 0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0, r1, r2, r3, 0);
3569TESTINST4("smlawb r0, r1, r2, r3",
3570 0x299da970, 0xe8108f1b, 0xf5818cfb, r0, r1, r2, r3, 0);
3571TESTINST4("smlawb r0, r1, r2, r3",
3572 0xcd90d604, 0xaa5e9444, 0x8217b7df, r0, r1, r2, r3, 0);
3573TESTINST4("smlawb r0, r1, r2, r3",
3574 0xe60743c3, 0x7acb4de3, 0x73c29060, r0, r1, r2, r3, 0);
3575TESTINST4("smlawb r0, r1, r2, r3",
3576 0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0, r1, r2, r3, 0);
3577TESTINST4("smlawb r0, r1, r2, r3",
3578 0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0, r1, r2, r3, 0);
3579TESTINST4("smlawb r0, r1, r2, r3",
3580 0xde99ac2f, 0x0be36f70, 0xeda5110c, r0, r1, r2, r3, 0);
3581TESTINST4("smlawb r0, r1, r2, r3",
3582 0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0);
3583
3584 printf("------------ SMLAWT ------------\n");
3585 /* smlawt rD, rN, rM, rA */
3586 TESTINST4("smlawt r0, r1, r2, r3",
3587 0x00030000, 0x00040000, 0x00000000, r0,r1,r2,r3, 0);
3588 TESTINST4("smlawt r0, r1, r2, r3",
3589 0x00030001, 0x00040002, 0x00007fff, r0,r1,r2,r3, 0);
3590 TESTINST4("smlawt r0, r1, r2, r3",
3591 0x00038001, 0x00047fff, 0x00005fff, r0,r1,r2,r3, 0);
3592 TESTINST4("smlawt r0, r1, r2, r3",
3593 0x00037fff, 0x00047fff, 0x00007fff, r0,r1,r2,r3, 0);
3594 TESTINST4("smlawt r0, r1, r2, r3",
3595 0x0003ffff, 0x0004ffff, 0x7fff7fff, r0,r1,r2,r3, 0);
3596 TESTINST4("smlawt r0, r1, r2, r3",
3597 0x0003fffc, 0x0004ffff, 0xffffffff, r0,r1,r2,r3, 0);
3598TESTINST4("smlawt r0, r1, r2, r3",
3599 0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
3600TESTINST4("smlawt r0, r1, r2, r3",
3601 0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
3602TESTINST4("smlawt r0, r1, r2, r3",
3603 0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
3604TESTINST4("smlawt r0, r1, r2, r3",
3605 0x32fa0095, 0x36f26261, 0x89d2ef86, r0, r1, r2, r3, 0);
3606TESTINST4("smlawt r0, r1, r2, r3",
3607 0x8ed8287c, 0x02c90120, 0xd4b64d54, r0, r1, r2, r3, 0);
3608TESTINST4("smlawt r0, r1, r2, r3",
3609 0xc53aaba9, 0x29300837, 0x0b02c58a, r0, r1, r2, r3, 0);
3610TESTINST4("smlawt r0, r1, r2, r3",
3611 0x216158cb, 0x57a50a01, 0xb0d20777, r0, r1, r2, r3, 0);
3612TESTINST4("smlawt r0, r1, r2, r3",
3613 0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0, r1, r2, r3, 0);
3614TESTINST4("smlawt r0, r1, r2, r3",
3615 0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0, r1, r2, r3, 0);
3616TESTINST4("smlawt r0, r1, r2, r3",
3617 0xf87b961e, 0x1d66879f, 0xf2b64835, r0, r1, r2, r3, 0);
3618TESTINST4("smlawt r0, r1, r2, r3",
3619 0xd65db979, 0xc61b323b, 0xae930a1a, r0, r1, r2, r3, 0);
3620TESTINST4("smlawt r0, r1, r2, r3",
3621 0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0, r1, r2, r3, 0);
3622TESTINST4("smlawt r0, r1, r2, r3",
3623 0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0, r1, r2, r3, 0);
3624TESTINST4("smlawt r0, r1, r2, r3",
3625 0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, r3, 0);
3626TESTINST4("smlawt r0, r1, r2, r3",
3627 0xeaa652c7, 0x137741f4, 0x3dba1164, r0, r1, r2, r3, 0);
3628TESTINST4("smlawt r0, r1, r2, r3",
3629 0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0, r1, r2, r3, 0);
3630TESTINST4("smlawt r0, r1, r2, r3",
3631 0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0, r1, r2, r3, 0);
3632TESTINST4("smlawt r0, r1, r2, r3",
3633 0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, r3, 0);
3634TESTINST4("smlawt r0, r1, r2, r3",
3635 0xe1bb8606, 0x58293969, 0x81616d13, r0, r1, r2, r3, 0);
3636TESTINST4("smlawt r0, r1, r2, r3",
3637 0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0, r1, r2, r3, 0);
3638TESTINST4("smlawt r0, r1, r2, r3",
3639 0x0849a0c2, 0x0872f25a, 0x40b094e2, r0, r1, r2, r3, 0);
3640TESTINST4("smlawt r0, r1, r2, r3",
3641 0x17913309, 0xf1e03d7e, 0x91edc21d, r0, r1, r2, r3, 0);
3642TESTINST4("smlawt r0, r1, r2, r3",
3643 0x5388b5cd, 0x86582032, 0x6034078d, r0, r1, r2, r3, 0);
3644TESTINST4("smlawt r0, r1, r2, r3",
3645 0x181c436b, 0x5de41558, 0xccfa1c7e, r0, r1, r2, r3, 0);
3646TESTINST4("smlawt r0, r1, r2, r3",
3647 0x23ba1b46, 0x4437983c, 0x48d06549, r0, r1, r2, r3, 0);
3648TESTINST4("smlawt r0, r1, r2, r3",
3649 0xa9085781, 0xc6b4ac58, 0xb2aead21, r0, r1, r2, r3, 0);
3650TESTINST4("smlawt r0, r1, r2, r3",
3651 0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0, r1, r2, r3, 0);
3652TESTINST4("smlawt r0, r1, r2, r3",
3653 0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, r3, 0);
3654TESTINST4("smlawt r0, r1, r2, r3",
3655 0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0, r1, r2, r3, 0);
3656TESTINST4("smlawt r0, r1, r2, r3",
3657 0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0, r1, r2, r3, 0);
3658TESTINST4("smlawt r0, r1, r2, r3",
3659 0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0, r1, r2, r3, 0);
3660TESTINST4("smlawt r0, r1, r2, r3",
3661 0xd7ce1909, 0x3e435701, 0x85fbf196, r0, r1, r2, r3, 0);
3662TESTINST4("smlawt r0, r1, r2, r3",
3663 0xb4e16b6e, 0x6e13680a, 0x89436f88, r0, r1, r2, r3, 0);
3664TESTINST4("smlawt r0, r1, r2, r3",
3665 0x44858efc, 0x9002bc30, 0x390d2c2f, r0, r1, r2, r3, 0);
3666TESTINST4("smlawt r0, r1, r2, r3",
3667 0xbea121ab, 0x953ff6ec, 0x80657c40, r0, r1, r2, r3, 0);
3668TESTINST4("smlawt r0, r1, r2, r3",
3669 0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, r3, 0);
3670TESTINST4("smlawt r0, r1, r2, r3",
3671 0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0, r1, r2, r3, 0);
3672TESTINST4("smlawt r0, r1, r2, r3",
3673 0xec0c2f30, 0x5736ed46, 0x231348c0, r0, r1, r2, r3, 0);
3674TESTINST4("smlawt r0, r1, r2, r3",
3675 0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0, r1, r2, r3, 0);
3676TESTINST4("smlawt r0, r1, r2, r3",
3677 0xc1553709, 0x0112b30a, 0x69ec0212, r0, r1, r2, r3, 0);
3678TESTINST4("smlawt r0, r1, r2, r3",
3679 0x74bd0223, 0x03fa9bb5, 0x899d9192, r0, r1, r2, r3, 0);
3680TESTINST4("smlawt r0, r1, r2, r3",
3681 0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, r3, 0);
3682TESTINST4("smlawt r0, r1, r2, r3",
3683 0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0, r1, r2, r3, 0);
3684TESTINST4("smlawt r0, r1, r2, r3",
3685 0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0, r1, r2, r3, 0);
3686TESTINST4("smlawt r0, r1, r2, r3",
3687 0x299da970, 0xe8108f1b, 0xf5818cfb, r0, r1, r2, r3, 0);
3688TESTINST4("smlawt r0, r1, r2, r3",
3689 0xcd90d604, 0xaa5e9444, 0x8217b7df, r0, r1, r2, r3, 0);
3690TESTINST4("smlawt r0, r1, r2, r3",
3691 0xe60743c3, 0x7acb4de3, 0x73c29060, r0, r1, r2, r3, 0);
3692TESTINST4("smlawt r0, r1, r2, r3",
3693 0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0, r1, r2, r3, 0);
3694TESTINST4("smlawt r0, r1, r2, r3",
3695 0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0, r1, r2, r3, 0);
3696TESTINST4("smlawt r0, r1, r2, r3",
3697 0xde99ac2f, 0x0be36f70, 0xeda5110c, r0, r1, r2, r3, 0);
3698TESTINST4("smlawt r0, r1, r2, r3",
3699 0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0);
3700
sewardjef64c472010-10-18 16:35:38 +00003701
3702 printf("----------------- SMLSD ----------------- \n");
3703 TESTINST4("smlsd r0, r1, r2, r3",
3704 0x80008000, 0x80008000, 0x00000000, r0, r1, r2, r3, 0);
3705 TESTINST4("smlsd r0, r1, r2, r3",
3706 0x7fff7fff, 0x00000000, 0x00000000, r0, r1, r2, r3, 0);
3707 TESTINST4("smlsd r0, r1, r2, r3",
3708 0x7fff7fff, 0x00010001, 0x00000001, r0, r1, r2, r3, 0);
3709 TESTINST4("smlsd r0, r1, r2, r3",
3710 0x80008000, 0xffffffff, 0x0000001f, r0, r1, r2, r3, 0);
3711 TESTINST4("smlsd r0, r1, r2, r3",
3712 0x00640064, 0x00030003, 0x00000020, r0, r1, r2, r3, 0);
3713 TESTINST4("smlsd r0, r1, r2, r3",
3714 0xffffffff, 0xfffc0001, 0x000000ff, r0, r1, r2, r3, 0);
3715 TESTINST4("smlsd r0, r1, r2, r3",
3716 0xfff70fff, 0x00030003, 0x00000100, r0, r1, r2, r3, 0);
3717TESTINST4("smlsd r0, r1, r2, r3",
3718 0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
3719TESTINST4("smlsd r0, r1, r2, r3",
3720 0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
3721TESTINST4("smlsd r0, r1, r2, r3",
3722 0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
3723TESTINST4("smlsd r0, r1, r2, r3",
3724 0x32fa0095, 0x36f26261, 0x89d2ef86, r0, r1, r2, r3, 0);
3725TESTINST4("smlsd r0, r1, r2, r3",
3726 0x8ed8287c, 0x02c90120, 0xd4b64d54, r0, r1, r2, r3, 0);
3727TESTINST4("smlsd r0, r1, r2, r3",
3728 0xc53aaba9, 0x29300837, 0x0b02c58a, r0, r1, r2, r3, 0);
3729TESTINST4("smlsd r0, r1, r2, r3",
3730 0x216158cb, 0x57a50a01, 0xb0d20777, r0, r1, r2, r3, 0);
3731TESTINST4("smlsd r0, r1, r2, r3",
3732 0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0, r1, r2, r3, 0);
3733TESTINST4("smlsd r0, r1, r2, r3",
3734 0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0, r1, r2, r3, 0);
3735TESTINST4("smlsd r0, r1, r2, r3",
3736 0xf87b961e, 0x1d66879f, 0xf2b64835, r0, r1, r2, r3, 0);
3737TESTINST4("smlsd r0, r1, r2, r3",
3738 0xd65db979, 0xc61b323b, 0xae930a1a, r0, r1, r2, r3, 0);
3739TESTINST4("smlsd r0, r1, r2, r3",
3740 0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0, r1, r2, r3, 0);
3741TESTINST4("smlsd r0, r1, r2, r3",
3742 0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0, r1, r2, r3, 0);
3743TESTINST4("smlsd r0, r1, r2, r3",
3744 0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, r3, 0);
3745TESTINST4("smlsd r0, r1, r2, r3",
3746 0xeaa652c7, 0x137741f4, 0x3dba1164, r0, r1, r2, r3, 0);
3747TESTINST4("smlsd r0, r1, r2, r3",
3748 0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0, r1, r2, r3, 0);
3749TESTINST4("smlsd r0, r1, r2, r3",
3750 0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0, r1, r2, r3, 0);
3751TESTINST4("smlsd r0, r1, r2, r3",
3752 0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, r3, 0);
3753TESTINST4("smlsd r0, r1, r2, r3",
3754 0xe1bb8606, 0x58293969, 0x81616d13, r0, r1, r2, r3, 0);
3755TESTINST4("smlsd r0, r1, r2, r3",
3756 0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0, r1, r2, r3, 0);
3757TESTINST4("smlsd r0, r1, r2, r3",
3758 0x0849a0c2, 0x0872f25a, 0x40b094e2, r0, r1, r2, r3, 0);
3759TESTINST4("smlsd r0, r1, r2, r3",
3760 0x17913309, 0xf1e03d7e, 0x91edc21d, r0, r1, r2, r3, 0);
3761TESTINST4("smlsd r0, r1, r2, r3",
3762 0x5388b5cd, 0x86582032, 0x6034078d, r0, r1, r2, r3, 0);
3763TESTINST4("smlsd r0, r1, r2, r3",
3764 0x181c436b, 0x5de41558, 0xccfa1c7e, r0, r1, r2, r3, 0);
3765TESTINST4("smlsd r0, r1, r2, r3",
3766 0x23ba1b46, 0x4437983c, 0x48d06549, r0, r1, r2, r3, 0);
3767TESTINST4("smlsd r0, r1, r2, r3",
3768 0xa9085781, 0xc6b4ac58, 0xb2aead21, r0, r1, r2, r3, 0);
3769TESTINST4("smlsd r0, r1, r2, r3",
3770 0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0, r1, r2, r3, 0);
3771TESTINST4("smlsd r0, r1, r2, r3",
3772 0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, r3, 0);
3773TESTINST4("smlsd r0, r1, r2, r3",
3774 0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0, r1, r2, r3, 0);
3775TESTINST4("smlsd r0, r1, r2, r3",
3776 0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0, r1, r2, r3, 0);
3777TESTINST4("smlsd r0, r1, r2, r3",
3778 0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0, r1, r2, r3, 0);
3779TESTINST4("smlsd r0, r1, r2, r3",
3780 0xd7ce1909, 0x3e435701, 0x85fbf196, r0, r1, r2, r3, 0);
3781TESTINST4("smlsd r0, r1, r2, r3",
3782 0xb4e16b6e, 0x6e13680a, 0x89436f88, r0, r1, r2, r3, 0);
3783TESTINST4("smlsd r0, r1, r2, r3",
3784 0x44858efc, 0x9002bc30, 0x390d2c2f, r0, r1, r2, r3, 0);
3785TESTINST4("smlsd r0, r1, r2, r3",
3786 0xbea121ab, 0x953ff6ec, 0x80657c40, r0, r1, r2, r3, 0);
3787TESTINST4("smlsd r0, r1, r2, r3",
3788 0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, r3, 0);
3789TESTINST4("smlsd r0, r1, r2, r3",
3790 0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0, r1, r2, r3, 0);
3791TESTINST4("smlsd r0, r1, r2, r3",
3792 0xec0c2f30, 0x5736ed46, 0x231348c0, r0, r1, r2, r3, 0);
3793TESTINST4("smlsd r0, r1, r2, r3",
3794 0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0, r1, r2, r3, 0);
3795TESTINST4("smlsd r0, r1, r2, r3",
3796 0xc1553709, 0x0112b30a, 0x69ec0212, r0, r1, r2, r3, 0);
3797TESTINST4("smlsd r0, r1, r2, r3",
3798 0x74bd0223, 0x03fa9bb5, 0x899d9192, r0, r1, r2, r3, 0);
3799TESTINST4("smlsd r0, r1, r2, r3",
3800 0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, r3, 0);
3801TESTINST4("smlsd r0, r1, r2, r3",
3802 0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0, r1, r2, r3, 0);
3803TESTINST4("smlsd r0, r1, r2, r3",
3804 0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0, r1, r2, r3, 0);
3805TESTINST4("smlsd r0, r1, r2, r3",
3806 0x299da970, 0xe8108f1b, 0xf5818cfb, r0, r1, r2, r3, 0);
3807TESTINST4("smlsd r0, r1, r2, r3",
3808 0xcd90d604, 0xaa5e9444, 0x8217b7df, r0, r1, r2, r3, 0);
3809TESTINST4("smlsd r0, r1, r2, r3",
3810 0xe60743c3, 0x7acb4de3, 0x73c29060, r0, r1, r2, r3, 0);
3811TESTINST4("smlsd r0, r1, r2, r3",
3812 0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0, r1, r2, r3, 0);
3813TESTINST4("smlsd r0, r1, r2, r3",
3814 0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0, r1, r2, r3, 0);
3815TESTINST4("smlsd r0, r1, r2, r3",
3816 0xde99ac2f, 0x0be36f70, 0xeda5110c, r0, r1, r2, r3, 0);
3817TESTINST4("smlsd r0, r1, r2, r3",
3818 0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0);
3819
3820 printf("----------------- SMLSDX ----------------- \n");
3821 TESTINST4("smlsdx r0, r1, r2, r3",
3822 0x80008000, 0x80008000, 0x00000000, r0, r1, r2, r3, 0);
3823 TESTINST4("smlsdx r0, r1, r2, r3",
3824 0x7fff7fff, 0x00000000, 0x00000000, r0, r1, r2, r3, 0);
3825 TESTINST4("smlsdx r0, r1, r2, r3",
3826 0x7fff7fff, 0x00010001, 0x00000001, r0, r1, r2, r3, 0);
3827 TESTINST4("smlsdx r0, r1, r2, r3",
3828 0x80008000, 0xffffffff, 0x0000001f, r0, r1, r2, r3, 0);
3829 TESTINST4("smlsdx r0, r1, r2, r3",
3830 0x00640064, 0x00030003, 0x00000020, r0, r1, r2, r3, 0);
3831 TESTINST4("smlsdx r0, r1, r2, r3",
3832 0xffffffff, 0xfffc0001, 0x000000ff, r0, r1, r2, r3, 0);
3833 TESTINST4("smlsdx r0, r1, r2, r3",
3834 0xfff70fff, 0x00030003, 0x00000100, r0, r1, r2, r3, 0);
3835TESTINST4("smlsdx r0, r1, r2, r3",
3836 0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
3837TESTINST4("smlsdx r0, r1, r2, r3",
3838 0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
3839TESTINST4("smlsdx r0, r1, r2, r3",
3840 0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
3841
3842
3843 printf("----------------- SMUSD ----------------- \n");
3844 TESTINST3("smusd r0, r1, r2", 0x80008000, 0x80008000, r0, r1, r2, 0);
3845 TESTINST3("smusd r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
3846 TESTINST3("smusd r0, r1, r2", 0x7fff7fff, 0x00010001, r0, r1, r2, 0);
3847 TESTINST3("smusd r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
3848 TESTINST3("smusd r0, r1, r2", 0x00640064, 0x00030003, r0, r1, r2, 0);
3849 TESTINST3("smusd r0, r1, r2", 0xffffffff, 0xfffc0001, r0, r1, r2, 0);
3850 TESTINST3("smusd r0, r1, r2", 0xfff70fff, 0x00030003, r0, r1, r2, 0);
3851TESTINST3("smusd r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
3852TESTINST3("smusd r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
3853TESTINST3("smusd r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
3854TESTINST3("smusd r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
3855TESTINST3("smusd r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
3856TESTINST3("smusd r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
3857TESTINST3("smusd r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
3858TESTINST3("smusd r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
3859TESTINST3("smusd r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
3860TESTINST3("smusd r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
3861TESTINST3("smusd r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
3862TESTINST3("smusd r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
3863TESTINST3("smusd r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
3864TESTINST3("smusd r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
3865TESTINST3("smusd r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
3866TESTINST3("smusd r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
3867TESTINST3("smusd r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
3868TESTINST3("smusd r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
3869TESTINST3("smusd r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
3870TESTINST3("smusd r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
3871TESTINST3("smusd r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
3872TESTINST3("smusd r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
3873TESTINST3("smusd r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
3874TESTINST3("smusd r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
3875TESTINST3("smusd r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
3876TESTINST3("smusd r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
3877TESTINST3("smusd r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
3878TESTINST3("smusd r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
3879TESTINST3("smusd r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
3880TESTINST3("smusd r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
3881TESTINST3("smusd r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
3882TESTINST3("smusd r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
3883TESTINST3("smusd r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
3884TESTINST3("smusd r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
3885TESTINST3("smusd r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
3886TESTINST3("smusd r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
3887TESTINST3("smusd r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
3888TESTINST3("smusd r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
3889TESTINST3("smusd r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
3890TESTINST3("smusd r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
3891TESTINST3("smusd r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
3892TESTINST3("smusd r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
3893TESTINST3("smusd r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
3894TESTINST3("smusd r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
3895TESTINST3("smusd r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
3896TESTINST3("smusd r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
3897TESTINST3("smusd r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
3898TESTINST3("smusd r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
3899TESTINST3("smusd r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
3900TESTINST3("smusd r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
3901 printf("----------------- SMUSDX ---------------- \n");
3902 TESTINST3("smusdx r0, r1, r2", 0x80008000, 0x80008000, r0, r1, r2, 0);
3903 TESTINST3("smusdx r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
3904 TESTINST3("smusdx r0, r1, r2", 0x7fff7fff, 0x00010001, r0, r1, r2, 0);
3905 TESTINST3("smusdx r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
3906 TESTINST3("smusdx r0, r1, r2", 0x00640064, 0x00030003, r0, r1, r2, 0);
3907 TESTINST3("smusdx r0, r1, r2", 0xffffffff, 0xfffc0001, r0, r1, r2, 0);
3908 TESTINST3("smusdx r0, r1, r2", 0xfff70fff, 0x00030003, r0, r1, r2, 0);
3909TESTINST3("smusdx r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
3910TESTINST3("smusdx r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
3911TESTINST3("smusdx r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
3912TESTINST3("smusdx r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
3913TESTINST3("smusdx r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
3914TESTINST3("smusdx r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
3915TESTINST3("smusdx r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
3916TESTINST3("smusdx r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
3917TESTINST3("smusdx r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
3918TESTINST3("smusdx r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
3919TESTINST3("smusdx r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
3920TESTINST3("smusdx r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
3921TESTINST3("smusdx r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
3922TESTINST3("smusdx r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
3923TESTINST3("smusdx r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
3924TESTINST3("smusdx r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
3925TESTINST3("smusdx r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
3926TESTINST3("smusdx r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
3927TESTINST3("smusdx r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
3928TESTINST3("smusdx r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
3929TESTINST3("smusdx r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
3930TESTINST3("smusdx r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
3931TESTINST3("smusdx r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
3932TESTINST3("smusdx r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
3933TESTINST3("smusdx r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
3934TESTINST3("smusdx r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
3935TESTINST3("smusdx r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
3936TESTINST3("smusdx r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
3937TESTINST3("smusdx r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
3938TESTINST3("smusdx r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
3939TESTINST3("smusdx r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
3940TESTINST3("smusdx r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
3941TESTINST3("smusdx r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
3942TESTINST3("smusdx r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
3943TESTINST3("smusdx r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
3944TESTINST3("smusdx r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
3945TESTINST3("smusdx r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
3946TESTINST3("smusdx r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
3947TESTINST3("smusdx r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
3948TESTINST3("smusdx r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
3949TESTINST3("smusdx r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
3950TESTINST3("smusdx r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
3951TESTINST3("smusdx r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
3952TESTINST3("smusdx r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
3953TESTINST3("smusdx r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
3954TESTINST3("smusdx r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
3955TESTINST3("smusdx r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
3956TESTINST3("smusdx r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
3957TESTINST3("smusdx r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
3958TESTINST3("smusdx r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
3959
3960 printf("----------------- USAD8 ---------------- \n");
3961 TESTINST3("usad8 r0, r1, r2", 0x80008000, 0x80008000, r0, r1, r2, 0);
3962 TESTINST3("usad8 r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
3963 TESTINST3("usad8 r0, r1, r2", 0x7fff7fff, 0x00010001, r0, r1, r2, 0);
3964 TESTINST3("usad8 r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
3965 TESTINST3("usad8 r0, r1, r2", 0x00640064, 0x00030003, r0, r1, r2, 0);
3966 TESTINST3("usad8 r0, r1, r2", 0xffffffff, 0xfffc0001, r0, r1, r2, 0);
3967 TESTINST3("usad8 r0, r1, r2", 0xfff70fff, 0x00030003, r0, r1, r2, 0);
3968TESTINST3("usad8 r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
3969TESTINST3("usad8 r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
3970TESTINST3("usad8 r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
3971TESTINST3("usad8 r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
3972TESTINST3("usad8 r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
3973TESTINST3("usad8 r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
3974TESTINST3("usad8 r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
3975TESTINST3("usad8 r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
3976TESTINST3("usad8 r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
3977TESTINST3("usad8 r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
3978TESTINST3("usad8 r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
3979TESTINST3("usad8 r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
3980TESTINST3("usad8 r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
3981TESTINST3("usad8 r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
3982TESTINST3("usad8 r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
3983TESTINST3("usad8 r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
3984TESTINST3("usad8 r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
3985TESTINST3("usad8 r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
3986TESTINST3("usad8 r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
3987TESTINST3("usad8 r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
3988TESTINST3("usad8 r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
3989TESTINST3("usad8 r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
3990TESTINST3("usad8 r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
3991TESTINST3("usad8 r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
3992TESTINST3("usad8 r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
3993TESTINST3("usad8 r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
3994TESTINST3("usad8 r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
3995TESTINST3("usad8 r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
3996TESTINST3("usad8 r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
3997TESTINST3("usad8 r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
3998TESTINST3("usad8 r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
3999TESTINST3("usad8 r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
4000TESTINST3("usad8 r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
4001TESTINST3("usad8 r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
4002TESTINST3("usad8 r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
4003TESTINST3("usad8 r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
4004TESTINST3("usad8 r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
4005TESTINST3("usad8 r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
4006TESTINST3("usad8 r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
4007TESTINST3("usad8 r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
4008TESTINST3("usad8 r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
4009TESTINST3("usad8 r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
4010TESTINST3("usad8 r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
4011TESTINST3("usad8 r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
4012TESTINST3("usad8 r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
4013TESTINST3("usad8 r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
4014TESTINST3("usad8 r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
4015TESTINST3("usad8 r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
4016TESTINST3("usad8 r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
4017TESTINST3("usad8 r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
4018
4019 printf("----------------- USADA8 ----------------- \n");
4020 TESTINST4("usada8 r0, r1, r2, r3",
4021 0x80008000, 0x80008000, 0x00000000, r0, r1, r2, r3, 0);
4022 TESTINST4("usada8 r0, r1, r2, r3",
4023 0x7fff7fff, 0x00000000, 0x00000000, r0, r1, r2, r3, 0);
4024 TESTINST4("usada8 r0, r1, r2, r3",
4025 0x7fff7fff, 0x00010001, 0x00000001, r0, r1, r2, r3, 0);
4026 TESTINST4("usada8 r0, r1, r2, r3",
4027 0x80008000, 0xffffffff, 0x0000001f, r0, r1, r2, r3, 0);
4028 TESTINST4("usada8 r0, r1, r2, r3",
4029 0x00640064, 0x00030003, 0x00000020, r0, r1, r2, r3, 0);
4030 TESTINST4("usada8 r0, r1, r2, r3",
4031 0xffffffff, 0xfffc0001, 0x000000ff, r0, r1, r2, r3, 0);
4032 TESTINST4("usada8 r0, r1, r2, r3",
4033 0xfff70fff, 0x00030003, 0x00000100, r0, r1, r2, r3, 0);
4034TESTINST4("usada8 r0, r1, r2, r3",
4035 0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
4036TESTINST4("usada8 r0, r1, r2, r3",
4037 0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
4038TESTINST4("usada8 r0, r1, r2, r3",
4039 0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
4040TESTINST4("usada8 r0, r1, r2, r3",
4041 0x32fa0095, 0x36f26261, 0x89d2ef86, r0, r1, r2, r3, 0);
4042TESTINST4("usada8 r0, r1, r2, r3",
4043 0x8ed8287c, 0x02c90120, 0xd4b64d54, r0, r1, r2, r3, 0);
4044TESTINST4("usada8 r0, r1, r2, r3",
4045 0xc53aaba9, 0x29300837, 0x0b02c58a, r0, r1, r2, r3, 0);
4046TESTINST4("usada8 r0, r1, r2, r3",
4047 0x216158cb, 0x57a50a01, 0xb0d20777, r0, r1, r2, r3, 0);
4048TESTINST4("usada8 r0, r1, r2, r3",
4049 0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0, r1, r2, r3, 0);
4050TESTINST4("usada8 r0, r1, r2, r3",
4051 0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0, r1, r2, r3, 0);
4052TESTINST4("usada8 r0, r1, r2, r3",
4053 0xf87b961e, 0x1d66879f, 0xf2b64835, r0, r1, r2, r3, 0);
4054TESTINST4("usada8 r0, r1, r2, r3",
4055 0xd65db979, 0xc61b323b, 0xae930a1a, r0, r1, r2, r3, 0);
4056TESTINST4("usada8 r0, r1, r2, r3",
4057 0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0, r1, r2, r3, 0);
4058TESTINST4("usada8 r0, r1, r2, r3",
4059 0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0, r1, r2, r3, 0);
4060TESTINST4("usada8 r0, r1, r2, r3",
4061 0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, r3, 0);
4062TESTINST4("usada8 r0, r1, r2, r3",
4063 0xeaa652c7, 0x137741f4, 0x3dba1164, r0, r1, r2, r3, 0);
4064TESTINST4("usada8 r0, r1, r2, r3",
4065 0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0, r1, r2, r3, 0);
4066TESTINST4("usada8 r0, r1, r2, r3",
4067 0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0, r1, r2, r3, 0);
4068TESTINST4("usada8 r0, r1, r2, r3",
4069 0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, r3, 0);
4070TESTINST4("usada8 r0, r1, r2, r3",
4071 0xe1bb8606, 0x58293969, 0x81616d13, r0, r1, r2, r3, 0);
4072TESTINST4("usada8 r0, r1, r2, r3",
4073 0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0, r1, r2, r3, 0);
4074TESTINST4("usada8 r0, r1, r2, r3",
4075 0x0849a0c2, 0x0872f25a, 0x40b094e2, r0, r1, r2, r3, 0);
4076TESTINST4("usada8 r0, r1, r2, r3",
4077 0x17913309, 0xf1e03d7e, 0x91edc21d, r0, r1, r2, r3, 0);
4078TESTINST4("usada8 r0, r1, r2, r3",
4079 0x5388b5cd, 0x86582032, 0x6034078d, r0, r1, r2, r3, 0);
4080TESTINST4("usada8 r0, r1, r2, r3",
4081 0x181c436b, 0x5de41558, 0xccfa1c7e, r0, r1, r2, r3, 0);
4082TESTINST4("usada8 r0, r1, r2, r3",
4083 0x23ba1b46, 0x4437983c, 0x48d06549, r0, r1, r2, r3, 0);
4084TESTINST4("usada8 r0, r1, r2, r3",
4085 0xa9085781, 0xc6b4ac58, 0xb2aead21, r0, r1, r2, r3, 0);
4086TESTINST4("usada8 r0, r1, r2, r3",
4087 0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0, r1, r2, r3, 0);
4088TESTINST4("usada8 r0, r1, r2, r3",
4089 0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, r3, 0);
4090TESTINST4("usada8 r0, r1, r2, r3",
4091 0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0, r1, r2, r3, 0);
4092TESTINST4("usada8 r0, r1, r2, r3",
4093 0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0, r1, r2, r3, 0);
4094TESTINST4("usada8 r0, r1, r2, r3",
4095 0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0, r1, r2, r3, 0);
4096TESTINST4("usada8 r0, r1, r2, r3",
4097 0xd7ce1909, 0x3e435701, 0x85fbf196, r0, r1, r2, r3, 0);
4098TESTINST4("usada8 r0, r1, r2, r3",
4099 0xb4e16b6e, 0x6e13680a, 0x89436f88, r0, r1, r2, r3, 0);
4100TESTINST4("usada8 r0, r1, r2, r3",
4101 0x44858efc, 0x9002bc30, 0x390d2c2f, r0, r1, r2, r3, 0);
4102TESTINST4("usada8 r0, r1, r2, r3",
4103 0xbea121ab, 0x953ff6ec, 0x80657c40, r0, r1, r2, r3, 0);
4104TESTINST4("usada8 r0, r1, r2, r3",
4105 0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, r3, 0);
4106TESTINST4("usada8 r0, r1, r2, r3",
4107 0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0, r1, r2, r3, 0);
4108TESTINST4("usada8 r0, r1, r2, r3",
4109 0xec0c2f30, 0x5736ed46, 0x231348c0, r0, r1, r2, r3, 0);
4110TESTINST4("usada8 r0, r1, r2, r3",
4111 0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0, r1, r2, r3, 0);
4112TESTINST4("usada8 r0, r1, r2, r3",
4113 0xc1553709, 0x0112b30a, 0x69ec0212, r0, r1, r2, r3, 0);
4114TESTINST4("usada8 r0, r1, r2, r3",
4115 0x74bd0223, 0x03fa9bb5, 0x899d9192, r0, r1, r2, r3, 0);
4116TESTINST4("usada8 r0, r1, r2, r3",
4117 0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, r3, 0);
4118TESTINST4("usada8 r0, r1, r2, r3",
4119 0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0, r1, r2, r3, 0);
4120TESTINST4("usada8 r0, r1, r2, r3",
4121 0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0, r1, r2, r3, 0);
4122TESTINST4("usada8 r0, r1, r2, r3",
4123 0x299da970, 0xe8108f1b, 0xf5818cfb, r0, r1, r2, r3, 0);
4124TESTINST4("usada8 r0, r1, r2, r3",
4125 0xcd90d604, 0xaa5e9444, 0x8217b7df, r0, r1, r2, r3, 0);
4126TESTINST4("usada8 r0, r1, r2, r3",
4127 0xe60743c3, 0x7acb4de3, 0x73c29060, r0, r1, r2, r3, 0);
4128TESTINST4("usada8 r0, r1, r2, r3",
4129 0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0, r1, r2, r3, 0);
4130TESTINST4("usada8 r0, r1, r2, r3",
4131 0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0, r1, r2, r3, 0);
4132TESTINST4("usada8 r0, r1, r2, r3",
4133 0xde99ac2f, 0x0be36f70, 0xeda5110c, r0, r1, r2, r3, 0);
4134TESTINST4("usada8 r0, r1, r2, r3",
4135 0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0);
4136
4137
4138
4139
sewardj81e06dc2010-08-29 12:35:37 +00004140/*
4141TESTINST3("theinsn", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
4142TESTINST3("theinsn", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
4143TESTINST3("theinsn", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
4144TESTINST3("theinsn", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
4145TESTINST3("theinsn", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
4146TESTINST3("theinsn", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
4147TESTINST3("theinsn", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
4148TESTINST3("theinsn", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
4149TESTINST3("theinsn", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
4150TESTINST3("theinsn", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
4151*/
4152
4153 return 0;
4154}