#include <stdio.h>
#define TESTINST(instruction, in, in1, pos, size) \
{ \
unsigned long long out; \
__asm__ __volatile__( \
"move $t0, %2" "\n\t" \
"move $t1, %1" "\n\t" \
instruction" $t0, $t1, "#pos", "#size "\n\t" \
"move %0, $t0" "\n\t" \
: "=r" (out) \
: "r" (in), "r" (in1) \
: "t0", "t1" \
); \
printf("%s :: in 0x%llx, in1 0x%llx, out 0x%llx, pos: %d, size: %d\n", \
instruction, (long long) in, (long long) in1, out, pos, size); \
}
int main()
{
#if (__mips == 64) && (__mips_isa_rev >= 2)
printf("--- INS ---\n");
/* The values of pos and size must satisfy all of the following relations:
0 <= pos < 32
0 < size <= 32
0 < pos+size <= 32 */
TESTINST("ins", 0x0, 0x0, 0, 1);
TESTINST("ins", 0x0, 0xffffffffffffffff, 0, 1);
TESTINST("ins", 0x0, 0x98765432, 0, 1);
TESTINST("ins", 0x0, 0xffffffffff865421, 0, 1);
TESTINST("ins", 0xffffffffffffffff, 0x0, 0, 1);
TESTINST("ins", 0xffffffffffffffff, 0xffffffffffffffff, 0, 1);
TESTINST("ins", 0xffffffffffffffff, 0x98765432, 0, 1);
TESTINST("ins", 0xffffffffffffffff, 0xffffffffff865421, 0, 1);
TESTINST("ins", 0x98765432, 0x0, 0, 1);
TESTINST("ins", 0x98765432, 0xffffffffffffffff, 0, 1);
TESTINST("ins", 0x98765432, 0x98765432, 0, 1);
TESTINST("ins", 0x98765432, 0xffffffffff865421, 0, 1);
TESTINST("ins", 0xffffffffff865421, 0x0, 0, 1);
TESTINST("ins", 0xffffffffff865421, 0xffffffffffffffff, 0, 1);
TESTINST("ins", 0xffffffffff865421, 0x98765432, 0, 1);
TESTINST("ins", 0xffffffffff865421, 0xffffffffff865421, 0, 1);
TESTINST("ins", 0x0, 0x0, 0, 4);
TESTINST("ins", 0x0, 0xffffffffffffffff, 0, 4);
TESTINST("ins", 0x0, 0x98765432, 0, 4);
TESTINST("ins", 0x0, 0xffffffffff865421, 0, 4);
TESTINST("ins", 0xffffffffffffffff, 0x0, 0, 4);
TESTINST("ins", 0xffffffffffffffff, 0xffffffffffffffff, 0, 4);
TESTINST("ins", 0xffffffffffffffff, 0x98765432, 0, 4);
TESTINST("ins", 0xffffffffffffffff, 0xffffffffff865421, 0, 4);
TESTINST("ins", 0x98765432, 0x0, 0, 4);
TESTINST("ins", 0x98765432, 0xffffffffffffffff, 0, 4);
TESTINST("ins", 0x98765432, 0x98765432, 0, 4);
TESTINST("ins", 0x98765432, 0xffffffffff865421, 0, 4);
TESTINST("ins", 0xffffffffff865421, 0x0, 0, 4);
TESTINST("ins", 0xffffffffff865421, 0xffffffffffffffff, 0, 4);
TESTINST("ins", 0xffffffffff865421, 0x98765432, 0, 4);
TESTINST("ins", 0xffffffffff865421, 0xffffffffff865421, 0, 4);
TESTINST("ins", 0x0, 0x0, 0, 16);
TESTINST("ins", 0x0, 0xffffffffffffffff, 0, 16);
TESTINST("ins", 0x0, 0x98765432, 0, 16);
TESTINST("ins", 0x0, 0xffffffffff865421, 0, 16);
TESTINST("ins", 0xffffffffffffffff, 0x0, 0, 16);
TESTINST("ins", 0xffffffffffffffff, 0xffffffffffffffff, 0, 16);
TESTINST("ins", 0xffffffffffffffff, 0x98765432, 0, 16);
TESTINST("ins", 0xffffffffffffffff, 0xffffffffff865421, 0, 16);
TESTINST("ins", 0x98765432, 0x0, 0, 16);
TESTINST("ins", 0x98765432, 0xffffffffffffffff, 0, 16);
TESTINST("ins", 0x98765432, 0x98765432, 0, 16);
TESTINST("ins", 0x98765432, 0xffffffffff865421, 0, 16);
TESTINST("ins", 0xffffffffff865421, 0x0, 0, 16);
TESTINST("ins", 0xffffffffff865421, 0xffffffffffffffff, 0, 16);
TESTINST("ins", 0xffffffffff865421, 0x98765432, 0, 16);
TESTINST("ins", 0xffffffffff865421, 0xffffffffff865421, 0, 16);
TESTINST("ins", 0x0, 0x0, 0, 32);
TESTINST("ins", 0x0, 0xffffffffffffffff, 0, 32);
TESTINST("ins", 0x0, 0x98765432, 0, 32);
TESTINST("ins", 0x0, 0xffffffffff865421, 0, 32);
TESTINST("ins", 0xffffffffffffffff, 0x0, 0, 32);
TESTINST("ins", 0xffffffffffffffff, 0xffffffffffffffff, 0, 32);
TESTINST("ins", 0xffffffffffffffff, 0x98765432, 0, 32);
TESTINST("ins", 0xffffffffffffffff, 0xffffffffff865421, 0, 32);
TESTINST("ins", 0x98765432, 0x0, 0, 32);
TESTINST("ins", 0x98765432, 0xffffffffffffffff, 0, 32);
TESTINST("ins", 0x98765432, 0x98765432, 0, 32);
TESTINST("ins", 0x98765432, 0xffffffffff865421, 0, 32);
TESTINST("ins", 0xffffffffff865421, 0x0, 0, 32);
TESTINST("ins", 0xffffffffff865421, 0xffffffffffffffff, 0, 32);
TESTINST("ins", 0xffffffffff865421, 0x98765432, 0, 32);
TESTINST("ins", 0xffffffffff865421, 0xffffffffff865421, 0, 32);
TESTINST("ins", 0x0, 0x0, 4, 1);
TESTINST("ins", 0x0, 0xffffffffffffffff, 4, 1);
TESTINST("ins", 0x0, 0x98765432, 4, 1);
TESTINST("ins", 0x0, 0xffffffffff865421, 4, 1);
TESTINST("ins", 0xffffffffffffffff, 0x0, 4, 1);
TESTINST("ins", 0xffffffffffffffff, 0xffffffffffffffff, 4, 1);
TESTINST("ins", 0xffffffffffffffff, 0x98765432, 4, 1);
TESTINST("ins", 0xffffffffffffffff, 0xffffffffff865421, 4, 1);
TESTINST("ins", 0x98765432, 0x0, 4, 1);
TESTINST("ins", 0x98765432, 0xffffffffffffffff, 4, 1);
TESTINST("ins", 0x98765432, 0x98765432, 4, 1);
TESTINST("ins", 0x98765432, 0xffffffffff865421, 4, 1);
TESTINST("ins", 0xffffffffff865421, 0x0, 4, 1);
TESTINST("ins", 0xffffffffff865421, 0xffffffffffffffff, 4, 1);
TESTINST("ins", 0xffffffffff865421, 0x98765432, 4, 1);
TESTINST("ins", 0xffffffffff865421, 0xffffffffff865421, 4, 1);
TESTINST("ins", 0x0, 0x0, 4, 4);
TESTINST("ins", 0x0, 0xffffffffffffffff, 4, 4);
TESTINST("ins", 0x0, 0x98765432, 4, 4);
TESTINST("ins", 0x0, 0xffffffffff865421, 4, 4);
TESTINST("ins", 0xffffffffffffffff, 0x0, 4, 4);
TESTINST("ins", 0xffffffffffffffff, 0xffffffffffffffff, 4, 4);
TESTINST("ins", 0xffffffffffffffff, 0x98765432, 4, 4);
TESTINST("ins", 0xffffffffffffffff, 0xffffffffff865421, 4, 4);
TESTINST("ins", 0x98765432, 0x0, 4, 4);
TESTINST("ins", 0x98765432, 0xffffffffffffffff, 4, 4);
TESTINST("ins", 0x98765432, 0x98765432, 4, 4);
TESTINST("ins", 0x98765432, 0xffffffffff865421, 4, 4);
TESTINST("ins", 0xffffffffff865421, 0x0, 4, 4);
TESTINST("ins", 0xffffffffff865421, 0xffffffffffffffff, 4, 4);
TESTINST("ins", 0xffffffffff865421, 0x98765432, 4, 4);
TESTINST("ins", 0xffffffffff865421, 0xffffffffff865421, 4, 4);
TESTINST("ins", 0x0, 0x0, 4, 16);
TESTINST("ins", 0x0, 0xffffffffffffffff, 4, 16);
TESTINST("ins", 0x0, 0x98765432, 4, 16);
TESTINST("ins", 0x0, 0xffffffffff865421, 4, 16);
TESTINST("ins", 0xffffffffffffffff, 0x0, 4, 16);
TESTINST("ins", 0xffffffffffffffff, 0xffffffffffffffff, 4, 16);
TESTINST("ins", 0xffffffffffffffff, 0x98765432, 4, 16);
TESTINST("ins", 0xffffffffffffffff, 0xffffffffff865421, 4, 16);
TESTINST("ins", 0x98765432, 0x0, 4, 16);
TESTINST("ins", 0x98765432, 0xffffffffffffffff, 4, 16);
TESTINST("ins", 0x98765432, 0x98765432, 4, 16);
TESTINST("ins", 0x98765432, 0xffffffffff865421, 4, 16);
TESTINST("ins", 0xffffffffff865421, 0x0, 4, 16);
TESTINST("ins", 0xffffffffff865421, 0xffffffffffffffff, 4, 16);
TESTINST("ins", 0xffffffffff865421, 0x98765432, 4, 16);
TESTINST("ins", 0xffffffffff865421, 0xffffffffff865421, 4, 16);
TESTINST("ins", 0x0, 0x0, 4, 28);
TESTINST("ins", 0x0, 0xffffffffffffffff, 4, 28);
TESTINST("ins", 0x0, 0x98765432, 4, 28);
TESTINST("ins", 0x0, 0xffffffffff865421, 4, 28);
TESTINST("ins", 0xffffffffffffffff, 0x0, 4, 28);
TESTINST("ins", 0xffffffffffffffff, 0xffffffffffffffff, 4, 28);
TESTINST("ins", 0xffffffffffffffff, 0x98765432, 4, 28);
TESTINST("ins", 0xffffffffffffffff, 0xffffffffff865421, 4, 28);
TESTINST("ins", 0x98765432, 0x0, 4, 28);
TESTINST("ins", 0x98765432, 0xffffffffffffffff, 4, 28);
TESTINST("ins", 0x98765432, 0x98765432, 4, 28);
TESTINST("ins", 0x98765432, 0xffffffffff865421, 4, 28);
TESTINST("ins", 0xffffffffff865421, 0x0, 4, 28);
TESTINST("ins", 0xffffffffff865421, 0xffffffffffffffff, 4, 28);
TESTINST("ins", 0xffffffffff865421, 0x98765432, 4, 28);
TESTINST("ins", 0xffffffffff865421, 0xffffffffff865421, 4, 28);
TESTINST("ins", 0x0, 0x0, 16, 1);
TESTINST("ins", 0x0, 0xffffffffffffffff, 16, 1);
TESTINST("ins", 0x0, 0x98765432, 16, 1);
TESTINST("ins", 0x0, 0xffffffffff865421, 16, 1);
TESTINST("ins", 0xffffffffffffffff, 0x0, 16, 1);
TESTINST("ins", 0xffffffffffffffff, 0xffffffffffffffff, 16, 1);
TESTINST("ins", 0xffffffffffffffff, 0x98765432, 16, 1);
TESTINST("ins", 0xffffffffffffffff, 0xffffffffff865421, 16, 1);
TESTINST("ins", 0x98765432, 0x0, 16, 1);
TESTINST("ins", 0x98765432, 0xffffffffffffffff, 16, 1);
TESTINST("ins", 0x98765432, 0x98765432, 16, 1);
TESTINST("ins", 0x98765432, 0xffffffffff865421, 16, 1);
TESTINST("ins", 0xffffffffff865421, 0x0, 16, 1);
TESTINST("ins", 0xffffffffff865421, 0xffffffffffffffff, 16, 1);
TESTINST("ins", 0xffffffffff865421, 0x98765432, 16, 1);
TESTINST("ins", 0xffffffffff865421, 0xffffffffff865421, 16, 1);
TESTINST("ins", 0x0, 0x0, 16, 4);
TESTINST("ins", 0x0, 0xffffffffffffffff, 16, 4);
TESTINST("ins", 0x0, 0x98765432, 16, 4);
TESTINST("ins", 0x0, 0xffffffffff865421, 16, 4);
TESTINST("ins", 0xffffffffffffffff, 0x0, 16, 4);
TESTINST("ins", 0xffffffffffffffff, 0xffffffffffffffff, 16, 4);
TESTINST("ins", 0xffffffffffffffff, 0x98765432, 16, 4);
TESTINST("ins", 0xffffffffffffffff, 0xffffffffff865421, 16, 4);
TESTINST("ins", 0x98765432, 0x0, 16, 4);
TESTINST("ins", 0x98765432, 0xffffffffffffffff, 16, 4);
TESTINST("ins", 0x98765432, 0x98765432, 16, 4);
TESTINST("ins", 0x98765432, 0xffffffffff865421, 16, 4);
TESTINST("ins", 0xffffffffff865421, 0x0, 16, 4);
TESTINST("ins", 0xffffffffff865421, 0xffffffffffffffff, 16, 4);
TESTINST("ins", 0xffffffffff865421, 0x98765432, 16, 4);
TESTINST("ins", 0xffffffffff865421, 0xffffffffff865421, 16, 4);
TESTINST("ins", 0x0, 0x0, 16, 16);
TESTINST("ins", 0x0, 0xffffffffffffffff, 16, 16);
TESTINST("ins", 0x0, 0x98765432, 16, 16);
TESTINST("ins", 0x0, 0xffffffffff865421, 16, 16);
TESTINST("ins", 0xffffffffffffffff, 0x0, 16, 16);
TESTINST("ins", 0xffffffffffffffff, 0xffffffffffffffff, 16, 16);
TESTINST("ins", 0xffffffffffffffff, 0x98765432, 16, 16);
TESTINST("ins", 0xffffffffffffffff, 0xffffffffff865421, 16, 16);
TESTINST("ins", 0x98765432, 0x0, 16, 16);
TESTINST("ins", 0x98765432, 0xffffffffffffffff, 16, 16);
TESTINST("ins", 0x98765432, 0x98765432, 16, 16);
TESTINST("ins", 0x98765432, 0xffffffffff865421, 16, 16);
TESTINST("ins", 0xffffffffff865421, 0x0, 16, 16);
TESTINST("ins", 0xffffffffff865421, 0xffffffffffffffff, 16, 16);
TESTINST("ins", 0xffffffffff865421, 0x98765432, 16, 16);
TESTINST("ins", 0xffffffffff865421, 0xffffffffff865421, 16, 16);
TESTINST("ins", 0x0, 0x0, 31, 1);
TESTINST("ins", 0x0, 0xffffffffffffffff, 31, 1);
TESTINST("ins", 0x0, 0x98765432, 31, 1);
TESTINST("ins", 0x0, 0xffffffffff865421, 31, 1);
TESTINST("ins", 0xffffffffffffffff, 0x0, 31, 1);
TESTINST("ins", 0xffffffffffffffff, 0xffffffffffffffff, 31, 1);
TESTINST("ins", 0xffffffffffffffff, 0x98765432, 31, 1);
TESTINST("ins", 0xffffffffffffffff, 0xffffffffff865421, 31, 1);
TESTINST("ins", 0x98765432, 0x0, 31, 1);
TESTINST("ins", 0x98765432, 0xffffffffffffffff, 31, 1);
TESTINST("ins", 0x98765432, 0x98765432, 31, 1);
TESTINST("ins", 0x98765432, 0xffffffffff865421, 31, 1);
TESTINST("ins", 0xffffffffff865421, 0x0, 31, 1);
TESTINST("ins", 0xffffffffff865421, 0xffffffffffffffff, 31, 1);
TESTINST("ins", 0xffffffffff865421, 0x98765432, 31, 1);
TESTINST("ins", 0xffffffffff865421, 0xffffffffff865421, 31, 1);
printf("--- EXT ---\n");
/* The values of pos and size must satisfy all of the following relations:
0 <= pos < 32
0 < size <= 32
0 < pos+size <= 32 */
TESTINST("ext", 0x0, 0x0, 0, 1);
TESTINST("ext", 0x0, 0xffffffffffffffff, 0, 1);
TESTINST("ext", 0x0, 0x98765432, 0, 1);
TESTINST("ext", 0x0, 0xffffffffff865421, 0, 1);
TESTINST("ext", 0xffffffffffffffff, 0x0, 0, 1);
TESTINST("ext", 0xffffffffffffffff, 0xffffffffffffffff, 0, 1);
TESTINST("ext", 0xffffffffffffffff, 0x98765432, 0, 1);
TESTINST("ext", 0xffffffffffffffff, 0xffffffffff865421, 0, 1);
TESTINST("ext", 0x98765432, 0x0, 0, 1);
TESTINST("ext", 0x98765432, 0xffffffffffffffff, 0, 1);
TESTINST("ext", 0x98765432, 0x98765432, 0, 1);
TESTINST("ext", 0x98765432, 0xffffffffff865421, 0, 1);
TESTINST("ext", 0xffffffffff865421, 0x0, 0, 1);
TESTINST("ext", 0xffffffffff865421, 0xffffffffffffffff, 0, 1);
TESTINST("ext", 0xffffffffff865421, 0x98765432, 0, 1);
TESTINST("ext", 0xffffffffff865421, 0xffffffffff865421, 0, 1);
TESTINST("ext", 0x0, 0x0, 0, 4);
TESTINST("ext", 0x0, 0xffffffffffffffff, 0, 4);
TESTINST("ext", 0x0, 0x98765432, 0, 4);
TESTINST("ext", 0x0, 0xffffffffff865421, 0, 4);
TESTINST("ext", 0xffffffffffffffff, 0x0, 0, 4);
TESTINST("ext", 0xffffffffffffffff, 0xffffffffffffffff, 0, 4);
TESTINST("ext", 0xffffffffffffffff, 0x98765432, 0, 4);
TESTINST("ext", 0xffffffffffffffff, 0xffffffffff865421, 0, 4);
TESTINST("ext", 0x98765432, 0x0, 0, 4);
TESTINST("ext", 0x98765432, 0xffffffffffffffff, 0, 4);
TESTINST("ext", 0x98765432, 0x98765432, 0, 4);
TESTINST("ext", 0x98765432, 0xffffffffff865421, 0, 4);
TESTINST("ext", 0xffffffffff865421, 0x0, 0, 4);
TESTINST("ext", 0xffffffffff865421, 0xffffffffffffffff, 0, 4);
TESTINST("ext", 0xffffffffff865421, 0x98765432, 0, 4);
TESTINST("ext", 0xffffffffff865421, 0xffffffffff865421, 0, 4);
TESTINST("ext", 0x0, 0x0, 0, 16);
TESTINST("ext", 0x0, 0xffffffffffffffff, 0, 16);
TESTINST("ext", 0x0, 0x98765432, 0, 16);
TESTINST("ext", 0x0, 0xffffffffff865421, 0, 16);
TESTINST("ext", 0xffffffffffffffff, 0x0, 0, 16);
TESTINST("ext", 0xffffffffffffffff, 0xffffffffffffffff, 0, 16);
TESTINST("ext", 0xffffffffffffffff, 0x98765432, 0, 16);
TESTINST("ext", 0xffffffffffffffff, 0xffffffffff865421, 0, 16);
TESTINST("ext", 0x98765432, 0x0, 0, 16);
TESTINST("ext", 0x98765432, 0xffffffffffffffff, 0, 16);
TESTINST("ext", 0x98765432, 0x98765432, 0, 16);
TESTINST("ext", 0x98765432, 0xffffffffff865421, 0, 16);
TESTINST("ext", 0xffffffffff865421, 0x0, 0, 16);
TESTINST("ext", 0xffffffffff865421, 0xffffffffffffffff, 0, 16);
TESTINST("ext", 0xffffffffff865421, 0x98765432, 0, 16);
TESTINST("ext", 0xffffffffff865421, 0xffffffffff865421, 0, 16);
TESTINST("ext", 0x0, 0x0, 0, 32);
TESTINST("ext", 0x0, 0xffffffffffffffff, 0, 32);
TESTINST("ext", 0x0, 0x98765432, 0, 32);
TESTINST("ext", 0x0, 0xffffffffff865421, 0, 32);
TESTINST("ext", 0xffffffffffffffff, 0x0, 0, 32);
TESTINST("ext", 0xffffffffffffffff, 0xffffffffffffffff, 0, 32);
TESTINST("ext", 0xffffffffffffffff, 0x98765432, 0, 32);
TESTINST("ext", 0xffffffffffffffff, 0xffffffffff865421, 0, 32);
TESTINST("ext", 0x98765432, 0x0, 0, 32);
TESTINST("ext", 0x98765432, 0xffffffffffffffff, 0, 32);
TESTINST("ext", 0x98765432, 0x98765432, 0, 32);
TESTINST("ext", 0x98765432, 0xffffffffff865421, 0, 32);
TESTINST("ext", 0xffffffffff865421, 0x0, 0, 32);
TESTINST("ext", 0xffffffffff865421, 0xffffffffffffffff, 0, 32);
TESTINST("ext", 0xffffffffff865421, 0x98765432, 0, 32);
TESTINST("ext", 0xffffffffff865421, 0xffffffffff865421, 0, 32);
TESTINST("ext", 0x0, 0x0, 4, 1);
TESTINST("ext", 0x0, 0xffffffffffffffff, 4, 1);
TESTINST("ext", 0x0, 0x98765432, 4, 1);
TESTINST("ext", 0x0, 0xffffffffff865421, 4, 1);
TESTINST("ext", 0xffffffffffffffff, 0x0, 4, 1);
TESTINST("ext", 0xffffffffffffffff, 0xffffffffffffffff, 4, 1);
TESTINST("ext", 0xffffffffffffffff, 0x98765432, 4, 1);
TESTINST("ext", 0xffffffffffffffff, 0xffffffffff865421, 4, 1);
TESTINST("ext", 0x98765432, 0x0, 4, 1);
TESTINST("ext", 0x98765432, 0xffffffffffffffff, 4, 1);
TESTINST("ext", 0x98765432, 0x98765432, 4, 1);
TESTINST("ext", 0x98765432, 0xffffffffff865421, 4, 1);
TESTINST("ext", 0xffffffffff865421, 0x0, 4, 1);
TESTINST("ext", 0xffffffffff865421, 0xffffffffffffffff, 4, 1);
TESTINST("ext", 0xffffffffff865421, 0x98765432, 4, 1);
TESTINST("ext", 0xffffffffff865421, 0xffffffffff865421, 4, 1);
TESTINST("ext", 0x0, 0x0, 4, 4);
TESTINST("ext", 0x0, 0xffffffffffffffff, 4, 4);
TESTINST("ext", 0x0, 0x98765432, 4, 4);
TESTINST("ext", 0x0, 0xffffffffff865421, 4, 4);
TESTINST("ext", 0xffffffffffffffff, 0x0, 4, 4);
TESTINST("ext", 0xffffffffffffffff, 0xffffffffffffffff, 4, 4);
TESTINST("ext", 0xffffffffffffffff, 0x98765432, 4, 4);
TESTINST("ext", 0xffffffffffffffff, 0xffffffffff865421, 4, 4);
TESTINST("ext", 0x98765432, 0x0, 4, 4);
TESTINST("ext", 0x98765432, 0xffffffffffffffff, 4, 4);
TESTINST("ext", 0x98765432, 0x98765432, 4, 4);
TESTINST("ext", 0x98765432, 0xffffffffff865421, 4, 4);
TESTINST("ext", 0xffffffffff865421, 0x0, 4, 4);
TESTINST("ext", 0xffffffffff865421, 0xffffffffffffffff, 4, 4);
TESTINST("ext", 0xffffffffff865421, 0x98765432, 4, 4);
TESTINST("ext", 0xffffffffff865421, 0xffffffffff865421, 4, 4);
TESTINST("ext", 0x0, 0x0, 4, 16);
TESTINST("ext", 0x0, 0xffffffffffffffff, 4, 16);
TESTINST("ext", 0x0, 0x98765432, 4, 16);
TESTINST("ext", 0x0, 0xffffffffff865421, 4, 16);
TESTINST("ext", 0xffffffffffffffff, 0x0, 4, 16);
TESTINST("ext", 0xffffffffffffffff, 0xffffffffffffffff, 4, 16);
TESTINST("ext", 0xffffffffffffffff, 0x98765432, 4, 16);
TESTINST("ext", 0xffffffffffffffff, 0xffffffffff865421, 4, 16);
TESTINST("ext", 0x98765432, 0x0, 4, 16);
TESTINST("ext", 0x98765432, 0xffffffffffffffff, 4, 16);
TESTINST("ext", 0x98765432, 0x98765432, 4, 16);
TESTINST("ext", 0x98765432, 0xffffffffff865421, 4, 16);
TESTINST("ext", 0xffffffffff865421, 0x0, 4, 16);
TESTINST("ext", 0xffffffffff865421, 0xffffffffffffffff, 4, 16);
TESTINST("ext", 0xffffffffff865421, 0x98765432, 4, 16);
TESTINST("ext", 0xffffffffff865421, 0xffffffffff865421, 4, 16);
TESTINST("ext", 0x0, 0x0, 4, 28);
TESTINST("ext", 0x0, 0xffffffffffffffff, 4, 28);
TESTINST("ext", 0x0, 0x98765432, 4, 28);
TESTINST("ext", 0x0, 0xffffffffff865421, 4, 28);
TESTINST("ext", 0xffffffffffffffff, 0x0, 4, 28);
TESTINST("ext", 0xffffffffffffffff, 0xffffffffffffffff, 4, 28);
TESTINST("ext", 0xffffffffffffffff, 0x98765432, 4, 28);
TESTINST("ext", 0xffffffffffffffff, 0xffffffffff865421, 4, 28);
TESTINST("ext", 0x98765432, 0x0, 4, 28);
TESTINST("ext", 0x98765432, 0xffffffffffffffff, 4, 28);
TESTINST("ext", 0x98765432, 0x98765432, 4, 28);
TESTINST("ext", 0x98765432, 0xffffffffff865421, 4, 28);
TESTINST("ext", 0xffffffffff865421, 0x0, 4, 28);
TESTINST("ext", 0xffffffffff865421, 0xffffffffffffffff, 4, 28);
TESTINST("ext", 0xffffffffff865421, 0x98765432, 4, 28);
TESTINST("ext", 0xffffffffff865421, 0xffffffffff865421, 4, 28);
TESTINST("ext", 0x0, 0x0, 16, 1);
TESTINST("ext", 0x0, 0xffffffffffffffff, 16, 1);
TESTINST("ext", 0x0, 0x98765432, 16, 1);
TESTINST("ext", 0x0, 0xffffffffff865421, 16, 1);
TESTINST("ext", 0xffffffffffffffff, 0x0, 16, 1);
TESTINST("ext", 0xffffffffffffffff, 0xffffffffffffffff, 16, 1);
TESTINST("ext", 0xffffffffffffffff, 0x98765432, 16, 1);
TESTINST("ext", 0xffffffffffffffff, 0xffffffffff865421, 16, 1);
TESTINST("ext", 0x98765432, 0x0, 16, 1);
TESTINST("ext", 0x98765432, 0xffffffffffffffff, 16, 1);
TESTINST("ext", 0x98765432, 0x98765432, 16, 1);
TESTINST("ext", 0x98765432, 0xffffffffff865421, 16, 1);
TESTINST("ext", 0xffffffffff865421, 0x0, 16, 1);
TESTINST("ext", 0xffffffffff865421, 0xffffffffffffffff, 16, 1);
TESTINST("ext", 0xffffffffff865421, 0x98765432, 16, 1);
TESTINST("ext", 0xffffffffff865421, 0xffffffffff865421, 16, 1);
TESTINST("ext", 0x0, 0x0, 16, 4);
TESTINST("ext", 0x0, 0xffffffffffffffff, 16, 4);
TESTINST("ext", 0x0, 0x98765432, 16, 4);
TESTINST("ext", 0x0, 0xffffffffff865421, 16, 4);
TESTINST("ext", 0xffffffffffffffff, 0x0, 16, 4);
TESTINST("ext", 0xffffffffffffffff, 0xffffffffffffffff, 16, 4);
TESTINST("ext", 0xffffffffffffffff, 0x98765432, 16, 4);
TESTINST("ext", 0xffffffffffffffff, 0xffffffffff865421, 16, 4);
TESTINST("ext", 0x98765432, 0x0, 16, 4);
TESTINST("ext", 0x98765432, 0xffffffffffffffff, 16, 4);
TESTINST("ext", 0x98765432, 0x98765432, 16, 4);
TESTINST("ext", 0x98765432, 0xffffffffff865421, 16, 4);
TESTINST("ext", 0xffffffffff865421, 0x0, 16, 4);
TESTINST("ext", 0xffffffffff865421, 0xffffffffffffffff, 16, 4);
TESTINST("ext", 0xffffffffff865421, 0x98765432, 16, 4);
TESTINST("ext", 0xffffffffff865421, 0xffffffffff865421, 16, 4);
TESTINST("ext", 0x0, 0x0, 16, 16);
TESTINST("ext", 0x0, 0xffffffffffffffff, 16, 16);
TESTINST("ext", 0x0, 0x98765432, 16, 16);
TESTINST("ext", 0x0, 0xffffffffff865421, 16, 16);
TESTINST("ext", 0xffffffffffffffff, 0x0, 16, 16);
TESTINST("ext", 0xffffffffffffffff, 0xffffffffffffffff, 16, 16);
TESTINST("ext", 0xffffffffffffffff, 0x98765432, 16, 16);
TESTINST("ext", 0xffffffffffffffff, 0xffffffffff865421, 16, 16);
TESTINST("ext", 0x98765432, 0x0, 16, 16);
TESTINST("ext", 0x98765432, 0xffffffffffffffff, 16, 16);
TESTINST("ext", 0x98765432, 0x98765432, 16, 16);
TESTINST("ext", 0x98765432, 0xffffffffff865421, 16, 16);
TESTINST("ext", 0xffffffffff865421, 0x0, 16, 16);
TESTINST("ext", 0xffffffffff865421, 0xffffffffffffffff, 16, 16);
TESTINST("ext", 0xffffffffff865421, 0x98765432, 16, 16);
TESTINST("ext", 0xffffffffff865421, 0xffffffffff865421, 16, 16);
TESTINST("ext", 0x0, 0x0, 31, 1);
TESTINST("ext", 0x0, 0xffffffffffffffff, 31, 1);
TESTINST("ext", 0x0, 0x98765432, 31, 1);
TESTINST("ext", 0x0, 0xffffffffff865421, 31, 1);
TESTINST("ext", 0xffffffffffffffff, 0x0, 31, 1);
TESTINST("ext", 0xffffffffffffffff, 0xffffffffffffffff, 31, 1);
TESTINST("ext", 0xffffffffffffffff, 0x98765432, 31, 1);
TESTINST("ext", 0xffffffffffffffff, 0xffffffffff865421, 31, 1);
TESTINST("ext", 0x98765432, 0x0, 31, 1);
TESTINST("ext", 0x98765432, 0xffffffffffffffff, 31, 1);
TESTINST("ext", 0x98765432, 0x98765432, 31, 1);
TESTINST("ext", 0x98765432, 0xffffffffff865421, 31, 1);
TESTINST("ext", 0xffffffffff865421, 0x0, 31, 1);
TESTINST("ext", 0xffffffffff865421, 0xffffffffffffffff, 31, 1);
TESTINST("ext", 0xffffffffff865421, 0x98765432, 31, 1);
TESTINST("ext", 0xffffffffff865421, 0xffffffffff865421, 31, 1);
printf("--- DEXT ---\n");
/* The values of pos and size must satisfy all of the following relations:
0 <= pos < 32
0 < size <= 32
0 < pos+size <= 63 */
TESTINST("dext", 0x0, 0x0, 0, 1);
TESTINST("dext", 0x0, 0xffffffffffffffff, 0, 1);
TESTINST("dext", 0x0, 0x98765432, 0, 1);
TESTINST("dext", 0x0, 0xffffffffff865421, 0, 1);
TESTINST("dext", 0xffffffffffffffff, 0x0, 0, 1);
TESTINST("dext", 0xffffffffffffffff, 0xffffffffffffffff, 0, 1);
TESTINST("dext", 0xffffffffffffffff, 0x98765432, 0, 1);
TESTINST("dext", 0xffffffffffffffff, 0xffffffffff865421, 0, 1);
TESTINST("dext", 0x98765432, 0x0, 0, 1);
TESTINST("dext", 0x98765432, 0xffffffffffffffff, 0, 1);
TESTINST("dext", 0x98765432, 0x98765432, 0, 1);
TESTINST("dext", 0x98765432, 0xffffffffff865421, 0, 1);
TESTINST("dext", 0xffffffffff865421, 0x0, 0, 1);
TESTINST("dext", 0xffffffffff865421, 0xffffffffffffffff, 0, 1);
TESTINST("dext", 0xffffffffff865421, 0x98765432, 0, 1);
TESTINST("dext", 0xffffffffff865421, 0xffffffffff865421, 0, 1);
TESTINST("dext", 0x0, 0x0, 0, 4);
TESTINST("dext", 0x0, 0xffffffffffffffff, 0, 4);
TESTINST("dext", 0x0, 0x98765432, 0, 4);
TESTINST("dext", 0x0, 0xffffffffff865421, 0, 4);
TESTINST("dext", 0xffffffffffffffff, 0x0, 0, 4);
TESTINST("dext", 0xffffffffffffffff, 0xffffffffffffffff, 0, 4);
TESTINST("dext", 0xffffffffffffffff, 0x98765432, 0, 4);
TESTINST("dext", 0xffffffffffffffff, 0xffffffffff865421, 0, 4);
TESTINST("dext", 0x98765432, 0x0, 0, 4);
TESTINST("dext", 0x98765432, 0xffffffffffffffff, 0, 4);
TESTINST("dext", 0x98765432, 0x98765432, 0, 4);
TESTINST("dext", 0x98765432, 0xffffffffff865421, 0, 4);
TESTINST("dext", 0xffffffffff865421, 0x0, 0, 4);
TESTINST("dext", 0xffffffffff865421, 0xffffffffffffffff, 0, 4);
TESTINST("dext", 0xffffffffff865421, 0x98765432, 0, 4);
TESTINST("dext", 0xffffffffff865421, 0xffffffffff865421, 0, 4);
TESTINST("dext", 0x0, 0x0, 0, 16);
TESTINST("dext", 0x0, 0xffffffffffffffff, 0, 16);
TESTINST("dext", 0x0, 0x98765432, 0, 16);
TESTINST("dext", 0x0, 0xffffffffff865421, 0, 16);
TESTINST("dext", 0xffffffffffffffff, 0x0, 0, 16);
TESTINST("dext", 0xffffffffffffffff, 0xffffffffffffffff, 0, 16);
TESTINST("dext", 0xffffffffffffffff, 0x98765432, 0, 16);
TESTINST("dext", 0xffffffffffffffff, 0xffffffffff865421, 0, 16);
TESTINST("dext", 0x98765432, 0x0, 0, 16);
TESTINST("dext", 0x98765432, 0xffffffffffffffff, 0, 16);
TESTINST("dext", 0x98765432, 0x98765432, 0, 16);
TESTINST("dext", 0x98765432, 0xffffffffff865421, 0, 16);
TESTINST("dext", 0xffffffffff865421, 0x0, 0, 16);
TESTINST("dext", 0xffffffffff865421, 0xffffffffffffffff, 0, 16);
TESTINST("dext", 0xffffffffff865421, 0x98765432, 0, 16);
TESTINST("dext", 0xffffffffff865421, 0xffffffffff865421, 0, 16);
TESTINST("dext", 0x0, 0x0, 0, 32);
TESTINST("dext", 0x0, 0xffffffffffffffff, 0, 32);
TESTINST("dext", 0x0, 0x98765432, 0, 32);
TESTINST("dext", 0x0, 0xffffffffff865421, 0, 32);
TESTINST("dext", 0xffffffffffffffff, 0x0, 0, 32);
TESTINST("dext", 0xffffffffffffffff, 0xffffffffffffffff, 0, 32);
TESTINST("dext", 0xffffffffffffffff, 0x98765432, 0, 32);
TESTINST("dext", 0xffffffffffffffff, 0xffffffffff865421, 0, 32);
TESTINST("dext", 0x98765432, 0x0, 0, 32);
TESTINST("dext", 0x98765432, 0xffffffffffffffff, 0, 32);
TESTINST("dext", 0x98765432, 0x98765432, 0, 32);
TESTINST("dext", 0x98765432, 0xffffffffff865421, 0, 32);
TESTINST("dext", 0xffffffffff865421, 0x0, 0, 32);
TESTINST("dext", 0xffffffffff865421, 0xffffffffffffffff, 0, 32);
TESTINST("dext", 0xffffffffff865421, 0x98765432, 0, 32);
TESTINST("dext", 0xffffffffff865421, 0xffffffffff865421, 0, 32);
TESTINST("dext", 0x0, 0x0, 4, 1);
TESTINST("dext", 0x0, 0xffffffffffffffff, 4, 1);
TESTINST("dext", 0x0, 0x98765432, 4, 1);
TESTINST("dext", 0x0, 0xffffffffff865421, 4, 1);
TESTINST("dext", 0xffffffffffffffff, 0x0, 4, 1);
TESTINST("dext", 0xffffffffffffffff, 0xffffffffffffffff, 4, 1);
TESTINST("dext", 0xffffffffffffffff, 0x98765432, 4, 1);
TESTINST("dext", 0xffffffffffffffff, 0xffffffffff865421, 4, 1);
TESTINST("dext", 0x98765432, 0x0, 4, 1);
TESTINST("dext", 0x98765432, 0xffffffffffffffff, 4, 1);
TESTINST("dext", 0x98765432, 0x98765432, 4, 1);
TESTINST("dext", 0x98765432, 0xffffffffff865421, 4, 1);
TESTINST("dext", 0xffffffffff865421, 0x0, 4, 1);
TESTINST("dext", 0xffffffffff865421, 0xffffffffffffffff, 4, 1);
TESTINST("dext", 0xffffffffff865421, 0x98765432, 4, 1);
TESTINST("dext", 0xffffffffff865421, 0xffffffffff865421, 4, 1);
TESTINST("dext", 0x0, 0x0, 4, 4);
TESTINST("dext", 0x0, 0xffffffffffffffff, 4, 4);
TESTINST("dext", 0x0, 0x98765432, 4, 4);
TESTINST("dext", 0x0, 0xffffffffff865421, 4, 4);
TESTINST("dext", 0xffffffffffffffff, 0x0, 4, 4);
TESTINST("dext", 0xffffffffffffffff, 0xffffffffffffffff, 4, 4);
TESTINST("dext", 0xffffffffffffffff, 0x98765432, 4, 4);
TESTINST("dext", 0xffffffffffffffff, 0xffffffffff865421, 4, 4);
TESTINST("dext", 0x98765432, 0x0, 4, 4);
TESTINST("dext", 0x98765432, 0xffffffffffffffff, 4, 4);
TESTINST("dext", 0x98765432, 0x98765432, 4, 4);
TESTINST("dext", 0x98765432, 0xffffffffff865421, 4, 4);
TESTINST("dext", 0xffffffffff865421, 0x0, 4, 4);
TESTINST("dext", 0xffffffffff865421, 0xffffffffffffffff, 4, 4);
TESTINST("dext", 0xffffffffff865421, 0x98765432, 4, 4);
TESTINST("dext", 0xffffffffff865421, 0xffffffffff865421, 4, 4);
TESTINST("dext", 0x0, 0x0, 4, 16);
TESTINST("dext", 0x0, 0xffffffffffffffff, 4, 16);
TESTINST("dext", 0x0, 0x98765432, 4, 16);
TESTINST("dext", 0x0, 0xffffffffff865421, 4, 16);
TESTINST("dext", 0xffffffffffffffff, 0x0, 4, 16);
TESTINST("dext", 0xffffffffffffffff, 0xffffffffffffffff, 4, 16);
TESTINST("dext", 0xffffffffffffffff, 0x98765432, 4, 16);
TESTINST("dext", 0xffffffffffffffff, 0xffffffffff865421, 4, 16);
TESTINST("dext", 0x98765432, 0x0, 4, 16);
TESTINST("dext", 0x98765432, 0xffffffffffffffff, 4, 16);
TESTINST("dext", 0x98765432, 0x98765432, 4, 16);
TESTINST("dext", 0x98765432, 0xffffffffff865421, 4, 16);
TESTINST("dext", 0xffffffffff865421, 0x0, 4, 16);
TESTINST("dext", 0xffffffffff865421, 0xffffffffffffffff, 4, 16);
TESTINST("dext", 0xffffffffff865421, 0x98765432, 4, 16);
TESTINST("dext", 0xffffffffff865421, 0xffffffffff865421, 4, 16);
TESTINST("dext", 0x0, 0x0, 4, 32);
TESTINST("dext", 0x0, 0xffffffffffffffff, 4, 32);
TESTINST("dext", 0x0, 0x98765432, 4, 32);
TESTINST("dext", 0x0, 0xffffffffff865421, 4, 32);
TESTINST("dext", 0xffffffffffffffff, 0x0, 4, 32);
TESTINST("dext", 0xffffffffffffffff, 0xffffffffffffffff, 4, 32);
TESTINST("dext", 0xffffffffffffffff, 0x98765432, 4, 32);
TESTINST("dext", 0xffffffffffffffff, 0xffffffffff865421, 4, 32);
TESTINST("dext", 0x98765432, 0x0, 4, 32);
TESTINST("dext", 0x98765432, 0xffffffffffffffff, 4, 32);
TESTINST("dext", 0x98765432, 0x98765432, 4, 32);
TESTINST("dext", 0x98765432, 0xffffffffff865421, 4, 32);
TESTINST("dext", 0xffffffffff865421, 0x0, 4, 32);
TESTINST("dext", 0xffffffffff865421, 0xffffffffffffffff, 4, 32);
TESTINST("dext", 0xffffffffff865421, 0x98765432, 4, 32);
TESTINST("dext", 0xffffffffff865421, 0xffffffffff865421, 4, 32);
TESTINST("dext", 0x0, 0x0, 16, 1);
TESTINST("dext", 0x0, 0xffffffffffffffff, 16, 1);
TESTINST("dext", 0x0, 0x98765432, 16, 1);
TESTINST("dext", 0x0, 0xffffffffff865421, 16, 1);
TESTINST("dext", 0xffffffffffffffff, 0x0, 16, 1);
TESTINST("dext", 0xffffffffffffffff, 0xffffffffffffffff, 16, 1);
TESTINST("dext", 0xffffffffffffffff, 0x98765432, 16, 1);
TESTINST("dext", 0xffffffffffffffff, 0xffffffffff865421, 16, 1);
TESTINST("dext", 0x98765432, 0x0, 16, 1);
TESTINST("dext", 0x98765432, 0xffffffffffffffff, 16, 1);
TESTINST("dext", 0x98765432, 0x98765432, 16, 1);
TESTINST("dext", 0x98765432, 0xffffffffff865421, 16, 1);
TESTINST("dext", 0xffffffffff865421, 0x0, 16, 1);
TESTINST("dext", 0xffffffffff865421, 0xffffffffffffffff, 16, 1);
TESTINST("dext", 0xffffffffff865421, 0x98765432, 16, 1);
TESTINST("dext", 0xffffffffff865421, 0xffffffffff865421, 16, 1);
TESTINST("dext", 0x0, 0x0, 16, 4);
TESTINST("dext", 0x0, 0xffffffffffffffff, 16, 4);
TESTINST("dext", 0x0, 0x98765432, 16, 4);
TESTINST("dext", 0x0, 0xffffffffff865421, 16, 4);
TESTINST("dext", 0xffffffffffffffff, 0x0, 16, 4);
TESTINST("dext", 0xffffffffffffffff, 0xffffffffffffffff, 16, 4);
TESTINST("dext", 0xffffffffffffffff, 0x98765432, 16, 4);
TESTINST("dext", 0xffffffffffffffff, 0xffffffffff865421, 16, 4);
TESTINST("dext", 0x98765432, 0x0, 16, 4);
TESTINST("dext", 0x98765432, 0xffffffffffffffff, 16, 4);
TESTINST("dext", 0x98765432, 0x98765432, 16, 4);
TESTINST("dext", 0x98765432, 0xffffffffff865421, 16, 4);
TESTINST("dext", 0xffffffffff865421, 0x0, 16, 4);
TESTINST("dext", 0xffffffffff865421, 0xffffffffffffffff, 16, 4);
TESTINST("dext", 0xffffffffff865421, 0x98765432, 16, 4);
TESTINST("dext", 0xffffffffff865421, 0xffffffffff865421, 16, 4);
TESTINST("dext", 0x0, 0x0, 16, 16);
TESTINST("dext", 0x0, 0xffffffffffffffff, 16, 16);
TESTINST("dext", 0x0, 0x98765432, 16, 16);
TESTINST("dext", 0x0, 0xffffffffff865421, 16, 16);
TESTINST("dext", 0xffffffffffffffff, 0x0, 16, 16);
TESTINST("dext", 0xffffffffffffffff, 0xffffffffffffffff, 16, 16);
TESTINST("dext", 0xffffffffffffffff, 0x98765432, 16, 16);
TESTINST("dext", 0xffffffffffffffff, 0xffffffffff865421, 16, 16);
TESTINST("dext", 0x98765432, 0x0, 16, 16);
TESTINST("dext", 0x98765432, 0xffffffffffffffff, 16, 16);
TESTINST("dext", 0x98765432, 0x98765432, 16, 16);
TESTINST("dext", 0x98765432, 0xffffffffff865421, 16, 16);
TESTINST("dext", 0xffffffffff865421, 0x0, 16, 16);
TESTINST("dext", 0xffffffffff865421, 0xffffffffffffffff, 16, 16);
TESTINST("dext", 0xffffffffff865421, 0x98765432, 16, 16);
TESTINST("dext", 0xffffffffff865421, 0xffffffffff865421, 16, 16);
TESTINST("dext", 0x0, 0x0, 16, 32);
TESTINST("dext", 0x0, 0xffffffffffffffff, 16, 32);
TESTINST("dext", 0x0, 0x98765432, 16, 32);
TESTINST("dext", 0x0, 0xffffffffff865421, 16, 32);
TESTINST("dext", 0xffffffffffffffff, 0x0, 16, 32);
TESTINST("dext", 0xffffffffffffffff, 0xffffffffffffffff, 16, 32);
TESTINST("dext", 0xffffffffffffffff, 0x98765432, 16, 32);
TESTINST("dext", 0xffffffffffffffff, 0xffffffffff865421, 16, 32);
TESTINST("dext", 0x98765432, 0x0, 16, 32);
TESTINST("dext", 0x98765432, 0xffffffffffffffff, 16, 32);
TESTINST("dext", 0x98765432, 0x98765432, 16, 32);
TESTINST("dext", 0x98765432, 0xffffffffff865421, 16, 32);
TESTINST("dext", 0xffffffffff865421, 0x0, 16, 32);
TESTINST("dext", 0xffffffffff865421, 0xffffffffffffffff, 16, 32);
TESTINST("dext", 0xffffffffff865421, 0x98765432, 16, 32);
TESTINST("dext", 0xffffffffff865421, 0xffffffffff865421, 16, 32);
TESTINST("dext", 0x0, 0x0, 31, 1);
TESTINST("dext", 0x0, 0xffffffffffffffff, 31, 1);
TESTINST("dext", 0x0, 0x98765432, 31, 1);
TESTINST("dext", 0x0, 0xffffffffff865421, 31, 1);
TESTINST("dext", 0xffffffffffffffff, 0x0, 31, 1);
TESTINST("dext", 0xffffffffffffffff, 0xffffffffffffffff, 31, 1);
TESTINST("dext", 0xffffffffffffffff, 0x98765432, 31, 1);
TESTINST("dext", 0xffffffffffffffff, 0xffffffffff865421, 31, 1);
TESTINST("dext", 0x98765432, 0x0, 31, 1);
TESTINST("dext", 0x98765432, 0xffffffffffffffff, 31, 1);
TESTINST("dext", 0x98765432, 0x98765432, 31, 1);
TESTINST("dext", 0x98765432, 0xffffffffff865421, 31, 1);
TESTINST("dext", 0xffffffffff865421, 0x0, 31, 1);
TESTINST("dext", 0xffffffffff865421, 0xffffffffffffffff, 31, 1);
TESTINST("dext", 0xffffffffff865421, 0x98765432, 31, 1);
TESTINST("dext", 0xffffffffff865421, 0xffffffffff865421, 31, 1);
TESTINST("dext", 0x0, 0x0, 31, 4);
TESTINST("dext", 0x0, 0xffffffffffffffff, 31, 4);
TESTINST("dext", 0x0, 0x98765432, 31, 4);
TESTINST("dext", 0x0, 0xffffffffff865421, 31, 4);
TESTINST("dext", 0xffffffffffffffff, 0x0, 31, 4);
TESTINST("dext", 0xffffffffffffffff, 0xffffffffffffffff, 31, 4);
TESTINST("dext", 0xffffffffffffffff, 0x98765432, 31, 4);
TESTINST("dext", 0xffffffffffffffff, 0xffffffffff865421, 31, 4);
TESTINST("dext", 0x98765432, 0x0, 31, 4);
TESTINST("dext", 0x98765432, 0xffffffffffffffff, 31, 4);
TESTINST("dext", 0x98765432, 0x98765432, 31, 4);
TESTINST("dext", 0x98765432, 0xffffffffff865421, 31, 4);
TESTINST("dext", 0xffffffffff865421, 0x0, 31, 4);
TESTINST("dext", 0xffffffffff865421, 0xffffffffffffffff, 31, 4);
TESTINST("dext", 0xffffffffff865421, 0x98765432, 31, 4);
TESTINST("dext", 0xffffffffff865421, 0xffffffffff865421, 31, 4);
TESTINST("dext", 0x0, 0x0, 31, 16);
TESTINST("dext", 0x0, 0xffffffffffffffff, 31, 16);
TESTINST("dext", 0x0, 0x98765432, 31, 16);
TESTINST("dext", 0x0, 0xffffffffff865421, 31, 16);
TESTINST("dext", 0xffffffffffffffff, 0x0, 31, 16);
TESTINST("dext", 0xffffffffffffffff, 0xffffffffffffffff, 31, 16);
TESTINST("dext", 0xffffffffffffffff, 0x98765432, 31, 16);
TESTINST("dext", 0xffffffffffffffff, 0xffffffffff865421, 31, 16);
TESTINST("dext", 0x98765432, 0x0, 31, 16);
TESTINST("dext", 0x98765432, 0xffffffffffffffff, 31, 16);
TESTINST("dext", 0x98765432, 0x98765432, 31, 16);
TESTINST("dext", 0x98765432, 0xffffffffff865421, 31, 16);
TESTINST("dext", 0xffffffffff865421, 0x0, 31, 16);
TESTINST("dext", 0xffffffffff865421, 0xffffffffffffffff, 31, 16);
TESTINST("dext", 0xffffffffff865421, 0x98765432, 31, 16);
TESTINST("dext", 0xffffffffff865421, 0xffffffffff865421, 31, 16);
TESTINST("dext", 0x0, 0x0, 31, 32);
TESTINST("dext", 0x0, 0xffffffffffffffff, 31, 32);
TESTINST("dext", 0x0, 0x98765432, 31, 32);
TESTINST("dext", 0x0, 0xffffffffff865421, 31, 32);
TESTINST("dext", 0xffffffffffffffff, 0x0, 31, 32);
TESTINST("dext", 0xffffffffffffffff, 0xffffffffffffffff, 31, 32);
TESTINST("dext", 0xffffffffffffffff, 0x98765432, 31, 32);
TESTINST("dext", 0xffffffffffffffff, 0xffffffffff865421, 31, 32);
TESTINST("dext", 0x98765432, 0x0, 31, 32);
TESTINST("dext", 0x98765432, 0xffffffffffffffff, 31, 32);
TESTINST("dext", 0x98765432, 0x98765432, 31, 32);
TESTINST("dext", 0x98765432, 0xffffffffff865421, 31, 32);
TESTINST("dext", 0xffffffffff865421, 0x0, 31, 32);
TESTINST("dext", 0xffffffffff865421, 0xffffffffffffffff, 31, 32);
TESTINST("dext", 0xffffffffff865421, 0x98765432, 31, 32);
TESTINST("dext", 0xffffffffff865421, 0xffffffffff865421, 31, 32);
TESTINST("dext", 0x2002ffffffffffff, 0xfffffffff0000fff, 4, 4);
TESTINST("dext", 0xffff0000ffffffff, 0xff0000ffffffffff, 8, 4);
TESTINST("dext", 0x2000ffffffffffff, 0xffff0000ffffffff, 16, 4);
TESTINST("dext", 0x2000ffffffddddff, 0xffffffffffff0008, 24, 2);
TESTINST("dext", 0x2000ffffffffeeee, 0xfffffff31415927f, 24, 4);
TESTINST("dext", 0x31415927ffffffff, 0x2000ffffffffffff, 9, 2);
TESTINST("dext", 0x2000ffffffffaaaa, 0x2000ffffffff2222, 16, 4);
TESTINST("dext", 0x2000ffffffbbbbff, 0x7fffffffddddffff, 16, 4);
TESTINST("dext", 0xeeeeff33ff22ffff, 0x2000ffffffffffff, 7, 4);
TESTINST("dext", 0x2000ffffffffffff, 0x2000ffffffffbbbb, 5, 4);
TESTINST("dext", 0x2000ffffffffbbbb, 0xfffffffff0000fff, 3, 4);
TESTINST("dext", 0x2000ffffffffffff, 0xffff0000ffffffff, 16, 16);
TESTINST("dext", 0x7fffffffddddffff, 0xffffffffffff0008, 16, 32);
TESTINST("dext", 0x2000ffffffff2222, 0xfffffff31415927f, 2, 60);
TESTINST("dext", 0x2000ffffffffffff, 0x2000ffffffffffff, 16, 6);
TESTINST("dext", 0xfffffff31415927f, 0x2000ffffffff2222, 31, 32);
TESTINST("dext", 0xffffffffffff0008, 0x7fffffffddddffff, 8, 2);
TESTINST("dext", 0xffff0000ffffffff, 0x2000ffffffffffff, 16, 4);
TESTINST("dext", 0xff0000ffffffffff, 0, 8, 4);
TESTINST("dext", 0xfffffffff0000fff, 0, 16, 4);
printf("--- DEXTM ---\n");
/* The values of pos and size must satisfy all of the following relations:
0 <= pos < 32
32 < size <= 64
32 < pos+size <= 64 */
TESTINST("dextm", 0x0, 0x0, 0, 33);
TESTINST("dextm", 0x0, 0xffffffffffffffff, 0, 33);
TESTINST("dextm", 0x0, 0x98765432, 0, 33);
TESTINST("dextm", 0x0, 0xffffffffff865421, 0, 33);
TESTINST("dextm", 0xffffffffffffffff, 0x0, 0, 33);
TESTINST("dextm", 0xffffffffffffffff, 0xffffffffffffffff, 0, 33);
TESTINST("dextm", 0xffffffffffffffff, 0x98765432, 0, 33);
TESTINST("dextm", 0xffffffffffffffff, 0xffffffffff865421, 0, 33);
TESTINST("dextm", 0x98765432, 0x0, 0, 33);
TESTINST("dextm", 0x98765432, 0xffffffffffffffff, 0, 33);
TESTINST("dextm", 0x98765432, 0x98765432, 0, 33);
TESTINST("dextm", 0x98765432, 0xffffffffff865421, 0, 33);
TESTINST("dextm", 0xffffffffff865421, 0x0, 0, 33);
TESTINST("dextm", 0xffffffffff865421, 0xffffffffffffffff, 0, 33);
TESTINST("dextm", 0xffffffffff865421, 0x98765432, 0, 33);
TESTINST("dextm", 0xffffffffff865421, 0xffffffffff865421, 0, 33);
TESTINST("dextm", 0x0, 0x0, 0, 37);
TESTINST("dextm", 0x0, 0xffffffffffffffff, 0, 37);
TESTINST("dextm", 0x0, 0x98765432, 0, 37);
TESTINST("dextm", 0x0, 0xffffffffff865421, 0, 37);
TESTINST("dextm", 0xffffffffffffffff, 0x0, 0, 37);
TESTINST("dextm", 0xffffffffffffffff, 0xffffffffffffffff, 0, 37);
TESTINST("dextm", 0xffffffffffffffff, 0x98765432, 0, 37);
TESTINST("dextm", 0xffffffffffffffff, 0xffffffffff865421, 0, 37);
TESTINST("dextm", 0x98765432, 0x0, 0, 37);
TESTINST("dextm", 0x98765432, 0xffffffffffffffff, 0, 37);
TESTINST("dextm", 0x98765432, 0x98765432, 0, 37);
TESTINST("dextm", 0x98765432, 0xffffffffff865421, 0, 37);
TESTINST("dextm", 0xffffffffff865421, 0x0, 0, 37);
TESTINST("dextm", 0xffffffffff865421, 0xffffffffffffffff, 0, 37);
TESTINST("dextm", 0xffffffffff865421, 0x98765432, 0, 37);
TESTINST("dextm", 0xffffffffff865421, 0xffffffffff865421, 0, 37);
TESTINST("dextm", 0x0, 0x0, 0, 48);
TESTINST("dextm", 0x0, 0xffffffffffffffff, 0, 48);
TESTINST("dextm", 0x0, 0x98765432, 0, 48);
TESTINST("dextm", 0x0, 0xffffffffff865421, 0, 48);
TESTINST("dextm", 0xffffffffffffffff, 0x0, 0, 48);
TESTINST("dextm", 0xffffffffffffffff, 0xffffffffffffffff, 0, 48);
TESTINST("dextm", 0xffffffffffffffff, 0x98765432, 0, 48);
TESTINST("dextm", 0xffffffffffffffff, 0xffffffffff865421, 0, 48);
TESTINST("dextm", 0x98765432, 0x0, 0, 48);
TESTINST("dextm", 0x98765432, 0xffffffffffffffff, 0, 48);
TESTINST("dextm", 0x98765432, 0x98765432, 0, 48);
TESTINST("dextm", 0x98765432, 0xffffffffff865421, 0, 48);
TESTINST("dextm", 0xffffffffff865421, 0x0, 0, 48);
TESTINST("dextm", 0xffffffffff865421, 0xffffffffffffffff, 0, 48);
TESTINST("dextm", 0xffffffffff865421, 0x98765432, 0, 48);
TESTINST("dextm", 0xffffffffff865421, 0xffffffffff865421, 0, 48);
TESTINST("dextm", 0x0, 0x0, 0, 64);
TESTINST("dextm", 0x0, 0xffffffffffffffff, 0, 64);
TESTINST("dextm", 0x0, 0x98765432, 0, 64);
TESTINST("dextm", 0x0, 0xffffffffff865421, 0, 64);
TESTINST("dextm", 0xffffffffffffffff, 0x0, 0, 64);
TESTINST("dextm", 0xffffffffffffffff, 0xffffffffffffffff, 0, 64);
TESTINST("dextm", 0xffffffffffffffff, 0x98765432, 0, 64);
TESTINST("dextm", 0xffffffffffffffff, 0xffffffffff865421, 0, 64);
TESTINST("dextm", 0x98765432, 0x0, 0, 64);
TESTINST("dextm", 0x98765432, 0xffffffffffffffff, 0, 64);
TESTINST("dextm", 0x98765432, 0x98765432, 0, 64);
TESTINST("dextm", 0x98765432, 0xffffffffff865421, 0, 64);
TESTINST("dextm", 0xffffffffff865421, 0x0, 0, 64);
TESTINST("dextm", 0xffffffffff865421, 0xffffffffffffffff, 0, 64);
TESTINST("dextm", 0xffffffffff865421, 0x98765432, 0, 64);
TESTINST("dextm", 0xffffffffff865421, 0xffffffffff865421, 0, 64);
TESTINST("dextm", 0x0, 0x0, 4, 33);
TESTINST("dextm", 0x0, 0xffffffffffffffff, 4, 33);
TESTINST("dextm", 0x0, 0x98765432, 4, 33);
TESTINST("dextm", 0x0, 0xffffffffff865421, 4, 33);
TESTINST("dextm", 0xffffffffffffffff, 0x0, 4, 33);
TESTINST("dextm", 0xffffffffffffffff, 0xffffffffffffffff, 4, 33);
TESTINST("dextm", 0xffffffffffffffff, 0x98765432, 4, 33);
TESTINST("dextm", 0xffffffffffffffff, 0xffffffffff865421, 4, 33);
TESTINST("dextm", 0x98765432, 0x0, 4, 33);
TESTINST("dextm", 0x98765432, 0xffffffffffffffff, 4, 33);
TESTINST("dextm", 0x98765432, 0x98765432, 4, 33);
TESTINST("dextm", 0x98765432, 0xffffffffff865421, 4, 33);
TESTINST("dextm", 0xffffffffff865421, 0x0, 4, 33);
TESTINST("dextm", 0xffffffffff865421, 0xffffffffffffffff, 4, 33);
TESTINST("dextm", 0xffffffffff865421, 0x98765432, 4, 33);
TESTINST("dextm", 0xffffffffff865421, 0xffffffffff865421, 4, 33);
TESTINST("dextm", 0x0, 0x0, 4, 37);
TESTINST("dextm", 0x0, 0xffffffffffffffff, 4, 37);
TESTINST("dextm", 0x0, 0x98765432, 4, 37);
TESTINST("dextm", 0x0, 0xffffffffff865421, 4, 37);
TESTINST("dextm", 0xffffffffffffffff, 0x0, 4, 37);
TESTINST("dextm", 0xffffffffffffffff, 0xffffffffffffffff, 4, 37);
TESTINST("dextm", 0xffffffffffffffff, 0x98765432, 4, 37);
TESTINST("dextm", 0xffffffffffffffff, 0xffffffffff865421, 4, 37);
TESTINST("dextm", 0x98765432, 0x0, 4, 37);
TESTINST("dextm", 0x98765432, 0xffffffffffffffff, 4, 37);
TESTINST("dextm", 0x98765432, 0x98765432, 4, 37);
TESTINST("dextm", 0x98765432, 0xffffffffff865421, 4, 37);
TESTINST("dextm", 0xffffffffff865421, 0x0, 4, 37);
TESTINST("dextm", 0xffffffffff865421, 0xffffffffffffffff, 4, 37);
TESTINST("dextm", 0xffffffffff865421, 0x98765432, 4, 37);
TESTINST("dextm", 0xffffffffff865421, 0xffffffffff865421, 4, 37);
TESTINST("dextm", 0x0, 0x0, 4, 48);
TESTINST("dextm", 0x0, 0xffffffffffffffff, 4, 48);
TESTINST("dextm", 0x0, 0x98765432, 4, 48);
TESTINST("dextm", 0x0, 0xffffffffff865421, 4, 48);
TESTINST("dextm", 0xffffffffffffffff, 0x0, 4, 48);
TESTINST("dextm", 0xffffffffffffffff, 0xffffffffffffffff, 4, 48);
TESTINST("dextm", 0xffffffffffffffff, 0x98765432, 4, 48);
TESTINST("dextm", 0xffffffffffffffff, 0xffffffffff865421, 4, 48);
TESTINST("dextm", 0x98765432, 0x0, 4, 48);
TESTINST("dextm", 0x98765432, 0xffffffffffffffff, 4, 48);
TESTINST("dextm", 0x98765432, 0x98765432, 4, 48);
TESTINST("dextm", 0x98765432, 0xffffffffff865421, 4, 48);
TESTINST("dextm", 0xffffffffff865421, 0x0, 4, 48);
TESTINST("dextm", 0xffffffffff865421, 0xffffffffffffffff, 4, 48);
TESTINST("dextm", 0xffffffffff865421, 0x98765432, 4, 48);
TESTINST("dextm", 0xffffffffff865421, 0xffffffffff865421, 4, 48);
TESTINST("dextm", 0x0, 0x0, 4, 60);
TESTINST("dextm", 0x0, 0xffffffffffffffff, 4, 60);
TESTINST("dextm", 0x0, 0x98765432, 4, 60);
TESTINST("dextm", 0x0, 0xffffffffff865421, 4, 60);
TESTINST("dextm", 0xffffffffffffffff, 0x0, 4, 60);
TESTINST("dextm", 0xffffffffffffffff, 0xffffffffffffffff, 4, 60);
TESTINST("dextm", 0xffffffffffffffff, 0x98765432, 4, 60);
TESTINST("dextm", 0xffffffffffffffff, 0xffffffffff865421, 4, 60);
TESTINST("dextm", 0x98765432, 0x0, 4, 60);
TESTINST("dextm", 0x98765432, 0xffffffffffffffff, 4, 60);
TESTINST("dextm", 0x98765432, 0x98765432, 4, 60);
TESTINST("dextm", 0x98765432, 0xffffffffff865421, 4, 60);
TESTINST("dextm", 0xffffffffff865421, 0x0, 4, 60);
TESTINST("dextm", 0xffffffffff865421, 0xffffffffffffffff, 4, 60);
TESTINST("dextm", 0xffffffffff865421, 0x98765432, 4, 60);
TESTINST("dextm", 0xffffffffff865421, 0xffffffffff865421, 4, 60);
TESTINST("dextm", 0x0, 0x0, 16, 33);
TESTINST("dextm", 0x0, 0xffffffffffffffff, 16, 33);
TESTINST("dextm", 0x0, 0x98765432, 16, 33);
TESTINST("dextm", 0x0, 0xffffffffff865421, 16, 33);
TESTINST("dextm", 0xffffffffffffffff, 0x0, 16, 33);
TESTINST("dextm", 0xffffffffffffffff, 0xffffffffffffffff, 16, 33);
TESTINST("dextm", 0xffffffffffffffff, 0x98765432, 16, 33);
TESTINST("dextm", 0xffffffffffffffff, 0xffffffffff865421, 16, 33);
TESTINST("dextm", 0x98765432, 0x0, 16, 33);
TESTINST("dextm", 0x98765432, 0xffffffffffffffff, 16, 33);
TESTINST("dextm", 0x98765432, 0x98765432, 16, 33);
TESTINST("dextm", 0x98765432, 0xffffffffff865421, 16, 33);
TESTINST("dextm", 0xffffffffff865421, 0x0, 16, 33);
TESTINST("dextm", 0xffffffffff865421, 0xffffffffffffffff, 16, 33);
TESTINST("dextm", 0xffffffffff865421, 0x98765432, 16, 33);
TESTINST("dextm", 0xffffffffff865421, 0xffffffffff865421, 16, 33);
TESTINST("dextm", 0x0, 0x0, 16, 37);
TESTINST("dextm", 0x0, 0xffffffffffffffff, 16, 37);
TESTINST("dextm", 0x0, 0x98765432, 16, 37);
TESTINST("dextm", 0x0, 0xffffffffff865421, 16, 37);
TESTINST("dextm", 0xffffffffffffffff, 0x0, 16, 37);
TESTINST("dextm", 0xffffffffffffffff, 0xffffffffffffffff, 16, 37);
TESTINST("dextm", 0xffffffffffffffff, 0x98765432, 16, 37);
TESTINST("dextm", 0xffffffffffffffff, 0xffffffffff865421, 16, 37);
TESTINST("dextm", 0x98765432, 0x0, 16, 37);
TESTINST("dextm", 0x98765432, 0xffffffffffffffff, 16, 37);
TESTINST("dextm", 0x98765432, 0x98765432, 16, 37);
TESTINST("dextm", 0x98765432, 0xffffffffff865421, 16, 37);
TESTINST("dextm", 0xffffffffff865421, 0x0, 16, 37);
TESTINST("dextm", 0xffffffffff865421, 0xffffffffffffffff, 16, 37);
TESTINST("dextm", 0xffffffffff865421, 0x98765432, 16, 37);
TESTINST("dextm", 0xffffffffff865421, 0xffffffffff865421, 16, 37);
TESTINST("dextm", 0x0, 0x0, 16, 48);
TESTINST("dextm", 0x0, 0xffffffffffffffff, 16, 48);
TESTINST("dextm", 0x0, 0x98765432, 16, 48);
TESTINST("dextm", 0x0, 0xffffffffff865421, 16, 48);
TESTINST("dextm", 0xffffffffffffffff, 0x0, 16, 48);
TESTINST("dextm", 0xffffffffffffffff, 0xffffffffffffffff, 16, 48);
TESTINST("dextm", 0xffffffffffffffff, 0x98765432, 16, 48);
TESTINST("dextm", 0xffffffffffffffff, 0xffffffffff865421, 16, 48);
TESTINST("dextm", 0x98765432, 0x0, 16, 48);
TESTINST("dextm", 0x98765432, 0xffffffffffffffff, 16, 48);
TESTINST("dextm", 0x98765432, 0x98765432, 16, 48);
TESTINST("dextm", 0x98765432, 0xffffffffff865421, 16, 48);
TESTINST("dextm", 0xffffffffff865421, 0x0, 16, 48);
TESTINST("dextm", 0xffffffffff865421, 0xffffffffffffffff, 16, 48);
TESTINST("dextm", 0xffffffffff865421, 0x98765432, 16, 48);
TESTINST("dextm", 0xffffffffff865421, 0xffffffffff865421, 16, 48);
TESTINST("dextm", 0x0, 0x0, 31, 33);
TESTINST("dextm", 0x0, 0xffffffffffffffff, 31, 33);
TESTINST("dextm", 0x0, 0x98765432, 31, 33);
TESTINST("dextm", 0x0, 0xffffffffff865421, 31, 33);
TESTINST("dextm", 0xffffffffffffffff, 0x0, 31, 33);
TESTINST("dextm", 0xffffffffffffffff, 0xffffffffffffffff, 31, 33);
TESTINST("dextm", 0xffffffffffffffff, 0x98765432, 31, 33);
TESTINST("dextm", 0xffffffffffffffff, 0xffffffffff865421, 31, 33);
TESTINST("dextm", 0x98765432, 0x0, 31, 33);
TESTINST("dextm", 0x98765432, 0xffffffffffffffff, 31, 33);
TESTINST("dextm", 0x98765432, 0x98765432, 31, 33);
TESTINST("dextm", 0x98765432, 0xffffffffff865421, 31, 33);
TESTINST("dextm", 0xffffffffff865421, 0x0, 31, 33);
TESTINST("dextm", 0xffffffffff865421, 0xffffffffffffffff, 31, 33);
TESTINST("dextm", 0xffffffffff865421, 0x98765432, 31, 33);
TESTINST("dextm", 0xffffffffff865421, 0xffffffffff865421, 31, 33);
TESTINST("dextm", 0x2002ffffffffffff, 0xfffffffff0000fff, 4, 35);
TESTINST("dextm", 0xffff0000ffffffff, 0xff0000ffffffffff, 8, 33);
TESTINST("dextm", 0x2000ffffffffffff, 0xffff0000ffffffff, 16, 34);
TESTINST("dextm", 0x2000ffffffddddff, 0xffffffffffff0008, 4, 46);
TESTINST("dextm", 0x2000ffffffffeeee, 0xfffffff31415927f, 3, 56);
TESTINST("dextm", 0x31415927ffffffff, 0x2000ffffffffffff, 0, 64);
TESTINST("dextm", 0x2000ffffffffaaaa, 0x2000ffffffff2222, 16, 40);
TESTINST("dextm", 0x2000ffffffbbbbff, 0x7fffffffddddffff, 16, 42);
TESTINST("dextm", 0xeeeeff33ff22ffff, 0x2000ffffffffffff, 7, 43);
TESTINST("dextm", 0x2000ffffffffffff, 0x2000ffffffffbbbb, 5, 48);
TESTINST("dextm", 0x2000ffffffffbbbb, 0x2000ffffffffffff, 3, 52);
TESTINST("dextm", 0x2000ffffffffffff, 0xeeeeff33ff22ffff, 1, 54);
TESTINST("dextm", 0x7fffffffddddffff, 0x2000ffffffbbbbff, 2, 54);
TESTINST("dextm", 0x2000ffffffff2222, 0x2000ffffffffaaaa, 2, 48);
TESTINST("dextm", 0x2000ffffffffffff, 0x31415927ffffffff, 5, 53);
TESTINST("dextm", 0xfffffff31415927f, 0x2000ffffffffeeee, 2, 60);
TESTINST("dextm", 0xffffffffffff0008, 0x2000ffffffddddff, 3, 61);
TESTINST("dextm", 0xffff0000ffffffff, 0x2000ffffffffffff, 1, 62);
TESTINST("dextm", 0xff0000ffffffffff, 0, 8, 38);
TESTINST("dextm", 0xfffffffff0000fff, 0, 16, 39);
printf("--- DEXTU ---\n");
/* The values of pos and size must satisfy all of the following relations:
32 <= pos < 64
0 < size <= 32
32 < pos+size <= 64 */
TESTINST("dextu", 0x0, 0x0, 32, 1);
TESTINST("dextu", 0x0, 0xffffffffffffffff, 32, 1);
TESTINST("dextu", 0x0, 0x98765432, 32, 1);
TESTINST("dextu", 0x0, 0xffffffffff865421, 32, 1);
TESTINST("dextu", 0xffffffffffffffff, 0x0, 32, 1);
TESTINST("dextu", 0xffffffffffffffff, 0xffffffffffffffff, 32, 1);
TESTINST("dextu", 0xffffffffffffffff, 0x98765432, 32, 1);
TESTINST("dextu", 0xffffffffffffffff, 0xffffffffff865421, 32, 1);
TESTINST("dextu", 0x98765432, 0x0, 32, 1);
TESTINST("dextu", 0x98765432, 0xffffffffffffffff, 32, 1);
TESTINST("dextu", 0x98765432, 0x98765432, 32, 1);
TESTINST("dextu", 0x98765432, 0xffffffffff865421, 32, 1);
TESTINST("dextu", 0xffffffffff865421, 0x0, 32, 1);
TESTINST("dextu", 0xffffffffff865421, 0xffffffffffffffff, 32, 1);
TESTINST("dextu", 0xffffffffff865421, 0x98765432, 32, 1);
TESTINST("dextu", 0xffffffffff865421, 0xffffffffff865421, 32, 1);
TESTINST("dextu", 0x0, 0x0, 32, 4);
TESTINST("dextu", 0x0, 0xffffffffffffffff, 32, 4);
TESTINST("dextu", 0x0, 0x98765432, 32, 4);
TESTINST("dextu", 0x0, 0xffffffffff865421, 32, 4);
TESTINST("dextu", 0xffffffffffffffff, 0x0, 32, 4);
TESTINST("dextu", 0xffffffffffffffff, 0xffffffffffffffff, 32, 4);
TESTINST("dextu", 0xffffffffffffffff, 0x98765432, 32, 4);
TESTINST("dextu", 0xffffffffffffffff, 0xffffffffff865421, 32, 4);
TESTINST("dextu", 0x98765432, 0x0, 32, 4);
TESTINST("dextu", 0x98765432, 0xffffffffffffffff, 32, 4);
TESTINST("dextu", 0x98765432, 0x98765432, 32, 4);
TESTINST("dextu", 0x98765432, 0xffffffffff865421, 32, 4);
TESTINST("dextu", 0xffffffffff865421, 0x0, 32, 4);
TESTINST("dextu", 0xffffffffff865421, 0xffffffffffffffff, 32, 4);
TESTINST("dextu", 0xffffffffff865421, 0x98765432, 32, 4);
TESTINST("dextu", 0xffffffffff865421, 0xffffffffff865421, 32, 4);
TESTINST("dextu", 0x0, 0x0, 32, 16);
TESTINST("dextu", 0x0, 0xffffffffffffffff, 32, 16);
TESTINST("dextu", 0x0, 0x98765432, 32, 16);
TESTINST("dextu", 0x0, 0xffffffffff865421, 32, 16);
TESTINST("dextu", 0xffffffffffffffff, 0x0, 32, 16);
TESTINST("dextu", 0xffffffffffffffff, 0xffffffffffffffff, 32, 16);
TESTINST("dextu", 0xffffffffffffffff, 0x98765432, 32, 16);
TESTINST("dextu", 0xffffffffffffffff, 0xffffffffff865421, 32, 16);
TESTINST("dextu", 0x98765432, 0x0, 32, 16);
TESTINST("dextu", 0x98765432, 0xffffffffffffffff, 32, 16);
TESTINST("dextu", 0x98765432, 0x98765432, 32, 16);
TESTINST("dextu", 0x98765432, 0xffffffffff865421, 32, 16);
TESTINST("dextu", 0xffffffffff865421, 0x0, 32, 16);
TESTINST("dextu", 0xffffffffff865421, 0xffffffffffffffff, 32, 16);
TESTINST("dextu", 0xffffffffff865421, 0x98765432, 32, 16);
TESTINST("dextu", 0xffffffffff865421, 0xffffffffff865421, 32, 16);
TESTINST("dextu", 0x0, 0x0, 32, 32);
TESTINST("dextu", 0x0, 0xffffffffffffffff, 32, 32);
TESTINST("dextu", 0x0, 0x98765432, 32, 32);
TESTINST("dextu", 0x0, 0xffffffffff865421, 32, 32);
TESTINST("dextu", 0xffffffffffffffff, 0x0, 32, 32);
TESTINST("dextu", 0xffffffffffffffff, 0xffffffffffffffff, 32, 32);
TESTINST("dextu", 0xffffffffffffffff, 0x98765432, 32, 32);
TESTINST("dextu", 0xffffffffffffffff, 0xffffffffff865421, 32, 32);
TESTINST("dextu", 0x98765432, 0x0, 32, 32);
TESTINST("dextu", 0x98765432, 0xffffffffffffffff, 32, 32);
TESTINST("dextu", 0x98765432, 0x98765432, 32, 32);
TESTINST("dextu", 0x98765432, 0xffffffffff865421, 32, 32);
TESTINST("dextu", 0xffffffffff865421, 0x0, 32, 32);
TESTINST("dextu", 0xffffffffff865421, 0xffffffffffffffff, 32, 32);
TESTINST("dextu", 0xffffffffff865421, 0x98765432, 32, 32);
TESTINST("dextu", 0xffffffffff865421, 0xffffffffff865421, 32, 32);
TESTINST("dextu", 0x0, 0x0, 36, 1);
TESTINST("dextu", 0x0, 0xffffffffffffffff, 36, 1);
TESTINST("dextu", 0x0, 0x98765432, 36, 1);
TESTINST("dextu", 0x0, 0xffffffffff865421, 36, 1);
TESTINST("dextu", 0xffffffffffffffff, 0x0, 36, 1);
TESTINST("dextu", 0xffffffffffffffff, 0xffffffffffffffff, 36, 1);
TESTINST("dextu", 0xffffffffffffffff, 0x98765432, 36, 1);
TESTINST("dextu", 0xffffffffffffffff, 0xffffffffff865421, 36, 1);
TESTINST("dextu", 0x98765432, 0x0, 36, 1);
TESTINST("dextu", 0x98765432, 0xffffffffffffffff, 36, 1);
TESTINST("dextu", 0x98765432, 0x98765432, 36, 1);
TESTINST("dextu", 0x98765432, 0xffffffffff865421, 36, 1);
TESTINST("dextu", 0xffffffffff865421, 0x0, 36, 1);
TESTINST("dextu", 0xffffffffff865421, 0xffffffffffffffff, 36, 1);
TESTINST("dextu", 0xffffffffff865421, 0x98765432, 36, 1);
TESTINST("dextu", 0xffffffffff865421, 0xffffffffff865421, 36, 1);
TESTINST("dextu", 0x0, 0x0, 36, 4);
TESTINST("dextu", 0x0, 0xffffffffffffffff, 36, 4);
TESTINST("dextu", 0x0, 0x98765432, 36, 4);
TESTINST("dextu", 0x0, 0xffffffffff865421, 36, 4);
TESTINST("dextu", 0xffffffffffffffff, 0x0, 36, 4);
TESTINST("dextu", 0xffffffffffffffff, 0xffffffffffffffff, 36, 4);
TESTINST("dextu", 0xffffffffffffffff, 0x98765432, 36, 4);
TESTINST("dextu", 0xffffffffffffffff, 0xffffffffff865421, 36, 4);
TESTINST("dextu", 0x98765432, 0x0, 36, 4);
TESTINST("dextu", 0x98765432, 0xffffffffffffffff, 36, 4);
TESTINST("dextu", 0x98765432, 0x98765432, 36, 4);
TESTINST("dextu", 0x98765432, 0xffffffffff865421, 36, 4);
TESTINST("dextu", 0xffffffffff865421, 0x0, 36, 4);
TESTINST("dextu", 0xffffffffff865421, 0xffffffffffffffff, 36, 4);
TESTINST("dextu", 0xffffffffff865421, 0x98765432, 36, 4);
TESTINST("dextu", 0xffffffffff865421, 0xffffffffff865421, 36, 4);
TESTINST("dextu", 0x0, 0x0, 36, 16);
TESTINST("dextu", 0x0, 0xffffffffffffffff, 36, 16);
TESTINST("dextu", 0x0, 0x98765432, 36, 16);
TESTINST("dextu", 0x0, 0xffffffffff865421, 36, 16);
TESTINST("dextu", 0xffffffffffffffff, 0x0, 36, 16);
TESTINST("dextu", 0xffffffffffffffff, 0xffffffffffffffff, 36, 16);
TESTINST("dextu", 0xffffffffffffffff, 0x98765432, 36, 16);
TESTINST("dextu", 0xffffffffffffffff, 0xffffffffff865421, 36, 16);
TESTINST("dextu", 0x98765432, 0x0, 36, 16);
TESTINST("dextu", 0x98765432, 0xffffffffffffffff, 36, 16);
TESTINST("dextu", 0x98765432, 0x98765432, 36, 16);
TESTINST("dextu", 0x98765432, 0xffffffffff865421, 36, 16);
TESTINST("dextu", 0xffffffffff865421, 0x0, 36, 16);
TESTINST("dextu", 0xffffffffff865421, 0xffffffffffffffff, 36, 16);
TESTINST("dextu", 0xffffffffff865421, 0x98765432, 36, 16);
TESTINST("dextu", 0xffffffffff865421, 0xffffffffff865421, 36, 16);
TESTINST("dextu", 0x0, 0x0, 36, 28);
TESTINST("dextu", 0x0, 0xffffffffffffffff, 36, 28);
TESTINST("dextu", 0x0, 0x98765432, 36, 28);
TESTINST("dextu", 0x0, 0xffffffffff865421, 36, 28);
TESTINST("dextu", 0xffffffffffffffff, 0x0, 36, 28);
TESTINST("dextu", 0xffffffffffffffff, 0xffffffffffffffff, 36, 28);
TESTINST("dextu", 0xffffffffffffffff, 0x98765432, 36, 28);
TESTINST("dextu", 0xffffffffffffffff, 0xffffffffff865421, 36, 28);
TESTINST("dextu", 0x98765432, 0x0, 36, 28);
TESTINST("dextu", 0x98765432, 0xffffffffffffffff, 36, 28);
TESTINST("dextu", 0x98765432, 0x98765432, 36, 28);
TESTINST("dextu", 0x98765432, 0xffffffffff865421, 36, 28);
TESTINST("dextu", 0xffffffffff865421, 0x0, 36, 28);
TESTINST("dextu", 0xffffffffff865421, 0xffffffffffffffff, 36, 28);
TESTINST("dextu", 0xffffffffff865421, 0x98765432, 36, 28);
TESTINST("dextu", 0xffffffffff865421, 0xffffffffff865421, 36, 28);
TESTINST("dextu", 0x0, 0x0, 48, 1);
TESTINST("dextu", 0x0, 0xffffffffffffffff, 48, 1);
TESTINST("dextu", 0x0, 0x98765432, 48, 1);
TESTINST("dextu", 0x0, 0xffffffffff865421, 48, 1);
TESTINST("dextu", 0xffffffffffffffff, 0x0, 48, 1);
TESTINST("dextu", 0xffffffffffffffff, 0xffffffffffffffff, 48, 1);
TESTINST("dextu", 0xffffffffffffffff, 0x98765432, 48, 1);
TESTINST("dextu", 0xffffffffffffffff, 0xffffffffff865421, 48, 1);
TESTINST("dextu", 0x98765432, 0x0, 48, 1);
TESTINST("dextu", 0x98765432, 0xffffffffffffffff, 48, 1);
TESTINST("dextu", 0x98765432, 0x98765432, 48, 1);
TESTINST("dextu", 0x98765432, 0xffffffffff865421, 48, 1);
TESTINST("dextu", 0xffffffffff865421, 0x0, 48, 1);
TESTINST("dextu", 0xffffffffff865421, 0xffffffffffffffff, 48, 1);
TESTINST("dextu", 0xffffffffff865421, 0x98765432, 48, 1);
TESTINST("dextu", 0xffffffffff865421, 0xffffffffff865421, 48, 1);
TESTINST("dextu", 0x0, 0x0, 48, 4);
TESTINST("dextu", 0x0, 0xffffffffffffffff, 48, 4);
TESTINST("dextu", 0x0, 0x98765432, 48, 4);
TESTINST("dextu", 0x0, 0xffffffffff865421, 48, 4);
TESTINST("dextu", 0xffffffffffffffff, 0x0, 48, 4);
TESTINST("dextu", 0xffffffffffffffff, 0xffffffffffffffff, 48, 4);
TESTINST("dextu", 0xffffffffffffffff, 0x98765432, 48, 4);
TESTINST("dextu", 0xffffffffffffffff, 0xffffffffff865421, 48, 4);
TESTINST("dextu", 0x98765432, 0x0, 48, 4);
TESTINST("dextu", 0x98765432, 0xffffffffffffffff, 48, 4);
TESTINST("dextu", 0x98765432, 0x98765432, 48, 4);
TESTINST("dextu", 0x98765432, 0xffffffffff865421, 48, 4);
TESTINST("dextu", 0xffffffffff865421, 0x0, 48, 4);
TESTINST("dextu", 0xffffffffff865421, 0xffffffffffffffff, 48, 4);
TESTINST("dextu", 0xffffffffff865421, 0x98765432, 48, 4);
TESTINST("dextu", 0xffffffffff865421, 0xffffffffff865421, 48, 4);
TESTINST("dextu", 0x0, 0x0, 48, 16);
TESTINST("dextu", 0x0, 0xffffffffffffffff, 48, 16);
TESTINST("dextu", 0x0, 0x98765432, 48, 16);
TESTINST("dextu", 0x0, 0xffffffffff865421, 48, 16);
TESTINST("dextu", 0xffffffffffffffff, 0x0, 48, 16);
TESTINST("dextu", 0xffffffffffffffff, 0xffffffffffffffff, 48, 16);
TESTINST("dextu", 0xffffffffffffffff, 0x98765432, 48, 16);
TESTINST("dextu", 0xffffffffffffffff, 0xffffffffff865421, 48, 16);
TESTINST("dextu", 0x98765432, 0x0, 48, 16);
TESTINST("dextu", 0x98765432, 0xffffffffffffffff, 48, 16);
TESTINST("dextu", 0x98765432, 0x98765432, 48, 16);
TESTINST("dextu", 0x98765432, 0xffffffffff865421, 48, 16);
TESTINST("dextu", 0xffffffffff865421, 0x0, 48, 16);
TESTINST("dextu", 0xffffffffff865421, 0xffffffffffffffff, 48, 16);
TESTINST("dextu", 0xffffffffff865421, 0x98765432, 48, 16);
TESTINST("dextu", 0xffffffffff865421, 0xffffffffff865421, 48, 16);
TESTINST("dextu", 0x0, 0x0, 63, 1);
TESTINST("dextu", 0x0, 0xffffffffffffffff, 63, 1);
TESTINST("dextu", 0x0, 0x98765432, 63, 1);
TESTINST("dextu", 0x0, 0xffffffffff865421, 63, 1);
TESTINST("dextu", 0xffffffffffffffff, 0x0, 63, 1);
TESTINST("dextu", 0xffffffffffffffff, 0xffffffffffffffff, 63, 1);
TESTINST("dextu", 0xffffffffffffffff, 0x98765432, 63, 1);
TESTINST("dextu", 0xffffffffffffffff, 0xffffffffff865421, 63, 1);
TESTINST("dextu", 0x98765432, 0x0, 63, 1);
TESTINST("dextu", 0x98765432, 0xffffffffffffffff, 63, 1);
TESTINST("dextu", 0x98765432, 0x98765432, 63, 1);
TESTINST("dextu", 0x98765432, 0xffffffffff865421, 63, 1);
TESTINST("dextu", 0xffffffffff865421, 0x0, 63, 1);
TESTINST("dextu", 0xffffffffff865421, 0xffffffffffffffff, 63, 1);
TESTINST("dextu", 0xffffffffff865421, 0x98765432, 63, 1);
TESTINST("dextu", 0xffffffffff865421, 0xffffffffff865421, 63, 1);
TESTINST("dextu", 0x2002ffffffffffff, 0xfffffffff0000fff, 33, 4);
TESTINST("dextu", 0xffff0000ffffffff, 0xff0000ffffffffff, 60, 4);
TESTINST("dextu", 0x2000ffffffffffff, 0xffff0000ffffffff, 54, 4);
TESTINST("dextu", 0x2000ffffffddddff, 0xffffffffffff0008, 56, 2);
TESTINST("dextu", 0x2000ffffffffeeee, 0xfffffff31415927f, 40, 4);
TESTINST("dextu", 0x31415927ffffffff, 0x2000ffffffffffff, 51, 2);
TESTINST("dextu", 0x2000ffffffffaaaa, 0x2000ffffffff2222, 48, 4);
TESTINST("dextu", 0x2000ffffffbbbbff, 0x7fffffffddddffff, 38, 4);
TESTINST("dextu", 0xeeeeff33ff22ffff, 0x2000ffffffffffff, 35, 4);
TESTINST("dextu", 0x2000ffffffffffff, 0x2000ffffffffbbbb, 36, 4);
TESTINST("dextu", 0x2000ffffffffbbbb, 0x2000ffffffffffff, 45, 1);
TESTINST("dextu", 0x2000ffffffffffff, 0xeeeeff33ff22ffff, 46, 4);
TESTINST("dextu", 0x7fffffffddddffff, 0x2000ffffffbbbbff, 52, 4);
TESTINST("dextu", 0x2000ffffffff2222, 0x2000ffffffffaaaa, 40, 8);
TESTINST("dextu", 0x2000ffffffffffff, 0x31415927ffffffff, 39, 4);
TESTINST("dextu", 0xfffffff31415927f, 0x2000ffffffffeeee, 60, 4);
TESTINST("dextu", 0xffffffffffff0008, 0x2000ffffffddddff, 63, 1);
TESTINST("dextu", 0xffff0000ffffffff, 0x2000ffffffffffff, 50, 4);
TESTINST("dextu", 0xff0000ffffffffff, 0, 36, 4);
TESTINST("dextu", 0xfffffffff0000fff, 0, 46, 4);
printf("--- DINS ---\n");
/* The values of pos and size must satisfy all of the following relations:
0 <= pos < 32
0 < size <= 32
0 < pos+size <= 32 */
TESTINST("dins", 0x0, 0x0, 0, 1);
TESTINST("dins", 0x0, 0xffffffffffffffff, 0, 1);
TESTINST("dins", 0x0, 0x98765432, 0, 1);
TESTINST("dins", 0x0, 0xffffffffff865421, 0, 1);
TESTINST("dins", 0xffffffffffffffff, 0x0, 0, 1);
TESTINST("dins", 0xffffffffffffffff, 0xffffffffffffffff, 0, 1);
TESTINST("dins", 0xffffffffffffffff, 0x98765432, 0, 1);
TESTINST("dins", 0xffffffffffffffff, 0xffffffffff865421, 0, 1);
TESTINST("dins", 0x98765432, 0x0, 0, 1);
TESTINST("dins", 0x98765432, 0xffffffffffffffff, 0, 1);
TESTINST("dins", 0x98765432, 0x98765432, 0, 1);
TESTINST("dins", 0x98765432, 0xffffffffff865421, 0, 1);
TESTINST("dins", 0xffffffffff865421, 0x0, 0, 1);
TESTINST("dins", 0xffffffffff865421, 0xffffffffffffffff, 0, 1);
TESTINST("dins", 0xffffffffff865421, 0x98765432, 0, 1);
TESTINST("dins", 0xffffffffff865421, 0xffffffffff865421, 0, 1);
TESTINST("dins", 0x0, 0x0, 0, 4);
TESTINST("dins", 0x0, 0xffffffffffffffff, 0, 4);
TESTINST("dins", 0x0, 0x98765432, 0, 4);
TESTINST("dins", 0x0, 0xffffffffff865421, 0, 4);
TESTINST("dins", 0xffffffffffffffff, 0x0, 0, 4);
TESTINST("dins", 0xffffffffffffffff, 0xffffffffffffffff, 0, 4);
TESTINST("dins", 0xffffffffffffffff, 0x98765432, 0, 4);
TESTINST("dins", 0xffffffffffffffff, 0xffffffffff865421, 0, 4);
TESTINST("dins", 0x98765432, 0x0, 0, 4);
TESTINST("dins", 0x98765432, 0xffffffffffffffff, 0, 4);
TESTINST("dins", 0x98765432, 0x98765432, 0, 4);
TESTINST("dins", 0x98765432, 0xffffffffff865421, 0, 4);
TESTINST("dins", 0xffffffffff865421, 0x0, 0, 4);
TESTINST("dins", 0xffffffffff865421, 0xffffffffffffffff, 0, 4);
TESTINST("dins", 0xffffffffff865421, 0x98765432, 0, 4);
TESTINST("dins", 0xffffffffff865421, 0xffffffffff865421, 0, 4);
TESTINST("dins", 0x0, 0x0, 0, 16);
TESTINST("dins", 0x0, 0xffffffffffffffff, 0, 16);
TESTINST("dins", 0x0, 0x98765432, 0, 16);
TESTINST("dins", 0x0, 0xffffffffff865421, 0, 16);
TESTINST("dins", 0xffffffffffffffff, 0x0, 0, 16);
TESTINST("dins", 0xffffffffffffffff, 0xffffffffffffffff, 0, 16);
TESTINST("dins", 0xffffffffffffffff, 0x98765432, 0, 16);
TESTINST("dins", 0xffffffffffffffff, 0xffffffffff865421, 0, 16);
TESTINST("dins", 0x98765432, 0x0, 0, 16);
TESTINST("dins", 0x98765432, 0xffffffffffffffff, 0, 16);
TESTINST("dins", 0x98765432, 0x98765432, 0, 16);
TESTINST("dins", 0x98765432, 0xffffffffff865421, 0, 16);
TESTINST("dins", 0xffffffffff865421, 0x0, 0, 16);
TESTINST("dins", 0xffffffffff865421, 0xffffffffffffffff, 0, 16);
TESTINST("dins", 0xffffffffff865421, 0x98765432, 0, 16);
TESTINST("dins", 0xffffffffff865421, 0xffffffffff865421, 0, 16);
TESTINST("dins", 0x0, 0x0, 0, 32);
TESTINST("dins", 0x0, 0xffffffffffffffff, 0, 32);
TESTINST("dins", 0x0, 0x98765432, 0, 32);
TESTINST("dins", 0x0, 0xffffffffff865421, 0, 32);
TESTINST("dins", 0xffffffffffffffff, 0x0, 0, 32);
TESTINST("dins", 0xffffffffffffffff, 0xffffffffffffffff, 0, 32);
TESTINST("dins", 0xffffffffffffffff, 0x98765432, 0, 32);
TESTINST("dins", 0xffffffffffffffff, 0xffffffffff865421, 0, 32);
TESTINST("dins", 0x98765432, 0x0, 0, 32);
TESTINST("dins", 0x98765432, 0xffffffffffffffff, 0, 32);
TESTINST("dins", 0x98765432, 0x98765432, 0, 32);
TESTINST("dins", 0x98765432, 0xffffffffff865421, 0, 32);
TESTINST("dins", 0xffffffffff865421, 0x0, 0, 32);
TESTINST("dins", 0xffffffffff865421, 0xffffffffffffffff, 0, 32);
TESTINST("dins", 0xffffffffff865421, 0x98765432, 0, 32);
TESTINST("dins", 0xffffffffff865421, 0xffffffffff865421, 0, 32);
TESTINST("dins", 0x0, 0x0, 4, 1);
TESTINST("dins", 0x0, 0xffffffffffffffff, 4, 1);
TESTINST("dins", 0x0, 0x98765432, 4, 1);
TESTINST("dins", 0x0, 0xffffffffff865421, 4, 1);
TESTINST("dins", 0xffffffffffffffff, 0x0, 4, 1);
TESTINST("dins", 0xffffffffffffffff, 0xffffffffffffffff, 4, 1);
TESTINST("dins", 0xffffffffffffffff, 0x98765432, 4, 1);
TESTINST("dins", 0xffffffffffffffff, 0xffffffffff865421, 4, 1);
TESTINST("dins", 0x98765432, 0x0, 4, 1);
TESTINST("dins", 0x98765432, 0xffffffffffffffff, 4, 1);
TESTINST("dins", 0x98765432, 0x98765432, 4, 1);
TESTINST("dins", 0x98765432, 0xffffffffff865421, 4, 1);
TESTINST("dins", 0xffffffffff865421, 0x0, 4, 1);
TESTINST("dins", 0xffffffffff865421, 0xffffffffffffffff, 4, 1);
TESTINST("dins", 0xffffffffff865421, 0x98765432, 4, 1);
TESTINST("dins", 0xffffffffff865421, 0xffffffffff865421, 4, 1);
TESTINST("dins", 0x0, 0x0, 4, 4);
TESTINST("dins", 0x0, 0xffffffffffffffff, 4, 4);
TESTINST("dins", 0x0, 0x98765432, 4, 4);
TESTINST("dins", 0x0, 0xffffffffff865421, 4, 4);
TESTINST("dins", 0xffffffffffffffff, 0x0, 4, 4);
TESTINST("dins", 0xffffffffffffffff, 0xffffffffffffffff, 4, 4);
TESTINST("dins", 0xffffffffffffffff, 0x98765432, 4, 4);
TESTINST("dins", 0xffffffffffffffff, 0xffffffffff865421, 4, 4);
TESTINST("dins", 0x98765432, 0x0, 4, 4);
TESTINST("dins", 0x98765432, 0xffffffffffffffff, 4, 4);
TESTINST("dins", 0x98765432, 0x98765432, 4, 4);
TESTINST("dins", 0x98765432, 0xffffffffff865421, 4, 4);
TESTINST("dins", 0xffffffffff865421, 0x0, 4, 4);
TESTINST("dins", 0xffffffffff865421, 0xffffffffffffffff, 4, 4);
TESTINST("dins", 0xffffffffff865421, 0x98765432, 4, 4);
TESTINST("dins", 0xffffffffff865421, 0xffffffffff865421, 4, 4);
TESTINST("dins", 0x0, 0x0, 4, 16);
TESTINST("dins", 0x0, 0xffffffffffffffff, 4, 16);
TESTINST("dins", 0x0, 0x98765432, 4, 16);
TESTINST("dins", 0x0, 0xffffffffff865421, 4, 16);
TESTINST("dins", 0xffffffffffffffff, 0x0, 4, 16);
TESTINST("dins", 0xffffffffffffffff, 0xffffffffffffffff, 4, 16);
TESTINST("dins", 0xffffffffffffffff, 0x98765432, 4, 16);
TESTINST("dins", 0xffffffffffffffff, 0xffffffffff865421, 4, 16);
TESTINST("dins", 0x98765432, 0x0, 4, 16);
TESTINST("dins", 0x98765432, 0xffffffffffffffff, 4, 16);
TESTINST("dins", 0x98765432, 0x98765432, 4, 16);
TESTINST("dins", 0x98765432, 0xffffffffff865421, 4, 16);
TESTINST("dins", 0xffffffffff865421, 0x0, 4, 16);
TESTINST("dins", 0xffffffffff865421, 0xffffffffffffffff, 4, 16);
TESTINST("dins", 0xffffffffff865421, 0x98765432, 4, 16);
TESTINST("dins", 0xffffffffff865421, 0xffffffffff865421, 4, 16);
TESTINST("dins", 0x0, 0x0, 4, 28);
TESTINST("dins", 0x0, 0xffffffffffffffff, 4, 28);
TESTINST("dins", 0x0, 0x98765432, 4, 28);
TESTINST("dins", 0x0, 0xffffffffff865421, 4, 28);
TESTINST("dins", 0xffffffffffffffff, 0x0, 4, 28);
TESTINST("dins", 0xffffffffffffffff, 0xffffffffffffffff, 4, 28);
TESTINST("dins", 0xffffffffffffffff, 0x98765432, 4, 28);
TESTINST("dins", 0xffffffffffffffff, 0xffffffffff865421, 4, 28);
TESTINST("dins", 0x98765432, 0x0, 4, 28);
TESTINST("dins", 0x98765432, 0xffffffffffffffff, 4, 28);
TESTINST("dins", 0x98765432, 0x98765432, 4, 28);
TESTINST("dins", 0x98765432, 0xffffffffff865421, 4, 28);
TESTINST("dins", 0xffffffffff865421, 0x0, 4, 28);
TESTINST("dins", 0xffffffffff865421, 0xffffffffffffffff, 4, 28);
TESTINST("dins", 0xffffffffff865421, 0x98765432, 4, 28);
TESTINST("dins", 0xffffffffff865421, 0xffffffffff865421, 4, 28);
TESTINST("dins", 0x0, 0x0, 16, 1);
TESTINST("dins", 0x0, 0xffffffffffffffff, 16, 1);
TESTINST("dins", 0x0, 0x98765432, 16, 1);
TESTINST("dins", 0x0, 0xffffffffff865421, 16, 1);
TESTINST("dins", 0xffffffffffffffff, 0x0, 16, 1);
TESTINST("dins", 0xffffffffffffffff, 0xffffffffffffffff, 16, 1);
TESTINST("dins", 0xffffffffffffffff, 0x98765432, 16, 1);
TESTINST("dins", 0xffffffffffffffff, 0xffffffffff865421, 16, 1);
TESTINST("dins", 0x98765432, 0x0, 16, 1);
TESTINST("dins", 0x98765432, 0xffffffffffffffff, 16, 1);
TESTINST("dins", 0x98765432, 0x98765432, 16, 1);
TESTINST("dins", 0x98765432, 0xffffffffff865421, 16, 1);
TESTINST("dins", 0xffffffffff865421, 0x0, 16, 1);
TESTINST("dins", 0xffffffffff865421, 0xffffffffffffffff, 16, 1);
TESTINST("dins", 0xffffffffff865421, 0x98765432, 16, 1);
TESTINST("dins", 0xffffffffff865421, 0xffffffffff865421, 16, 1);
TESTINST("dins", 0x0, 0x0, 16, 4);
TESTINST("dins", 0x0, 0xffffffffffffffff, 16, 4);
TESTINST("dins", 0x0, 0x98765432, 16, 4);
TESTINST("dins", 0x0, 0xffffffffff865421, 16, 4);
TESTINST("dins", 0xffffffffffffffff, 0x0, 16, 4);
TESTINST("dins", 0xffffffffffffffff, 0xffffffffffffffff, 16, 4);
TESTINST("dins", 0xffffffffffffffff, 0x98765432, 16, 4);
TESTINST("dins", 0xffffffffffffffff, 0xffffffffff865421, 16, 4);
TESTINST("dins", 0x98765432, 0x0, 16, 4);
TESTINST("dins", 0x98765432, 0xffffffffffffffff, 16, 4);
TESTINST("dins", 0x98765432, 0x98765432, 16, 4);
TESTINST("dins", 0x98765432, 0xffffffffff865421, 16, 4);
TESTINST("dins", 0xffffffffff865421, 0x0, 16, 4);
TESTINST("dins", 0xffffffffff865421, 0xffffffffffffffff, 16, 4);
TESTINST("dins", 0xffffffffff865421, 0x98765432, 16, 4);
TESTINST("dins", 0xffffffffff865421, 0xffffffffff865421, 16, 4);
TESTINST("dins", 0x0, 0x0, 16, 16);
TESTINST("dins", 0x0, 0xffffffffffffffff, 16, 16);
TESTINST("dins", 0x0, 0x98765432, 16, 16);
TESTINST("dins", 0x0, 0xffffffffff865421, 16, 16);
TESTINST("dins", 0xffffffffffffffff, 0x0, 16, 16);
TESTINST("dins", 0xffffffffffffffff, 0xffffffffffffffff, 16, 16);
TESTINST("dins", 0xffffffffffffffff, 0x98765432, 16, 16);
TESTINST("dins", 0xffffffffffffffff, 0xffffffffff865421, 16, 16);
TESTINST("dins", 0x98765432, 0x0, 16, 16);
TESTINST("dins", 0x98765432, 0xffffffffffffffff, 16, 16);
TESTINST("dins", 0x98765432, 0x98765432, 16, 16);
TESTINST("dins", 0x98765432, 0xffffffffff865421, 16, 16);
TESTINST("dins", 0xffffffffff865421, 0x0, 16, 16);
TESTINST("dins", 0xffffffffff865421, 0xffffffffffffffff, 16, 16);
TESTINST("dins", 0xffffffffff865421, 0x98765432, 16, 16);
TESTINST("dins", 0xffffffffff865421, 0xffffffffff865421, 16, 16);
TESTINST("dins", 0x0, 0x0, 31, 1);
TESTINST("dins", 0x0, 0xffffffffffffffff, 31, 1);
TESTINST("dins", 0x0, 0x98765432, 31, 1);
TESTINST("dins", 0x0, 0xffffffffff865421, 31, 1);
TESTINST("dins", 0xffffffffffffffff, 0x0, 31, 1);
TESTINST("dins", 0xffffffffffffffff, 0xffffffffffffffff, 31, 1);
TESTINST("dins", 0xffffffffffffffff, 0x98765432, 31, 1);
TESTINST("dins", 0xffffffffffffffff, 0xffffffffff865421, 31, 1);
TESTINST("dins", 0x98765432, 0x0, 31, 1);
TESTINST("dins", 0x98765432, 0xffffffffffffffff, 31, 1);
TESTINST("dins", 0x98765432, 0x98765432, 31, 1);
TESTINST("dins", 0x98765432, 0xffffffffff865421, 31, 1);
TESTINST("dins", 0xffffffffff865421, 0x0, 31, 1);
TESTINST("dins", 0xffffffffff865421, 0xffffffffffffffff, 31, 1);
TESTINST("dins", 0xffffffffff865421, 0x98765432, 31, 1);
TESTINST("dins", 0xffffffffff865421, 0xffffffffff865421, 31, 1);
TESTINST("dins", 0x2002ffffffffffff, 0xfffffffff0000fff, 4, 4);
TESTINST("dins", 0xffff0000ffffffff, 0xff0000ffffffffff, 8, 4);
TESTINST("dins", 0x2000ffffffffffff, 0xffff0000ffffffff, 16, 4);
TESTINST("dins", 0x2000ffffffddddff, 0xffffffffffff0008, 24, 2);
TESTINST("dins", 0x2000ffffffffeeee, 0xfffffff31415927f, 24, 4);
TESTINST("dins", 0x31415927ffffffff, 0x2000ffffffffffff, 9, 2);
TESTINST("dins", 0x2000ffffffffaaaa, 0x2000ffffffff2222, 16, 4);
TESTINST("dins", 0x2000ffffffbbbbff, 0x7fffffffddddffff, 16, 4);
TESTINST("dins", 0xeeeeff33ff22ffff, 0x2000ffffffffffff, 7, 4);
TESTINST("dins", 0x2000ffffffffffff, 0x2000ffffffffbbbb, 5, 4);
TESTINST("dins", 0x2000ffffffffbbbb, 0x2000ffffffffffff, 3, 4);
TESTINST("dins", 0x2000ffffffffffff, 0xeeeeff33ff22ffff, 16, 4);
TESTINST("dins", 0x7fffffffddddffff, 0x2000ffffffbbbbff, 16, 2);
TESTINST("dins", 0x2000ffffffff2222, 0x2000ffffffffaaaa, 2, 8);
TESTINST("dins", 0x2000ffffffffffff, 0x2000ffffffffeeee, 0, 32);
TESTINST("dins", 0xfffffff31415927f, 0x2000ffffffddddff, 16, 16);
TESTINST("dins", 0xffffffffffff0008, 0x2000ffffffddddff, 8, 2);
TESTINST("dins", 0xffff0000ffffffff, 0x2000ffffffffffff, 16, 4);
TESTINST("dins", 0xff0000ffffffffff, 0xffff0000ffffffff, 8, 4);
TESTINST("dins", 0xfffffffff0000fff, 0, 0, 31);
printf("--- DINSM ---\n");
/* The values of pos and size must satisfy all of the following relations:
0 <= pos < 32
2 <= size <= 64
32 < pos+size <= 64 */
TESTINST("dinsm", 0x0, 0x0, 0, 33);
TESTINST("dinsm", 0x0, 0xffffffffffffffff, 0, 33);
TESTINST("dinsm", 0x0, 0x98765432, 0, 33);
TESTINST("dinsm", 0x0, 0xffffffffff865421, 0, 33);
TESTINST("dinsm", 0xffffffffffffffff, 0x0, 0, 33);
TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffffffffff, 0, 33);
TESTINST("dinsm", 0xffffffffffffffff, 0x98765432, 0, 33);
TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffff865421, 0, 33);
TESTINST("dinsm", 0x98765432, 0x0, 0, 33);
TESTINST("dinsm", 0x98765432, 0xffffffffffffffff, 0, 33);
TESTINST("dinsm", 0x98765432, 0x98765432, 0, 33);
TESTINST("dinsm", 0x98765432, 0xffffffffff865421, 0, 33);
TESTINST("dinsm", 0xffffffffff865421, 0x0, 0, 33);
TESTINST("dinsm", 0xffffffffff865421, 0xffffffffffffffff, 0, 33);
TESTINST("dinsm", 0xffffffffff865421, 0x98765432, 0, 33);
TESTINST("dinsm", 0xffffffffff865421, 0xffffffffff865421, 0, 33);
TESTINST("dinsm", 0x0, 0x0, 0, 37);
TESTINST("dinsm", 0x0, 0xffffffffffffffff, 0, 37);
TESTINST("dinsm", 0x0, 0x98765432, 0, 37);
TESTINST("dinsm", 0x0, 0xffffffffff865421, 0, 37);
TESTINST("dinsm", 0xffffffffffffffff, 0x0, 0, 37);
TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffffffffff, 0, 37);
TESTINST("dinsm", 0xffffffffffffffff, 0x98765432, 0, 37);
TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffff865421, 0, 37);
TESTINST("dinsm", 0x98765432, 0x0, 0, 37);
TESTINST("dinsm", 0x98765432, 0xffffffffffffffff, 0, 37);
TESTINST("dinsm", 0x98765432, 0x98765432, 0, 37);
TESTINST("dinsm", 0x98765432, 0xffffffffff865421, 0, 37);
TESTINST("dinsm", 0xffffffffff865421, 0x0, 0, 37);
TESTINST("dinsm", 0xffffffffff865421, 0xffffffffffffffff, 0, 37);
TESTINST("dinsm", 0xffffffffff865421, 0x98765432, 0, 37);
TESTINST("dinsm", 0xffffffffff865421, 0xffffffffff865421, 0, 37);
TESTINST("dinsm", 0x0, 0x0, 0, 48);
TESTINST("dinsm", 0x0, 0xffffffffffffffff, 0, 48);
TESTINST("dinsm", 0x0, 0x98765432, 0, 48);
TESTINST("dinsm", 0x0, 0xffffffffff865421, 0, 48);
TESTINST("dinsm", 0xffffffffffffffff, 0x0, 0, 48);
TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffffffffff, 0, 48);
TESTINST("dinsm", 0xffffffffffffffff, 0x98765432, 0, 48);
TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffff865421, 0, 48);
TESTINST("dinsm", 0x98765432, 0x0, 0, 48);
TESTINST("dinsm", 0x98765432, 0xffffffffffffffff, 0, 48);
TESTINST("dinsm", 0x98765432, 0x98765432, 0, 48);
TESTINST("dinsm", 0x98765432, 0xffffffffff865421, 0, 48);
TESTINST("dinsm", 0xffffffffff865421, 0x0, 0, 48);
TESTINST("dinsm", 0xffffffffff865421, 0xffffffffffffffff, 0, 48);
TESTINST("dinsm", 0xffffffffff865421, 0x98765432, 0, 48);
TESTINST("dinsm", 0xffffffffff865421, 0xffffffffff865421, 0, 48);
TESTINST("dinsm", 0x0, 0x0, 0, 64);
TESTINST("dinsm", 0x0, 0xffffffffffffffff, 0, 64);
TESTINST("dinsm", 0x0, 0x98765432, 0, 64);
TESTINST("dinsm", 0x0, 0xffffffffff865421, 0, 64);
TESTINST("dinsm", 0xffffffffffffffff, 0x0, 0, 64);
TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffffffffff, 0, 64);
TESTINST("dinsm", 0xffffffffffffffff, 0x98765432, 0, 64);
TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffff865421, 0, 64);
TESTINST("dinsm", 0x98765432, 0x0, 0, 64);
TESTINST("dinsm", 0x98765432, 0xffffffffffffffff, 0, 64);
TESTINST("dinsm", 0x98765432, 0x98765432, 0, 64);
TESTINST("dinsm", 0x98765432, 0xffffffffff865421, 0, 64);
TESTINST("dinsm", 0xffffffffff865421, 0x0, 0, 64);
TESTINST("dinsm", 0xffffffffff865421, 0xffffffffffffffff, 0, 64);
TESTINST("dinsm", 0xffffffffff865421, 0x98765432, 0, 64);
TESTINST("dinsm", 0xffffffffff865421, 0xffffffffff865421, 0, 64);
TESTINST("dinsm", 0x0, 0x0, 4, 29);
TESTINST("dinsm", 0x0, 0xffffffffffffffff, 4, 29);
TESTINST("dinsm", 0x0, 0x98765432, 4, 29);
TESTINST("dinsm", 0x0, 0xffffffffff865421, 4, 29);
TESTINST("dinsm", 0xffffffffffffffff, 0x0, 4, 29);
TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffffffffff, 4, 29);
TESTINST("dinsm", 0xffffffffffffffff, 0x98765432, 4, 29);
TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffff865421, 4, 29);
TESTINST("dinsm", 0x98765432, 0x0, 4, 29);
TESTINST("dinsm", 0x98765432, 0xffffffffffffffff, 4, 29);
TESTINST("dinsm", 0x98765432, 0x98765432, 4, 29);
TESTINST("dinsm", 0x98765432, 0xffffffffff865421, 4, 29);
TESTINST("dinsm", 0xffffffffff865421, 0x0, 4, 29);
TESTINST("dinsm", 0xffffffffff865421, 0xffffffffffffffff, 4, 29);
TESTINST("dinsm", 0xffffffffff865421, 0x98765432, 4, 29);
TESTINST("dinsm", 0xffffffffff865421, 0xffffffffff865421, 4, 29);
TESTINST("dinsm", 0x0, 0x0, 4, 32);
TESTINST("dinsm", 0x0, 0xffffffffffffffff, 4, 32);
TESTINST("dinsm", 0x0, 0x98765432, 4, 32);
TESTINST("dinsm", 0x0, 0xffffffffff865421, 4, 32);
TESTINST("dinsm", 0xffffffffffffffff, 0x0, 4, 32);
TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffffffffff, 4, 32);
TESTINST("dinsm", 0xffffffffffffffff, 0x98765432, 4, 32);
TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffff865421, 4, 32);
TESTINST("dinsm", 0x98765432, 0x0, 4, 32);
TESTINST("dinsm", 0x98765432, 0xffffffffffffffff, 4, 32);
TESTINST("dinsm", 0x98765432, 0x98765432, 4, 32);
TESTINST("dinsm", 0x98765432, 0xffffffffff865421, 4, 32);
TESTINST("dinsm", 0xffffffffff865421, 0x0, 4, 32);
TESTINST("dinsm", 0xffffffffff865421, 0xffffffffffffffff, 4, 32);
TESTINST("dinsm", 0xffffffffff865421, 0x98765432, 4, 32);
TESTINST("dinsm", 0xffffffffff865421, 0xffffffffff865421, 4, 32);
TESTINST("dinsm", 0x0, 0x0, 4, 37);
TESTINST("dinsm", 0x0, 0xffffffffffffffff, 4, 37);
TESTINST("dinsm", 0x0, 0x98765432, 4, 37);
TESTINST("dinsm", 0x0, 0xffffffffff865421, 4, 37);
TESTINST("dinsm", 0xffffffffffffffff, 0x0, 4, 37);
TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffffffffff, 4, 37);
TESTINST("dinsm", 0xffffffffffffffff, 0x98765432, 4, 37);
TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffff865421, 4, 37);
TESTINST("dinsm", 0x98765432, 0x0, 4, 37);
TESTINST("dinsm", 0x98765432, 0xffffffffffffffff, 4, 37);
TESTINST("dinsm", 0x98765432, 0x98765432, 4, 37);
TESTINST("dinsm", 0x98765432, 0xffffffffff865421, 4, 37);
TESTINST("dinsm", 0xffffffffff865421, 0x0, 4, 37);
TESTINST("dinsm", 0xffffffffff865421, 0xffffffffffffffff, 4, 37);
TESTINST("dinsm", 0xffffffffff865421, 0x98765432, 4, 37);
TESTINST("dinsm", 0xffffffffff865421, 0xffffffffff865421, 4, 37);
TESTINST("dinsm", 0x0, 0x0, 4, 48);
TESTINST("dinsm", 0x0, 0xffffffffffffffff, 4, 48);
TESTINST("dinsm", 0x0, 0x98765432, 4, 48);
TESTINST("dinsm", 0x0, 0xffffffffff865421, 4, 48);
TESTINST("dinsm", 0xffffffffffffffff, 0x0, 4, 48);
TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffffffffff, 4, 48);
TESTINST("dinsm", 0xffffffffffffffff, 0x98765432, 4, 48);
TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffff865421, 4, 48);
TESTINST("dinsm", 0x98765432, 0x0, 4, 48);
TESTINST("dinsm", 0x98765432, 0xffffffffffffffff, 4, 48);
TESTINST("dinsm", 0x98765432, 0x98765432, 4, 48);
TESTINST("dinsm", 0x98765432, 0xffffffffff865421, 4, 48);
TESTINST("dinsm", 0xffffffffff865421, 0x0, 4, 48);
TESTINST("dinsm", 0xffffffffff865421, 0xffffffffffffffff, 4, 48);
TESTINST("dinsm", 0xffffffffff865421, 0x98765432, 4, 48);
TESTINST("dinsm", 0xffffffffff865421, 0xffffffffff865421, 4, 48);
TESTINST("dinsm", 0x0, 0x0, 4, 60);
TESTINST("dinsm", 0x0, 0xffffffffffffffff, 4, 60);
TESTINST("dinsm", 0x0, 0x98765432, 4, 60);
TESTINST("dinsm", 0x0, 0xffffffffff865421, 4, 60);
TESTINST("dinsm", 0xffffffffffffffff, 0x0, 4, 60);
TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffffffffff, 4, 60);
TESTINST("dinsm", 0xffffffffffffffff, 0x98765432, 4, 60);
TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffff865421, 4, 60);
TESTINST("dinsm", 0x98765432, 0x0, 4, 60);
TESTINST("dinsm", 0x98765432, 0xffffffffffffffff, 4, 60);
TESTINST("dinsm", 0x98765432, 0x98765432, 4, 60);
TESTINST("dinsm", 0x98765432, 0xffffffffff865421, 4, 60);
TESTINST("dinsm", 0xffffffffff865421, 0x0, 4, 60);
TESTINST("dinsm", 0xffffffffff865421, 0xffffffffffffffff, 4, 60);
TESTINST("dinsm", 0xffffffffff865421, 0x98765432, 4, 60);
TESTINST("dinsm", 0xffffffffff865421, 0xffffffffff865421, 4, 60);
TESTINST("dinsm", 0x0, 0x0, 16, 17);
TESTINST("dinsm", 0x0, 0xffffffffffffffff, 16, 17);
TESTINST("dinsm", 0x0, 0x98765432, 16, 17);
TESTINST("dinsm", 0x0, 0xffffffffff865421, 16, 17);
TESTINST("dinsm", 0xffffffffffffffff, 0x0, 16, 17);
TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffffffffff, 16, 17);
TESTINST("dinsm", 0xffffffffffffffff, 0x98765432, 16, 17);
TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffff865421, 16, 17);
TESTINST("dinsm", 0x98765432, 0x0, 16, 17);
TESTINST("dinsm", 0x98765432, 0xffffffffffffffff, 16, 17);
TESTINST("dinsm", 0x98765432, 0x98765432, 16, 17);
TESTINST("dinsm", 0x98765432, 0xffffffffff865421, 16, 17);
TESTINST("dinsm", 0xffffffffff865421, 0x0, 16, 17);
TESTINST("dinsm", 0xffffffffff865421, 0xffffffffffffffff, 16, 17);
TESTINST("dinsm", 0xffffffffff865421, 0x98765432, 16, 17);
TESTINST("dinsm", 0xffffffffff865421, 0xffffffffff865421, 16, 17);
TESTINST("dinsm", 0x0, 0x0, 16, 32);
TESTINST("dinsm", 0x0, 0xffffffffffffffff, 16, 32);
TESTINST("dinsm", 0x0, 0x98765432, 16, 32);
TESTINST("dinsm", 0x0, 0xffffffffff865421, 16, 32);
TESTINST("dinsm", 0xffffffffffffffff, 0x0, 16, 32);
TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffffffffff, 16, 32);
TESTINST("dinsm", 0xffffffffffffffff, 0x98765432, 16, 32);
TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffff865421, 16, 32);
TESTINST("dinsm", 0x98765432, 0x0, 16, 32);
TESTINST("dinsm", 0x98765432, 0xffffffffffffffff, 16, 32);
TESTINST("dinsm", 0x98765432, 0x98765432, 16, 32);
TESTINST("dinsm", 0x98765432, 0xffffffffff865421, 16, 32);
TESTINST("dinsm", 0xffffffffff865421, 0x0, 16, 32);
TESTINST("dinsm", 0xffffffffff865421, 0xffffffffffffffff, 16, 32);
TESTINST("dinsm", 0xffffffffff865421, 0x98765432, 16, 32);
TESTINST("dinsm", 0xffffffffff865421, 0xffffffffff865421, 16, 32);
TESTINST("dinsm", 0x0, 0x0, 16, 37);
TESTINST("dinsm", 0x0, 0xffffffffffffffff, 16, 37);
TESTINST("dinsm", 0x0, 0x98765432, 16, 37);
TESTINST("dinsm", 0x0, 0xffffffffff865421, 16, 37);
TESTINST("dinsm", 0xffffffffffffffff, 0x0, 16, 37);
TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffffffffff, 16, 37);
TESTINST("dinsm", 0xffffffffffffffff, 0x98765432, 16, 37);
TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffff865421, 16, 37);
TESTINST("dinsm", 0x98765432, 0x0, 16, 37);
TESTINST("dinsm", 0x98765432, 0xffffffffffffffff, 16, 37);
TESTINST("dinsm", 0x98765432, 0x98765432, 16, 37);
TESTINST("dinsm", 0x98765432, 0xffffffffff865421, 16, 37);
TESTINST("dinsm", 0xffffffffff865421, 0x0, 16, 37);
TESTINST("dinsm", 0xffffffffff865421, 0xffffffffffffffff, 16, 37);
TESTINST("dinsm", 0xffffffffff865421, 0x98765432, 16, 37);
TESTINST("dinsm", 0xffffffffff865421, 0xffffffffff865421, 16, 37);
TESTINST("dinsm", 0x0, 0x0, 16, 48);
TESTINST("dinsm", 0x0, 0xffffffffffffffff, 16, 48);
TESTINST("dinsm", 0x0, 0x98765432, 16, 48);
TESTINST("dinsm", 0x0, 0xffffffffff865421, 16, 48);
TESTINST("dinsm", 0xffffffffffffffff, 0x0, 16, 48);
TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffffffffff, 16, 48);
TESTINST("dinsm", 0xffffffffffffffff, 0x98765432, 16, 48);
TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffff865421, 16, 48);
TESTINST("dinsm", 0x98765432, 0x0, 16, 48);
TESTINST("dinsm", 0x98765432, 0xffffffffffffffff, 16, 48);
TESTINST("dinsm", 0x98765432, 0x98765432, 16, 48);
TESTINST("dinsm", 0x98765432, 0xffffffffff865421, 16, 48);
TESTINST("dinsm", 0xffffffffff865421, 0x0, 16, 48);
TESTINST("dinsm", 0xffffffffff865421, 0xffffffffffffffff, 16, 48);
TESTINST("dinsm", 0xffffffffff865421, 0x98765432, 16, 48);
TESTINST("dinsm", 0xffffffffff865421, 0xffffffffff865421, 16, 48);
TESTINST("dinsm", 0x0, 0x0, 31, 2);
TESTINST("dinsm", 0x0, 0xffffffffffffffff, 31, 2);
TESTINST("dinsm", 0x0, 0x98765432, 31, 2);
TESTINST("dinsm", 0x0, 0xffffffffff865421, 31, 2);
TESTINST("dinsm", 0xffffffffffffffff, 0x0, 31, 2);
TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffffffffff, 31, 2);
TESTINST("dinsm", 0xffffffffffffffff, 0x98765432, 31, 2);
TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffff865421, 31, 2);
TESTINST("dinsm", 0x98765432, 0x0, 31, 2);
TESTINST("dinsm", 0x98765432, 0xffffffffffffffff, 31, 2);
TESTINST("dinsm", 0x98765432, 0x98765432, 31, 2);
TESTINST("dinsm", 0x98765432, 0xffffffffff865421, 31, 2);
TESTINST("dinsm", 0xffffffffff865421, 0x0, 31, 2);
TESTINST("dinsm", 0xffffffffff865421, 0xffffffffffffffff, 31, 2);
TESTINST("dinsm", 0xffffffffff865421, 0x98765432, 31, 2);
TESTINST("dinsm", 0xffffffffff865421, 0xffffffffff865421, 31, 2);
TESTINST("dinsm", 0x0, 0x0, 31, 16);
TESTINST("dinsm", 0x0, 0xffffffffffffffff, 31, 16);
TESTINST("dinsm", 0x0, 0x98765432, 31, 16);
TESTINST("dinsm", 0x0, 0xffffffffff865421, 31, 16);
TESTINST("dinsm", 0xffffffffffffffff, 0x0, 31, 16);
TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffffffffff, 31, 16);
TESTINST("dinsm", 0xffffffffffffffff, 0x98765432, 31, 16);
TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffff865421, 31, 16);
TESTINST("dinsm", 0x98765432, 0x0, 31, 16);
TESTINST("dinsm", 0x98765432, 0xffffffffffffffff, 31, 16);
TESTINST("dinsm", 0x98765432, 0x98765432, 31, 16);
TESTINST("dinsm", 0x98765432, 0xffffffffff865421, 31, 16);
TESTINST("dinsm", 0xffffffffff865421, 0x0, 31, 16);
TESTINST("dinsm", 0xffffffffff865421, 0xffffffffffffffff, 31, 16);
TESTINST("dinsm", 0xffffffffff865421, 0x98765432, 31, 16);
TESTINST("dinsm", 0xffffffffff865421, 0xffffffffff865421, 31, 16);
TESTINST("dinsm", 0x0, 0x0, 31, 32);
TESTINST("dinsm", 0x0, 0xffffffffffffffff, 31, 32);
TESTINST("dinsm", 0x0, 0x98765432, 31, 32);
TESTINST("dinsm", 0x0, 0xffffffffff865421, 31, 32);
TESTINST("dinsm", 0xffffffffffffffff, 0x0, 31, 32);
TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffffffffff, 31, 32);
TESTINST("dinsm", 0xffffffffffffffff, 0x98765432, 31, 32);
TESTINST("dinsm", 0xffffffffffffffff, 0xffffffffff865421, 31, 32);
TESTINST("dinsm", 0x98765432, 0x0, 31, 32);
TESTINST("dinsm", 0x98765432, 0xffffffffffffffff, 31, 32);
TESTINST("dinsm", 0x98765432, 0x98765432, 31, 32);
TESTINST("dinsm", 0x98765432, 0xffffffffff865421, 31, 32);
TESTINST("dinsm", 0xffffffffff865421, 0x0, 31, 32);
TESTINST("dinsm", 0xffffffffff865421, 0xffffffffffffffff, 31, 32);
TESTINST("dinsm", 0xffffffffff865421, 0x98765432, 31, 32);
TESTINST("dinsm", 0xffffffffff865421, 0xffffffffff865421, 31, 32);
TESTINST("dinsm", 0x2002ffffffffffff, 0xfffffffff0000fff, 4, 35);
TESTINST("dinsm", 0xffff0000ffffffff, 0xff0000ffffffffff, 8, 33);
TESTINST("dinsm", 0x2000ffffffffffff, 0xffff0000ffffffff, 16, 34);
TESTINST("dinsm", 0x2000ffffffddddff, 0xffffffffffff0008, 4, 46);
TESTINST("dinsm", 0x2000ffffffffeeee, 0xfffffff31415927f, 3, 56);
TESTINST("dinsm", 0x31415927ffffffff, 0x2000ffffffffffff, 0, 64);
TESTINST("dinsm", 0x2000ffffffffaaaa, 0x2000ffffffff2222, 16, 40);
TESTINST("dinsm", 0x2000ffffffbbbbff, 0x7fffffffddddffff, 16, 42);
TESTINST("dinsm", 0xeeeeff33ff22ffff, 0x2000ffffffffffff, 7, 43);
TESTINST("dinsm", 0x2000ffffffffffff, 0x2000ffffffffbbbb, 5, 48);
TESTINST("dinsm", 0x2000ffffffffbbbb, 0x2000ffffffffffff, 3, 52);
TESTINST("dinsm", 0x2000ffffffffffff, 0xeeeeff33ff22ffff, 1, 54);
TESTINST("dinsm", 0x7fffffffddddffff, 0x2000ffffffbbbbff, 2, 54);
TESTINST("dinsm", 0x2000ffffffff2222, 0x2000ffffffffaaaa, 2, 48);
TESTINST("dinsm", 0x2000ffffffffffff, 0x31415927ffffffff, 5, 53);
TESTINST("dinsm", 0xfffffff31415927f, 0x2000ffffffffeeee, 2, 60);
TESTINST("dinsm", 0xffffffffffff0008, 0x2000ffffffddddff, 3, 61);
TESTINST("dinsm", 0xffff0000ffffffff, 0x2000ffffffffffff, 1, 62);
TESTINST("dinsm", 0xff0000ffffffffff, 0, 8, 38);
TESTINST("dinsm", 0xfffffffff0000fff, 0, 16, 39);
printf("--- DINSU ---\n");
/* The values of pos and size must satisfy all of the following relations:
32 <= pos < 64
1 <= size <= 32
32 < pos+size <= 64 */
TESTINST("dinsu", 0x0, 0x0, 32, 1);
TESTINST("dinsu", 0x0, 0xffffffffffffffff, 32, 1);
TESTINST("dinsu", 0x0, 0x98765432, 32, 1);
TESTINST("dinsu", 0x0, 0xffffffffff865421, 32, 1);
TESTINST("dinsu", 0xffffffffffffffff, 0x0, 32, 1);
TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffffffffff, 32, 1);
TESTINST("dinsu", 0xffffffffffffffff, 0x98765432, 32, 1);
TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffff865421, 32, 1);
TESTINST("dinsu", 0x98765432, 0x0, 32, 1);
TESTINST("dinsu", 0x98765432, 0xffffffffffffffff, 32, 1);
TESTINST("dinsu", 0x98765432, 0x98765432, 32, 1);
TESTINST("dinsu", 0x98765432, 0xffffffffff865421, 32, 1);
TESTINST("dinsu", 0xffffffffff865421, 0x0, 32, 1);
TESTINST("dinsu", 0xffffffffff865421, 0xffffffffffffffff, 32, 1);
TESTINST("dinsu", 0xffffffffff865421, 0x98765432, 32, 1);
TESTINST("dinsu", 0xffffffffff865421, 0xffffffffff865421, 32, 1);
TESTINST("dinsu", 0x0, 0x0, 32, 4);
TESTINST("dinsu", 0x0, 0xffffffffffffffff, 32, 4);
TESTINST("dinsu", 0x0, 0x98765432, 32, 4);
TESTINST("dinsu", 0x0, 0xffffffffff865421, 32, 4);
TESTINST("dinsu", 0xffffffffffffffff, 0x0, 32, 4);
TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffffffffff, 32, 4);
TESTINST("dinsu", 0xffffffffffffffff, 0x98765432, 32, 4);
TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffff865421, 32, 4);
TESTINST("dinsu", 0x98765432, 0x0, 32, 4);
TESTINST("dinsu", 0x98765432, 0xffffffffffffffff, 32, 4);
TESTINST("dinsu", 0x98765432, 0x98765432, 32, 4);
TESTINST("dinsu", 0x98765432, 0xffffffffff865421, 32, 4);
TESTINST("dinsu", 0xffffffffff865421, 0x0, 32, 4);
TESTINST("dinsu", 0xffffffffff865421, 0xffffffffffffffff, 32, 4);
TESTINST("dinsu", 0xffffffffff865421, 0x98765432, 32, 4);
TESTINST("dinsu", 0xffffffffff865421, 0xffffffffff865421, 32, 4);
TESTINST("dinsu", 0x0, 0x0, 32, 16);
TESTINST("dinsu", 0x0, 0xffffffffffffffff, 32, 16);
TESTINST("dinsu", 0x0, 0x98765432, 32, 16);
TESTINST("dinsu", 0x0, 0xffffffffff865421, 32, 16);
TESTINST("dinsu", 0xffffffffffffffff, 0x0, 32, 16);
TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffffffffff, 32, 16);
TESTINST("dinsu", 0xffffffffffffffff, 0x98765432, 32, 16);
TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffff865421, 32, 16);
TESTINST("dinsu", 0x98765432, 0x0, 32, 16);
TESTINST("dinsu", 0x98765432, 0xffffffffffffffff, 32, 16);
TESTINST("dinsu", 0x98765432, 0x98765432, 32, 16);
TESTINST("dinsu", 0x98765432, 0xffffffffff865421, 32, 16);
TESTINST("dinsu", 0xffffffffff865421, 0x0, 32, 16);
TESTINST("dinsu", 0xffffffffff865421, 0xffffffffffffffff, 32, 16);
TESTINST("dinsu", 0xffffffffff865421, 0x98765432, 32, 16);
TESTINST("dinsu", 0xffffffffff865421, 0xffffffffff865421, 32, 16);
TESTINST("dinsu", 0x0, 0x0, 32, 32);
TESTINST("dinsu", 0x0, 0xffffffffffffffff, 32, 32);
TESTINST("dinsu", 0x0, 0x98765432, 32, 32);
TESTINST("dinsu", 0x0, 0xffffffffff865421, 32, 32);
TESTINST("dinsu", 0xffffffffffffffff, 0x0, 32, 32);
TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffffffffff, 32, 32);
TESTINST("dinsu", 0xffffffffffffffff, 0x98765432, 32, 32);
TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffff865421, 32, 32);
TESTINST("dinsu", 0x98765432, 0x0, 32, 32);
TESTINST("dinsu", 0x98765432, 0xffffffffffffffff, 32, 32);
TESTINST("dinsu", 0x98765432, 0x98765432, 32, 32);
TESTINST("dinsu", 0x98765432, 0xffffffffff865421, 32, 32);
TESTINST("dinsu", 0xffffffffff865421, 0x0, 32, 32);
TESTINST("dinsu", 0xffffffffff865421, 0xffffffffffffffff, 32, 32);
TESTINST("dinsu", 0xffffffffff865421, 0x98765432, 32, 32);
TESTINST("dinsu", 0xffffffffff865421, 0xffffffffff865421, 32, 32);
TESTINST("dinsu", 0x0, 0x0, 36, 1);
TESTINST("dinsu", 0x0, 0xffffffffffffffff, 36, 1);
TESTINST("dinsu", 0x0, 0x98765432, 36, 1);
TESTINST("dinsu", 0x0, 0xffffffffff865421, 36, 1);
TESTINST("dinsu", 0xffffffffffffffff, 0x0, 36, 1);
TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffffffffff, 36, 1);
TESTINST("dinsu", 0xffffffffffffffff, 0x98765432, 36, 1);
TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffff865421, 36, 1);
TESTINST("dinsu", 0x98765432, 0x0, 36, 1);
TESTINST("dinsu", 0x98765432, 0xffffffffffffffff, 36, 1);
TESTINST("dinsu", 0x98765432, 0x98765432, 36, 1);
TESTINST("dinsu", 0x98765432, 0xffffffffff865421, 36, 1);
TESTINST("dinsu", 0xffffffffff865421, 0x0, 36, 1);
TESTINST("dinsu", 0xffffffffff865421, 0xffffffffffffffff, 36, 1);
TESTINST("dinsu", 0xffffffffff865421, 0x98765432, 36, 1);
TESTINST("dinsu", 0xffffffffff865421, 0xffffffffff865421, 36, 1);
TESTINST("dinsu", 0x0, 0x0, 36, 4);
TESTINST("dinsu", 0x0, 0xffffffffffffffff, 36, 4);
TESTINST("dinsu", 0x0, 0x98765432, 36, 4);
TESTINST("dinsu", 0x0, 0xffffffffff865421, 36, 4);
TESTINST("dinsu", 0xffffffffffffffff, 0x0, 36, 4);
TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffffffffff, 36, 4);
TESTINST("dinsu", 0xffffffffffffffff, 0x98765432, 36, 4);
TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffff865421, 36, 4);
TESTINST("dinsu", 0x98765432, 0x0, 36, 4);
TESTINST("dinsu", 0x98765432, 0xffffffffffffffff, 36, 4);
TESTINST("dinsu", 0x98765432, 0x98765432, 36, 4);
TESTINST("dinsu", 0x98765432, 0xffffffffff865421, 36, 4);
TESTINST("dinsu", 0xffffffffff865421, 0x0, 36, 4);
TESTINST("dinsu", 0xffffffffff865421, 0xffffffffffffffff, 36, 4);
TESTINST("dinsu", 0xffffffffff865421, 0x98765432, 36, 4);
TESTINST("dinsu", 0xffffffffff865421, 0xffffffffff865421, 36, 4);
TESTINST("dinsu", 0x0, 0x0, 36, 16);
TESTINST("dinsu", 0x0, 0xffffffffffffffff, 36, 16);
TESTINST("dinsu", 0x0, 0x98765432, 36, 16);
TESTINST("dinsu", 0x0, 0xffffffffff865421, 36, 16);
TESTINST("dinsu", 0xffffffffffffffff, 0x0, 36, 16);
TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffffffffff, 36, 16);
TESTINST("dinsu", 0xffffffffffffffff, 0x98765432, 36, 16);
TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffff865421, 36, 16);
TESTINST("dinsu", 0x98765432, 0x0, 36, 16);
TESTINST("dinsu", 0x98765432, 0xffffffffffffffff, 36, 16);
TESTINST("dinsu", 0x98765432, 0x98765432, 36, 16);
TESTINST("dinsu", 0x98765432, 0xffffffffff865421, 36, 16);
TESTINST("dinsu", 0xffffffffff865421, 0x0, 36, 16);
TESTINST("dinsu", 0xffffffffff865421, 0xffffffffffffffff, 36, 16);
TESTINST("dinsu", 0xffffffffff865421, 0x98765432, 36, 16);
TESTINST("dinsu", 0xffffffffff865421, 0xffffffffff865421, 36, 16);
TESTINST("dinsu", 0x0, 0x0, 36, 28);
TESTINST("dinsu", 0x0, 0xffffffffffffffff, 36, 28);
TESTINST("dinsu", 0x0, 0x98765432, 36, 28);
TESTINST("dinsu", 0x0, 0xffffffffff865421, 36, 28);
TESTINST("dinsu", 0xffffffffffffffff, 0x0, 36, 28);
TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffffffffff, 36, 28);
TESTINST("dinsu", 0xffffffffffffffff, 0x98765432, 36, 28);
TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffff865421, 36, 28);
TESTINST("dinsu", 0x98765432, 0x0, 36, 28);
TESTINST("dinsu", 0x98765432, 0xffffffffffffffff, 36, 28);
TESTINST("dinsu", 0x98765432, 0x98765432, 36, 28);
TESTINST("dinsu", 0x98765432, 0xffffffffff865421, 36, 28);
TESTINST("dinsu", 0xffffffffff865421, 0x0, 36, 28);
TESTINST("dinsu", 0xffffffffff865421, 0xffffffffffffffff, 36, 28);
TESTINST("dinsu", 0xffffffffff865421, 0x98765432, 36, 28);
TESTINST("dinsu", 0xffffffffff865421, 0xffffffffff865421, 36, 28);
TESTINST("dinsu", 0x0, 0x0, 48, 1);
TESTINST("dinsu", 0x0, 0xffffffffffffffff, 48, 1);
TESTINST("dinsu", 0x0, 0x98765432, 48, 1);
TESTINST("dinsu", 0x0, 0xffffffffff865421, 48, 1);
TESTINST("dinsu", 0xffffffffffffffff, 0x0, 48, 1);
TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffffffffff, 48, 1);
TESTINST("dinsu", 0xffffffffffffffff, 0x98765432, 48, 1);
TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffff865421, 48, 1);
TESTINST("dinsu", 0x98765432, 0x0, 48, 1);
TESTINST("dinsu", 0x98765432, 0xffffffffffffffff, 48, 1);
TESTINST("dinsu", 0x98765432, 0x98765432, 48, 1);
TESTINST("dinsu", 0x98765432, 0xffffffffff865421, 48, 1);
TESTINST("dinsu", 0xffffffffff865421, 0x0, 48, 1);
TESTINST("dinsu", 0xffffffffff865421, 0xffffffffffffffff, 48, 1);
TESTINST("dinsu", 0xffffffffff865421, 0x98765432, 48, 1);
TESTINST("dinsu", 0xffffffffff865421, 0xffffffffff865421, 48, 1);
TESTINST("dinsu", 0x0, 0x0, 48, 4);
TESTINST("dinsu", 0x0, 0xffffffffffffffff, 48, 4);
TESTINST("dinsu", 0x0, 0x98765432, 48, 4);
TESTINST("dinsu", 0x0, 0xffffffffff865421, 48, 4);
TESTINST("dinsu", 0xffffffffffffffff, 0x0, 48, 4);
TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffffffffff, 48, 4);
TESTINST("dinsu", 0xffffffffffffffff, 0x98765432, 48, 4);
TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffff865421, 48, 4);
TESTINST("dinsu", 0x98765432, 0x0, 48, 4);
TESTINST("dinsu", 0x98765432, 0xffffffffffffffff, 48, 4);
TESTINST("dinsu", 0x98765432, 0x98765432, 48, 4);
TESTINST("dinsu", 0x98765432, 0xffffffffff865421, 48, 4);
TESTINST("dinsu", 0xffffffffff865421, 0x0, 48, 4);
TESTINST("dinsu", 0xffffffffff865421, 0xffffffffffffffff, 48, 4);
TESTINST("dinsu", 0xffffffffff865421, 0x98765432, 48, 4);
TESTINST("dinsu", 0xffffffffff865421, 0xffffffffff865421, 48, 4);
TESTINST("dinsu", 0x0, 0x0, 48, 16);
TESTINST("dinsu", 0x0, 0xffffffffffffffff, 48, 16);
TESTINST("dinsu", 0x0, 0x98765432, 48, 16);
TESTINST("dinsu", 0x0, 0xffffffffff865421, 48, 16);
TESTINST("dinsu", 0xffffffffffffffff, 0x0, 48, 16);
TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffffffffff, 48, 16);
TESTINST("dinsu", 0xffffffffffffffff, 0x98765432, 48, 16);
TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffff865421, 48, 16);
TESTINST("dinsu", 0x98765432, 0x0, 48, 16);
TESTINST("dinsu", 0x98765432, 0xffffffffffffffff, 48, 16);
TESTINST("dinsu", 0x98765432, 0x98765432, 48, 16);
TESTINST("dinsu", 0x98765432, 0xffffffffff865421, 48, 16);
TESTINST("dinsu", 0xffffffffff865421, 0x0, 48, 16);
TESTINST("dinsu", 0xffffffffff865421, 0xffffffffffffffff, 48, 16);
TESTINST("dinsu", 0xffffffffff865421, 0x98765432, 48, 16);
TESTINST("dinsu", 0xffffffffff865421, 0xffffffffff865421, 48, 16);
TESTINST("dinsu", 0x0, 0x0, 63, 1);
TESTINST("dinsu", 0x0, 0xffffffffffffffff, 63, 1);
TESTINST("dinsu", 0x0, 0x98765432, 63, 1);
TESTINST("dinsu", 0x0, 0xffffffffff865421, 63, 1);
TESTINST("dinsu", 0xffffffffffffffff, 0x0, 63, 1);
TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffffffffff, 63, 1);
TESTINST("dinsu", 0xffffffffffffffff, 0x98765432, 63, 1);
TESTINST("dinsu", 0xffffffffffffffff, 0xffffffffff865421, 63, 1);
TESTINST("dinsu", 0x98765432, 0x0, 63, 1);
TESTINST("dinsu", 0x98765432, 0xffffffffffffffff, 63, 1);
TESTINST("dinsu", 0x98765432, 0x98765432, 63, 1);
TESTINST("dinsu", 0x98765432, 0xffffffffff865421, 63, 1);
TESTINST("dinsu", 0xffffffffff865421, 0x0, 63, 1);
TESTINST("dinsu", 0xffffffffff865421, 0xffffffffffffffff, 63, 1);
TESTINST("dinsu", 0xffffffffff865421, 0x98765432, 63, 1);
TESTINST("dinsu", 0xffffffffff865421, 0xffffffffff865421, 63, 1);
TESTINST("dinsu", 0x2002ffffffffffff, 0xfffffffff0000fff, 33, 4);
TESTINST("dinsu", 0xffff0000ffffffff, 0xff0000ffffffffff, 60, 4);
TESTINST("dinsu", 0x2000ffffffffffff, 0xffff0000ffffffff, 54, 4);
TESTINST("dinsu", 0x2000ffffffddddff, 0xffffffffffff0008, 56, 2);
TESTINST("dinsu", 0x2000ffffffffeeee, 0xfffffff31415927f, 40, 4);
TESTINST("dinsu", 0x31415927ffffffff, 0x2000ffffffffffff, 51, 2);
TESTINST("dinsu", 0x2000ffffffffaaaa, 0x2000ffffffff2222, 48, 4);
TESTINST("dinsu", 0x2000ffffffbbbbff, 0x7fffffffddddffff, 38, 4);
TESTINST("dinsu", 0xeeeeff33ff22ffff, 0x2000ffffffffffff, 35, 4);
TESTINST("dinsu", 0x2000ffffffffffff, 0x2000ffffffffbbbb, 36, 4);
TESTINST("dinsu", 0x2000ffffffffbbbb, 0x2000ffffffffffff, 45, 1);
TESTINST("dinsu", 0x2000ffffffffffff, 0xeeeeff33ff22ffff, 46, 4);
TESTINST("dinsu", 0x7fffffffddddffff, 0x2000ffffffbbbbff, 52, 4);
TESTINST("dinsu", 0x2000ffffffff2222, 0x2000ffffffffaaaa, 40, 8);
TESTINST("dinsu", 0x2000ffffffffffff, 0x31415927ffffffff, 39, 4);
TESTINST("dinsu", 0xfffffff31415927f, 0x31415927ffffffff, 60, 4);
TESTINST("dinsu", 0xffffffffffff0008, 0x2000ffffffddddff, 63, 1);
TESTINST("dinsu", 0xffff0000ffffffff, 0x2000ffffffffffff, 50, 4);
TESTINST("dinsu", 0xff0000ffffffffff, 0, 36, 4);
TESTINST("dinsu", 0xfffffffff0000fff, 0, 46, 4);
#else
printf("This test is testing mips64r2 instructions.\n");
#endif
return 0;
}