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