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