• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include <stdio.h>
2 
3 #define TESTINST(instruction, in, in1, pos, size)                          \
4 {                                                                          \
5    unsigned long long out;                                                 \
6    __asm__ __volatile__(                                                   \
7       "move        $t0, %2"                  "\n\t"                        \
8       "move        $t1, %1"                  "\n\t"                        \
9       instruction" $t0, $t1, "#pos", "#size  "\n\t"                        \
10       "move        %0,  $t0"                 "\n\t"                        \
11       : "=r" (out)                                                         \
12       : "r" (in), "r" (in1)                                                \
13       : "t0", "t1"                                                         \
14    );                                                                      \
15    printf("%s :: in 0x%llx, in1 0x%llx, out 0x%llx, pos: %d, size: %d\n",  \
16           instruction, (long long) in, (long long) in1, out, pos, size);   \
17 }
18 
main()19 int main()
20 {
21 #if (__mips == 64) && (__mips_isa_rev >= 2)
22    printf("--- INS ---\n");
23    /* The values of pos and size must satisfy all of the following relations:
24       0 <= pos < 32
25       0 < size <= 32
26       0 < pos+size <= 32 */
27    TESTINST("ins", 0x0,                0x0,                0, 1);
28    TESTINST("ins", 0x0,                0xffffffffffffffff, 0, 1);
29    TESTINST("ins", 0x0,                0x98765432,         0, 1);
30    TESTINST("ins", 0x0,                0xffffffffff865421, 0, 1);
31    TESTINST("ins", 0xffffffffffffffff, 0x0,                0, 1);
32    TESTINST("ins", 0xffffffffffffffff, 0xffffffffffffffff, 0, 1);
33    TESTINST("ins", 0xffffffffffffffff, 0x98765432,         0, 1);
34    TESTINST("ins", 0xffffffffffffffff, 0xffffffffff865421, 0, 1);
35    TESTINST("ins", 0x98765432,         0x0,                0, 1);
36    TESTINST("ins", 0x98765432,         0xffffffffffffffff, 0, 1);
37    TESTINST("ins", 0x98765432,         0x98765432,         0, 1);
38    TESTINST("ins", 0x98765432,         0xffffffffff865421, 0, 1);
39    TESTINST("ins", 0xffffffffff865421, 0x0,                0, 1);
40    TESTINST("ins", 0xffffffffff865421, 0xffffffffffffffff, 0, 1);
41    TESTINST("ins", 0xffffffffff865421, 0x98765432,         0, 1);
42    TESTINST("ins", 0xffffffffff865421, 0xffffffffff865421, 0, 1);
43    TESTINST("ins", 0x0,                0x0,                0, 4);
44    TESTINST("ins", 0x0,                0xffffffffffffffff, 0, 4);
45    TESTINST("ins", 0x0,                0x98765432,         0, 4);
46    TESTINST("ins", 0x0,                0xffffffffff865421, 0, 4);
47    TESTINST("ins", 0xffffffffffffffff, 0x0,                0, 4);
48    TESTINST("ins", 0xffffffffffffffff, 0xffffffffffffffff, 0, 4);
49    TESTINST("ins", 0xffffffffffffffff, 0x98765432,         0, 4);
50    TESTINST("ins", 0xffffffffffffffff, 0xffffffffff865421, 0, 4);
51    TESTINST("ins", 0x98765432,         0x0,                0, 4);
52    TESTINST("ins", 0x98765432,         0xffffffffffffffff, 0, 4);
53    TESTINST("ins", 0x98765432,         0x98765432,         0, 4);
54    TESTINST("ins", 0x98765432,         0xffffffffff865421, 0, 4);
55    TESTINST("ins", 0xffffffffff865421, 0x0,                0, 4);
56    TESTINST("ins", 0xffffffffff865421, 0xffffffffffffffff, 0, 4);
57    TESTINST("ins", 0xffffffffff865421, 0x98765432,         0, 4);
58    TESTINST("ins", 0xffffffffff865421, 0xffffffffff865421, 0, 4);
59    TESTINST("ins", 0x0,                0x0,                0, 16);
60    TESTINST("ins", 0x0,                0xffffffffffffffff, 0, 16);
61    TESTINST("ins", 0x0,                0x98765432,         0, 16);
62    TESTINST("ins", 0x0,                0xffffffffff865421, 0, 16);
63    TESTINST("ins", 0xffffffffffffffff, 0x0,                0, 16);
64    TESTINST("ins", 0xffffffffffffffff, 0xffffffffffffffff, 0, 16);
65    TESTINST("ins", 0xffffffffffffffff, 0x98765432,         0, 16);
66    TESTINST("ins", 0xffffffffffffffff, 0xffffffffff865421, 0, 16);
67    TESTINST("ins", 0x98765432,         0x0,                0, 16);
68    TESTINST("ins", 0x98765432,         0xffffffffffffffff, 0, 16);
69    TESTINST("ins", 0x98765432,         0x98765432,         0, 16);
70    TESTINST("ins", 0x98765432,         0xffffffffff865421, 0, 16);
71    TESTINST("ins", 0xffffffffff865421, 0x0,                0, 16);
72    TESTINST("ins", 0xffffffffff865421, 0xffffffffffffffff, 0, 16);
73    TESTINST("ins", 0xffffffffff865421, 0x98765432,         0, 16);
74    TESTINST("ins", 0xffffffffff865421, 0xffffffffff865421, 0, 16);
75    TESTINST("ins", 0x0,                0x0,                0, 32);
76    TESTINST("ins", 0x0,                0xffffffffffffffff, 0, 32);
77    TESTINST("ins", 0x0,                0x98765432,         0, 32);
78    TESTINST("ins", 0x0,                0xffffffffff865421, 0, 32);
79    TESTINST("ins", 0xffffffffffffffff, 0x0,                0, 32);
80    TESTINST("ins", 0xffffffffffffffff, 0xffffffffffffffff, 0, 32);
81    TESTINST("ins", 0xffffffffffffffff, 0x98765432,         0, 32);
82    TESTINST("ins", 0xffffffffffffffff, 0xffffffffff865421, 0, 32);
83    TESTINST("ins", 0x98765432,         0x0,                0, 32);
84    TESTINST("ins", 0x98765432,         0xffffffffffffffff, 0, 32);
85    TESTINST("ins", 0x98765432,         0x98765432,         0, 32);
86    TESTINST("ins", 0x98765432,         0xffffffffff865421, 0, 32);
87    TESTINST("ins", 0xffffffffff865421, 0x0,                0, 32);
88    TESTINST("ins", 0xffffffffff865421, 0xffffffffffffffff, 0, 32);
89    TESTINST("ins", 0xffffffffff865421, 0x98765432,         0, 32);
90    TESTINST("ins", 0xffffffffff865421, 0xffffffffff865421, 0, 32);
91 
92    TESTINST("ins", 0x0,                0x0,                4, 1);
93    TESTINST("ins", 0x0,                0xffffffffffffffff, 4, 1);
94    TESTINST("ins", 0x0,                0x98765432,         4, 1);
95    TESTINST("ins", 0x0,                0xffffffffff865421, 4, 1);
96    TESTINST("ins", 0xffffffffffffffff, 0x0,                4, 1);
97    TESTINST("ins", 0xffffffffffffffff, 0xffffffffffffffff, 4, 1);
98    TESTINST("ins", 0xffffffffffffffff, 0x98765432,         4, 1);
99    TESTINST("ins", 0xffffffffffffffff, 0xffffffffff865421, 4, 1);
100    TESTINST("ins", 0x98765432,         0x0,                4, 1);
101    TESTINST("ins", 0x98765432,         0xffffffffffffffff, 4, 1);
102    TESTINST("ins", 0x98765432,         0x98765432,         4, 1);
103    TESTINST("ins", 0x98765432,         0xffffffffff865421, 4, 1);
104    TESTINST("ins", 0xffffffffff865421, 0x0,                4, 1);
105    TESTINST("ins", 0xffffffffff865421, 0xffffffffffffffff, 4, 1);
106    TESTINST("ins", 0xffffffffff865421, 0x98765432,         4, 1);
107    TESTINST("ins", 0xffffffffff865421, 0xffffffffff865421, 4, 1);
108    TESTINST("ins", 0x0,                0x0,                4, 4);
109    TESTINST("ins", 0x0,                0xffffffffffffffff, 4, 4);
110    TESTINST("ins", 0x0,                0x98765432,         4, 4);
111    TESTINST("ins", 0x0,                0xffffffffff865421, 4, 4);
112    TESTINST("ins", 0xffffffffffffffff, 0x0,                4, 4);
113    TESTINST("ins", 0xffffffffffffffff, 0xffffffffffffffff, 4, 4);
114    TESTINST("ins", 0xffffffffffffffff, 0x98765432,         4, 4);
115    TESTINST("ins", 0xffffffffffffffff, 0xffffffffff865421, 4, 4);
116    TESTINST("ins", 0x98765432,         0x0,                4, 4);
117    TESTINST("ins", 0x98765432,         0xffffffffffffffff, 4, 4);
118    TESTINST("ins", 0x98765432,         0x98765432,         4, 4);
119    TESTINST("ins", 0x98765432,         0xffffffffff865421, 4, 4);
120    TESTINST("ins", 0xffffffffff865421, 0x0,                4, 4);
121    TESTINST("ins", 0xffffffffff865421, 0xffffffffffffffff, 4, 4);
122    TESTINST("ins", 0xffffffffff865421, 0x98765432,         4, 4);
123    TESTINST("ins", 0xffffffffff865421, 0xffffffffff865421, 4, 4);
124    TESTINST("ins", 0x0,                0x0,                4, 16);
125    TESTINST("ins", 0x0,                0xffffffffffffffff, 4, 16);
126    TESTINST("ins", 0x0,                0x98765432,         4, 16);
127    TESTINST("ins", 0x0,                0xffffffffff865421, 4, 16);
128    TESTINST("ins", 0xffffffffffffffff, 0x0,                4, 16);
129    TESTINST("ins", 0xffffffffffffffff, 0xffffffffffffffff, 4, 16);
130    TESTINST("ins", 0xffffffffffffffff, 0x98765432,         4, 16);
131    TESTINST("ins", 0xffffffffffffffff, 0xffffffffff865421, 4, 16);
132    TESTINST("ins", 0x98765432,         0x0,                4, 16);
133    TESTINST("ins", 0x98765432,         0xffffffffffffffff, 4, 16);
134    TESTINST("ins", 0x98765432,         0x98765432,         4, 16);
135    TESTINST("ins", 0x98765432,         0xffffffffff865421, 4, 16);
136    TESTINST("ins", 0xffffffffff865421, 0x0,                4, 16);
137    TESTINST("ins", 0xffffffffff865421, 0xffffffffffffffff, 4, 16);
138    TESTINST("ins", 0xffffffffff865421, 0x98765432,         4, 16);
139    TESTINST("ins", 0xffffffffff865421, 0xffffffffff865421, 4, 16);
140    TESTINST("ins", 0x0,                0x0,                4, 28);
141    TESTINST("ins", 0x0,                0xffffffffffffffff, 4, 28);
142    TESTINST("ins", 0x0,                0x98765432,         4, 28);
143    TESTINST("ins", 0x0,                0xffffffffff865421, 4, 28);
144    TESTINST("ins", 0xffffffffffffffff, 0x0,                4, 28);
145    TESTINST("ins", 0xffffffffffffffff, 0xffffffffffffffff, 4, 28);
146    TESTINST("ins", 0xffffffffffffffff, 0x98765432,         4, 28);
147    TESTINST("ins", 0xffffffffffffffff, 0xffffffffff865421, 4, 28);
148    TESTINST("ins", 0x98765432,         0x0,                4, 28);
149    TESTINST("ins", 0x98765432,         0xffffffffffffffff, 4, 28);
150    TESTINST("ins", 0x98765432,         0x98765432,         4, 28);
151    TESTINST("ins", 0x98765432,         0xffffffffff865421, 4, 28);
152    TESTINST("ins", 0xffffffffff865421, 0x0,                4, 28);
153    TESTINST("ins", 0xffffffffff865421, 0xffffffffffffffff, 4, 28);
154    TESTINST("ins", 0xffffffffff865421, 0x98765432,         4, 28);
155    TESTINST("ins", 0xffffffffff865421, 0xffffffffff865421, 4, 28);
156 
157    TESTINST("ins", 0x0,                0x0,                16, 1);
158    TESTINST("ins", 0x0,                0xffffffffffffffff, 16, 1);
159    TESTINST("ins", 0x0,                0x98765432,         16, 1);
160    TESTINST("ins", 0x0,                0xffffffffff865421, 16, 1);
161    TESTINST("ins", 0xffffffffffffffff, 0x0,                16, 1);
162    TESTINST("ins", 0xffffffffffffffff, 0xffffffffffffffff, 16, 1);
163    TESTINST("ins", 0xffffffffffffffff, 0x98765432,         16, 1);
164    TESTINST("ins", 0xffffffffffffffff, 0xffffffffff865421, 16, 1);
165    TESTINST("ins", 0x98765432,         0x0,                16, 1);
166    TESTINST("ins", 0x98765432,         0xffffffffffffffff, 16, 1);
167    TESTINST("ins", 0x98765432,         0x98765432,         16, 1);
168    TESTINST("ins", 0x98765432,         0xffffffffff865421, 16, 1);
169    TESTINST("ins", 0xffffffffff865421, 0x0,                16, 1);
170    TESTINST("ins", 0xffffffffff865421, 0xffffffffffffffff, 16, 1);
171    TESTINST("ins", 0xffffffffff865421, 0x98765432,         16, 1);
172    TESTINST("ins", 0xffffffffff865421, 0xffffffffff865421, 16, 1);
173    TESTINST("ins", 0x0,                0x0,                16, 4);
174    TESTINST("ins", 0x0,                0xffffffffffffffff, 16, 4);
175    TESTINST("ins", 0x0,                0x98765432,         16, 4);
176    TESTINST("ins", 0x0,                0xffffffffff865421, 16, 4);
177    TESTINST("ins", 0xffffffffffffffff, 0x0,                16, 4);
178    TESTINST("ins", 0xffffffffffffffff, 0xffffffffffffffff, 16, 4);
179    TESTINST("ins", 0xffffffffffffffff, 0x98765432,         16, 4);
180    TESTINST("ins", 0xffffffffffffffff, 0xffffffffff865421, 16, 4);
181    TESTINST("ins", 0x98765432,         0x0,                16, 4);
182    TESTINST("ins", 0x98765432,         0xffffffffffffffff, 16, 4);
183    TESTINST("ins", 0x98765432,         0x98765432,         16, 4);
184    TESTINST("ins", 0x98765432,         0xffffffffff865421, 16, 4);
185    TESTINST("ins", 0xffffffffff865421, 0x0,                16, 4);
186    TESTINST("ins", 0xffffffffff865421, 0xffffffffffffffff, 16, 4);
187    TESTINST("ins", 0xffffffffff865421, 0x98765432,         16, 4);
188    TESTINST("ins", 0xffffffffff865421, 0xffffffffff865421, 16, 4);
189    TESTINST("ins", 0x0,                0x0,                16, 16);
190    TESTINST("ins", 0x0,                0xffffffffffffffff, 16, 16);
191    TESTINST("ins", 0x0,                0x98765432,         16, 16);
192    TESTINST("ins", 0x0,                0xffffffffff865421, 16, 16);
193    TESTINST("ins", 0xffffffffffffffff, 0x0,                16, 16);
194    TESTINST("ins", 0xffffffffffffffff, 0xffffffffffffffff, 16, 16);
195    TESTINST("ins", 0xffffffffffffffff, 0x98765432,         16, 16);
196    TESTINST("ins", 0xffffffffffffffff, 0xffffffffff865421, 16, 16);
197    TESTINST("ins", 0x98765432,         0x0,                16, 16);
198    TESTINST("ins", 0x98765432,         0xffffffffffffffff, 16, 16);
199    TESTINST("ins", 0x98765432,         0x98765432,         16, 16);
200    TESTINST("ins", 0x98765432,         0xffffffffff865421, 16, 16);
201    TESTINST("ins", 0xffffffffff865421, 0x0,                16, 16);
202    TESTINST("ins", 0xffffffffff865421, 0xffffffffffffffff, 16, 16);
203    TESTINST("ins", 0xffffffffff865421, 0x98765432,         16, 16);
204    TESTINST("ins", 0xffffffffff865421, 0xffffffffff865421, 16, 16);
205 
206    TESTINST("ins", 0x0,                0x0,                31, 1);
207    TESTINST("ins", 0x0,                0xffffffffffffffff, 31, 1);
208    TESTINST("ins", 0x0,                0x98765432,         31, 1);
209    TESTINST("ins", 0x0,                0xffffffffff865421, 31, 1);
210    TESTINST("ins", 0xffffffffffffffff, 0x0,                31, 1);
211    TESTINST("ins", 0xffffffffffffffff, 0xffffffffffffffff, 31, 1);
212    TESTINST("ins", 0xffffffffffffffff, 0x98765432,         31, 1);
213    TESTINST("ins", 0xffffffffffffffff, 0xffffffffff865421, 31, 1);
214    TESTINST("ins", 0x98765432,         0x0,                31, 1);
215    TESTINST("ins", 0x98765432,         0xffffffffffffffff, 31, 1);
216    TESTINST("ins", 0x98765432,         0x98765432,         31, 1);
217    TESTINST("ins", 0x98765432,         0xffffffffff865421, 31, 1);
218    TESTINST("ins", 0xffffffffff865421, 0x0,                31, 1);
219    TESTINST("ins", 0xffffffffff865421, 0xffffffffffffffff, 31, 1);
220    TESTINST("ins", 0xffffffffff865421, 0x98765432,         31, 1);
221    TESTINST("ins", 0xffffffffff865421, 0xffffffffff865421, 31, 1);
222 
223    printf("--- EXT ---\n");
224    /* The values of pos and size must satisfy all of the following relations:
225       0 <= pos < 32
226       0 < size <= 32
227       0 < pos+size <= 32 */
228    TESTINST("ext", 0x0,                0x0,                0, 1);
229    TESTINST("ext", 0x0,                0xffffffffffffffff, 0, 1);
230    TESTINST("ext", 0x0,                0x98765432,         0, 1);
231    TESTINST("ext", 0x0,                0xffffffffff865421, 0, 1);
232    TESTINST("ext", 0xffffffffffffffff, 0x0,                0, 1);
233    TESTINST("ext", 0xffffffffffffffff, 0xffffffffffffffff, 0, 1);
234    TESTINST("ext", 0xffffffffffffffff, 0x98765432,         0, 1);
235    TESTINST("ext", 0xffffffffffffffff, 0xffffffffff865421, 0, 1);
236    TESTINST("ext", 0x98765432,         0x0,                0, 1);
237    TESTINST("ext", 0x98765432,         0xffffffffffffffff, 0, 1);
238    TESTINST("ext", 0x98765432,         0x98765432,         0, 1);
239    TESTINST("ext", 0x98765432,         0xffffffffff865421, 0, 1);
240    TESTINST("ext", 0xffffffffff865421, 0x0,                0, 1);
241    TESTINST("ext", 0xffffffffff865421, 0xffffffffffffffff, 0, 1);
242    TESTINST("ext", 0xffffffffff865421, 0x98765432,         0, 1);
243    TESTINST("ext", 0xffffffffff865421, 0xffffffffff865421, 0, 1);
244    TESTINST("ext", 0x0,                0x0,                0, 4);
245    TESTINST("ext", 0x0,                0xffffffffffffffff, 0, 4);
246    TESTINST("ext", 0x0,                0x98765432,         0, 4);
247    TESTINST("ext", 0x0,                0xffffffffff865421, 0, 4);
248    TESTINST("ext", 0xffffffffffffffff, 0x0,                0, 4);
249    TESTINST("ext", 0xffffffffffffffff, 0xffffffffffffffff, 0, 4);
250    TESTINST("ext", 0xffffffffffffffff, 0x98765432,         0, 4);
251    TESTINST("ext", 0xffffffffffffffff, 0xffffffffff865421, 0, 4);
252    TESTINST("ext", 0x98765432,         0x0,                0, 4);
253    TESTINST("ext", 0x98765432,         0xffffffffffffffff, 0, 4);
254    TESTINST("ext", 0x98765432,         0x98765432,         0, 4);
255    TESTINST("ext", 0x98765432,         0xffffffffff865421, 0, 4);
256    TESTINST("ext", 0xffffffffff865421, 0x0,                0, 4);
257    TESTINST("ext", 0xffffffffff865421, 0xffffffffffffffff, 0, 4);
258    TESTINST("ext", 0xffffffffff865421, 0x98765432,         0, 4);
259    TESTINST("ext", 0xffffffffff865421, 0xffffffffff865421, 0, 4);
260    TESTINST("ext", 0x0,                0x0,                0, 16);
261    TESTINST("ext", 0x0,                0xffffffffffffffff, 0, 16);
262    TESTINST("ext", 0x0,                0x98765432,         0, 16);
263    TESTINST("ext", 0x0,                0xffffffffff865421, 0, 16);
264    TESTINST("ext", 0xffffffffffffffff, 0x0,                0, 16);
265    TESTINST("ext", 0xffffffffffffffff, 0xffffffffffffffff, 0, 16);
266    TESTINST("ext", 0xffffffffffffffff, 0x98765432,         0, 16);
267    TESTINST("ext", 0xffffffffffffffff, 0xffffffffff865421, 0, 16);
268    TESTINST("ext", 0x98765432,         0x0,                0, 16);
269    TESTINST("ext", 0x98765432,         0xffffffffffffffff, 0, 16);
270    TESTINST("ext", 0x98765432,         0x98765432,         0, 16);
271    TESTINST("ext", 0x98765432,         0xffffffffff865421, 0, 16);
272    TESTINST("ext", 0xffffffffff865421, 0x0,                0, 16);
273    TESTINST("ext", 0xffffffffff865421, 0xffffffffffffffff, 0, 16);
274    TESTINST("ext", 0xffffffffff865421, 0x98765432,         0, 16);
275    TESTINST("ext", 0xffffffffff865421, 0xffffffffff865421, 0, 16);
276    TESTINST("ext", 0x0,                0x0,                0, 32);
277    TESTINST("ext", 0x0,                0xffffffffffffffff, 0, 32);
278    TESTINST("ext", 0x0,                0x98765432,         0, 32);
279    TESTINST("ext", 0x0,                0xffffffffff865421, 0, 32);
280    TESTINST("ext", 0xffffffffffffffff, 0x0,                0, 32);
281    TESTINST("ext", 0xffffffffffffffff, 0xffffffffffffffff, 0, 32);
282    TESTINST("ext", 0xffffffffffffffff, 0x98765432,         0, 32);
283    TESTINST("ext", 0xffffffffffffffff, 0xffffffffff865421, 0, 32);
284    TESTINST("ext", 0x98765432,         0x0,                0, 32);
285    TESTINST("ext", 0x98765432,         0xffffffffffffffff, 0, 32);
286    TESTINST("ext", 0x98765432,         0x98765432,         0, 32);
287    TESTINST("ext", 0x98765432,         0xffffffffff865421, 0, 32);
288    TESTINST("ext", 0xffffffffff865421, 0x0,                0, 32);
289    TESTINST("ext", 0xffffffffff865421, 0xffffffffffffffff, 0, 32);
290    TESTINST("ext", 0xffffffffff865421, 0x98765432,         0, 32);
291    TESTINST("ext", 0xffffffffff865421, 0xffffffffff865421, 0, 32);
292 
293    TESTINST("ext", 0x0,                0x0,                4, 1);
294    TESTINST("ext", 0x0,                0xffffffffffffffff, 4, 1);
295    TESTINST("ext", 0x0,                0x98765432,         4, 1);
296    TESTINST("ext", 0x0,                0xffffffffff865421, 4, 1);
297    TESTINST("ext", 0xffffffffffffffff, 0x0,                4, 1);
298    TESTINST("ext", 0xffffffffffffffff, 0xffffffffffffffff, 4, 1);
299    TESTINST("ext", 0xffffffffffffffff, 0x98765432,         4, 1);
300    TESTINST("ext", 0xffffffffffffffff, 0xffffffffff865421, 4, 1);
301    TESTINST("ext", 0x98765432,         0x0,                4, 1);
302    TESTINST("ext", 0x98765432,         0xffffffffffffffff, 4, 1);
303    TESTINST("ext", 0x98765432,         0x98765432,         4, 1);
304    TESTINST("ext", 0x98765432,         0xffffffffff865421, 4, 1);
305    TESTINST("ext", 0xffffffffff865421, 0x0,                4, 1);
306    TESTINST("ext", 0xffffffffff865421, 0xffffffffffffffff, 4, 1);
307    TESTINST("ext", 0xffffffffff865421, 0x98765432,         4, 1);
308    TESTINST("ext", 0xffffffffff865421, 0xffffffffff865421, 4, 1);
309    TESTINST("ext", 0x0,                0x0,                4, 4);
310    TESTINST("ext", 0x0,                0xffffffffffffffff, 4, 4);
311    TESTINST("ext", 0x0,                0x98765432,         4, 4);
312    TESTINST("ext", 0x0,                0xffffffffff865421, 4, 4);
313    TESTINST("ext", 0xffffffffffffffff, 0x0,                4, 4);
314    TESTINST("ext", 0xffffffffffffffff, 0xffffffffffffffff, 4, 4);
315    TESTINST("ext", 0xffffffffffffffff, 0x98765432,         4, 4);
316    TESTINST("ext", 0xffffffffffffffff, 0xffffffffff865421, 4, 4);
317    TESTINST("ext", 0x98765432,         0x0,                4, 4);
318    TESTINST("ext", 0x98765432,         0xffffffffffffffff, 4, 4);
319    TESTINST("ext", 0x98765432,         0x98765432,         4, 4);
320    TESTINST("ext", 0x98765432,         0xffffffffff865421, 4, 4);
321    TESTINST("ext", 0xffffffffff865421, 0x0,                4, 4);
322    TESTINST("ext", 0xffffffffff865421, 0xffffffffffffffff, 4, 4);
323    TESTINST("ext", 0xffffffffff865421, 0x98765432,         4, 4);
324    TESTINST("ext", 0xffffffffff865421, 0xffffffffff865421, 4, 4);
325    TESTINST("ext", 0x0,                0x0,                4, 16);
326    TESTINST("ext", 0x0,                0xffffffffffffffff, 4, 16);
327    TESTINST("ext", 0x0,                0x98765432,         4, 16);
328    TESTINST("ext", 0x0,                0xffffffffff865421, 4, 16);
329    TESTINST("ext", 0xffffffffffffffff, 0x0,                4, 16);
330    TESTINST("ext", 0xffffffffffffffff, 0xffffffffffffffff, 4, 16);
331    TESTINST("ext", 0xffffffffffffffff, 0x98765432,         4, 16);
332    TESTINST("ext", 0xffffffffffffffff, 0xffffffffff865421, 4, 16);
333    TESTINST("ext", 0x98765432,         0x0,                4, 16);
334    TESTINST("ext", 0x98765432,         0xffffffffffffffff, 4, 16);
335    TESTINST("ext", 0x98765432,         0x98765432,         4, 16);
336    TESTINST("ext", 0x98765432,         0xffffffffff865421, 4, 16);
337    TESTINST("ext", 0xffffffffff865421, 0x0,                4, 16);
338    TESTINST("ext", 0xffffffffff865421, 0xffffffffffffffff, 4, 16);
339    TESTINST("ext", 0xffffffffff865421, 0x98765432,         4, 16);
340    TESTINST("ext", 0xffffffffff865421, 0xffffffffff865421, 4, 16);
341    TESTINST("ext", 0x0,                0x0,                4, 28);
342    TESTINST("ext", 0x0,                0xffffffffffffffff, 4, 28);
343    TESTINST("ext", 0x0,                0x98765432,         4, 28);
344    TESTINST("ext", 0x0,                0xffffffffff865421, 4, 28);
345    TESTINST("ext", 0xffffffffffffffff, 0x0,                4, 28);
346    TESTINST("ext", 0xffffffffffffffff, 0xffffffffffffffff, 4, 28);
347    TESTINST("ext", 0xffffffffffffffff, 0x98765432,         4, 28);
348    TESTINST("ext", 0xffffffffffffffff, 0xffffffffff865421, 4, 28);
349    TESTINST("ext", 0x98765432,         0x0,                4, 28);
350    TESTINST("ext", 0x98765432,         0xffffffffffffffff, 4, 28);
351    TESTINST("ext", 0x98765432,         0x98765432,         4, 28);
352    TESTINST("ext", 0x98765432,         0xffffffffff865421, 4, 28);
353    TESTINST("ext", 0xffffffffff865421, 0x0,                4, 28);
354    TESTINST("ext", 0xffffffffff865421, 0xffffffffffffffff, 4, 28);
355    TESTINST("ext", 0xffffffffff865421, 0x98765432,         4, 28);
356    TESTINST("ext", 0xffffffffff865421, 0xffffffffff865421, 4, 28);
357 
358    TESTINST("ext", 0x0,                0x0,                16, 1);
359    TESTINST("ext", 0x0,                0xffffffffffffffff, 16, 1);
360    TESTINST("ext", 0x0,                0x98765432,         16, 1);
361    TESTINST("ext", 0x0,                0xffffffffff865421, 16, 1);
362    TESTINST("ext", 0xffffffffffffffff, 0x0,                16, 1);
363    TESTINST("ext", 0xffffffffffffffff, 0xffffffffffffffff, 16, 1);
364    TESTINST("ext", 0xffffffffffffffff, 0x98765432,         16, 1);
365    TESTINST("ext", 0xffffffffffffffff, 0xffffffffff865421, 16, 1);
366    TESTINST("ext", 0x98765432,         0x0,                16, 1);
367    TESTINST("ext", 0x98765432,         0xffffffffffffffff, 16, 1);
368    TESTINST("ext", 0x98765432,         0x98765432,         16, 1);
369    TESTINST("ext", 0x98765432,         0xffffffffff865421, 16, 1);
370    TESTINST("ext", 0xffffffffff865421, 0x0,                16, 1);
371    TESTINST("ext", 0xffffffffff865421, 0xffffffffffffffff, 16, 1);
372    TESTINST("ext", 0xffffffffff865421, 0x98765432,         16, 1);
373    TESTINST("ext", 0xffffffffff865421, 0xffffffffff865421, 16, 1);
374    TESTINST("ext", 0x0,                0x0,                16, 4);
375    TESTINST("ext", 0x0,                0xffffffffffffffff, 16, 4);
376    TESTINST("ext", 0x0,                0x98765432,         16, 4);
377    TESTINST("ext", 0x0,                0xffffffffff865421, 16, 4);
378    TESTINST("ext", 0xffffffffffffffff, 0x0,                16, 4);
379    TESTINST("ext", 0xffffffffffffffff, 0xffffffffffffffff, 16, 4);
380    TESTINST("ext", 0xffffffffffffffff, 0x98765432,         16, 4);
381    TESTINST("ext", 0xffffffffffffffff, 0xffffffffff865421, 16, 4);
382    TESTINST("ext", 0x98765432,         0x0,                16, 4);
383    TESTINST("ext", 0x98765432,         0xffffffffffffffff, 16, 4);
384    TESTINST("ext", 0x98765432,         0x98765432,         16, 4);
385    TESTINST("ext", 0x98765432,         0xffffffffff865421, 16, 4);
386    TESTINST("ext", 0xffffffffff865421, 0x0,                16, 4);
387    TESTINST("ext", 0xffffffffff865421, 0xffffffffffffffff, 16, 4);
388    TESTINST("ext", 0xffffffffff865421, 0x98765432,         16, 4);
389    TESTINST("ext", 0xffffffffff865421, 0xffffffffff865421, 16, 4);
390    TESTINST("ext", 0x0,                0x0,                16, 16);
391    TESTINST("ext", 0x0,                0xffffffffffffffff, 16, 16);
392    TESTINST("ext", 0x0,                0x98765432,         16, 16);
393    TESTINST("ext", 0x0,                0xffffffffff865421, 16, 16);
394    TESTINST("ext", 0xffffffffffffffff, 0x0,                16, 16);
395    TESTINST("ext", 0xffffffffffffffff, 0xffffffffffffffff, 16, 16);
396    TESTINST("ext", 0xffffffffffffffff, 0x98765432,         16, 16);
397    TESTINST("ext", 0xffffffffffffffff, 0xffffffffff865421, 16, 16);
398    TESTINST("ext", 0x98765432,         0x0,                16, 16);
399    TESTINST("ext", 0x98765432,         0xffffffffffffffff, 16, 16);
400    TESTINST("ext", 0x98765432,         0x98765432,         16, 16);
401    TESTINST("ext", 0x98765432,         0xffffffffff865421, 16, 16);
402    TESTINST("ext", 0xffffffffff865421, 0x0,                16, 16);
403    TESTINST("ext", 0xffffffffff865421, 0xffffffffffffffff, 16, 16);
404    TESTINST("ext", 0xffffffffff865421, 0x98765432,         16, 16);
405    TESTINST("ext", 0xffffffffff865421, 0xffffffffff865421, 16, 16);
406 
407    TESTINST("ext", 0x0,                0x0,                31, 1);
408    TESTINST("ext", 0x0,                0xffffffffffffffff, 31, 1);
409    TESTINST("ext", 0x0,                0x98765432,         31, 1);
410    TESTINST("ext", 0x0,                0xffffffffff865421, 31, 1);
411    TESTINST("ext", 0xffffffffffffffff, 0x0,                31, 1);
412    TESTINST("ext", 0xffffffffffffffff, 0xffffffffffffffff, 31, 1);
413    TESTINST("ext", 0xffffffffffffffff, 0x98765432,         31, 1);
414    TESTINST("ext", 0xffffffffffffffff, 0xffffffffff865421, 31, 1);
415    TESTINST("ext", 0x98765432,         0x0,                31, 1);
416    TESTINST("ext", 0x98765432,         0xffffffffffffffff, 31, 1);
417    TESTINST("ext", 0x98765432,         0x98765432,         31, 1);
418    TESTINST("ext", 0x98765432,         0xffffffffff865421, 31, 1);
419    TESTINST("ext", 0xffffffffff865421, 0x0,                31, 1);
420    TESTINST("ext", 0xffffffffff865421, 0xffffffffffffffff, 31, 1);
421    TESTINST("ext", 0xffffffffff865421, 0x98765432,         31, 1);
422    TESTINST("ext", 0xffffffffff865421, 0xffffffffff865421, 31, 1);
423 
424    printf("--- DEXT ---\n");
425    /* The values of pos and size must satisfy all of the following relations:
426       0 <= pos < 32
427       0 < size <= 32
428       0 < pos+size <= 63 */
429    TESTINST("dext", 0x0,                0x0,                0, 1);
430    TESTINST("dext", 0x0,                0xffffffffffffffff, 0, 1);
431    TESTINST("dext", 0x0,                0x98765432,         0, 1);
432    TESTINST("dext", 0x0,                0xffffffffff865421, 0, 1);
433    TESTINST("dext", 0xffffffffffffffff, 0x0,                0, 1);
434    TESTINST("dext", 0xffffffffffffffff, 0xffffffffffffffff, 0, 1);
435    TESTINST("dext", 0xffffffffffffffff, 0x98765432,         0, 1);
436    TESTINST("dext", 0xffffffffffffffff, 0xffffffffff865421, 0, 1);
437    TESTINST("dext", 0x98765432,         0x0,                0, 1);
438    TESTINST("dext", 0x98765432,         0xffffffffffffffff, 0, 1);
439    TESTINST("dext", 0x98765432,         0x98765432,         0, 1);
440    TESTINST("dext", 0x98765432,         0xffffffffff865421, 0, 1);
441    TESTINST("dext", 0xffffffffff865421, 0x0,                0, 1);
442    TESTINST("dext", 0xffffffffff865421, 0xffffffffffffffff, 0, 1);
443    TESTINST("dext", 0xffffffffff865421, 0x98765432,         0, 1);
444    TESTINST("dext", 0xffffffffff865421, 0xffffffffff865421, 0, 1);
445    TESTINST("dext", 0x0,                0x0,                0, 4);
446    TESTINST("dext", 0x0,                0xffffffffffffffff, 0, 4);
447    TESTINST("dext", 0x0,                0x98765432,         0, 4);
448    TESTINST("dext", 0x0,                0xffffffffff865421, 0, 4);
449    TESTINST("dext", 0xffffffffffffffff, 0x0,                0, 4);
450    TESTINST("dext", 0xffffffffffffffff, 0xffffffffffffffff, 0, 4);
451    TESTINST("dext", 0xffffffffffffffff, 0x98765432,         0, 4);
452    TESTINST("dext", 0xffffffffffffffff, 0xffffffffff865421, 0, 4);
453    TESTINST("dext", 0x98765432,         0x0,                0, 4);
454    TESTINST("dext", 0x98765432,         0xffffffffffffffff, 0, 4);
455    TESTINST("dext", 0x98765432,         0x98765432,         0, 4);
456    TESTINST("dext", 0x98765432,         0xffffffffff865421, 0, 4);
457    TESTINST("dext", 0xffffffffff865421, 0x0,                0, 4);
458    TESTINST("dext", 0xffffffffff865421, 0xffffffffffffffff, 0, 4);
459    TESTINST("dext", 0xffffffffff865421, 0x98765432,         0, 4);
460    TESTINST("dext", 0xffffffffff865421, 0xffffffffff865421, 0, 4);
461    TESTINST("dext", 0x0,                0x0,                0, 16);
462    TESTINST("dext", 0x0,                0xffffffffffffffff, 0, 16);
463    TESTINST("dext", 0x0,                0x98765432,         0, 16);
464    TESTINST("dext", 0x0,                0xffffffffff865421, 0, 16);
465    TESTINST("dext", 0xffffffffffffffff, 0x0,                0, 16);
466    TESTINST("dext", 0xffffffffffffffff, 0xffffffffffffffff, 0, 16);
467    TESTINST("dext", 0xffffffffffffffff, 0x98765432,         0, 16);
468    TESTINST("dext", 0xffffffffffffffff, 0xffffffffff865421, 0, 16);
469    TESTINST("dext", 0x98765432,         0x0,                0, 16);
470    TESTINST("dext", 0x98765432,         0xffffffffffffffff, 0, 16);
471    TESTINST("dext", 0x98765432,         0x98765432,         0, 16);
472    TESTINST("dext", 0x98765432,         0xffffffffff865421, 0, 16);
473    TESTINST("dext", 0xffffffffff865421, 0x0,                0, 16);
474    TESTINST("dext", 0xffffffffff865421, 0xffffffffffffffff, 0, 16);
475    TESTINST("dext", 0xffffffffff865421, 0x98765432,         0, 16);
476    TESTINST("dext", 0xffffffffff865421, 0xffffffffff865421, 0, 16);
477    TESTINST("dext", 0x0,                0x0,                0, 32);
478    TESTINST("dext", 0x0,                0xffffffffffffffff, 0, 32);
479    TESTINST("dext", 0x0,                0x98765432,         0, 32);
480    TESTINST("dext", 0x0,                0xffffffffff865421, 0, 32);
481    TESTINST("dext", 0xffffffffffffffff, 0x0,                0, 32);
482    TESTINST("dext", 0xffffffffffffffff, 0xffffffffffffffff, 0, 32);
483    TESTINST("dext", 0xffffffffffffffff, 0x98765432,         0, 32);
484    TESTINST("dext", 0xffffffffffffffff, 0xffffffffff865421, 0, 32);
485    TESTINST("dext", 0x98765432,         0x0,                0, 32);
486    TESTINST("dext", 0x98765432,         0xffffffffffffffff, 0, 32);
487    TESTINST("dext", 0x98765432,         0x98765432,         0, 32);
488    TESTINST("dext", 0x98765432,         0xffffffffff865421, 0, 32);
489    TESTINST("dext", 0xffffffffff865421, 0x0,                0, 32);
490    TESTINST("dext", 0xffffffffff865421, 0xffffffffffffffff, 0, 32);
491    TESTINST("dext", 0xffffffffff865421, 0x98765432,         0, 32);
492    TESTINST("dext", 0xffffffffff865421, 0xffffffffff865421, 0, 32);
493 
494    TESTINST("dext", 0x0,                0x0,                4, 1);
495    TESTINST("dext", 0x0,                0xffffffffffffffff, 4, 1);
496    TESTINST("dext", 0x0,                0x98765432,         4, 1);
497    TESTINST("dext", 0x0,                0xffffffffff865421, 4, 1);
498    TESTINST("dext", 0xffffffffffffffff, 0x0,                4, 1);
499    TESTINST("dext", 0xffffffffffffffff, 0xffffffffffffffff, 4, 1);
500    TESTINST("dext", 0xffffffffffffffff, 0x98765432,         4, 1);
501    TESTINST("dext", 0xffffffffffffffff, 0xffffffffff865421, 4, 1);
502    TESTINST("dext", 0x98765432,         0x0,                4, 1);
503    TESTINST("dext", 0x98765432,         0xffffffffffffffff, 4, 1);
504    TESTINST("dext", 0x98765432,         0x98765432,         4, 1);
505    TESTINST("dext", 0x98765432,         0xffffffffff865421, 4, 1);
506    TESTINST("dext", 0xffffffffff865421, 0x0,                4, 1);
507    TESTINST("dext", 0xffffffffff865421, 0xffffffffffffffff, 4, 1);
508    TESTINST("dext", 0xffffffffff865421, 0x98765432,         4, 1);
509    TESTINST("dext", 0xffffffffff865421, 0xffffffffff865421, 4, 1);
510    TESTINST("dext", 0x0,                0x0,                4, 4);
511    TESTINST("dext", 0x0,                0xffffffffffffffff, 4, 4);
512    TESTINST("dext", 0x0,                0x98765432,         4, 4);
513    TESTINST("dext", 0x0,                0xffffffffff865421, 4, 4);
514    TESTINST("dext", 0xffffffffffffffff, 0x0,                4, 4);
515    TESTINST("dext", 0xffffffffffffffff, 0xffffffffffffffff, 4, 4);
516    TESTINST("dext", 0xffffffffffffffff, 0x98765432,         4, 4);
517    TESTINST("dext", 0xffffffffffffffff, 0xffffffffff865421, 4, 4);
518    TESTINST("dext", 0x98765432,         0x0,                4, 4);
519    TESTINST("dext", 0x98765432,         0xffffffffffffffff, 4, 4);
520    TESTINST("dext", 0x98765432,         0x98765432,         4, 4);
521    TESTINST("dext", 0x98765432,         0xffffffffff865421, 4, 4);
522    TESTINST("dext", 0xffffffffff865421, 0x0,                4, 4);
523    TESTINST("dext", 0xffffffffff865421, 0xffffffffffffffff, 4, 4);
524    TESTINST("dext", 0xffffffffff865421, 0x98765432,         4, 4);
525    TESTINST("dext", 0xffffffffff865421, 0xffffffffff865421, 4, 4);
526    TESTINST("dext", 0x0,                0x0,                4, 16);
527    TESTINST("dext", 0x0,                0xffffffffffffffff, 4, 16);
528    TESTINST("dext", 0x0,                0x98765432,         4, 16);
529    TESTINST("dext", 0x0,                0xffffffffff865421, 4, 16);
530    TESTINST("dext", 0xffffffffffffffff, 0x0,                4, 16);
531    TESTINST("dext", 0xffffffffffffffff, 0xffffffffffffffff, 4, 16);
532    TESTINST("dext", 0xffffffffffffffff, 0x98765432,         4, 16);
533    TESTINST("dext", 0xffffffffffffffff, 0xffffffffff865421, 4, 16);
534    TESTINST("dext", 0x98765432,         0x0,                4, 16);
535    TESTINST("dext", 0x98765432,         0xffffffffffffffff, 4, 16);
536    TESTINST("dext", 0x98765432,         0x98765432,         4, 16);
537    TESTINST("dext", 0x98765432,         0xffffffffff865421, 4, 16);
538    TESTINST("dext", 0xffffffffff865421, 0x0,                4, 16);
539    TESTINST("dext", 0xffffffffff865421, 0xffffffffffffffff, 4, 16);
540    TESTINST("dext", 0xffffffffff865421, 0x98765432,         4, 16);
541    TESTINST("dext", 0xffffffffff865421, 0xffffffffff865421, 4, 16);
542    TESTINST("dext", 0x0,                0x0,                4, 32);
543    TESTINST("dext", 0x0,                0xffffffffffffffff, 4, 32);
544    TESTINST("dext", 0x0,                0x98765432,         4, 32);
545    TESTINST("dext", 0x0,                0xffffffffff865421, 4, 32);
546    TESTINST("dext", 0xffffffffffffffff, 0x0,                4, 32);
547    TESTINST("dext", 0xffffffffffffffff, 0xffffffffffffffff, 4, 32);
548    TESTINST("dext", 0xffffffffffffffff, 0x98765432,         4, 32);
549    TESTINST("dext", 0xffffffffffffffff, 0xffffffffff865421, 4, 32);
550    TESTINST("dext", 0x98765432,         0x0,                4, 32);
551    TESTINST("dext", 0x98765432,         0xffffffffffffffff, 4, 32);
552    TESTINST("dext", 0x98765432,         0x98765432,         4, 32);
553    TESTINST("dext", 0x98765432,         0xffffffffff865421, 4, 32);
554    TESTINST("dext", 0xffffffffff865421, 0x0,                4, 32);
555    TESTINST("dext", 0xffffffffff865421, 0xffffffffffffffff, 4, 32);
556    TESTINST("dext", 0xffffffffff865421, 0x98765432,         4, 32);
557    TESTINST("dext", 0xffffffffff865421, 0xffffffffff865421, 4, 32);
558 
559    TESTINST("dext", 0x0,                0x0,                16, 1);
560    TESTINST("dext", 0x0,                0xffffffffffffffff, 16, 1);
561    TESTINST("dext", 0x0,                0x98765432,         16, 1);
562    TESTINST("dext", 0x0,                0xffffffffff865421, 16, 1);
563    TESTINST("dext", 0xffffffffffffffff, 0x0,                16, 1);
564    TESTINST("dext", 0xffffffffffffffff, 0xffffffffffffffff, 16, 1);
565    TESTINST("dext", 0xffffffffffffffff, 0x98765432,         16, 1);
566    TESTINST("dext", 0xffffffffffffffff, 0xffffffffff865421, 16, 1);
567    TESTINST("dext", 0x98765432,         0x0,                16, 1);
568    TESTINST("dext", 0x98765432,         0xffffffffffffffff, 16, 1);
569    TESTINST("dext", 0x98765432,         0x98765432,         16, 1);
570    TESTINST("dext", 0x98765432,         0xffffffffff865421, 16, 1);
571    TESTINST("dext", 0xffffffffff865421, 0x0,                16, 1);
572    TESTINST("dext", 0xffffffffff865421, 0xffffffffffffffff, 16, 1);
573    TESTINST("dext", 0xffffffffff865421, 0x98765432,         16, 1);
574    TESTINST("dext", 0xffffffffff865421, 0xffffffffff865421, 16, 1);
575    TESTINST("dext", 0x0,                0x0,                16, 4);
576    TESTINST("dext", 0x0,                0xffffffffffffffff, 16, 4);
577    TESTINST("dext", 0x0,                0x98765432,         16, 4);
578    TESTINST("dext", 0x0,                0xffffffffff865421, 16, 4);
579    TESTINST("dext", 0xffffffffffffffff, 0x0,                16, 4);
580    TESTINST("dext", 0xffffffffffffffff, 0xffffffffffffffff, 16, 4);
581    TESTINST("dext", 0xffffffffffffffff, 0x98765432,         16, 4);
582    TESTINST("dext", 0xffffffffffffffff, 0xffffffffff865421, 16, 4);
583    TESTINST("dext", 0x98765432,         0x0,                16, 4);
584    TESTINST("dext", 0x98765432,         0xffffffffffffffff, 16, 4);
585    TESTINST("dext", 0x98765432,         0x98765432,         16, 4);
586    TESTINST("dext", 0x98765432,         0xffffffffff865421, 16, 4);
587    TESTINST("dext", 0xffffffffff865421, 0x0,                16, 4);
588    TESTINST("dext", 0xffffffffff865421, 0xffffffffffffffff, 16, 4);
589    TESTINST("dext", 0xffffffffff865421, 0x98765432,         16, 4);
590    TESTINST("dext", 0xffffffffff865421, 0xffffffffff865421, 16, 4);
591    TESTINST("dext", 0x0,                0x0,                16, 16);
592    TESTINST("dext", 0x0,                0xffffffffffffffff, 16, 16);
593    TESTINST("dext", 0x0,                0x98765432,         16, 16);
594    TESTINST("dext", 0x0,                0xffffffffff865421, 16, 16);
595    TESTINST("dext", 0xffffffffffffffff, 0x0,                16, 16);
596    TESTINST("dext", 0xffffffffffffffff, 0xffffffffffffffff, 16, 16);
597    TESTINST("dext", 0xffffffffffffffff, 0x98765432,         16, 16);
598    TESTINST("dext", 0xffffffffffffffff, 0xffffffffff865421, 16, 16);
599    TESTINST("dext", 0x98765432,         0x0,                16, 16);
600    TESTINST("dext", 0x98765432,         0xffffffffffffffff, 16, 16);
601    TESTINST("dext", 0x98765432,         0x98765432,         16, 16);
602    TESTINST("dext", 0x98765432,         0xffffffffff865421, 16, 16);
603    TESTINST("dext", 0xffffffffff865421, 0x0,                16, 16);
604    TESTINST("dext", 0xffffffffff865421, 0xffffffffffffffff, 16, 16);
605    TESTINST("dext", 0xffffffffff865421, 0x98765432,         16, 16);
606    TESTINST("dext", 0xffffffffff865421, 0xffffffffff865421, 16, 16);
607    TESTINST("dext", 0x0,                0x0,                16, 32);
608    TESTINST("dext", 0x0,                0xffffffffffffffff, 16, 32);
609    TESTINST("dext", 0x0,                0x98765432,         16, 32);
610    TESTINST("dext", 0x0,                0xffffffffff865421, 16, 32);
611    TESTINST("dext", 0xffffffffffffffff, 0x0,                16, 32);
612    TESTINST("dext", 0xffffffffffffffff, 0xffffffffffffffff, 16, 32);
613    TESTINST("dext", 0xffffffffffffffff, 0x98765432,         16, 32);
614    TESTINST("dext", 0xffffffffffffffff, 0xffffffffff865421, 16, 32);
615    TESTINST("dext", 0x98765432,         0x0,                16, 32);
616    TESTINST("dext", 0x98765432,         0xffffffffffffffff, 16, 32);
617    TESTINST("dext", 0x98765432,         0x98765432,         16, 32);
618    TESTINST("dext", 0x98765432,         0xffffffffff865421, 16, 32);
619    TESTINST("dext", 0xffffffffff865421, 0x0,                16, 32);
620    TESTINST("dext", 0xffffffffff865421, 0xffffffffffffffff, 16, 32);
621    TESTINST("dext", 0xffffffffff865421, 0x98765432,         16, 32);
622    TESTINST("dext", 0xffffffffff865421, 0xffffffffff865421, 16, 32);
623 
624    TESTINST("dext", 0x0,                0x0,                31, 1);
625    TESTINST("dext", 0x0,                0xffffffffffffffff, 31, 1);
626    TESTINST("dext", 0x0,                0x98765432,         31, 1);
627    TESTINST("dext", 0x0,                0xffffffffff865421, 31, 1);
628    TESTINST("dext", 0xffffffffffffffff, 0x0,                31, 1);
629    TESTINST("dext", 0xffffffffffffffff, 0xffffffffffffffff, 31, 1);
630    TESTINST("dext", 0xffffffffffffffff, 0x98765432,         31, 1);
631    TESTINST("dext", 0xffffffffffffffff, 0xffffffffff865421, 31, 1);
632    TESTINST("dext", 0x98765432,         0x0,                31, 1);
633    TESTINST("dext", 0x98765432,         0xffffffffffffffff, 31, 1);
634    TESTINST("dext", 0x98765432,         0x98765432,         31, 1);
635    TESTINST("dext", 0x98765432,         0xffffffffff865421, 31, 1);
636    TESTINST("dext", 0xffffffffff865421, 0x0,                31, 1);
637    TESTINST("dext", 0xffffffffff865421, 0xffffffffffffffff, 31, 1);
638    TESTINST("dext", 0xffffffffff865421, 0x98765432,         31, 1);
639    TESTINST("dext", 0xffffffffff865421, 0xffffffffff865421, 31, 1);
640    TESTINST("dext", 0x0,                0x0,                31, 4);
641    TESTINST("dext", 0x0,                0xffffffffffffffff, 31, 4);
642    TESTINST("dext", 0x0,                0x98765432,         31, 4);
643    TESTINST("dext", 0x0,                0xffffffffff865421, 31, 4);
644    TESTINST("dext", 0xffffffffffffffff, 0x0,                31, 4);
645    TESTINST("dext", 0xffffffffffffffff, 0xffffffffffffffff, 31, 4);
646    TESTINST("dext", 0xffffffffffffffff, 0x98765432,         31, 4);
647    TESTINST("dext", 0xffffffffffffffff, 0xffffffffff865421, 31, 4);
648    TESTINST("dext", 0x98765432,         0x0,                31, 4);
649    TESTINST("dext", 0x98765432,         0xffffffffffffffff, 31, 4);
650    TESTINST("dext", 0x98765432,         0x98765432,         31, 4);
651    TESTINST("dext", 0x98765432,         0xffffffffff865421, 31, 4);
652    TESTINST("dext", 0xffffffffff865421, 0x0,                31, 4);
653    TESTINST("dext", 0xffffffffff865421, 0xffffffffffffffff, 31, 4);
654    TESTINST("dext", 0xffffffffff865421, 0x98765432,         31, 4);
655    TESTINST("dext", 0xffffffffff865421, 0xffffffffff865421, 31, 4);
656    TESTINST("dext", 0x0,                0x0,                31, 16);
657    TESTINST("dext", 0x0,                0xffffffffffffffff, 31, 16);
658    TESTINST("dext", 0x0,                0x98765432,         31, 16);
659    TESTINST("dext", 0x0,                0xffffffffff865421, 31, 16);
660    TESTINST("dext", 0xffffffffffffffff, 0x0,                31, 16);
661    TESTINST("dext", 0xffffffffffffffff, 0xffffffffffffffff, 31, 16);
662    TESTINST("dext", 0xffffffffffffffff, 0x98765432,         31, 16);
663    TESTINST("dext", 0xffffffffffffffff, 0xffffffffff865421, 31, 16);
664    TESTINST("dext", 0x98765432,         0x0,                31, 16);
665    TESTINST("dext", 0x98765432,         0xffffffffffffffff, 31, 16);
666    TESTINST("dext", 0x98765432,         0x98765432,         31, 16);
667    TESTINST("dext", 0x98765432,         0xffffffffff865421, 31, 16);
668    TESTINST("dext", 0xffffffffff865421, 0x0,                31, 16);
669    TESTINST("dext", 0xffffffffff865421, 0xffffffffffffffff, 31, 16);
670    TESTINST("dext", 0xffffffffff865421, 0x98765432,         31, 16);
671    TESTINST("dext", 0xffffffffff865421, 0xffffffffff865421, 31, 16);
672    TESTINST("dext", 0x0,                0x0,                31, 32);
673    TESTINST("dext", 0x0,                0xffffffffffffffff, 31, 32);
674    TESTINST("dext", 0x0,                0x98765432,         31, 32);
675    TESTINST("dext", 0x0,                0xffffffffff865421, 31, 32);
676    TESTINST("dext", 0xffffffffffffffff, 0x0,                31, 32);
677    TESTINST("dext", 0xffffffffffffffff, 0xffffffffffffffff, 31, 32);
678    TESTINST("dext", 0xffffffffffffffff, 0x98765432,         31, 32);
679    TESTINST("dext", 0xffffffffffffffff, 0xffffffffff865421, 31, 32);
680    TESTINST("dext", 0x98765432,         0x0,                31, 32);
681    TESTINST("dext", 0x98765432,         0xffffffffffffffff, 31, 32);
682    TESTINST("dext", 0x98765432,         0x98765432,         31, 32);
683    TESTINST("dext", 0x98765432,         0xffffffffff865421, 31, 32);
684    TESTINST("dext", 0xffffffffff865421, 0x0,                31, 32);
685    TESTINST("dext", 0xffffffffff865421, 0xffffffffffffffff, 31, 32);
686    TESTINST("dext", 0xffffffffff865421, 0x98765432,         31, 32);
687    TESTINST("dext", 0xffffffffff865421, 0xffffffffff865421, 31, 32);
688 
689    TESTINST("dext", 0x2002ffffffffffff, 0xfffffffff0000fff, 4,  4);
690    TESTINST("dext", 0xffff0000ffffffff, 0xff0000ffffffffff, 8,  4);
691    TESTINST("dext", 0x2000ffffffffffff, 0xffff0000ffffffff, 16, 4);
692    TESTINST("dext", 0x2000ffffffddddff, 0xffffffffffff0008, 24, 2);
693    TESTINST("dext", 0x2000ffffffffeeee, 0xfffffff31415927f, 24, 4);
694    TESTINST("dext", 0x31415927ffffffff, 0x2000ffffffffffff, 9,  2);
695    TESTINST("dext", 0x2000ffffffffaaaa, 0x2000ffffffff2222, 16, 4);
696    TESTINST("dext", 0x2000ffffffbbbbff, 0x7fffffffddddffff, 16, 4);
697    TESTINST("dext", 0xeeeeff33ff22ffff, 0x2000ffffffffffff, 7,  4);
698    TESTINST("dext", 0x2000ffffffffffff, 0x2000ffffffffbbbb, 5,  4);
699    TESTINST("dext", 0x2000ffffffffbbbb, 0xfffffffff0000fff, 3,  4);
700    TESTINST("dext", 0x2000ffffffffffff, 0xffff0000ffffffff, 16, 16);
701    TESTINST("dext", 0x7fffffffddddffff, 0xffffffffffff0008, 16, 32);
702    TESTINST("dext", 0x2000ffffffff2222, 0xfffffff31415927f, 2,  60);
703    TESTINST("dext", 0x2000ffffffffffff, 0x2000ffffffffffff, 16, 6);
704    TESTINST("dext", 0xfffffff31415927f, 0x2000ffffffff2222, 31, 32);
705    TESTINST("dext", 0xffffffffffff0008, 0x7fffffffddddffff, 8,  2);
706    TESTINST("dext", 0xffff0000ffffffff, 0x2000ffffffffffff, 16, 4);
707    TESTINST("dext", 0xff0000ffffffffff, 0,                  8,  4);
708    TESTINST("dext", 0xfffffffff0000fff, 0,                  16, 4);
709 
710    printf("--- DEXTM ---\n");
711    /* The values of pos and size must satisfy all of the following relations:
712       0 <= pos < 32
713       32 < size <= 64
714       32 < pos+size <= 64 */
715    TESTINST("dextm", 0x0,                0x0,                0, 33);
716    TESTINST("dextm", 0x0,                0xffffffffffffffff, 0, 33);
717    TESTINST("dextm", 0x0,                0x98765432,         0, 33);
718    TESTINST("dextm", 0x0,                0xffffffffff865421, 0, 33);
719    TESTINST("dextm", 0xffffffffffffffff, 0x0,                0, 33);
720    TESTINST("dextm", 0xffffffffffffffff, 0xffffffffffffffff, 0, 33);
721    TESTINST("dextm", 0xffffffffffffffff, 0x98765432,         0, 33);
722    TESTINST("dextm", 0xffffffffffffffff, 0xffffffffff865421, 0, 33);
723    TESTINST("dextm", 0x98765432,         0x0,                0, 33);
724    TESTINST("dextm", 0x98765432,         0xffffffffffffffff, 0, 33);
725    TESTINST("dextm", 0x98765432,         0x98765432,         0, 33);
726    TESTINST("dextm", 0x98765432,         0xffffffffff865421, 0, 33);
727    TESTINST("dextm", 0xffffffffff865421, 0x0,                0, 33);
728    TESTINST("dextm", 0xffffffffff865421, 0xffffffffffffffff, 0, 33);
729    TESTINST("dextm", 0xffffffffff865421, 0x98765432,         0, 33);
730    TESTINST("dextm", 0xffffffffff865421, 0xffffffffff865421, 0, 33);
731    TESTINST("dextm", 0x0,                0x0,                0, 37);
732    TESTINST("dextm", 0x0,                0xffffffffffffffff, 0, 37);
733    TESTINST("dextm", 0x0,                0x98765432,         0, 37);
734    TESTINST("dextm", 0x0,                0xffffffffff865421, 0, 37);
735    TESTINST("dextm", 0xffffffffffffffff, 0x0,                0, 37);
736    TESTINST("dextm", 0xffffffffffffffff, 0xffffffffffffffff, 0, 37);
737    TESTINST("dextm", 0xffffffffffffffff, 0x98765432,         0, 37);
738    TESTINST("dextm", 0xffffffffffffffff, 0xffffffffff865421, 0, 37);
739    TESTINST("dextm", 0x98765432,         0x0,                0, 37);
740    TESTINST("dextm", 0x98765432,         0xffffffffffffffff, 0, 37);
741    TESTINST("dextm", 0x98765432,         0x98765432,         0, 37);
742    TESTINST("dextm", 0x98765432,         0xffffffffff865421, 0, 37);
743    TESTINST("dextm", 0xffffffffff865421, 0x0,                0, 37);
744    TESTINST("dextm", 0xffffffffff865421, 0xffffffffffffffff, 0, 37);
745    TESTINST("dextm", 0xffffffffff865421, 0x98765432,         0, 37);
746    TESTINST("dextm", 0xffffffffff865421, 0xffffffffff865421, 0, 37);
747    TESTINST("dextm", 0x0,                0x0,                0, 48);
748    TESTINST("dextm", 0x0,                0xffffffffffffffff, 0, 48);
749    TESTINST("dextm", 0x0,                0x98765432,         0, 48);
750    TESTINST("dextm", 0x0,                0xffffffffff865421, 0, 48);
751    TESTINST("dextm", 0xffffffffffffffff, 0x0,                0, 48);
752    TESTINST("dextm", 0xffffffffffffffff, 0xffffffffffffffff, 0, 48);
753    TESTINST("dextm", 0xffffffffffffffff, 0x98765432,         0, 48);
754    TESTINST("dextm", 0xffffffffffffffff, 0xffffffffff865421, 0, 48);
755    TESTINST("dextm", 0x98765432,         0x0,                0, 48);
756    TESTINST("dextm", 0x98765432,         0xffffffffffffffff, 0, 48);
757    TESTINST("dextm", 0x98765432,         0x98765432,         0, 48);
758    TESTINST("dextm", 0x98765432,         0xffffffffff865421, 0, 48);
759    TESTINST("dextm", 0xffffffffff865421, 0x0,                0, 48);
760    TESTINST("dextm", 0xffffffffff865421, 0xffffffffffffffff, 0, 48);
761    TESTINST("dextm", 0xffffffffff865421, 0x98765432,         0, 48);
762    TESTINST("dextm", 0xffffffffff865421, 0xffffffffff865421, 0, 48);
763    TESTINST("dextm", 0x0,                0x0,                0, 64);
764    TESTINST("dextm", 0x0,                0xffffffffffffffff, 0, 64);
765    TESTINST("dextm", 0x0,                0x98765432,         0, 64);
766    TESTINST("dextm", 0x0,                0xffffffffff865421, 0, 64);
767    TESTINST("dextm", 0xffffffffffffffff, 0x0,                0, 64);
768    TESTINST("dextm", 0xffffffffffffffff, 0xffffffffffffffff, 0, 64);
769    TESTINST("dextm", 0xffffffffffffffff, 0x98765432,         0, 64);
770    TESTINST("dextm", 0xffffffffffffffff, 0xffffffffff865421, 0, 64);
771    TESTINST("dextm", 0x98765432,         0x0,                0, 64);
772    TESTINST("dextm", 0x98765432,         0xffffffffffffffff, 0, 64);
773    TESTINST("dextm", 0x98765432,         0x98765432,         0, 64);
774    TESTINST("dextm", 0x98765432,         0xffffffffff865421, 0, 64);
775    TESTINST("dextm", 0xffffffffff865421, 0x0,                0, 64);
776    TESTINST("dextm", 0xffffffffff865421, 0xffffffffffffffff, 0, 64);
777    TESTINST("dextm", 0xffffffffff865421, 0x98765432,         0, 64);
778    TESTINST("dextm", 0xffffffffff865421, 0xffffffffff865421, 0, 64);
779 
780    TESTINST("dextm", 0x0,                0x0,                4, 33);
781    TESTINST("dextm", 0x0,                0xffffffffffffffff, 4, 33);
782    TESTINST("dextm", 0x0,                0x98765432,         4, 33);
783    TESTINST("dextm", 0x0,                0xffffffffff865421, 4, 33);
784    TESTINST("dextm", 0xffffffffffffffff, 0x0,                4, 33);
785    TESTINST("dextm", 0xffffffffffffffff, 0xffffffffffffffff, 4, 33);
786    TESTINST("dextm", 0xffffffffffffffff, 0x98765432,         4, 33);
787    TESTINST("dextm", 0xffffffffffffffff, 0xffffffffff865421, 4, 33);
788    TESTINST("dextm", 0x98765432,         0x0,                4, 33);
789    TESTINST("dextm", 0x98765432,         0xffffffffffffffff, 4, 33);
790    TESTINST("dextm", 0x98765432,         0x98765432,         4, 33);
791    TESTINST("dextm", 0x98765432,         0xffffffffff865421, 4, 33);
792    TESTINST("dextm", 0xffffffffff865421, 0x0,                4, 33);
793    TESTINST("dextm", 0xffffffffff865421, 0xffffffffffffffff, 4, 33);
794    TESTINST("dextm", 0xffffffffff865421, 0x98765432,         4, 33);
795    TESTINST("dextm", 0xffffffffff865421, 0xffffffffff865421, 4, 33);
796    TESTINST("dextm", 0x0,                0x0,                4, 37);
797    TESTINST("dextm", 0x0,                0xffffffffffffffff, 4, 37);
798    TESTINST("dextm", 0x0,                0x98765432,         4, 37);
799    TESTINST("dextm", 0x0,                0xffffffffff865421, 4, 37);
800    TESTINST("dextm", 0xffffffffffffffff, 0x0,                4, 37);
801    TESTINST("dextm", 0xffffffffffffffff, 0xffffffffffffffff, 4, 37);
802    TESTINST("dextm", 0xffffffffffffffff, 0x98765432,         4, 37);
803    TESTINST("dextm", 0xffffffffffffffff, 0xffffffffff865421, 4, 37);
804    TESTINST("dextm", 0x98765432,         0x0,                4, 37);
805    TESTINST("dextm", 0x98765432,         0xffffffffffffffff, 4, 37);
806    TESTINST("dextm", 0x98765432,         0x98765432,         4, 37);
807    TESTINST("dextm", 0x98765432,         0xffffffffff865421, 4, 37);
808    TESTINST("dextm", 0xffffffffff865421, 0x0,                4, 37);
809    TESTINST("dextm", 0xffffffffff865421, 0xffffffffffffffff, 4, 37);
810    TESTINST("dextm", 0xffffffffff865421, 0x98765432,         4, 37);
811    TESTINST("dextm", 0xffffffffff865421, 0xffffffffff865421, 4, 37);
812    TESTINST("dextm", 0x0,                0x0,                4, 48);
813    TESTINST("dextm", 0x0,                0xffffffffffffffff, 4, 48);
814    TESTINST("dextm", 0x0,                0x98765432,         4, 48);
815    TESTINST("dextm", 0x0,                0xffffffffff865421, 4, 48);
816    TESTINST("dextm", 0xffffffffffffffff, 0x0,                4, 48);
817    TESTINST("dextm", 0xffffffffffffffff, 0xffffffffffffffff, 4, 48);
818    TESTINST("dextm", 0xffffffffffffffff, 0x98765432,         4, 48);
819    TESTINST("dextm", 0xffffffffffffffff, 0xffffffffff865421, 4, 48);
820    TESTINST("dextm", 0x98765432,         0x0,                4, 48);
821    TESTINST("dextm", 0x98765432,         0xffffffffffffffff, 4, 48);
822    TESTINST("dextm", 0x98765432,         0x98765432,         4, 48);
823    TESTINST("dextm", 0x98765432,         0xffffffffff865421, 4, 48);
824    TESTINST("dextm", 0xffffffffff865421, 0x0,                4, 48);
825    TESTINST("dextm", 0xffffffffff865421, 0xffffffffffffffff, 4, 48);
826    TESTINST("dextm", 0xffffffffff865421, 0x98765432,         4, 48);
827    TESTINST("dextm", 0xffffffffff865421, 0xffffffffff865421, 4, 48);
828    TESTINST("dextm", 0x0,                0x0,                4, 60);
829    TESTINST("dextm", 0x0,                0xffffffffffffffff, 4, 60);
830    TESTINST("dextm", 0x0,                0x98765432,         4, 60);
831    TESTINST("dextm", 0x0,                0xffffffffff865421, 4, 60);
832    TESTINST("dextm", 0xffffffffffffffff, 0x0,                4, 60);
833    TESTINST("dextm", 0xffffffffffffffff, 0xffffffffffffffff, 4, 60);
834    TESTINST("dextm", 0xffffffffffffffff, 0x98765432,         4, 60);
835    TESTINST("dextm", 0xffffffffffffffff, 0xffffffffff865421, 4, 60);
836    TESTINST("dextm", 0x98765432,         0x0,                4, 60);
837    TESTINST("dextm", 0x98765432,         0xffffffffffffffff, 4, 60);
838    TESTINST("dextm", 0x98765432,         0x98765432,         4, 60);
839    TESTINST("dextm", 0x98765432,         0xffffffffff865421, 4, 60);
840    TESTINST("dextm", 0xffffffffff865421, 0x0,                4, 60);
841    TESTINST("dextm", 0xffffffffff865421, 0xffffffffffffffff, 4, 60);
842    TESTINST("dextm", 0xffffffffff865421, 0x98765432,         4, 60);
843    TESTINST("dextm", 0xffffffffff865421, 0xffffffffff865421, 4, 60);
844 
845    TESTINST("dextm", 0x0,                0x0,                16, 33);
846    TESTINST("dextm", 0x0,                0xffffffffffffffff, 16, 33);
847    TESTINST("dextm", 0x0,                0x98765432,         16, 33);
848    TESTINST("dextm", 0x0,                0xffffffffff865421, 16, 33);
849    TESTINST("dextm", 0xffffffffffffffff, 0x0,                16, 33);
850    TESTINST("dextm", 0xffffffffffffffff, 0xffffffffffffffff, 16, 33);
851    TESTINST("dextm", 0xffffffffffffffff, 0x98765432,         16, 33);
852    TESTINST("dextm", 0xffffffffffffffff, 0xffffffffff865421, 16, 33);
853    TESTINST("dextm", 0x98765432,         0x0,                16, 33);
854    TESTINST("dextm", 0x98765432,         0xffffffffffffffff, 16, 33);
855    TESTINST("dextm", 0x98765432,         0x98765432,         16, 33);
856    TESTINST("dextm", 0x98765432,         0xffffffffff865421, 16, 33);
857    TESTINST("dextm", 0xffffffffff865421, 0x0,                16, 33);
858    TESTINST("dextm", 0xffffffffff865421, 0xffffffffffffffff, 16, 33);
859    TESTINST("dextm", 0xffffffffff865421, 0x98765432,         16, 33);
860    TESTINST("dextm", 0xffffffffff865421, 0xffffffffff865421, 16, 33);
861    TESTINST("dextm", 0x0,                0x0,                16, 37);
862    TESTINST("dextm", 0x0,                0xffffffffffffffff, 16, 37);
863    TESTINST("dextm", 0x0,                0x98765432,         16, 37);
864    TESTINST("dextm", 0x0,                0xffffffffff865421, 16, 37);
865    TESTINST("dextm", 0xffffffffffffffff, 0x0,                16, 37);
866    TESTINST("dextm", 0xffffffffffffffff, 0xffffffffffffffff, 16, 37);
867    TESTINST("dextm", 0xffffffffffffffff, 0x98765432,         16, 37);
868    TESTINST("dextm", 0xffffffffffffffff, 0xffffffffff865421, 16, 37);
869    TESTINST("dextm", 0x98765432,         0x0,                16, 37);
870    TESTINST("dextm", 0x98765432,         0xffffffffffffffff, 16, 37);
871    TESTINST("dextm", 0x98765432,         0x98765432,         16, 37);
872    TESTINST("dextm", 0x98765432,         0xffffffffff865421, 16, 37);
873    TESTINST("dextm", 0xffffffffff865421, 0x0,                16, 37);
874    TESTINST("dextm", 0xffffffffff865421, 0xffffffffffffffff, 16, 37);
875    TESTINST("dextm", 0xffffffffff865421, 0x98765432,         16, 37);
876    TESTINST("dextm", 0xffffffffff865421, 0xffffffffff865421, 16, 37);
877    TESTINST("dextm", 0x0,                0x0,                16, 48);
878    TESTINST("dextm", 0x0,                0xffffffffffffffff, 16, 48);
879    TESTINST("dextm", 0x0,                0x98765432,         16, 48);
880    TESTINST("dextm", 0x0,                0xffffffffff865421, 16, 48);
881    TESTINST("dextm", 0xffffffffffffffff, 0x0,                16, 48);
882    TESTINST("dextm", 0xffffffffffffffff, 0xffffffffffffffff, 16, 48);
883    TESTINST("dextm", 0xffffffffffffffff, 0x98765432,         16, 48);
884    TESTINST("dextm", 0xffffffffffffffff, 0xffffffffff865421, 16, 48);
885    TESTINST("dextm", 0x98765432,         0x0,                16, 48);
886    TESTINST("dextm", 0x98765432,         0xffffffffffffffff, 16, 48);
887    TESTINST("dextm", 0x98765432,         0x98765432,         16, 48);
888    TESTINST("dextm", 0x98765432,         0xffffffffff865421, 16, 48);
889    TESTINST("dextm", 0xffffffffff865421, 0x0,                16, 48);
890    TESTINST("dextm", 0xffffffffff865421, 0xffffffffffffffff, 16, 48);
891    TESTINST("dextm", 0xffffffffff865421, 0x98765432,         16, 48);
892    TESTINST("dextm", 0xffffffffff865421, 0xffffffffff865421, 16, 48);
893 
894    TESTINST("dextm", 0x0,                0x0,                31, 33);
895    TESTINST("dextm", 0x0,                0xffffffffffffffff, 31, 33);
896    TESTINST("dextm", 0x0,                0x98765432,         31, 33);
897    TESTINST("dextm", 0x0,                0xffffffffff865421, 31, 33);
898    TESTINST("dextm", 0xffffffffffffffff, 0x0,                31, 33);
899    TESTINST("dextm", 0xffffffffffffffff, 0xffffffffffffffff, 31, 33);
900    TESTINST("dextm", 0xffffffffffffffff, 0x98765432,         31, 33);
901    TESTINST("dextm", 0xffffffffffffffff, 0xffffffffff865421, 31, 33);
902    TESTINST("dextm", 0x98765432,         0x0,                31, 33);
903    TESTINST("dextm", 0x98765432,         0xffffffffffffffff, 31, 33);
904    TESTINST("dextm", 0x98765432,         0x98765432,         31, 33);
905    TESTINST("dextm", 0x98765432,         0xffffffffff865421, 31, 33);
906    TESTINST("dextm", 0xffffffffff865421, 0x0,                31, 33);
907    TESTINST("dextm", 0xffffffffff865421, 0xffffffffffffffff, 31, 33);
908    TESTINST("dextm", 0xffffffffff865421, 0x98765432,         31, 33);
909    TESTINST("dextm", 0xffffffffff865421, 0xffffffffff865421, 31, 33);
910 
911    TESTINST("dextm", 0x2002ffffffffffff, 0xfffffffff0000fff, 4,  35);
912    TESTINST("dextm", 0xffff0000ffffffff, 0xff0000ffffffffff, 8,  33);
913    TESTINST("dextm", 0x2000ffffffffffff, 0xffff0000ffffffff, 16, 34);
914    TESTINST("dextm", 0x2000ffffffddddff, 0xffffffffffff0008, 4,  46);
915    TESTINST("dextm", 0x2000ffffffffeeee, 0xfffffff31415927f, 3,  56);
916    TESTINST("dextm", 0x31415927ffffffff, 0x2000ffffffffffff, 0,  64);
917    TESTINST("dextm", 0x2000ffffffffaaaa, 0x2000ffffffff2222, 16, 40);
918    TESTINST("dextm", 0x2000ffffffbbbbff, 0x7fffffffddddffff, 16, 42);
919    TESTINST("dextm", 0xeeeeff33ff22ffff, 0x2000ffffffffffff, 7,  43);
920    TESTINST("dextm", 0x2000ffffffffffff, 0x2000ffffffffbbbb, 5,  48);
921    TESTINST("dextm", 0x2000ffffffffbbbb, 0x2000ffffffffffff, 3,  52);
922    TESTINST("dextm", 0x2000ffffffffffff, 0xeeeeff33ff22ffff, 1,  54);
923    TESTINST("dextm", 0x7fffffffddddffff, 0x2000ffffffbbbbff, 2,  54);
924    TESTINST("dextm", 0x2000ffffffff2222, 0x2000ffffffffaaaa, 2,  48);
925    TESTINST("dextm", 0x2000ffffffffffff, 0x31415927ffffffff, 5,  53);
926    TESTINST("dextm", 0xfffffff31415927f, 0x2000ffffffffeeee, 2,  60);
927    TESTINST("dextm", 0xffffffffffff0008, 0x2000ffffffddddff, 3,  61);
928    TESTINST("dextm", 0xffff0000ffffffff, 0x2000ffffffffffff, 1,  62);
929    TESTINST("dextm", 0xff0000ffffffffff, 0,                  8,  38);
930    TESTINST("dextm", 0xfffffffff0000fff, 0,                  16, 39);
931 
932    printf("--- DEXTU ---\n");
933    /* The values of pos and size must satisfy all of the following relations:
934       32 <= pos < 64
935       0 < size <= 32
936       32 < pos+size <= 64 */
937    TESTINST("dextu", 0x0,                0x0,                32, 1);
938    TESTINST("dextu", 0x0,                0xffffffffffffffff, 32, 1);
939    TESTINST("dextu", 0x0,                0x98765432,         32, 1);
940    TESTINST("dextu", 0x0,                0xffffffffff865421, 32, 1);
941    TESTINST("dextu", 0xffffffffffffffff, 0x0,                32, 1);
942    TESTINST("dextu", 0xffffffffffffffff, 0xffffffffffffffff, 32, 1);
943    TESTINST("dextu", 0xffffffffffffffff, 0x98765432,         32, 1);
944    TESTINST("dextu", 0xffffffffffffffff, 0xffffffffff865421, 32, 1);
945    TESTINST("dextu", 0x98765432,         0x0,                32, 1);
946    TESTINST("dextu", 0x98765432,         0xffffffffffffffff, 32, 1);
947    TESTINST("dextu", 0x98765432,         0x98765432,         32, 1);
948    TESTINST("dextu", 0x98765432,         0xffffffffff865421, 32, 1);
949    TESTINST("dextu", 0xffffffffff865421, 0x0,                32, 1);
950    TESTINST("dextu", 0xffffffffff865421, 0xffffffffffffffff, 32, 1);
951    TESTINST("dextu", 0xffffffffff865421, 0x98765432,         32, 1);
952    TESTINST("dextu", 0xffffffffff865421, 0xffffffffff865421, 32, 1);
953    TESTINST("dextu", 0x0,                0x0,                32, 4);
954    TESTINST("dextu", 0x0,                0xffffffffffffffff, 32, 4);
955    TESTINST("dextu", 0x0,                0x98765432,         32, 4);
956    TESTINST("dextu", 0x0,                0xffffffffff865421, 32, 4);
957    TESTINST("dextu", 0xffffffffffffffff, 0x0,                32, 4);
958    TESTINST("dextu", 0xffffffffffffffff, 0xffffffffffffffff, 32, 4);
959    TESTINST("dextu", 0xffffffffffffffff, 0x98765432,         32, 4);
960    TESTINST("dextu", 0xffffffffffffffff, 0xffffffffff865421, 32, 4);
961    TESTINST("dextu", 0x98765432,         0x0,                32, 4);
962    TESTINST("dextu", 0x98765432,         0xffffffffffffffff, 32, 4);
963    TESTINST("dextu", 0x98765432,         0x98765432,         32, 4);
964    TESTINST("dextu", 0x98765432,         0xffffffffff865421, 32, 4);
965    TESTINST("dextu", 0xffffffffff865421, 0x0,                32, 4);
966    TESTINST("dextu", 0xffffffffff865421, 0xffffffffffffffff, 32, 4);
967    TESTINST("dextu", 0xffffffffff865421, 0x98765432,         32, 4);
968    TESTINST("dextu", 0xffffffffff865421, 0xffffffffff865421, 32, 4);
969    TESTINST("dextu", 0x0,                0x0,                32, 16);
970    TESTINST("dextu", 0x0,                0xffffffffffffffff, 32, 16);
971    TESTINST("dextu", 0x0,                0x98765432,         32, 16);
972    TESTINST("dextu", 0x0,                0xffffffffff865421, 32, 16);
973    TESTINST("dextu", 0xffffffffffffffff, 0x0,                32, 16);
974    TESTINST("dextu", 0xffffffffffffffff, 0xffffffffffffffff, 32, 16);
975    TESTINST("dextu", 0xffffffffffffffff, 0x98765432,         32, 16);
976    TESTINST("dextu", 0xffffffffffffffff, 0xffffffffff865421, 32, 16);
977    TESTINST("dextu", 0x98765432,         0x0,                32, 16);
978    TESTINST("dextu", 0x98765432,         0xffffffffffffffff, 32, 16);
979    TESTINST("dextu", 0x98765432,         0x98765432,         32, 16);
980    TESTINST("dextu", 0x98765432,         0xffffffffff865421, 32, 16);
981    TESTINST("dextu", 0xffffffffff865421, 0x0,                32, 16);
982    TESTINST("dextu", 0xffffffffff865421, 0xffffffffffffffff, 32, 16);
983    TESTINST("dextu", 0xffffffffff865421, 0x98765432,         32, 16);
984    TESTINST("dextu", 0xffffffffff865421, 0xffffffffff865421, 32, 16);
985    TESTINST("dextu", 0x0,                0x0,                32, 32);
986    TESTINST("dextu", 0x0,                0xffffffffffffffff, 32, 32);
987    TESTINST("dextu", 0x0,                0x98765432,         32, 32);
988    TESTINST("dextu", 0x0,                0xffffffffff865421, 32, 32);
989    TESTINST("dextu", 0xffffffffffffffff, 0x0,                32, 32);
990    TESTINST("dextu", 0xffffffffffffffff, 0xffffffffffffffff, 32, 32);
991    TESTINST("dextu", 0xffffffffffffffff, 0x98765432,         32, 32);
992    TESTINST("dextu", 0xffffffffffffffff, 0xffffffffff865421, 32, 32);
993    TESTINST("dextu", 0x98765432,         0x0,                32, 32);
994    TESTINST("dextu", 0x98765432,         0xffffffffffffffff, 32, 32);
995    TESTINST("dextu", 0x98765432,         0x98765432,         32, 32);
996    TESTINST("dextu", 0x98765432,         0xffffffffff865421, 32, 32);
997    TESTINST("dextu", 0xffffffffff865421, 0x0,                32, 32);
998    TESTINST("dextu", 0xffffffffff865421, 0xffffffffffffffff, 32, 32);
999    TESTINST("dextu", 0xffffffffff865421, 0x98765432,         32, 32);
1000    TESTINST("dextu", 0xffffffffff865421, 0xffffffffff865421, 32, 32);
1001 
1002    TESTINST("dextu", 0x0,                0x0,                36, 1);
1003    TESTINST("dextu", 0x0,                0xffffffffffffffff, 36, 1);
1004    TESTINST("dextu", 0x0,                0x98765432,         36, 1);
1005    TESTINST("dextu", 0x0,                0xffffffffff865421, 36, 1);
1006    TESTINST("dextu", 0xffffffffffffffff, 0x0,                36, 1);
1007    TESTINST("dextu", 0xffffffffffffffff, 0xffffffffffffffff, 36, 1);
1008    TESTINST("dextu", 0xffffffffffffffff, 0x98765432,         36, 1);
1009    TESTINST("dextu", 0xffffffffffffffff, 0xffffffffff865421, 36, 1);
1010    TESTINST("dextu", 0x98765432,         0x0,                36, 1);
1011    TESTINST("dextu", 0x98765432,         0xffffffffffffffff, 36, 1);
1012    TESTINST("dextu", 0x98765432,         0x98765432,         36, 1);
1013    TESTINST("dextu", 0x98765432,         0xffffffffff865421, 36, 1);
1014    TESTINST("dextu", 0xffffffffff865421, 0x0,                36, 1);
1015    TESTINST("dextu", 0xffffffffff865421, 0xffffffffffffffff, 36, 1);
1016    TESTINST("dextu", 0xffffffffff865421, 0x98765432,         36, 1);
1017    TESTINST("dextu", 0xffffffffff865421, 0xffffffffff865421, 36, 1);
1018    TESTINST("dextu", 0x0,                0x0,                36, 4);
1019    TESTINST("dextu", 0x0,                0xffffffffffffffff, 36, 4);
1020    TESTINST("dextu", 0x0,                0x98765432,         36, 4);
1021    TESTINST("dextu", 0x0,                0xffffffffff865421, 36, 4);
1022    TESTINST("dextu", 0xffffffffffffffff, 0x0,                36, 4);
1023    TESTINST("dextu", 0xffffffffffffffff, 0xffffffffffffffff, 36, 4);
1024    TESTINST("dextu", 0xffffffffffffffff, 0x98765432,         36, 4);
1025    TESTINST("dextu", 0xffffffffffffffff, 0xffffffffff865421, 36, 4);
1026    TESTINST("dextu", 0x98765432,         0x0,                36, 4);
1027    TESTINST("dextu", 0x98765432,         0xffffffffffffffff, 36, 4);
1028    TESTINST("dextu", 0x98765432,         0x98765432,         36, 4);
1029    TESTINST("dextu", 0x98765432,         0xffffffffff865421, 36, 4);
1030    TESTINST("dextu", 0xffffffffff865421, 0x0,                36, 4);
1031    TESTINST("dextu", 0xffffffffff865421, 0xffffffffffffffff, 36, 4);
1032    TESTINST("dextu", 0xffffffffff865421, 0x98765432,         36, 4);
1033    TESTINST("dextu", 0xffffffffff865421, 0xffffffffff865421, 36, 4);
1034    TESTINST("dextu", 0x0,                0x0,                36, 16);
1035    TESTINST("dextu", 0x0,                0xffffffffffffffff, 36, 16);
1036    TESTINST("dextu", 0x0,                0x98765432,         36, 16);
1037    TESTINST("dextu", 0x0,                0xffffffffff865421, 36, 16);
1038    TESTINST("dextu", 0xffffffffffffffff, 0x0,                36, 16);
1039    TESTINST("dextu", 0xffffffffffffffff, 0xffffffffffffffff, 36, 16);
1040    TESTINST("dextu", 0xffffffffffffffff, 0x98765432,         36, 16);
1041    TESTINST("dextu", 0xffffffffffffffff, 0xffffffffff865421, 36, 16);
1042    TESTINST("dextu", 0x98765432,         0x0,                36, 16);
1043    TESTINST("dextu", 0x98765432,         0xffffffffffffffff, 36, 16);
1044    TESTINST("dextu", 0x98765432,         0x98765432,         36, 16);
1045    TESTINST("dextu", 0x98765432,         0xffffffffff865421, 36, 16);
1046    TESTINST("dextu", 0xffffffffff865421, 0x0,                36, 16);
1047    TESTINST("dextu", 0xffffffffff865421, 0xffffffffffffffff, 36, 16);
1048    TESTINST("dextu", 0xffffffffff865421, 0x98765432,         36, 16);
1049    TESTINST("dextu", 0xffffffffff865421, 0xffffffffff865421, 36, 16);
1050    TESTINST("dextu", 0x0,                0x0,                36, 28);
1051    TESTINST("dextu", 0x0,                0xffffffffffffffff, 36, 28);
1052    TESTINST("dextu", 0x0,                0x98765432,         36, 28);
1053    TESTINST("dextu", 0x0,                0xffffffffff865421, 36, 28);
1054    TESTINST("dextu", 0xffffffffffffffff, 0x0,                36, 28);
1055    TESTINST("dextu", 0xffffffffffffffff, 0xffffffffffffffff, 36, 28);
1056    TESTINST("dextu", 0xffffffffffffffff, 0x98765432,         36, 28);
1057    TESTINST("dextu", 0xffffffffffffffff, 0xffffffffff865421, 36, 28);
1058    TESTINST("dextu", 0x98765432,         0x0,                36, 28);
1059    TESTINST("dextu", 0x98765432,         0xffffffffffffffff, 36, 28);
1060    TESTINST("dextu", 0x98765432,         0x98765432,         36, 28);
1061    TESTINST("dextu", 0x98765432,         0xffffffffff865421, 36, 28);
1062    TESTINST("dextu", 0xffffffffff865421, 0x0,                36, 28);
1063    TESTINST("dextu", 0xffffffffff865421, 0xffffffffffffffff, 36, 28);
1064    TESTINST("dextu", 0xffffffffff865421, 0x98765432,         36, 28);
1065    TESTINST("dextu", 0xffffffffff865421, 0xffffffffff865421, 36, 28);
1066 
1067    TESTINST("dextu", 0x0,                0x0,                48, 1);
1068    TESTINST("dextu", 0x0,                0xffffffffffffffff, 48, 1);
1069    TESTINST("dextu", 0x0,                0x98765432,         48, 1);
1070    TESTINST("dextu", 0x0,                0xffffffffff865421, 48, 1);
1071    TESTINST("dextu", 0xffffffffffffffff, 0x0,                48, 1);
1072    TESTINST("dextu", 0xffffffffffffffff, 0xffffffffffffffff, 48, 1);
1073    TESTINST("dextu", 0xffffffffffffffff, 0x98765432,         48, 1);
1074    TESTINST("dextu", 0xffffffffffffffff, 0xffffffffff865421, 48, 1);
1075    TESTINST("dextu", 0x98765432,         0x0,                48, 1);
1076    TESTINST("dextu", 0x98765432,         0xffffffffffffffff, 48, 1);
1077    TESTINST("dextu", 0x98765432,         0x98765432,         48, 1);
1078    TESTINST("dextu", 0x98765432,         0xffffffffff865421, 48, 1);
1079    TESTINST("dextu", 0xffffffffff865421, 0x0,                48, 1);
1080    TESTINST("dextu", 0xffffffffff865421, 0xffffffffffffffff, 48, 1);
1081    TESTINST("dextu", 0xffffffffff865421, 0x98765432,         48, 1);
1082    TESTINST("dextu", 0xffffffffff865421, 0xffffffffff865421, 48, 1);
1083    TESTINST("dextu", 0x0,                0x0,                48, 4);
1084    TESTINST("dextu", 0x0,                0xffffffffffffffff, 48, 4);
1085    TESTINST("dextu", 0x0,                0x98765432,         48, 4);
1086    TESTINST("dextu", 0x0,                0xffffffffff865421, 48, 4);
1087    TESTINST("dextu", 0xffffffffffffffff, 0x0,                48, 4);
1088    TESTINST("dextu", 0xffffffffffffffff, 0xffffffffffffffff, 48, 4);
1089    TESTINST("dextu", 0xffffffffffffffff, 0x98765432,         48, 4);
1090    TESTINST("dextu", 0xffffffffffffffff, 0xffffffffff865421, 48, 4);
1091    TESTINST("dextu", 0x98765432,         0x0,                48, 4);
1092    TESTINST("dextu", 0x98765432,         0xffffffffffffffff, 48, 4);
1093    TESTINST("dextu", 0x98765432,         0x98765432,         48, 4);
1094    TESTINST("dextu", 0x98765432,         0xffffffffff865421, 48, 4);
1095    TESTINST("dextu", 0xffffffffff865421, 0x0,                48, 4);
1096    TESTINST("dextu", 0xffffffffff865421, 0xffffffffffffffff, 48, 4);
1097    TESTINST("dextu", 0xffffffffff865421, 0x98765432,         48, 4);
1098    TESTINST("dextu", 0xffffffffff865421, 0xffffffffff865421, 48, 4);
1099    TESTINST("dextu", 0x0,                0x0,                48, 16);
1100    TESTINST("dextu", 0x0,                0xffffffffffffffff, 48, 16);
1101    TESTINST("dextu", 0x0,                0x98765432,         48, 16);
1102    TESTINST("dextu", 0x0,                0xffffffffff865421, 48, 16);
1103    TESTINST("dextu", 0xffffffffffffffff, 0x0,                48, 16);
1104    TESTINST("dextu", 0xffffffffffffffff, 0xffffffffffffffff, 48, 16);
1105    TESTINST("dextu", 0xffffffffffffffff, 0x98765432,         48, 16);
1106    TESTINST("dextu", 0xffffffffffffffff, 0xffffffffff865421, 48, 16);
1107    TESTINST("dextu", 0x98765432,         0x0,                48, 16);
1108    TESTINST("dextu", 0x98765432,         0xffffffffffffffff, 48, 16);
1109    TESTINST("dextu", 0x98765432,         0x98765432,         48, 16);
1110    TESTINST("dextu", 0x98765432,         0xffffffffff865421, 48, 16);
1111    TESTINST("dextu", 0xffffffffff865421, 0x0,                48, 16);
1112    TESTINST("dextu", 0xffffffffff865421, 0xffffffffffffffff, 48, 16);
1113    TESTINST("dextu", 0xffffffffff865421, 0x98765432,         48, 16);
1114    TESTINST("dextu", 0xffffffffff865421, 0xffffffffff865421, 48, 16);
1115 
1116    TESTINST("dextu", 0x0,                0x0,                63, 1);
1117    TESTINST("dextu", 0x0,                0xffffffffffffffff, 63, 1);
1118    TESTINST("dextu", 0x0,                0x98765432,         63, 1);
1119    TESTINST("dextu", 0x0,                0xffffffffff865421, 63, 1);
1120    TESTINST("dextu", 0xffffffffffffffff, 0x0,                63, 1);
1121    TESTINST("dextu", 0xffffffffffffffff, 0xffffffffffffffff, 63, 1);
1122    TESTINST("dextu", 0xffffffffffffffff, 0x98765432,         63, 1);
1123    TESTINST("dextu", 0xffffffffffffffff, 0xffffffffff865421, 63, 1);
1124    TESTINST("dextu", 0x98765432,         0x0,                63, 1);
1125    TESTINST("dextu", 0x98765432,         0xffffffffffffffff, 63, 1);
1126    TESTINST("dextu", 0x98765432,         0x98765432,         63, 1);
1127    TESTINST("dextu", 0x98765432,         0xffffffffff865421, 63, 1);
1128    TESTINST("dextu", 0xffffffffff865421, 0x0,                63, 1);
1129    TESTINST("dextu", 0xffffffffff865421, 0xffffffffffffffff, 63, 1);
1130    TESTINST("dextu", 0xffffffffff865421, 0x98765432,         63, 1);
1131    TESTINST("dextu", 0xffffffffff865421, 0xffffffffff865421, 63, 1);
1132 
1133    TESTINST("dextu", 0x2002ffffffffffff, 0xfffffffff0000fff, 33, 4);
1134    TESTINST("dextu", 0xffff0000ffffffff, 0xff0000ffffffffff, 60, 4);
1135    TESTINST("dextu", 0x2000ffffffffffff, 0xffff0000ffffffff, 54, 4);
1136    TESTINST("dextu", 0x2000ffffffddddff, 0xffffffffffff0008, 56, 2);
1137    TESTINST("dextu", 0x2000ffffffffeeee, 0xfffffff31415927f, 40, 4);
1138    TESTINST("dextu", 0x31415927ffffffff, 0x2000ffffffffffff, 51, 2);
1139    TESTINST("dextu", 0x2000ffffffffaaaa, 0x2000ffffffff2222, 48, 4);
1140    TESTINST("dextu", 0x2000ffffffbbbbff, 0x7fffffffddddffff, 38, 4);
1141    TESTINST("dextu", 0xeeeeff33ff22ffff, 0x2000ffffffffffff, 35, 4);
1142    TESTINST("dextu", 0x2000ffffffffffff, 0x2000ffffffffbbbb, 36, 4);
1143    TESTINST("dextu", 0x2000ffffffffbbbb, 0x2000ffffffffffff, 45, 1);
1144    TESTINST("dextu", 0x2000ffffffffffff, 0xeeeeff33ff22ffff, 46, 4);
1145    TESTINST("dextu", 0x7fffffffddddffff, 0x2000ffffffbbbbff, 52, 4);
1146    TESTINST("dextu", 0x2000ffffffff2222, 0x2000ffffffffaaaa, 40, 8);
1147    TESTINST("dextu", 0x2000ffffffffffff, 0x31415927ffffffff, 39, 4);
1148    TESTINST("dextu", 0xfffffff31415927f, 0x2000ffffffffeeee, 60, 4);
1149    TESTINST("dextu", 0xffffffffffff0008, 0x2000ffffffddddff, 63, 1);
1150    TESTINST("dextu", 0xffff0000ffffffff, 0x2000ffffffffffff, 50, 4);
1151    TESTINST("dextu", 0xff0000ffffffffff, 0,                  36, 4);
1152    TESTINST("dextu", 0xfffffffff0000fff, 0,                  46, 4);
1153 
1154    printf("--- DINS ---\n");
1155    /* The values of pos and size must satisfy all of the following relations:
1156       0 <= pos < 32
1157       0 < size <= 32
1158       0 < pos+size <= 32 */
1159    TESTINST("dins", 0x0,                0x0,                0, 1);
1160    TESTINST("dins", 0x0,                0xffffffffffffffff, 0, 1);
1161    TESTINST("dins", 0x0,                0x98765432,         0, 1);
1162    TESTINST("dins", 0x0,                0xffffffffff865421, 0, 1);
1163    TESTINST("dins", 0xffffffffffffffff, 0x0,                0, 1);
1164    TESTINST("dins", 0xffffffffffffffff, 0xffffffffffffffff, 0, 1);
1165    TESTINST("dins", 0xffffffffffffffff, 0x98765432,         0, 1);
1166    TESTINST("dins", 0xffffffffffffffff, 0xffffffffff865421, 0, 1);
1167    TESTINST("dins", 0x98765432,         0x0,                0, 1);
1168    TESTINST("dins", 0x98765432,         0xffffffffffffffff, 0, 1);
1169    TESTINST("dins", 0x98765432,         0x98765432,         0, 1);
1170    TESTINST("dins", 0x98765432,         0xffffffffff865421, 0, 1);
1171    TESTINST("dins", 0xffffffffff865421, 0x0,                0, 1);
1172    TESTINST("dins", 0xffffffffff865421, 0xffffffffffffffff, 0, 1);
1173    TESTINST("dins", 0xffffffffff865421, 0x98765432,         0, 1);
1174    TESTINST("dins", 0xffffffffff865421, 0xffffffffff865421, 0, 1);
1175    TESTINST("dins", 0x0,                0x0,                0, 4);
1176    TESTINST("dins", 0x0,                0xffffffffffffffff, 0, 4);
1177    TESTINST("dins", 0x0,                0x98765432,         0, 4);
1178    TESTINST("dins", 0x0,                0xffffffffff865421, 0, 4);
1179    TESTINST("dins", 0xffffffffffffffff, 0x0,                0, 4);
1180    TESTINST("dins", 0xffffffffffffffff, 0xffffffffffffffff, 0, 4);
1181    TESTINST("dins", 0xffffffffffffffff, 0x98765432,         0, 4);
1182    TESTINST("dins", 0xffffffffffffffff, 0xffffffffff865421, 0, 4);
1183    TESTINST("dins", 0x98765432,         0x0,                0, 4);
1184    TESTINST("dins", 0x98765432,         0xffffffffffffffff, 0, 4);
1185    TESTINST("dins", 0x98765432,         0x98765432,         0, 4);
1186    TESTINST("dins", 0x98765432,         0xffffffffff865421, 0, 4);
1187    TESTINST("dins", 0xffffffffff865421, 0x0,                0, 4);
1188    TESTINST("dins", 0xffffffffff865421, 0xffffffffffffffff, 0, 4);
1189    TESTINST("dins", 0xffffffffff865421, 0x98765432,         0, 4);
1190    TESTINST("dins", 0xffffffffff865421, 0xffffffffff865421, 0, 4);
1191    TESTINST("dins", 0x0,                0x0,                0, 16);
1192    TESTINST("dins", 0x0,                0xffffffffffffffff, 0, 16);
1193    TESTINST("dins", 0x0,                0x98765432,         0, 16);
1194    TESTINST("dins", 0x0,                0xffffffffff865421, 0, 16);
1195    TESTINST("dins", 0xffffffffffffffff, 0x0,                0, 16);
1196    TESTINST("dins", 0xffffffffffffffff, 0xffffffffffffffff, 0, 16);
1197    TESTINST("dins", 0xffffffffffffffff, 0x98765432,         0, 16);
1198    TESTINST("dins", 0xffffffffffffffff, 0xffffffffff865421, 0, 16);
1199    TESTINST("dins", 0x98765432,         0x0,                0, 16);
1200    TESTINST("dins", 0x98765432,         0xffffffffffffffff, 0, 16);
1201    TESTINST("dins", 0x98765432,         0x98765432,         0, 16);
1202    TESTINST("dins", 0x98765432,         0xffffffffff865421, 0, 16);
1203    TESTINST("dins", 0xffffffffff865421, 0x0,                0, 16);
1204    TESTINST("dins", 0xffffffffff865421, 0xffffffffffffffff, 0, 16);
1205    TESTINST("dins", 0xffffffffff865421, 0x98765432,         0, 16);
1206    TESTINST("dins", 0xffffffffff865421, 0xffffffffff865421, 0, 16);
1207    TESTINST("dins", 0x0,                0x0,                0, 32);
1208    TESTINST("dins", 0x0,                0xffffffffffffffff, 0, 32);
1209    TESTINST("dins", 0x0,                0x98765432,         0, 32);
1210    TESTINST("dins", 0x0,                0xffffffffff865421, 0, 32);
1211    TESTINST("dins", 0xffffffffffffffff, 0x0,                0, 32);
1212    TESTINST("dins", 0xffffffffffffffff, 0xffffffffffffffff, 0, 32);
1213    TESTINST("dins", 0xffffffffffffffff, 0x98765432,         0, 32);
1214    TESTINST("dins", 0xffffffffffffffff, 0xffffffffff865421, 0, 32);
1215    TESTINST("dins", 0x98765432,         0x0,                0, 32);
1216    TESTINST("dins", 0x98765432,         0xffffffffffffffff, 0, 32);
1217    TESTINST("dins", 0x98765432,         0x98765432,         0, 32);
1218    TESTINST("dins", 0x98765432,         0xffffffffff865421, 0, 32);
1219    TESTINST("dins", 0xffffffffff865421, 0x0,                0, 32);
1220    TESTINST("dins", 0xffffffffff865421, 0xffffffffffffffff, 0, 32);
1221    TESTINST("dins", 0xffffffffff865421, 0x98765432,         0, 32);
1222    TESTINST("dins", 0xffffffffff865421, 0xffffffffff865421, 0, 32);
1223 
1224    TESTINST("dins", 0x0,                0x0,                4, 1);
1225    TESTINST("dins", 0x0,                0xffffffffffffffff, 4, 1);
1226    TESTINST("dins", 0x0,                0x98765432,         4, 1);
1227    TESTINST("dins", 0x0,                0xffffffffff865421, 4, 1);
1228    TESTINST("dins", 0xffffffffffffffff, 0x0,                4, 1);
1229    TESTINST("dins", 0xffffffffffffffff, 0xffffffffffffffff, 4, 1);
1230    TESTINST("dins", 0xffffffffffffffff, 0x98765432,         4, 1);
1231    TESTINST("dins", 0xffffffffffffffff, 0xffffffffff865421, 4, 1);
1232    TESTINST("dins", 0x98765432,         0x0,                4, 1);
1233    TESTINST("dins", 0x98765432,         0xffffffffffffffff, 4, 1);
1234    TESTINST("dins", 0x98765432,         0x98765432,         4, 1);
1235    TESTINST("dins", 0x98765432,         0xffffffffff865421, 4, 1);
1236    TESTINST("dins", 0xffffffffff865421, 0x0,                4, 1);
1237    TESTINST("dins", 0xffffffffff865421, 0xffffffffffffffff, 4, 1);
1238    TESTINST("dins", 0xffffffffff865421, 0x98765432,         4, 1);
1239    TESTINST("dins", 0xffffffffff865421, 0xffffffffff865421, 4, 1);
1240    TESTINST("dins", 0x0,                0x0,                4, 4);
1241    TESTINST("dins", 0x0,                0xffffffffffffffff, 4, 4);
1242    TESTINST("dins", 0x0,                0x98765432,         4, 4);
1243    TESTINST("dins", 0x0,                0xffffffffff865421, 4, 4);
1244    TESTINST("dins", 0xffffffffffffffff, 0x0,                4, 4);
1245    TESTINST("dins", 0xffffffffffffffff, 0xffffffffffffffff, 4, 4);
1246    TESTINST("dins", 0xffffffffffffffff, 0x98765432,         4, 4);
1247    TESTINST("dins", 0xffffffffffffffff, 0xffffffffff865421, 4, 4);
1248    TESTINST("dins", 0x98765432,         0x0,                4, 4);
1249    TESTINST("dins", 0x98765432,         0xffffffffffffffff, 4, 4);
1250    TESTINST("dins", 0x98765432,         0x98765432,         4, 4);
1251    TESTINST("dins", 0x98765432,         0xffffffffff865421, 4, 4);
1252    TESTINST("dins", 0xffffffffff865421, 0x0,                4, 4);
1253    TESTINST("dins", 0xffffffffff865421, 0xffffffffffffffff, 4, 4);
1254    TESTINST("dins", 0xffffffffff865421, 0x98765432,         4, 4);
1255    TESTINST("dins", 0xffffffffff865421, 0xffffffffff865421, 4, 4);
1256    TESTINST("dins", 0x0,                0x0,                4, 16);
1257    TESTINST("dins", 0x0,                0xffffffffffffffff, 4, 16);
1258    TESTINST("dins", 0x0,                0x98765432,         4, 16);
1259    TESTINST("dins", 0x0,                0xffffffffff865421, 4, 16);
1260    TESTINST("dins", 0xffffffffffffffff, 0x0,                4, 16);
1261    TESTINST("dins", 0xffffffffffffffff, 0xffffffffffffffff, 4, 16);
1262    TESTINST("dins", 0xffffffffffffffff, 0x98765432,         4, 16);
1263    TESTINST("dins", 0xffffffffffffffff, 0xffffffffff865421, 4, 16);
1264    TESTINST("dins", 0x98765432,         0x0,                4, 16);
1265    TESTINST("dins", 0x98765432,         0xffffffffffffffff, 4, 16);
1266    TESTINST("dins", 0x98765432,         0x98765432,         4, 16);
1267    TESTINST("dins", 0x98765432,         0xffffffffff865421, 4, 16);
1268    TESTINST("dins", 0xffffffffff865421, 0x0,                4, 16);
1269    TESTINST("dins", 0xffffffffff865421, 0xffffffffffffffff, 4, 16);
1270    TESTINST("dins", 0xffffffffff865421, 0x98765432,         4, 16);
1271    TESTINST("dins", 0xffffffffff865421, 0xffffffffff865421, 4, 16);
1272    TESTINST("dins", 0x0,                0x0,                4, 28);
1273    TESTINST("dins", 0x0,                0xffffffffffffffff, 4, 28);
1274    TESTINST("dins", 0x0,                0x98765432,         4, 28);
1275    TESTINST("dins", 0x0,                0xffffffffff865421, 4, 28);
1276    TESTINST("dins", 0xffffffffffffffff, 0x0,                4, 28);
1277    TESTINST("dins", 0xffffffffffffffff, 0xffffffffffffffff, 4, 28);
1278    TESTINST("dins", 0xffffffffffffffff, 0x98765432,         4, 28);
1279    TESTINST("dins", 0xffffffffffffffff, 0xffffffffff865421, 4, 28);
1280    TESTINST("dins", 0x98765432,         0x0,                4, 28);
1281    TESTINST("dins", 0x98765432,         0xffffffffffffffff, 4, 28);
1282    TESTINST("dins", 0x98765432,         0x98765432,         4, 28);
1283    TESTINST("dins", 0x98765432,         0xffffffffff865421, 4, 28);
1284    TESTINST("dins", 0xffffffffff865421, 0x0,                4, 28);
1285    TESTINST("dins", 0xffffffffff865421, 0xffffffffffffffff, 4, 28);
1286    TESTINST("dins", 0xffffffffff865421, 0x98765432,         4, 28);
1287    TESTINST("dins", 0xffffffffff865421, 0xffffffffff865421, 4, 28);
1288 
1289    TESTINST("dins", 0x0,                0x0,                16, 1);
1290    TESTINST("dins", 0x0,                0xffffffffffffffff, 16, 1);
1291    TESTINST("dins", 0x0,                0x98765432,         16, 1);
1292    TESTINST("dins", 0x0,                0xffffffffff865421, 16, 1);
1293    TESTINST("dins", 0xffffffffffffffff, 0x0,                16, 1);
1294    TESTINST("dins", 0xffffffffffffffff, 0xffffffffffffffff, 16, 1);
1295    TESTINST("dins", 0xffffffffffffffff, 0x98765432,         16, 1);
1296    TESTINST("dins", 0xffffffffffffffff, 0xffffffffff865421, 16, 1);
1297    TESTINST("dins", 0x98765432,         0x0,                16, 1);
1298    TESTINST("dins", 0x98765432,         0xffffffffffffffff, 16, 1);
1299    TESTINST("dins", 0x98765432,         0x98765432,         16, 1);
1300    TESTINST("dins", 0x98765432,         0xffffffffff865421, 16, 1);
1301    TESTINST("dins", 0xffffffffff865421, 0x0,                16, 1);
1302    TESTINST("dins", 0xffffffffff865421, 0xffffffffffffffff, 16, 1);
1303    TESTINST("dins", 0xffffffffff865421, 0x98765432,         16, 1);
1304    TESTINST("dins", 0xffffffffff865421, 0xffffffffff865421, 16, 1);
1305    TESTINST("dins", 0x0,                0x0,                16, 4);
1306    TESTINST("dins", 0x0,                0xffffffffffffffff, 16, 4);
1307    TESTINST("dins", 0x0,                0x98765432,         16, 4);
1308    TESTINST("dins", 0x0,                0xffffffffff865421, 16, 4);
1309    TESTINST("dins", 0xffffffffffffffff, 0x0,                16, 4);
1310    TESTINST("dins", 0xffffffffffffffff, 0xffffffffffffffff, 16, 4);
1311    TESTINST("dins", 0xffffffffffffffff, 0x98765432,         16, 4);
1312    TESTINST("dins", 0xffffffffffffffff, 0xffffffffff865421, 16, 4);
1313    TESTINST("dins", 0x98765432,         0x0,                16, 4);
1314    TESTINST("dins", 0x98765432,         0xffffffffffffffff, 16, 4);
1315    TESTINST("dins", 0x98765432,         0x98765432,         16, 4);
1316    TESTINST("dins", 0x98765432,         0xffffffffff865421, 16, 4);
1317    TESTINST("dins", 0xffffffffff865421, 0x0,                16, 4);
1318    TESTINST("dins", 0xffffffffff865421, 0xffffffffffffffff, 16, 4);
1319    TESTINST("dins", 0xffffffffff865421, 0x98765432,         16, 4);
1320    TESTINST("dins", 0xffffffffff865421, 0xffffffffff865421, 16, 4);
1321    TESTINST("dins", 0x0,                0x0,                16, 16);
1322    TESTINST("dins", 0x0,                0xffffffffffffffff, 16, 16);
1323    TESTINST("dins", 0x0,                0x98765432,         16, 16);
1324    TESTINST("dins", 0x0,                0xffffffffff865421, 16, 16);
1325    TESTINST("dins", 0xffffffffffffffff, 0x0,                16, 16);
1326    TESTINST("dins", 0xffffffffffffffff, 0xffffffffffffffff, 16, 16);
1327    TESTINST("dins", 0xffffffffffffffff, 0x98765432,         16, 16);
1328    TESTINST("dins", 0xffffffffffffffff, 0xffffffffff865421, 16, 16);
1329    TESTINST("dins", 0x98765432,         0x0,                16, 16);
1330    TESTINST("dins", 0x98765432,         0xffffffffffffffff, 16, 16);
1331    TESTINST("dins", 0x98765432,         0x98765432,         16, 16);
1332    TESTINST("dins", 0x98765432,         0xffffffffff865421, 16, 16);
1333    TESTINST("dins", 0xffffffffff865421, 0x0,                16, 16);
1334    TESTINST("dins", 0xffffffffff865421, 0xffffffffffffffff, 16, 16);
1335    TESTINST("dins", 0xffffffffff865421, 0x98765432,         16, 16);
1336    TESTINST("dins", 0xffffffffff865421, 0xffffffffff865421, 16, 16);
1337 
1338    TESTINST("dins", 0x0,                0x0,                31, 1);
1339    TESTINST("dins", 0x0,                0xffffffffffffffff, 31, 1);
1340    TESTINST("dins", 0x0,                0x98765432,         31, 1);
1341    TESTINST("dins", 0x0,                0xffffffffff865421, 31, 1);
1342    TESTINST("dins", 0xffffffffffffffff, 0x0,                31, 1);
1343    TESTINST("dins", 0xffffffffffffffff, 0xffffffffffffffff, 31, 1);
1344    TESTINST("dins", 0xffffffffffffffff, 0x98765432,         31, 1);
1345    TESTINST("dins", 0xffffffffffffffff, 0xffffffffff865421, 31, 1);
1346    TESTINST("dins", 0x98765432,         0x0,                31, 1);
1347    TESTINST("dins", 0x98765432,         0xffffffffffffffff, 31, 1);
1348    TESTINST("dins", 0x98765432,         0x98765432,         31, 1);
1349    TESTINST("dins", 0x98765432,         0xffffffffff865421, 31, 1);
1350    TESTINST("dins", 0xffffffffff865421, 0x0,                31, 1);
1351    TESTINST("dins", 0xffffffffff865421, 0xffffffffffffffff, 31, 1);
1352    TESTINST("dins", 0xffffffffff865421, 0x98765432,         31, 1);
1353    TESTINST("dins", 0xffffffffff865421, 0xffffffffff865421, 31, 1);
1354 
1355    TESTINST("dins", 0x2002ffffffffffff, 0xfffffffff0000fff, 4,  4);
1356    TESTINST("dins", 0xffff0000ffffffff, 0xff0000ffffffffff, 8,  4);
1357    TESTINST("dins", 0x2000ffffffffffff, 0xffff0000ffffffff, 16, 4);
1358    TESTINST("dins", 0x2000ffffffddddff, 0xffffffffffff0008, 24, 2);
1359    TESTINST("dins", 0x2000ffffffffeeee, 0xfffffff31415927f, 24, 4);
1360    TESTINST("dins", 0x31415927ffffffff, 0x2000ffffffffffff, 9,  2);
1361    TESTINST("dins", 0x2000ffffffffaaaa, 0x2000ffffffff2222, 16, 4);
1362    TESTINST("dins", 0x2000ffffffbbbbff, 0x7fffffffddddffff, 16, 4);
1363    TESTINST("dins", 0xeeeeff33ff22ffff, 0x2000ffffffffffff, 7,  4);
1364    TESTINST("dins", 0x2000ffffffffffff, 0x2000ffffffffbbbb, 5,  4);
1365    TESTINST("dins", 0x2000ffffffffbbbb, 0x2000ffffffffffff, 3,  4);
1366    TESTINST("dins", 0x2000ffffffffffff, 0xeeeeff33ff22ffff, 16, 4);
1367    TESTINST("dins", 0x7fffffffddddffff, 0x2000ffffffbbbbff, 16, 2);
1368    TESTINST("dins", 0x2000ffffffff2222, 0x2000ffffffffaaaa, 2,  8);
1369    TESTINST("dins", 0x2000ffffffffffff, 0x2000ffffffffeeee, 0,  32);
1370    TESTINST("dins", 0xfffffff31415927f, 0x2000ffffffddddff, 16, 16);
1371    TESTINST("dins", 0xffffffffffff0008, 0x2000ffffffddddff, 8,  2);
1372    TESTINST("dins", 0xffff0000ffffffff, 0x2000ffffffffffff, 16, 4);
1373    TESTINST("dins", 0xff0000ffffffffff, 0xffff0000ffffffff, 8,  4);
1374    TESTINST("dins", 0xfffffffff0000fff, 0,                  0,  31);
1375 
1376    printf("--- DINSM ---\n");
1377    /* The values of pos and size must satisfy all of the following relations:
1378       0 <= pos < 32
1379       2 <= size <= 64
1380       32 < pos+size <= 64 */
1381    TESTINST("dinsm", 0x0,                0x0,                0, 33);
1382    TESTINST("dinsm", 0x0,                0xffffffffffffffff, 0, 33);
1383    TESTINST("dinsm", 0x0,                0x98765432,         0, 33);
1384    TESTINST("dinsm", 0x0,                0xffffffffff865421, 0, 33);
1385    TESTINST("dinsm", 0xffffffffffffffff, 0x0,                0, 33);
1386    TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffffffffff, 0, 33);
1387    TESTINST("dinsm", 0xffffffffffffffff, 0x98765432,         0, 33);
1388    TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffff865421, 0, 33);
1389    TESTINST("dinsm", 0x98765432,         0x0,                0, 33);
1390    TESTINST("dinsm", 0x98765432,         0xffffffffffffffff, 0, 33);
1391    TESTINST("dinsm", 0x98765432,         0x98765432,         0, 33);
1392    TESTINST("dinsm", 0x98765432,         0xffffffffff865421, 0, 33);
1393    TESTINST("dinsm", 0xffffffffff865421, 0x0,                0, 33);
1394    TESTINST("dinsm", 0xffffffffff865421, 0xffffffffffffffff, 0, 33);
1395    TESTINST("dinsm", 0xffffffffff865421, 0x98765432,         0, 33);
1396    TESTINST("dinsm", 0xffffffffff865421, 0xffffffffff865421, 0, 33);
1397    TESTINST("dinsm", 0x0,                0x0,                0, 37);
1398    TESTINST("dinsm", 0x0,                0xffffffffffffffff, 0, 37);
1399    TESTINST("dinsm", 0x0,                0x98765432,         0, 37);
1400    TESTINST("dinsm", 0x0,                0xffffffffff865421, 0, 37);
1401    TESTINST("dinsm", 0xffffffffffffffff, 0x0,                0, 37);
1402    TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffffffffff, 0, 37);
1403    TESTINST("dinsm", 0xffffffffffffffff, 0x98765432,         0, 37);
1404    TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffff865421, 0, 37);
1405    TESTINST("dinsm", 0x98765432,         0x0,                0, 37);
1406    TESTINST("dinsm", 0x98765432,         0xffffffffffffffff, 0, 37);
1407    TESTINST("dinsm", 0x98765432,         0x98765432,         0, 37);
1408    TESTINST("dinsm", 0x98765432,         0xffffffffff865421, 0, 37);
1409    TESTINST("dinsm", 0xffffffffff865421, 0x0,                0, 37);
1410    TESTINST("dinsm", 0xffffffffff865421, 0xffffffffffffffff, 0, 37);
1411    TESTINST("dinsm", 0xffffffffff865421, 0x98765432,         0, 37);
1412    TESTINST("dinsm", 0xffffffffff865421, 0xffffffffff865421, 0, 37);
1413    TESTINST("dinsm", 0x0,                0x0,                0, 48);
1414    TESTINST("dinsm", 0x0,                0xffffffffffffffff, 0, 48);
1415    TESTINST("dinsm", 0x0,                0x98765432,         0, 48);
1416    TESTINST("dinsm", 0x0,                0xffffffffff865421, 0, 48);
1417    TESTINST("dinsm", 0xffffffffffffffff, 0x0,                0, 48);
1418    TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffffffffff, 0, 48);
1419    TESTINST("dinsm", 0xffffffffffffffff, 0x98765432,         0, 48);
1420    TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffff865421, 0, 48);
1421    TESTINST("dinsm", 0x98765432,         0x0,                0, 48);
1422    TESTINST("dinsm", 0x98765432,         0xffffffffffffffff, 0, 48);
1423    TESTINST("dinsm", 0x98765432,         0x98765432,         0, 48);
1424    TESTINST("dinsm", 0x98765432,         0xffffffffff865421, 0, 48);
1425    TESTINST("dinsm", 0xffffffffff865421, 0x0,                0, 48);
1426    TESTINST("dinsm", 0xffffffffff865421, 0xffffffffffffffff, 0, 48);
1427    TESTINST("dinsm", 0xffffffffff865421, 0x98765432,         0, 48);
1428    TESTINST("dinsm", 0xffffffffff865421, 0xffffffffff865421, 0, 48);
1429    TESTINST("dinsm", 0x0,                0x0,                0, 64);
1430    TESTINST("dinsm", 0x0,                0xffffffffffffffff, 0, 64);
1431    TESTINST("dinsm", 0x0,                0x98765432,         0, 64);
1432    TESTINST("dinsm", 0x0,                0xffffffffff865421, 0, 64);
1433    TESTINST("dinsm", 0xffffffffffffffff, 0x0,                0, 64);
1434    TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffffffffff, 0, 64);
1435    TESTINST("dinsm", 0xffffffffffffffff, 0x98765432,         0, 64);
1436    TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffff865421, 0, 64);
1437    TESTINST("dinsm", 0x98765432,         0x0,                0, 64);
1438    TESTINST("dinsm", 0x98765432,         0xffffffffffffffff, 0, 64);
1439    TESTINST("dinsm", 0x98765432,         0x98765432,         0, 64);
1440    TESTINST("dinsm", 0x98765432,         0xffffffffff865421, 0, 64);
1441    TESTINST("dinsm", 0xffffffffff865421, 0x0,                0, 64);
1442    TESTINST("dinsm", 0xffffffffff865421, 0xffffffffffffffff, 0, 64);
1443    TESTINST("dinsm", 0xffffffffff865421, 0x98765432,         0, 64);
1444    TESTINST("dinsm", 0xffffffffff865421, 0xffffffffff865421, 0, 64);
1445 
1446    TESTINST("dinsm", 0x0,                0x0,                4, 29);
1447    TESTINST("dinsm", 0x0,                0xffffffffffffffff, 4, 29);
1448    TESTINST("dinsm", 0x0,                0x98765432,         4, 29);
1449    TESTINST("dinsm", 0x0,                0xffffffffff865421, 4, 29);
1450    TESTINST("dinsm", 0xffffffffffffffff, 0x0,                4, 29);
1451    TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffffffffff, 4, 29);
1452    TESTINST("dinsm", 0xffffffffffffffff, 0x98765432,         4, 29);
1453    TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffff865421, 4, 29);
1454    TESTINST("dinsm", 0x98765432,         0x0,                4, 29);
1455    TESTINST("dinsm", 0x98765432,         0xffffffffffffffff, 4, 29);
1456    TESTINST("dinsm", 0x98765432,         0x98765432,         4, 29);
1457    TESTINST("dinsm", 0x98765432,         0xffffffffff865421, 4, 29);
1458    TESTINST("dinsm", 0xffffffffff865421, 0x0,                4, 29);
1459    TESTINST("dinsm", 0xffffffffff865421, 0xffffffffffffffff, 4, 29);
1460    TESTINST("dinsm", 0xffffffffff865421, 0x98765432,         4, 29);
1461    TESTINST("dinsm", 0xffffffffff865421, 0xffffffffff865421, 4, 29);
1462    TESTINST("dinsm", 0x0,                0x0,                4, 32);
1463    TESTINST("dinsm", 0x0,                0xffffffffffffffff, 4, 32);
1464    TESTINST("dinsm", 0x0,                0x98765432,         4, 32);
1465    TESTINST("dinsm", 0x0,                0xffffffffff865421, 4, 32);
1466    TESTINST("dinsm", 0xffffffffffffffff, 0x0,                4, 32);
1467    TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffffffffff, 4, 32);
1468    TESTINST("dinsm", 0xffffffffffffffff, 0x98765432,         4, 32);
1469    TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffff865421, 4, 32);
1470    TESTINST("dinsm", 0x98765432,         0x0,                4, 32);
1471    TESTINST("dinsm", 0x98765432,         0xffffffffffffffff, 4, 32);
1472    TESTINST("dinsm", 0x98765432,         0x98765432,         4, 32);
1473    TESTINST("dinsm", 0x98765432,         0xffffffffff865421, 4, 32);
1474    TESTINST("dinsm", 0xffffffffff865421, 0x0,                4, 32);
1475    TESTINST("dinsm", 0xffffffffff865421, 0xffffffffffffffff, 4, 32);
1476    TESTINST("dinsm", 0xffffffffff865421, 0x98765432,         4, 32);
1477    TESTINST("dinsm", 0xffffffffff865421, 0xffffffffff865421, 4, 32);
1478    TESTINST("dinsm", 0x0,                0x0,                4, 37);
1479    TESTINST("dinsm", 0x0,                0xffffffffffffffff, 4, 37);
1480    TESTINST("dinsm", 0x0,                0x98765432,         4, 37);
1481    TESTINST("dinsm", 0x0,                0xffffffffff865421, 4, 37);
1482    TESTINST("dinsm", 0xffffffffffffffff, 0x0,                4, 37);
1483    TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffffffffff, 4, 37);
1484    TESTINST("dinsm", 0xffffffffffffffff, 0x98765432,         4, 37);
1485    TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffff865421, 4, 37);
1486    TESTINST("dinsm", 0x98765432,         0x0,                4, 37);
1487    TESTINST("dinsm", 0x98765432,         0xffffffffffffffff, 4, 37);
1488    TESTINST("dinsm", 0x98765432,         0x98765432,         4, 37);
1489    TESTINST("dinsm", 0x98765432,         0xffffffffff865421, 4, 37);
1490    TESTINST("dinsm", 0xffffffffff865421, 0x0,                4, 37);
1491    TESTINST("dinsm", 0xffffffffff865421, 0xffffffffffffffff, 4, 37);
1492    TESTINST("dinsm", 0xffffffffff865421, 0x98765432,         4, 37);
1493    TESTINST("dinsm", 0xffffffffff865421, 0xffffffffff865421, 4, 37);
1494    TESTINST("dinsm", 0x0,                0x0,                4, 48);
1495    TESTINST("dinsm", 0x0,                0xffffffffffffffff, 4, 48);
1496    TESTINST("dinsm", 0x0,                0x98765432,         4, 48);
1497    TESTINST("dinsm", 0x0,                0xffffffffff865421, 4, 48);
1498    TESTINST("dinsm", 0xffffffffffffffff, 0x0,                4, 48);
1499    TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffffffffff, 4, 48);
1500    TESTINST("dinsm", 0xffffffffffffffff, 0x98765432,         4, 48);
1501    TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffff865421, 4, 48);
1502    TESTINST("dinsm", 0x98765432,         0x0,                4, 48);
1503    TESTINST("dinsm", 0x98765432,         0xffffffffffffffff, 4, 48);
1504    TESTINST("dinsm", 0x98765432,         0x98765432,         4, 48);
1505    TESTINST("dinsm", 0x98765432,         0xffffffffff865421, 4, 48);
1506    TESTINST("dinsm", 0xffffffffff865421, 0x0,                4, 48);
1507    TESTINST("dinsm", 0xffffffffff865421, 0xffffffffffffffff, 4, 48);
1508    TESTINST("dinsm", 0xffffffffff865421, 0x98765432,         4, 48);
1509    TESTINST("dinsm", 0xffffffffff865421, 0xffffffffff865421, 4, 48);
1510    TESTINST("dinsm", 0x0,                0x0,                4, 60);
1511    TESTINST("dinsm", 0x0,                0xffffffffffffffff, 4, 60);
1512    TESTINST("dinsm", 0x0,                0x98765432,         4, 60);
1513    TESTINST("dinsm", 0x0,                0xffffffffff865421, 4, 60);
1514    TESTINST("dinsm", 0xffffffffffffffff, 0x0,                4, 60);
1515    TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffffffffff, 4, 60);
1516    TESTINST("dinsm", 0xffffffffffffffff, 0x98765432,         4, 60);
1517    TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffff865421, 4, 60);
1518    TESTINST("dinsm", 0x98765432,         0x0,                4, 60);
1519    TESTINST("dinsm", 0x98765432,         0xffffffffffffffff, 4, 60);
1520    TESTINST("dinsm", 0x98765432,         0x98765432,         4, 60);
1521    TESTINST("dinsm", 0x98765432,         0xffffffffff865421, 4, 60);
1522    TESTINST("dinsm", 0xffffffffff865421, 0x0,                4, 60);
1523    TESTINST("dinsm", 0xffffffffff865421, 0xffffffffffffffff, 4, 60);
1524    TESTINST("dinsm", 0xffffffffff865421, 0x98765432,         4, 60);
1525    TESTINST("dinsm", 0xffffffffff865421, 0xffffffffff865421, 4, 60);
1526 
1527    TESTINST("dinsm", 0x0,                0x0,                16, 17);
1528    TESTINST("dinsm", 0x0,                0xffffffffffffffff, 16, 17);
1529    TESTINST("dinsm", 0x0,                0x98765432,         16, 17);
1530    TESTINST("dinsm", 0x0,                0xffffffffff865421, 16, 17);
1531    TESTINST("dinsm", 0xffffffffffffffff, 0x0,                16, 17);
1532    TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffffffffff, 16, 17);
1533    TESTINST("dinsm", 0xffffffffffffffff, 0x98765432,         16, 17);
1534    TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffff865421, 16, 17);
1535    TESTINST("dinsm", 0x98765432,         0x0,                16, 17);
1536    TESTINST("dinsm", 0x98765432,         0xffffffffffffffff, 16, 17);
1537    TESTINST("dinsm", 0x98765432,         0x98765432,         16, 17);
1538    TESTINST("dinsm", 0x98765432,         0xffffffffff865421, 16, 17);
1539    TESTINST("dinsm", 0xffffffffff865421, 0x0,                16, 17);
1540    TESTINST("dinsm", 0xffffffffff865421, 0xffffffffffffffff, 16, 17);
1541    TESTINST("dinsm", 0xffffffffff865421, 0x98765432,         16, 17);
1542    TESTINST("dinsm", 0xffffffffff865421, 0xffffffffff865421, 16, 17);
1543    TESTINST("dinsm", 0x0,                0x0,                16, 32);
1544    TESTINST("dinsm", 0x0,                0xffffffffffffffff, 16, 32);
1545    TESTINST("dinsm", 0x0,                0x98765432,         16, 32);
1546    TESTINST("dinsm", 0x0,                0xffffffffff865421, 16, 32);
1547    TESTINST("dinsm", 0xffffffffffffffff, 0x0,                16, 32);
1548    TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffffffffff, 16, 32);
1549    TESTINST("dinsm", 0xffffffffffffffff, 0x98765432,         16, 32);
1550    TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffff865421, 16, 32);
1551    TESTINST("dinsm", 0x98765432,         0x0,                16, 32);
1552    TESTINST("dinsm", 0x98765432,         0xffffffffffffffff, 16, 32);
1553    TESTINST("dinsm", 0x98765432,         0x98765432,         16, 32);
1554    TESTINST("dinsm", 0x98765432,         0xffffffffff865421, 16, 32);
1555    TESTINST("dinsm", 0xffffffffff865421, 0x0,                16, 32);
1556    TESTINST("dinsm", 0xffffffffff865421, 0xffffffffffffffff, 16, 32);
1557    TESTINST("dinsm", 0xffffffffff865421, 0x98765432,         16, 32);
1558    TESTINST("dinsm", 0xffffffffff865421, 0xffffffffff865421, 16, 32);
1559    TESTINST("dinsm", 0x0,                0x0,                16, 37);
1560    TESTINST("dinsm", 0x0,                0xffffffffffffffff, 16, 37);
1561    TESTINST("dinsm", 0x0,                0x98765432,         16, 37);
1562    TESTINST("dinsm", 0x0,                0xffffffffff865421, 16, 37);
1563    TESTINST("dinsm", 0xffffffffffffffff, 0x0,                16, 37);
1564    TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffffffffff, 16, 37);
1565    TESTINST("dinsm", 0xffffffffffffffff, 0x98765432,         16, 37);
1566    TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffff865421, 16, 37);
1567    TESTINST("dinsm", 0x98765432,         0x0,                16, 37);
1568    TESTINST("dinsm", 0x98765432,         0xffffffffffffffff, 16, 37);
1569    TESTINST("dinsm", 0x98765432,         0x98765432,         16, 37);
1570    TESTINST("dinsm", 0x98765432,         0xffffffffff865421, 16, 37);
1571    TESTINST("dinsm", 0xffffffffff865421, 0x0,                16, 37);
1572    TESTINST("dinsm", 0xffffffffff865421, 0xffffffffffffffff, 16, 37);
1573    TESTINST("dinsm", 0xffffffffff865421, 0x98765432,         16, 37);
1574    TESTINST("dinsm", 0xffffffffff865421, 0xffffffffff865421, 16, 37);
1575    TESTINST("dinsm", 0x0,                0x0,                16, 48);
1576    TESTINST("dinsm", 0x0,                0xffffffffffffffff, 16, 48);
1577    TESTINST("dinsm", 0x0,                0x98765432,         16, 48);
1578    TESTINST("dinsm", 0x0,                0xffffffffff865421, 16, 48);
1579    TESTINST("dinsm", 0xffffffffffffffff, 0x0,                16, 48);
1580    TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffffffffff, 16, 48);
1581    TESTINST("dinsm", 0xffffffffffffffff, 0x98765432,         16, 48);
1582    TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffff865421, 16, 48);
1583    TESTINST("dinsm", 0x98765432,         0x0,                16, 48);
1584    TESTINST("dinsm", 0x98765432,         0xffffffffffffffff, 16, 48);
1585    TESTINST("dinsm", 0x98765432,         0x98765432,         16, 48);
1586    TESTINST("dinsm", 0x98765432,         0xffffffffff865421, 16, 48);
1587    TESTINST("dinsm", 0xffffffffff865421, 0x0,                16, 48);
1588    TESTINST("dinsm", 0xffffffffff865421, 0xffffffffffffffff, 16, 48);
1589    TESTINST("dinsm", 0xffffffffff865421, 0x98765432,         16, 48);
1590    TESTINST("dinsm", 0xffffffffff865421, 0xffffffffff865421, 16, 48);
1591 
1592    TESTINST("dinsm", 0x0,                0x0,                31, 2);
1593    TESTINST("dinsm", 0x0,                0xffffffffffffffff, 31, 2);
1594    TESTINST("dinsm", 0x0,                0x98765432,         31, 2);
1595    TESTINST("dinsm", 0x0,                0xffffffffff865421, 31, 2);
1596    TESTINST("dinsm", 0xffffffffffffffff, 0x0,                31, 2);
1597    TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffffffffff, 31, 2);
1598    TESTINST("dinsm", 0xffffffffffffffff, 0x98765432,         31, 2);
1599    TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffff865421, 31, 2);
1600    TESTINST("dinsm", 0x98765432,         0x0,                31, 2);
1601    TESTINST("dinsm", 0x98765432,         0xffffffffffffffff, 31, 2);
1602    TESTINST("dinsm", 0x98765432,         0x98765432,         31, 2);
1603    TESTINST("dinsm", 0x98765432,         0xffffffffff865421, 31, 2);
1604    TESTINST("dinsm", 0xffffffffff865421, 0x0,                31, 2);
1605    TESTINST("dinsm", 0xffffffffff865421, 0xffffffffffffffff, 31, 2);
1606    TESTINST("dinsm", 0xffffffffff865421, 0x98765432,         31, 2);
1607    TESTINST("dinsm", 0xffffffffff865421, 0xffffffffff865421, 31, 2);
1608    TESTINST("dinsm", 0x0,                0x0,                31, 16);
1609    TESTINST("dinsm", 0x0,                0xffffffffffffffff, 31, 16);
1610    TESTINST("dinsm", 0x0,                0x98765432,         31, 16);
1611    TESTINST("dinsm", 0x0,                0xffffffffff865421, 31, 16);
1612    TESTINST("dinsm", 0xffffffffffffffff, 0x0,                31, 16);
1613    TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffffffffff, 31, 16);
1614    TESTINST("dinsm", 0xffffffffffffffff, 0x98765432,         31, 16);
1615    TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffff865421, 31, 16);
1616    TESTINST("dinsm", 0x98765432,         0x0,                31, 16);
1617    TESTINST("dinsm", 0x98765432,         0xffffffffffffffff, 31, 16);
1618    TESTINST("dinsm", 0x98765432,         0x98765432,         31, 16);
1619    TESTINST("dinsm", 0x98765432,         0xffffffffff865421, 31, 16);
1620    TESTINST("dinsm", 0xffffffffff865421, 0x0,                31, 16);
1621    TESTINST("dinsm", 0xffffffffff865421, 0xffffffffffffffff, 31, 16);
1622    TESTINST("dinsm", 0xffffffffff865421, 0x98765432,         31, 16);
1623    TESTINST("dinsm", 0xffffffffff865421, 0xffffffffff865421, 31, 16);
1624    TESTINST("dinsm", 0x0,                0x0,                31, 32);
1625    TESTINST("dinsm", 0x0,                0xffffffffffffffff, 31, 32);
1626    TESTINST("dinsm", 0x0,                0x98765432,         31, 32);
1627    TESTINST("dinsm", 0x0,                0xffffffffff865421, 31, 32);
1628    TESTINST("dinsm", 0xffffffffffffffff, 0x0,                31, 32);
1629    TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffffffffff, 31, 32);
1630    TESTINST("dinsm", 0xffffffffffffffff, 0x98765432,         31, 32);
1631    TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffff865421, 31, 32);
1632    TESTINST("dinsm", 0x98765432,         0x0,                31, 32);
1633    TESTINST("dinsm", 0x98765432,         0xffffffffffffffff, 31, 32);
1634    TESTINST("dinsm", 0x98765432,         0x98765432,         31, 32);
1635    TESTINST("dinsm", 0x98765432,         0xffffffffff865421, 31, 32);
1636    TESTINST("dinsm", 0xffffffffff865421, 0x0,                31, 32);
1637    TESTINST("dinsm", 0xffffffffff865421, 0xffffffffffffffff, 31, 32);
1638    TESTINST("dinsm", 0xffffffffff865421, 0x98765432,         31, 32);
1639    TESTINST("dinsm", 0xffffffffff865421, 0xffffffffff865421, 31, 32);
1640 
1641    TESTINST("dinsm", 0x2002ffffffffffff, 0xfffffffff0000fff, 4,  35);
1642    TESTINST("dinsm", 0xffff0000ffffffff, 0xff0000ffffffffff, 8,  33);
1643    TESTINST("dinsm", 0x2000ffffffffffff, 0xffff0000ffffffff, 16, 34);
1644    TESTINST("dinsm", 0x2000ffffffddddff, 0xffffffffffff0008, 4,  46);
1645    TESTINST("dinsm", 0x2000ffffffffeeee, 0xfffffff31415927f, 3,  56);
1646    TESTINST("dinsm", 0x31415927ffffffff, 0x2000ffffffffffff, 0,  64);
1647    TESTINST("dinsm", 0x2000ffffffffaaaa, 0x2000ffffffff2222, 16, 40);
1648    TESTINST("dinsm", 0x2000ffffffbbbbff, 0x7fffffffddddffff, 16, 42);
1649    TESTINST("dinsm", 0xeeeeff33ff22ffff, 0x2000ffffffffffff, 7,  43);
1650    TESTINST("dinsm", 0x2000ffffffffffff, 0x2000ffffffffbbbb, 5,  48);
1651    TESTINST("dinsm", 0x2000ffffffffbbbb, 0x2000ffffffffffff, 3,  52);
1652    TESTINST("dinsm", 0x2000ffffffffffff, 0xeeeeff33ff22ffff, 1,  54);
1653    TESTINST("dinsm", 0x7fffffffddddffff, 0x2000ffffffbbbbff, 2,  54);
1654    TESTINST("dinsm", 0x2000ffffffff2222, 0x2000ffffffffaaaa, 2,  48);
1655    TESTINST("dinsm", 0x2000ffffffffffff, 0x31415927ffffffff, 5,  53);
1656    TESTINST("dinsm", 0xfffffff31415927f, 0x2000ffffffffeeee, 2,  60);
1657    TESTINST("dinsm", 0xffffffffffff0008, 0x2000ffffffddddff, 3,  61);
1658    TESTINST("dinsm", 0xffff0000ffffffff, 0x2000ffffffffffff, 1,  62);
1659    TESTINST("dinsm", 0xff0000ffffffffff, 0,                  8,  38);
1660    TESTINST("dinsm", 0xfffffffff0000fff, 0,                  16, 39);
1661 
1662    printf("--- DINSU ---\n");
1663    /* The values of pos and size must satisfy all of the following relations:
1664       32 <= pos < 64
1665       1 <= size <= 32
1666       32 < pos+size <= 64 */
1667    TESTINST("dinsu", 0x0,                0x0,                32, 1);
1668    TESTINST("dinsu", 0x0,                0xffffffffffffffff, 32, 1);
1669    TESTINST("dinsu", 0x0,                0x98765432,         32, 1);
1670    TESTINST("dinsu", 0x0,                0xffffffffff865421, 32, 1);
1671    TESTINST("dinsu", 0xffffffffffffffff, 0x0,                32, 1);
1672    TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffffffffff, 32, 1);
1673    TESTINST("dinsu", 0xffffffffffffffff, 0x98765432,         32, 1);
1674    TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffff865421, 32, 1);
1675    TESTINST("dinsu", 0x98765432,         0x0,                32, 1);
1676    TESTINST("dinsu", 0x98765432,         0xffffffffffffffff, 32, 1);
1677    TESTINST("dinsu", 0x98765432,         0x98765432,         32, 1);
1678    TESTINST("dinsu", 0x98765432,         0xffffffffff865421, 32, 1);
1679    TESTINST("dinsu", 0xffffffffff865421, 0x0,                32, 1);
1680    TESTINST("dinsu", 0xffffffffff865421, 0xffffffffffffffff, 32, 1);
1681    TESTINST("dinsu", 0xffffffffff865421, 0x98765432,         32, 1);
1682    TESTINST("dinsu", 0xffffffffff865421, 0xffffffffff865421, 32, 1);
1683    TESTINST("dinsu", 0x0,                0x0,                32, 4);
1684    TESTINST("dinsu", 0x0,                0xffffffffffffffff, 32, 4);
1685    TESTINST("dinsu", 0x0,                0x98765432,         32, 4);
1686    TESTINST("dinsu", 0x0,                0xffffffffff865421, 32, 4);
1687    TESTINST("dinsu", 0xffffffffffffffff, 0x0,                32, 4);
1688    TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffffffffff, 32, 4);
1689    TESTINST("dinsu", 0xffffffffffffffff, 0x98765432,         32, 4);
1690    TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffff865421, 32, 4);
1691    TESTINST("dinsu", 0x98765432,         0x0,                32, 4);
1692    TESTINST("dinsu", 0x98765432,         0xffffffffffffffff, 32, 4);
1693    TESTINST("dinsu", 0x98765432,         0x98765432,         32, 4);
1694    TESTINST("dinsu", 0x98765432,         0xffffffffff865421, 32, 4);
1695    TESTINST("dinsu", 0xffffffffff865421, 0x0,                32, 4);
1696    TESTINST("dinsu", 0xffffffffff865421, 0xffffffffffffffff, 32, 4);
1697    TESTINST("dinsu", 0xffffffffff865421, 0x98765432,         32, 4);
1698    TESTINST("dinsu", 0xffffffffff865421, 0xffffffffff865421, 32, 4);
1699    TESTINST("dinsu", 0x0,                0x0,                32, 16);
1700    TESTINST("dinsu", 0x0,                0xffffffffffffffff, 32, 16);
1701    TESTINST("dinsu", 0x0,                0x98765432,         32, 16);
1702    TESTINST("dinsu", 0x0,                0xffffffffff865421, 32, 16);
1703    TESTINST("dinsu", 0xffffffffffffffff, 0x0,                32, 16);
1704    TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffffffffff, 32, 16);
1705    TESTINST("dinsu", 0xffffffffffffffff, 0x98765432,         32, 16);
1706    TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffff865421, 32, 16);
1707    TESTINST("dinsu", 0x98765432,         0x0,                32, 16);
1708    TESTINST("dinsu", 0x98765432,         0xffffffffffffffff, 32, 16);
1709    TESTINST("dinsu", 0x98765432,         0x98765432,         32, 16);
1710    TESTINST("dinsu", 0x98765432,         0xffffffffff865421, 32, 16);
1711    TESTINST("dinsu", 0xffffffffff865421, 0x0,                32, 16);
1712    TESTINST("dinsu", 0xffffffffff865421, 0xffffffffffffffff, 32, 16);
1713    TESTINST("dinsu", 0xffffffffff865421, 0x98765432,         32, 16);
1714    TESTINST("dinsu", 0xffffffffff865421, 0xffffffffff865421, 32, 16);
1715    TESTINST("dinsu", 0x0,                0x0,                32, 32);
1716    TESTINST("dinsu", 0x0,                0xffffffffffffffff, 32, 32);
1717    TESTINST("dinsu", 0x0,                0x98765432,         32, 32);
1718    TESTINST("dinsu", 0x0,                0xffffffffff865421, 32, 32);
1719    TESTINST("dinsu", 0xffffffffffffffff, 0x0,                32, 32);
1720    TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffffffffff, 32, 32);
1721    TESTINST("dinsu", 0xffffffffffffffff, 0x98765432,         32, 32);
1722    TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffff865421, 32, 32);
1723    TESTINST("dinsu", 0x98765432,         0x0,                32, 32);
1724    TESTINST("dinsu", 0x98765432,         0xffffffffffffffff, 32, 32);
1725    TESTINST("dinsu", 0x98765432,         0x98765432,         32, 32);
1726    TESTINST("dinsu", 0x98765432,         0xffffffffff865421, 32, 32);
1727    TESTINST("dinsu", 0xffffffffff865421, 0x0,                32, 32);
1728    TESTINST("dinsu", 0xffffffffff865421, 0xffffffffffffffff, 32, 32);
1729    TESTINST("dinsu", 0xffffffffff865421, 0x98765432,         32, 32);
1730    TESTINST("dinsu", 0xffffffffff865421, 0xffffffffff865421, 32, 32);
1731 
1732    TESTINST("dinsu", 0x0,                0x0,                36, 1);
1733    TESTINST("dinsu", 0x0,                0xffffffffffffffff, 36, 1);
1734    TESTINST("dinsu", 0x0,                0x98765432,         36, 1);
1735    TESTINST("dinsu", 0x0,                0xffffffffff865421, 36, 1);
1736    TESTINST("dinsu", 0xffffffffffffffff, 0x0,                36, 1);
1737    TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffffffffff, 36, 1);
1738    TESTINST("dinsu", 0xffffffffffffffff, 0x98765432,         36, 1);
1739    TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffff865421, 36, 1);
1740    TESTINST("dinsu", 0x98765432,         0x0,                36, 1);
1741    TESTINST("dinsu", 0x98765432,         0xffffffffffffffff, 36, 1);
1742    TESTINST("dinsu", 0x98765432,         0x98765432,         36, 1);
1743    TESTINST("dinsu", 0x98765432,         0xffffffffff865421, 36, 1);
1744    TESTINST("dinsu", 0xffffffffff865421, 0x0,                36, 1);
1745    TESTINST("dinsu", 0xffffffffff865421, 0xffffffffffffffff, 36, 1);
1746    TESTINST("dinsu", 0xffffffffff865421, 0x98765432,         36, 1);
1747    TESTINST("dinsu", 0xffffffffff865421, 0xffffffffff865421, 36, 1);
1748    TESTINST("dinsu", 0x0,                0x0,                36, 4);
1749    TESTINST("dinsu", 0x0,                0xffffffffffffffff, 36, 4);
1750    TESTINST("dinsu", 0x0,                0x98765432,         36, 4);
1751    TESTINST("dinsu", 0x0,                0xffffffffff865421, 36, 4);
1752    TESTINST("dinsu", 0xffffffffffffffff, 0x0,                36, 4);
1753    TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffffffffff, 36, 4);
1754    TESTINST("dinsu", 0xffffffffffffffff, 0x98765432,         36, 4);
1755    TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffff865421, 36, 4);
1756    TESTINST("dinsu", 0x98765432,         0x0,                36, 4);
1757    TESTINST("dinsu", 0x98765432,         0xffffffffffffffff, 36, 4);
1758    TESTINST("dinsu", 0x98765432,         0x98765432,         36, 4);
1759    TESTINST("dinsu", 0x98765432,         0xffffffffff865421, 36, 4);
1760    TESTINST("dinsu", 0xffffffffff865421, 0x0,                36, 4);
1761    TESTINST("dinsu", 0xffffffffff865421, 0xffffffffffffffff, 36, 4);
1762    TESTINST("dinsu", 0xffffffffff865421, 0x98765432,         36, 4);
1763    TESTINST("dinsu", 0xffffffffff865421, 0xffffffffff865421, 36, 4);
1764    TESTINST("dinsu", 0x0,                0x0,                36, 16);
1765    TESTINST("dinsu", 0x0,                0xffffffffffffffff, 36, 16);
1766    TESTINST("dinsu", 0x0,                0x98765432,         36, 16);
1767    TESTINST("dinsu", 0x0,                0xffffffffff865421, 36, 16);
1768    TESTINST("dinsu", 0xffffffffffffffff, 0x0,                36, 16);
1769    TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffffffffff, 36, 16);
1770    TESTINST("dinsu", 0xffffffffffffffff, 0x98765432,         36, 16);
1771    TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffff865421, 36, 16);
1772    TESTINST("dinsu", 0x98765432,         0x0,                36, 16);
1773    TESTINST("dinsu", 0x98765432,         0xffffffffffffffff, 36, 16);
1774    TESTINST("dinsu", 0x98765432,         0x98765432,         36, 16);
1775    TESTINST("dinsu", 0x98765432,         0xffffffffff865421, 36, 16);
1776    TESTINST("dinsu", 0xffffffffff865421, 0x0,                36, 16);
1777    TESTINST("dinsu", 0xffffffffff865421, 0xffffffffffffffff, 36, 16);
1778    TESTINST("dinsu", 0xffffffffff865421, 0x98765432,         36, 16);
1779    TESTINST("dinsu", 0xffffffffff865421, 0xffffffffff865421, 36, 16);
1780    TESTINST("dinsu", 0x0,                0x0,                36, 28);
1781    TESTINST("dinsu", 0x0,                0xffffffffffffffff, 36, 28);
1782    TESTINST("dinsu", 0x0,                0x98765432,         36, 28);
1783    TESTINST("dinsu", 0x0,                0xffffffffff865421, 36, 28);
1784    TESTINST("dinsu", 0xffffffffffffffff, 0x0,                36, 28);
1785    TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffffffffff, 36, 28);
1786    TESTINST("dinsu", 0xffffffffffffffff, 0x98765432,         36, 28);
1787    TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffff865421, 36, 28);
1788    TESTINST("dinsu", 0x98765432,         0x0,                36, 28);
1789    TESTINST("dinsu", 0x98765432,         0xffffffffffffffff, 36, 28);
1790    TESTINST("dinsu", 0x98765432,         0x98765432,         36, 28);
1791    TESTINST("dinsu", 0x98765432,         0xffffffffff865421, 36, 28);
1792    TESTINST("dinsu", 0xffffffffff865421, 0x0,                36, 28);
1793    TESTINST("dinsu", 0xffffffffff865421, 0xffffffffffffffff, 36, 28);
1794    TESTINST("dinsu", 0xffffffffff865421, 0x98765432,         36, 28);
1795    TESTINST("dinsu", 0xffffffffff865421, 0xffffffffff865421, 36, 28);
1796 
1797    TESTINST("dinsu", 0x0,                0x0,                48, 1);
1798    TESTINST("dinsu", 0x0,                0xffffffffffffffff, 48, 1);
1799    TESTINST("dinsu", 0x0,                0x98765432,         48, 1);
1800    TESTINST("dinsu", 0x0,                0xffffffffff865421, 48, 1);
1801    TESTINST("dinsu", 0xffffffffffffffff, 0x0,                48, 1);
1802    TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffffffffff, 48, 1);
1803    TESTINST("dinsu", 0xffffffffffffffff, 0x98765432,         48, 1);
1804    TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffff865421, 48, 1);
1805    TESTINST("dinsu", 0x98765432,         0x0,                48, 1);
1806    TESTINST("dinsu", 0x98765432,         0xffffffffffffffff, 48, 1);
1807    TESTINST("dinsu", 0x98765432,         0x98765432,         48, 1);
1808    TESTINST("dinsu", 0x98765432,         0xffffffffff865421, 48, 1);
1809    TESTINST("dinsu", 0xffffffffff865421, 0x0,                48, 1);
1810    TESTINST("dinsu", 0xffffffffff865421, 0xffffffffffffffff, 48, 1);
1811    TESTINST("dinsu", 0xffffffffff865421, 0x98765432,         48, 1);
1812    TESTINST("dinsu", 0xffffffffff865421, 0xffffffffff865421, 48, 1);
1813    TESTINST("dinsu", 0x0,                0x0,                48, 4);
1814    TESTINST("dinsu", 0x0,                0xffffffffffffffff, 48, 4);
1815    TESTINST("dinsu", 0x0,                0x98765432,         48, 4);
1816    TESTINST("dinsu", 0x0,                0xffffffffff865421, 48, 4);
1817    TESTINST("dinsu", 0xffffffffffffffff, 0x0,                48, 4);
1818    TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffffffffff, 48, 4);
1819    TESTINST("dinsu", 0xffffffffffffffff, 0x98765432,         48, 4);
1820    TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffff865421, 48, 4);
1821    TESTINST("dinsu", 0x98765432,         0x0,                48, 4);
1822    TESTINST("dinsu", 0x98765432,         0xffffffffffffffff, 48, 4);
1823    TESTINST("dinsu", 0x98765432,         0x98765432,         48, 4);
1824    TESTINST("dinsu", 0x98765432,         0xffffffffff865421, 48, 4);
1825    TESTINST("dinsu", 0xffffffffff865421, 0x0,                48, 4);
1826    TESTINST("dinsu", 0xffffffffff865421, 0xffffffffffffffff, 48, 4);
1827    TESTINST("dinsu", 0xffffffffff865421, 0x98765432,         48, 4);
1828    TESTINST("dinsu", 0xffffffffff865421, 0xffffffffff865421, 48, 4);
1829    TESTINST("dinsu", 0x0,                0x0,                48, 16);
1830    TESTINST("dinsu", 0x0,                0xffffffffffffffff, 48, 16);
1831    TESTINST("dinsu", 0x0,                0x98765432,         48, 16);
1832    TESTINST("dinsu", 0x0,                0xffffffffff865421, 48, 16);
1833    TESTINST("dinsu", 0xffffffffffffffff, 0x0,                48, 16);
1834    TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffffffffff, 48, 16);
1835    TESTINST("dinsu", 0xffffffffffffffff, 0x98765432,         48, 16);
1836    TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffff865421, 48, 16);
1837    TESTINST("dinsu", 0x98765432,         0x0,                48, 16);
1838    TESTINST("dinsu", 0x98765432,         0xffffffffffffffff, 48, 16);
1839    TESTINST("dinsu", 0x98765432,         0x98765432,         48, 16);
1840    TESTINST("dinsu", 0x98765432,         0xffffffffff865421, 48, 16);
1841    TESTINST("dinsu", 0xffffffffff865421, 0x0,                48, 16);
1842    TESTINST("dinsu", 0xffffffffff865421, 0xffffffffffffffff, 48, 16);
1843    TESTINST("dinsu", 0xffffffffff865421, 0x98765432,         48, 16);
1844    TESTINST("dinsu", 0xffffffffff865421, 0xffffffffff865421, 48, 16);
1845 
1846    TESTINST("dinsu", 0x0,                0x0,                63, 1);
1847    TESTINST("dinsu", 0x0,                0xffffffffffffffff, 63, 1);
1848    TESTINST("dinsu", 0x0,                0x98765432,         63, 1);
1849    TESTINST("dinsu", 0x0,                0xffffffffff865421, 63, 1);
1850    TESTINST("dinsu", 0xffffffffffffffff, 0x0,                63, 1);
1851    TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffffffffff, 63, 1);
1852    TESTINST("dinsu", 0xffffffffffffffff, 0x98765432,         63, 1);
1853    TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffff865421, 63, 1);
1854    TESTINST("dinsu", 0x98765432,         0x0,                63, 1);
1855    TESTINST("dinsu", 0x98765432,         0xffffffffffffffff, 63, 1);
1856    TESTINST("dinsu", 0x98765432,         0x98765432,         63, 1);
1857    TESTINST("dinsu", 0x98765432,         0xffffffffff865421, 63, 1);
1858    TESTINST("dinsu", 0xffffffffff865421, 0x0,                63, 1);
1859    TESTINST("dinsu", 0xffffffffff865421, 0xffffffffffffffff, 63, 1);
1860    TESTINST("dinsu", 0xffffffffff865421, 0x98765432,         63, 1);
1861    TESTINST("dinsu", 0xffffffffff865421, 0xffffffffff865421, 63, 1);
1862 
1863    TESTINST("dinsu", 0x2002ffffffffffff, 0xfffffffff0000fff, 33, 4);
1864    TESTINST("dinsu", 0xffff0000ffffffff, 0xff0000ffffffffff, 60, 4);
1865    TESTINST("dinsu", 0x2000ffffffffffff, 0xffff0000ffffffff, 54, 4);
1866    TESTINST("dinsu", 0x2000ffffffddddff, 0xffffffffffff0008, 56, 2);
1867    TESTINST("dinsu", 0x2000ffffffffeeee, 0xfffffff31415927f, 40, 4);
1868    TESTINST("dinsu", 0x31415927ffffffff, 0x2000ffffffffffff, 51, 2);
1869    TESTINST("dinsu", 0x2000ffffffffaaaa, 0x2000ffffffff2222, 48, 4);
1870    TESTINST("dinsu", 0x2000ffffffbbbbff, 0x7fffffffddddffff, 38, 4);
1871    TESTINST("dinsu", 0xeeeeff33ff22ffff, 0x2000ffffffffffff, 35, 4);
1872    TESTINST("dinsu", 0x2000ffffffffffff, 0x2000ffffffffbbbb, 36, 4);
1873    TESTINST("dinsu", 0x2000ffffffffbbbb, 0x2000ffffffffffff, 45, 1);
1874    TESTINST("dinsu", 0x2000ffffffffffff, 0xeeeeff33ff22ffff, 46, 4);
1875    TESTINST("dinsu", 0x7fffffffddddffff, 0x2000ffffffbbbbff, 52, 4);
1876    TESTINST("dinsu", 0x2000ffffffff2222, 0x2000ffffffffaaaa, 40, 8);
1877    TESTINST("dinsu", 0x2000ffffffffffff, 0x31415927ffffffff, 39, 4);
1878    TESTINST("dinsu", 0xfffffff31415927f, 0x31415927ffffffff, 60, 4);
1879    TESTINST("dinsu", 0xffffffffffff0008, 0x2000ffffffddddff, 63, 1);
1880    TESTINST("dinsu", 0xffff0000ffffffff, 0x2000ffffffffffff, 50, 4);
1881    TESTINST("dinsu", 0xff0000ffffffffff, 0,                  36, 4);
1882    TESTINST("dinsu", 0xfffffffff0000fff, 0,                  46, 4);
1883 #else
1884    printf("This test is testing mips64r2 instructions.\n");
1885 #endif
1886 
1887    return 0;
1888 }
1889