Home | History | Annotate | Download | only in arm
      1 
      2 /* How to compile:
      3 
      4    gcc -O -g -Wall -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp \
      5        -marm -o neon64-a neon64.c
      6 
      7    or
      8 
      9    gcc -O -g -Wall -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp \
     10        -mthumb -o neon64-t neon64.c
     11 
     12 */
     13 
     14 #include <stdio.h>
     15 #include <string.h>
     16 #include <math.h>
     17 
     18 #ifndef __thumb__
     19 // ARM
     20 #define MOVE_to_FPSCR_from_R4 \
     21       ".word 0xEEE14A10 @ vmsr FPSCR, r4\n\t"
     22 #define MOVE_to_R4_from_FPSCR \
     23       ".word 0xEEF14A10 @ vmrs r4, FPSCR\n\t"
     24 #endif
     25 
     26 #ifdef __thumb__
     27 // Thumb
     28 #define MOVE_to_FPSCR_from_R4 \
     29       ".word 0x4A10EEE1 @ vmsr FPSCR, r4\n\t"
     30 #define MOVE_to_R4_from_FPSCR \
     31       ".word 0x4A10EEF1 @ vmrs r4, FPSCR\n\t"
     32 #endif
     33 
     34 static inline unsigned int f2u(float x) {
     35     union {
     36         float f;
     37         unsigned int u;
     38     } cvt;
     39     cvt.f = x;
     40     return cvt.u;
     41 }
     42 
     43 /* test macros to generate and output the result of a single instruction */
     44 
     45 const unsigned int mem[] = {
     46     0x03020100, 0x07060504, 0x0b0a0908, 0x0f0e0d0c,
     47     0x13121110, 0x17161514, 0x1b1a1918, 0x1f1e1d1c,
     48     0x23222120, 0x27262524, 0x2b2a2928, 0x2f2e2d2c,
     49     0x33323130, 0x37363534, 0x3b3a3938, 0x3f3e3d3c
     50 };
     51 
     52 #define TESTINSN_imm(instruction, QD, imm) \
     53 { \
     54   unsigned int out[2]; \
     55 \
     56   __asm__ volatile( \
     57       "vmov.i8 " #QD ", #0x55" "\n\t" \
     58       instruction ", #" #imm "\n\t" \
     59       "vstmia %0, {" #QD "}\n\t" \
     60       : \
     61       : "r" (out) \
     62       : #QD, "memory" \
     63       ); \
     64   fflush(stdout); \
     65   printf("%s, #" #imm " :: Qd 0x%08x 0x%08x\n", \
     66          instruction, out[1], out[0]);          \
     67 } \
     68 { \
     69    unsigned int out[2];   \
     70    unsigned int addr = 0; \
     71    \
     72    __asm__ volatile( \
     73 	 "mov %1, %2\n\t" \
     74 	 "vldmia %1!, {" #QD "}\n\t" \
     75 	 instruction ", #" #imm "\n\t" \
     76 	 "vstmia %0, {" #QD "}\n\t" \
     77 	 : \
     78 	 : "r" (out), "r" (addr), "r" (mem) \
     79 	 : #QD, "%2", "memory" \
     80 	 ); \
     81    fflush(stdout); \
     82    printf("%s, #" #imm " :: Qd 0x%08x 0x%08x\n",        \
     83           instruction, out[1], out[0]);                 \
     84 }
     85 
     86 #define TESTINSN_un(instruction, QD, QM, QMtype, QMval) \
     87 { \
     88   unsigned int out[2]; \
     89 \
     90   __asm__ volatile( \
     91       "vmov.i8 " #QD ", #0x55" "\n\t" \
     92       "vdup." #QMtype " " #QM ", %1\n\t" \
     93       instruction "\n\t" \
     94       "vstmia %0, {" #QD "}\n\t" \
     95       : \
     96       : "r" (out), "r" (QMval) \
     97       : #QD, #QM, "memory" \
     98       ); \
     99   fflush(stdout); \
    100   printf("%s :: Qd 0x%08x 0x%08x  Qm (" #QMtype ")0x%08x\n",    \
    101          instruction, out[1], out[0], QMval);                   \
    102 } \
    103 { \
    104    unsigned int out[2]; \
    105    unsigned int addr = 0; \
    106    \
    107    __asm__ volatile( \
    108 	 "mov %2, %3\n\t" \
    109 	 "vldmia %2!, {" #QD "}\n\t" \
    110 	 "vldmia %2!, {" #QM "}\n\t" \
    111 	 instruction "\n\t" \
    112 	 "vstmia %0, {" #QD "}\n\t" \
    113 	 "vstmia %0, {" #QD "}\n\t" \
    114 	 : \
    115 	 : "r" (out), "r" (QMval), "r" (addr), "r" (mem) \
    116 	 : #QD, #QM, "%2", "memory" \
    117 	 ); \
    118    fflush(stdout); \
    119    printf("%s :: Qd 0x%08x 0x%08x  Qm (" #QMtype ")0x%08x\n",   \
    120           instruction, out[1], out[0], QMval );                 \
    121 }
    122 
    123 #define TESTINSN_un_q(instruction, QD, QM, QMtype, QMval) \
    124 { \
    125   unsigned int out[2]; \
    126   unsigned int fpscr; \
    127 \
    128   __asm__ volatile( \
    129       "vmov.i8 " #QD ", #0x55" "\n\t" \
    130       "mov r4, #0\n\t" \
    131       MOVE_to_FPSCR_from_R4 \
    132       "vdup." #QMtype " " #QM ", %2\n\t" \
    133       instruction "\n\t" \
    134       "vstmia %1, {" #QD "}\n\t" \
    135       MOVE_to_R4_from_FPSCR \
    136       "mov %0, r4" \
    137       : "=r" (fpscr) \
    138       : "r" (out), "r" (QMval) \
    139       : #QD, #QM, "memory", "r4" \
    140       ); \
    141   fflush(stdout); \
    142   printf("%s :: Qd 0x%08x 0x%08x  Qm (" #QMtype ")0x%08x  fpscr %08x\n", \
    143          instruction, out[1], out[0], QMval, fpscr);                    \
    144 } \
    145 { \
    146    unsigned int out[2]; \
    147    unsigned int fpscr; \
    148    unsigned int addr = 0; \
    149    \
    150    __asm__ volatile( \
    151 	 "vmov.i8 " #QD ", #0x55" "\n\t" \
    152 	 "mov r4, #0\n\t" \
    153 	 MOVE_to_FPSCR_from_R4 \
    154 	 "mov %3, %4\n\t" \
    155 	 "vldmia %3!, {" #QM "}\n\t" \
    156 	 instruction "\n\t" \
    157 	 "vstmia %1, {" #QD "}\n\t" \
    158 	 MOVE_to_R4_from_FPSCR \
    159 	 "mov %0, r4" \
    160 	 : "=r" (fpscr) \
    161 	 : "r" (out), "r" (QMval), "r" (addr), "r" (mem) \
    162 	 : #QD, #QM, "memory", "r4" \
    163 	 ); \
    164    fflush(stdout); \
    165    printf("%s :: Qd 0x%08x 0x%08x  Qm (" #QMtype ")0x%08x  fpscr %08x\n", \
    166           instruction, out[1], out[0], QMval, fpscr);                   \
    167 }
    168 
    169 #define TESTINSN_core_to_scalar(instruction, QD, QM, QMval) \
    170 { \
    171   unsigned int out[2]; \
    172 \
    173   __asm__ volatile( \
    174       "vmov.i8 " #QD ", #0x55" "\n\t" \
    175       "mov " #QM ", %1\n\t" \
    176       instruction "\n\t" \
    177       "vstmia %0, {" #QD "}\n\t" \
    178       : \
    179       : "r" (out), "r" (QMval) \
    180       : #QD, #QM, "memory" \
    181       ); \
    182   fflush(stdout); \
    183   printf("%s :: Qd 0x%08x 0x%08x  Qm 0x%08x\n", \
    184          instruction, out[1], out[0], QMval);   \
    185 }
    186 
    187 #define TESTINSN_scalar_to_core(instruction, QD, QM, QMtype, QMval) \
    188 { \
    189   unsigned int out[2]; \
    190 \
    191   __asm__ volatile( \
    192       "mov " #QD ", #0x55" "\n\t" \
    193       "vdup." #QMtype " " #QM ", %1\n\t" \
    194       instruction "\n\t" \
    195       "str " #QD ", [%0]\n\t" \
    196       : \
    197       : "r" (out), "r" (QMval) \
    198       : #QD, #QM, "memory" \
    199       ); \
    200   fflush(stdout); \
    201   printf("%s :: Rd 0x%08x  Qm (" #QMtype ")0x%08x\n",   \
    202          instruction, out[0], QMval);                   \
    203 }
    204 
    205 #define TESTINSN_VLDn(instruction, QD1, QD2, QD3, QD4) \
    206 { \
    207   unsigned int out[9]; \
    208 \
    209   __asm__ volatile( \
    210       "vmov.i8 " #QD1 ", #0x55" "\n\t" \
    211       "vmov.i8 " #QD2 ", #0x55" "\n\t" \
    212       "vmov.i8 " #QD3 ", #0x55" "\n\t" \
    213       "vmov.i8 " #QD4 ", #0x55" "\n\t" \
    214       instruction ", [%1]\n\t" \
    215       "mov r4, %0\n\t" \
    216       "vstmia %0!, {" #QD1 "}\n\t" \
    217       "vstmia %0!, {" #QD2 "}\n\t" \
    218       "vstmia %0!, {" #QD3 "}\n\t" \
    219       "vstmia %0!, {" #QD4 "}\n\t" \
    220       "str %1, [%2]\n\t" \
    221       "mov %0, r4\n\t" \
    222       : \
    223       : "r" (out), "r" (mem), "r"(&out[8]) \
    224       : #QD1, #QD2, #QD3, #QD4, "memory", "r4" \
    225       ); \
    226   fflush(stdout); \
    227   printf("%s :: Result %08x'%08x %08x'%08x " \
    228          "%08x'%08x %08x'%08x  delta %d\n",             \
    229          instruction, out[1], out[0], out[3], out[2], out[5],   \
    230          out[4], out[7], out[6], (int)out[8]-(int)mem);         \
    231 }
    232 
    233 #define TESTINSN_VSTn(instruction, QD1, QD2, QD3, QD4) \
    234 { \
    235   unsigned int out[9]; \
    236 \
    237   memset(out, 0x55, 8 * (sizeof(unsigned int)));\
    238   __asm__ volatile( \
    239       "mov r4, %1\n\t" \
    240       "vldmia %1!, {" #QD1 "}\n\t" \
    241       "vldmia %1!, {" #QD2 "}\n\t" \
    242       "vldmia %1!, {" #QD3 "}\n\t" \
    243       "vldmia %1!, {" #QD4 "}\n\t" \
    244       "mov %1, r4\n\t" \
    245       instruction ", [%0]\n\t" \
    246       "str %0, [%2]\n\t" \
    247       : \
    248       : "r" (out), "r" (mem), "r"(&out[8]) \
    249       : #QD1, #QD2, #QD3, #QD4, "memory", "r4" \
    250       ); \
    251   fflush(stdout); \
    252   printf("%s :: Result %08x'%08x %08x'%08x " \
    253          "%08x'%08x %08x'%08x  delta %d\n",             \
    254          instruction, out[1], out[0], out[3], out[2], out[5],   \
    255          out[4], out[7], out[6], (int)out[8]-(int)out);         \
    256 }
    257 
    258 #define TESTINSN_VLDn_WB(instruction, QD1, QD2, QD3, QD4) \
    259 { \
    260    unsigned int out[9]; \
    261    unsigned int addr = 0; \
    262    \
    263    __asm__ volatile( \
    264 	 "mov %0, %2\n\t" \
    265 	 "vmov.i8 " #QD1 ", #0x55" "\n\t" \
    266 	 "vmov.i8 " #QD2 ", #0x55" "\n\t" \
    267 	 "vmov.i8 " #QD3 ", #0x55" "\n\t" \
    268 	 "vmov.i8 " #QD4 ", #0x55" "\n\t" \
    269 	 instruction ", [%0]!\n\t" \
    270 	 "mov r4, %1\n\t" \
    271 	 "vstmia %1!, {" #QD1 "}\n\t" \
    272 	 "vstmia %1!, {" #QD2 "}\n\t" \
    273 	 "vstmia %1!, {" #QD3 "}\n\t" \
    274 	 "vstmia %1!, {" #QD4 "}\n\t" \
    275 	 "str %0, [%3]\n\t" \
    276 	 "mov %1, r4\n\t" \
    277 	 : "+r" (addr) \
    278 	 : "r" (out), "r" (mem), "r"(&out[8]) \
    279 	 : #QD1, #QD2, #QD3, #QD4, "memory", "r4" \
    280 	 ); \
    281    fflush(stdout); \
    282    printf("%s :: Result 0x%08x 0x%08x 0x%08x 0x%08x "   \
    283           "0x%08x 0x%08x 0x%08x 0x%08x  delta %d\n",            \
    284           instruction, out[0], out[1], out[2], out[3], out[4],  \
    285           out[5], out[6], out[7], (int)out[8]-(int)mem);        \
    286 }
    287 
    288 #define TESTINSN_VSTn_WB(instruction, QD1, QD2, QD3, QD4) \
    289 { \
    290    unsigned int out[9]; \
    291    unsigned int addr = 0;    \
    292    \
    293    memset(out, 0x55, 8 * (sizeof(unsigned int)));\
    294    __asm__ volatile( \
    295 	 "mov %0, %1\n\t" \
    296 	 "mov r4, %2\n\t" \
    297 	 "vldmia r4!, {" #QD1 "}\n\t" \
    298 	 "vldmia r4!, {" #QD2 "}\n\t" \
    299 	 "vldmia r4!, {" #QD3 "}\n\t" \
    300 	 "vldmia r4!, {" #QD4 "}\n\t" \
    301 	 instruction ", [%0]!\n\t" \
    302 	 "str %0, [%3]\n\t" \
    303 	 : "+r" (addr) \
    304 	 : "r" (out), "r" (mem), "r"(&out[8]) \
    305 	 : #QD1, #QD2, #QD3, #QD4, "memory", "r4", "0" \
    306 	 ); \
    307    fflush(stdout); \
    308    printf("%s :: Result 0x%08x 0x%08x 0x%08x 0x%08x "   \
    309           "0x%08x 0x%08x 0x%08x 0x%08x  delta %d\n",            \
    310           instruction, out[0], out[1], out[2], out[3], out[4],  \
    311           out[5], out[6], out[7], (int)out[8]-(int)out);        \
    312 }
    313 
    314 #define TESTINSN_VLDn_RI(instruction, QD1, QD2, QD3, QD4, RM, RMval) \
    315 { \
    316    unsigned int out[9];  \
    317    unsigned int addr = 0;    \
    318    \
    319    __asm__ volatile( \
    320 	 "mov %0, %2\n\t" \
    321 	 "vmov.i8 " #QD1 ", #0x55" "\n\t" \
    322 	 "vmov.i8 " #QD2 ", #0x55" "\n\t" \
    323 	 "vmov.i8 " #QD3 ", #0x55" "\n\t" \
    324 	 "vmov.i8 " #QD4 ", #0x55" "\n\t" \
    325 	 "mov " #RM ", %4\n\t" \
    326 	 instruction ", [%0], " #RM "\n\t" \
    327 	 "mov r4, %1\n\t" \
    328 	 "vstmia %1!, {" #QD1 "}\n\t" \
    329 	 "vstmia %1!, {" #QD2 "}\n\t" \
    330 	 "vstmia %1!, {" #QD3 "}\n\t" \
    331 	 "vstmia %1!, {" #QD4 "}\n\t" \
    332 	 "str %0, [%3]\n\t" \
    333 	 "mov %1, r4\n\t" \
    334 	 : "+r" (addr) \
    335 	 : "r" (out), "r" (mem), "r"(&out[8]), "r"(RMval) \
    336 	 : #QD1, #QD2, #QD3, #QD4, "memory", "r4", #RM \
    337 	 ); \
    338    fflush(stdout); \
    339    printf("%s :: Result 0x%08x 0x%08x 0x%08x 0x%08x "   \
    340           "0x%08x 0x%08x 0x%08x 0x%08x  delta %d\n",            \
    341           instruction, out[0], out[1], out[2], out[3], out[4],  \
    342           out[5], out[6], out[7], (int)out[8]-(int)addr);       \
    343 }
    344 
    345 
    346 #define TESTINSN_VSTn_RI(instruction, QD1, QD2, QD3, QD4, RM, RMval) \
    347 { \
    348    unsigned int out[9]; \
    349    unsigned int addr = 0;    \
    350    \
    351    memset(out, 0x55, 8 * (sizeof(unsigned int)));\
    352    __asm__ volatile( \
    353 	 "mov %0, %1\n\t" \
    354 	 "mov r4, %2\n\t" \
    355 	 "vldmia r4!, {" #QD1 "}\n\t" \
    356 	 "vldmia r4!, {" #QD2 "}\n\t" \
    357 	 "vldmia r4!, {" #QD3 "}\n\t" \
    358 	 "vldmia r4!, {" #QD4 "}\n\t" \
    359 	 "mov " #RM ", %4\n\t" \
    360 	 instruction ", [%0], " #RM "\n\t" \
    361 	 "str %0, [%3]\n\t" \
    362 	 : "+r" (addr) \
    363 	 : "r" (out), "r" (mem), "r"(&out[8]), "r"(RMval) \
    364 	 : #QD1, #QD2, #QD3, #QD4, "memory", "r4", #RM \
    365 	 ); \
    366    fflush(stdout); \
    367    printf("%s :: Result 0x%08x 0x%08x 0x%08x 0x%08x "   \
    368           "0x%08x 0x%08x 0x%08x 0x%08x  delta %d\n",            \
    369           instruction, out[0], out[1], out[2], out[3], out[4],  \
    370           out[5], out[6], out[7], (int)out[8]-(int)out);        \
    371 }
    372 
    373 #define TESTINSN_bin(instruction, QD, QM, QMtype, QMval, QN, QNtype, QNval) \
    374 { \
    375   unsigned int out[2]; \
    376 \
    377   __asm__ volatile( \
    378       "vmov.i8 " #QD ", #0x55" "\n\t" \
    379       "vdup." #QMtype " " #QM ", %1\n\t" \
    380       "vdup." #QNtype " " #QN ", %2\n\t" \
    381       instruction "\n\t" \
    382       "vstmia %0, {" #QD "}\n\t" \
    383       : \
    384       : "r" (out), "r" (QMval), "r" (QNval) \
    385       : #QD, #QM, #QN, "memory" \
    386       ); \
    387   fflush(stdout); \
    388   printf("%s :: Qd 0x%08x 0x%08x  Qm (" #QMtype ")0x%08x"       \
    389          "  Qn (" #QNtype ")0x%08x\n",                          \
    390          instruction, out[1], out[0], QMval, QNval);            \
    391 } \
    392 { \
    393    unsigned int out[2]; \
    394    unsigned int addr = 0; \
    395    \
    396    __asm__ volatile( \
    397 	 "mov %0, %4\n\t" \
    398 	 "vldmia %0!, {" #QM "}\n\t" \
    399 	 "vmov.i8 " #QD ", #0x55" "\n\t" \
    400 	 "vdup." #QNtype " " #QN ", %3\n\t" \
    401 	 instruction "\n\t" \
    402 	 "vstmia %1, {" #QD "}\n\t" \
    403 	 : "+r" (addr) \
    404 	 : "r" (out), "r" (QMval), "r" (QNval), "r" (mem) \
    405 	 : #QD, #QM, #QN, "memory" \
    406 	 ); \
    407    fflush(stdout); \
    408    printf("%s :: Qd 0x%08x 0x%08x  Qm (" #QMtype ")0x%08x"      \
    409           "  Qn (" #QNtype ")0x%08x\n",                         \
    410           instruction, out[1], out[0], QMval, QNval);           \
    411 }
    412 
    413 #define TESTINSN_bin_f(instruction, QD, QM, QMtype, QMval, QN, QNtype, QNval) \
    414 { \
    415   unsigned int out[2]; \
    416 \
    417   __asm__ volatile( \
    418       "vdup.i32 " #QD ", %3\n\t" \
    419       "vdup." #QMtype " " #QM ", %1\n\t" \
    420       "vdup." #QNtype " " #QN ", %2\n\t" \
    421       instruction "\n\t" \
    422       "vstmia %0, {" #QD "}\n\t" \
    423       : \
    424       : "r" (out), "r" (QMval), "r" (QNval), "r"(0x3f800000) \
    425       : #QD, #QM, #QN, "memory" \
    426       ); \
    427   fflush(stdout); \
    428   printf("%s :: Qd 0x%08x 0x%08x  Qm (" #QMtype ")0x%08x"       \
    429          "  Qn (" #QNtype ")0x%08x\n",                          \
    430          instruction, out[1], out[0], QMval, QNval);            \
    431 } \
    432 { \
    433      unsigned int out[2]; \
    434      unsigned int addr = 0; \
    435    \
    436      __asm__ volatile( \
    437 	         "vdup.i32 " #QD ", %3\n\t" \
    438 	         "mov %4, %5\n\t" \
    439 	         "vldmia %4!, {" #QM "}\n\t" \
    440 	         "vdup." #QNtype " " #QN ", %2\n\t" \
    441 	         instruction "\n\t" \
    442 	         "vstmia %0, {" #QD "}\n\t" \
    443 	         : \
    444 	         : "r" (out), "r" (QMval), "r" (QNval), "r"(0x3f800000), "r" (addr), "r" (mem) \
    445 	         : #QD, #QM, #QN, "memory" \
    446 	         ); \
    447      fflush(stdout); \
    448      printf("%s :: Qd 0x%08x 0x%08x  Qm (" #QMtype ")0x%08x"    \
    449             "  Qn (" #QNtype ")0x%08x\n",                       \
    450             instruction, out[1], out[0], QMval, QNval);         \
    451 }
    452 
    453 #define TESTINSN_tbl(instruction, QD, QM, QMtype, QMval, QN1, QN1type, QN1val, \
    454         QN2, QN2type, QN2val, QN3, QN3type, QN3val, QN4, QN4type, QN4val) \
    455 { \
    456   unsigned int out[2]; \
    457 \
    458   __asm__ volatile( \
    459       "vmov.i8 " #QD ", #0x55" "\n\t" \
    460       "vdup." #QMtype " " #QM ", %1\n\t" \
    461       "vdup." #QN1type " " #QN1 ", %2\n\t" \
    462       "vdup." #QN2type " " #QN2 ", %3\n\t" \
    463       "vdup." #QN3type " " #QN3 ", %4\n\t" \
    464       "vdup." #QN4type " " #QN4 ", %5\n\t" \
    465       instruction "\n\t" \
    466       "vstmia %0, {" #QD "}\n\t" \
    467       : \
    468       : "r" (out), "r" (QMval), "r" (QN1val), "r" (QN2val), "r" (QN3val), \
    469         "r" (QN4val) \
    470       : #QD, #QM, #QN1, #QN2, #QN3, #QN4, "memory" \
    471       ); \
    472   fflush(stdout); \
    473   printf("%s :: Qd 0x%08x 0x%08x  Qm (" #QMtype ")0x%08x"       \
    474          "  Qn1 (" #QN1type ")0x%08x"                           \
    475          "  Qn2 (" #QN2type ")0x%08x"                           \
    476          "  Qn3 (" #QN3type ")0x%08x"                                   \
    477          "  Qn4 (" #QN4type ")0x%08x\n",                                \
    478          instruction, out[1], out[0], QMval, QN1val, QN2val, QN3val, QN4val); \
    479 } \
    480 { \
    481    unsigned int out[2]; \
    482    unsigned int addr = 0; \
    483    \
    484    __asm__ volatile( \
    485 	 "mov %6, %7\n\t" \
    486 	 "vmov.i8 " #QD ", #0x55" "\n\t" \
    487 	 "vdup." #QMtype " " #QM ", %1\n\t" \
    488 	 "vldmia %6!, {" #QN1 "}\n\t" \
    489 	 "vdup." #QN2type " " #QN2 ", %3\n\t" \
    490 	 "vldmia %6!, {" #QN3 "}\n\t" \
    491 	 "vdup." #QN4type " " #QN4 ", %5\n\t" \
    492 	 instruction "\n\t" \
    493 	 "vstmia %0, {" #QD "}\n\t" \
    494 	 : \
    495 	 : "r" (out), "r" (QMval), "r" (QN1val), "r" (QN2val), "r" (QN3val), \
    496 	 "r" (QN4val), "r" (addr), "r" (mem) \
    497 	 : #QD, #QM, #QN1, #QN2, #QN3, #QN4, "memory" \
    498 	 ); \
    499    fflush(stdout); \
    500    printf("%s :: Qd 0x%08x 0x%08x  Qm (" #QMtype ")0x%08x"      \
    501           "  Qn1 (" #QN1type ")0x%08x"                          \
    502           "  Qn2 (" #QN2type ")0x%08x"                          \
    503           "  Qn3 (" #QN3type ")0x%08x"                          \
    504           "  Qn4 (" #QN4type ")0x%08x\n",                               \
    505           instruction, out[1], out[0], QMval, QN1val, QN2val, QN3val, QN4val); \
    506 }
    507 
    508 #define TESTINSN_tbl_1(instruction, QD, QM, QMtype, QMval, QN1, QN1type, QN1val) \
    509     TESTINSN_tbl(instruction, QD, QM, QMtype, QMval, QN1, QN1type, QN1val, \
    510             QN1, QN1type, QN1val, QN1, QN1type, QN1val, QN1, QN1type, QN1val)
    511 #define TESTINSN_tbl_2(instruction, QD, QM, QMtype, QMval, QN1, QN1type, QN1val, \
    512         QN2, QN2type, QN2val) \
    513     TESTINSN_tbl(instruction, QD, QM, QMtype, QMval, QN1, QN1type, QN1val, \
    514             QN2, QN2type, QN2val, QN1, QN1type, QN1val, QN2, QN2type, QN2val)
    515 #define TESTINSN_tbl_3(instruction, QD, QM, QMtype, QMval, QN1, QN1type, QN1val, \
    516         QN2, QN2type, QN2val, QN3, QN3type, QN3val) \
    517     TESTINSN_tbl(instruction, QD, QM, QMtype, QMval, QN1, QN1type, QN1val, \
    518             QN2, QN2type, QN2val, QN3, QN3type, QN3val, QN2, QN2type, QN2val)
    519 #define TESTINSN_tbl_4(instruction, QD, QM, QMtype, QMval, QN1, QN1type, QN1val, \
    520         QN2, QN2type, QN2val, QN3, QN3type, QN3val, QN4, QN4type, QN4val) \
    521     TESTINSN_tbl(instruction, QD, QM, QMtype, QMval, QN1, QN1type, QN1val, \
    522             QN2, QN2type, QN2val, QN3, QN3type, QN3val, QN4, QN4type, QN4val)
    523 
    524 #define TESTINSN_bin_q(instruction, QD, QM, QMtype, QMval, QN, QNtype, QNval) \
    525 { \
    526   unsigned int out[2]; \
    527   unsigned int fpscr; \
    528 \
    529   __asm__ volatile( \
    530       "vmov.i8 " #QD ", #0x55" "\n\t" \
    531       "mov r4, #0\n\t" \
    532       MOVE_to_FPSCR_from_R4 \
    533       "vdup." #QMtype " " #QM ", %2\n\t" \
    534       "vdup." #QNtype " " #QN ", %3\n\t" \
    535       instruction "\n\t" \
    536       "vstmia %1, {" #QD "}\n\t" \
    537       MOVE_to_R4_from_FPSCR \
    538       "mov %0, r4" \
    539       : "=r" (fpscr) \
    540       : "r" (out), "r" (QMval), "r" (QNval) \
    541       : #QD, #QM, #QN, "memory", "r4" \
    542       ); \
    543   fflush(stdout); \
    544   printf("%s :: Qd 0x%08x 0x%08x  Qm (" #QMtype ")0x%08x"       \
    545          "  Qn (" #QNtype ")0x%08x  fpscr: %08x\n",             \
    546          instruction, out[1], out[0], QMval, QNval, fpscr);     \
    547 } \
    548 { \
    549      unsigned int out[2]; \
    550      unsigned int fpscr; \
    551      unsigned int addr = 0; \
    552    \
    553      __asm__ volatile( \
    554 	         "vmov.i8 " #QD ", #0x55" "\n\t" \
    555 	         "mov r4, #0\n\t" \
    556 	         MOVE_to_FPSCR_from_R4 \
    557 	         "mov %4, %5\n\t" \
    558 	         "vldmia %4!, {" #QM "}\n\t" \
    559 	         "vdup." #QNtype " " #QN ", %3\n\t" \
    560 	         instruction "\n\t" \
    561 	         "vstmia %1, {" #QD "}\n\t" \
    562 	         MOVE_to_R4_from_FPSCR \
    563 	         "mov %0, r4" \
    564 	         : "=r" (fpscr) \
    565 	         : "r" (out), "r" (QMval), "r" (QNval), "r" (addr), "r" (mem)  \
    566 	         : #QD, #QM, #QN, "memory", "r4" \
    567 	         ); \
    568      fflush(stdout); \
    569      printf("%s :: Qd 0x%08x 0x%08x  Qm (" #QMtype ")0x%08x"    \
    570             "  Qn (" #QNtype ")0x%08x  fpscr: %08x\n",              \
    571             instruction, out[1], out[0], QMval, QNval, fpscr);      \
    572 }
    573 
    574 #define TESTINSN_dual(instruction, QM, QMtype, QMval, QN, QNtype, QNval) \
    575 { \
    576    unsigned int out1[2]; \
    577    unsigned int out2[2]; \
    578    unsigned int addr = 0;    \
    579    \
    580    __asm__ volatile( \
    581 	 "mov %4, %5\n\t" \
    582 	 "vldmia %4!, {" #QM "}\n\t" \
    583 	 "vdup." #QNtype " " #QN ", %3\n\t" \
    584 	 instruction "\n\t" \
    585 	 "vstmia %0, {" #QM "}\n\t" \
    586 	 "vstmia %1, {" #QN "}\n\t" \
    587 	 : \
    588 	 : "r" (out1), "r" (out2), "r" (QMval), "r" (QNval), "r" (addr), "r" (mem) \
    589 	 : #QM, #QN, "memory" \
    590 	 ); \
    591    fflush(stdout); \
    592    printf("%s :: Qm 0x%08x 0x%08x  Qn 0x%08x 0x%08x  Qm (" #QMtype ")0x%08x" \
    593           "  Qn (" #QNtype ")0x%08x\n",                                 \
    594           instruction, out1[1], out1[0], out2[1], out2[0], QMval, QNval); \
    595 } \
    596 { \
    597      unsigned int out1[2]; \
    598      unsigned int out2[2]; \
    599      unsigned int addr = 0;    \
    600    \
    601      __asm__ volatile( \
    602 	         "mov %4, %5\n\t" \
    603 	         "vldmia %4!, {" #QM "}\n\t" \
    604 	         "vdup." #QNtype " " #QN ", %3\n\t" \
    605 	         instruction "\n\t" \
    606 	         "vstmia %0, {" #QM "}\n\t" \
    607 	         "vstmia %1, {" #QN "}\n\t" \
    608 	         : \
    609 	         : "r" (out1), "r" (out2), "r" (QMval), "r" (QNval), "r" (addr), "r" (mem) \
    610 	         : #QM, #QN, "%4", "memory" \
    611 	         ); \
    612      fflush(stdout); \
    613      printf("%s :: Qm 0x%08x 0x%08x  Qn 0x%08x 0x%08x  Qm (" #QMtype ")0x%08x" \
    614             "  Qn (" #QNtype ")0x%08x\n",                               \
    615             instruction, out1[1], out1[0], out2[1], out2[0], QMval, QNval); \
    616 }
    617 
    618 #if 0
    619 #define TESTINSN_2reg_shift(instruction, QD, QM, QMtype, QMval, imm) \
    620 { \
    621   unsigned int out[2]; \
    622 \
    623   __asm__ volatile( \
    624       "vmov.i8 " #QD ", #0x55" "\n\t" \
    625       "vdup." #QMtype " " #QM ", %1\n\t" \
    626       instruction ", #" #imm "\n\t" \
    627       "vstmia %0, {" #QD "}\n\t" \
    628       : \
    629       : "r" (out), "r" (QMval) \
    630       : #QD, #QM, "memory" \
    631       ); \
    632   fflush(stdout); \
    633   printf("%s, #" #imm " :: Qd 0x%08x 0x%08x  Qm (" #QMtype ")0x%08x",   \
    634          instruction, out[1], out[0], QMval);                           \
    635 }
    636 #endif
    637 
    638 int main(int argc, char **argv)
    639 {
    640     fflush(stdout);
    641     printf("----- VMOV (immediate) -----\n");
    642     TESTINSN_imm("vmov.i32 d0", d0, 0x7);
    643     TESTINSN_imm("vmov.i16 d1", d1, 0x7);
    644     TESTINSN_imm("vmov.i8 d2", d2, 0x7);
    645     TESTINSN_imm("vmov.i32 d5", d5, 0x700);
    646     TESTINSN_imm("vmov.i16 d7", d7, 0x700);
    647     TESTINSN_imm("vmov.i32 d10", d10, 0x70000);
    648     TESTINSN_imm("vmov.i32 d12", d12, 0x7000000);
    649     TESTINSN_imm("vmov.i32 d13", d13, 0x7FF);
    650     TESTINSN_imm("vmov.i32 d14", d14, 0x7FFFF);
    651     TESTINSN_imm("vmov.i64 d15", d15, 0xFF0000FF00FFFF00);
    652     TESTINSN_imm("vmov.f32 d0", d0, 0.328125);
    653     TESTINSN_imm("vmov.f32 d0", d0, -0.328125);
    654 
    655     fflush(stdout);
    656     printf("----- VMVN (immediate) -----\n");
    657     TESTINSN_imm("vmvn.i32 d0", d0, 0x7);
    658     TESTINSN_imm("vmvn.i16 d1", d1, 0x7);
    659     TESTINSN_imm("vmvn.i8 d2", d2, 0x7);
    660     TESTINSN_imm("vmvn.i32 d5", d5, 0x700);
    661     TESTINSN_imm("vmvn.i16 d7", d7, 0x700);
    662     TESTINSN_imm("vmvn.i32 d10", d10, 0x70000);
    663     TESTINSN_imm("vmvn.i32 d13", d13, 0x7000000);
    664     TESTINSN_imm("vmvn.i32 d11", d11, 0x7FF);
    665     TESTINSN_imm("vmvn.i32 d14", d14, 0x7FFFF);
    666     TESTINSN_imm("vmvn.i64 d15", d15, 0xFF0000FF00FFFF00);
    667 
    668     fflush(stdout);
    669     printf("----- VORR (immediate) -----\n");
    670     TESTINSN_imm("vorr.i32 d0", d0, 0x7);
    671     TESTINSN_imm("vorr.i16 d2", d2, 0x7);
    672     TESTINSN_imm("vorr.i32 d8", d8, 0x700);
    673     TESTINSN_imm("vorr.i16 d6", d6, 0x700);
    674     TESTINSN_imm("vorr.i32 d14", d14, 0x70000);
    675     TESTINSN_imm("vorr.i32 d15", d15, 0x7000000);
    676 
    677     fflush(stdout);
    678     printf("----- VBIC (immediate) -----\n");
    679     TESTINSN_imm("vbic.i32 d0", d0, 0x7);
    680     TESTINSN_imm("vbic.i16 d3", d3, 0x7);
    681     TESTINSN_imm("vbic.i32 d5", d5, 0x700);
    682     TESTINSN_imm("vbic.i16 d8", d8, 0x700);
    683     TESTINSN_imm("vbic.i32 d10", d10, 0x70000);
    684     TESTINSN_imm("vbic.i32 d15", d15, 0x7000000);
    685 
    686     fflush(stdout);
    687     printf("---- VMVN (register) ----\n");
    688     TESTINSN_un("vmvn d0, d1", d0, d1, i32, 24);
    689     TESTINSN_un("vmvn d10, d15", d10, d15, i32, 24);
    690     TESTINSN_un("vmvn d0, d14", d0, d14, i32, 24);
    691 
    692     fflush(stdout);
    693     printf("---- VMOV (register) ----\n");
    694     TESTINSN_un("vmov d0, d1", d0, d1, i32, 24);
    695     TESTINSN_un("vmov d10, d15", d10, d15, i32, 24);
    696     TESTINSN_un("vmov d0, d14", d0, d14, i32, 24);
    697 
    698     fflush(stdout);
    699     printf("---- VDUP (ARM core register) (tested indirectly) ----\n");
    700     TESTINSN_un("vmov d0, d1", d0, d1, i8, 7);
    701     TESTINSN_un("vmov d10, d11", d10, d11, i16, 7);
    702     TESTINSN_un("vmov d0, d15", d0, d15, i32, 7);
    703 
    704     fflush(stdout);
    705     printf("---- VADD ----\n");
    706     TESTINSN_bin("vadd.i32 d0, d1, d2", d0, d1, i32, 24, d2, i32, 120);
    707     TESTINSN_bin("vadd.i64 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    708     TESTINSN_bin("vadd.i32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    709     TESTINSN_bin("vadd.i16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    710     TESTINSN_bin("vadd.i8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    711     TESTINSN_bin("vadd.i8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
    712     TESTINSN_bin("vadd.i16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
    713     TESTINSN_bin("vadd.i32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
    714     TESTINSN_bin("vadd.i64 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
    715     TESTINSN_bin("vadd.i32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
    716     TESTINSN_bin("vadd.i64 d13, d14, d15", d13, d14, i32, 140, d15, i32, 120);
    717 
    718     fflush(stdout);
    719     printf("---- VSUB ----\n");
    720     TESTINSN_bin("vsub.i32 d0, d1, d2", d0, d1, i32, 24, d2, i32, 120);
    721     TESTINSN_bin("vsub.i64 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    722     TESTINSN_bin("vsub.i32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    723     TESTINSN_bin("vsub.i16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    724     TESTINSN_bin("vsub.i8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    725     TESTINSN_bin("vsub.i8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
    726     TESTINSN_bin("vsub.i16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
    727     TESTINSN_bin("vsub.i32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
    728     TESTINSN_bin("vsub.i64 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
    729     TESTINSN_bin("vsub.i32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
    730     TESTINSN_bin("vsub.i64 d13, d14, d15", d13, d14, i32, 140, d15, i32, 120);
    731 
    732     fflush(stdout);
    733     printf("---- VAND ----\n");
    734     TESTINSN_bin("vand d0, d1, d2", d0, d1, i8, 0x24, d2, i16, 0x77);
    735     TESTINSN_bin("vand d4, d6, d5", d4, d6, i8, 0xff, d5, i16, 0x57);
    736     TESTINSN_bin("vand d10, d11, d12", d10, d11, i8, 0xfe, d12, i8, 0xed);
    737     TESTINSN_bin("vand d15, d15, d15", d15, d15, i8, 0xff, d15, i8, 0xff);
    738 
    739     fflush(stdout);
    740     printf("---- VBIC ----\n");
    741     TESTINSN_bin("vbic d0, d1, d2", d0, d1, i8, 0x24, d2, i16, 0x77);
    742     TESTINSN_bin("vbic d4, d6, d5", d4, d6, i8, 0xff, d5, i16, 0x57);
    743     TESTINSN_bin("vbic d10, d11, d12", d10, d11, i8, 0xfe, d12, i8, 0xed);
    744     TESTINSN_bin("vbic d15, d15, d15", d15, d15, i8, 0xff, d15, i8, 0xff);
    745 
    746     fflush(stdout);
    747     printf("---- VORR ----\n");
    748     TESTINSN_bin("vorr d0, d1, d2", d0, d1, i8, 0x24, d2, i16, 0x73);
    749     TESTINSN_bin("vorr d7, d3, d0", d7, d3, i8, 0x24, d0, i16, 0xff);
    750     TESTINSN_bin("vorr d4, d4, d4", d4, d4, i16, 0xff, d4, i16, 0xff);
    751     TESTINSN_bin("vorr d2, d3, d15", d2, d3, i32, 0x24, d15, i32, 0x1f);
    752 
    753     fflush(stdout);
    754     printf("---- VORN ----\n");
    755     TESTINSN_bin("vorn d0, d1, d2", d0, d1, i8, 0x24, d2, i16, 0x73);
    756     TESTINSN_bin("vorn d7, d3, d0", d7, d3, i8, 0x24, d0, i16, 0xff);
    757     TESTINSN_bin("vorn d4, d4, d4", d4, d4, i16, 0xff, d4, i16, 0xff);
    758     TESTINSN_bin("vorn d2, d3, d15", d2, d3, i32, 0x24, d15, i32, 0x1f);
    759 
    760     fflush(stdout);
    761     printf("---- VEOR ----\n");
    762     TESTINSN_bin("veor d0, d1, d2", d0, d1, i8, 0x24, d2, i16, 0x77);
    763     TESTINSN_bin("veor d4, d6, d5", d4, d6, i8, 0xff, d5, i16, 0x57);
    764     TESTINSN_bin("veor d10, d11, d12", d10, d11, i8, 0xfe, d12, i8, 0xed);
    765     TESTINSN_bin("veor d15, d15, d15", d15, d15, i8, 0xff, d15, i8, 0xff);
    766     TESTINSN_bin("veor d0, d1, d2", d0, d1, i8, 0x24, d2, i16, 0x73);
    767     TESTINSN_bin("veor d7, d3, d0", d7, d3, i8, 0x24, d0, i16, 0xff);
    768     TESTINSN_bin("veor d4, d4, d4", d4, d4, i16, 0xff, d4, i16, 0xff);
    769     TESTINSN_bin("veor d2, d3, d15", d2, d3, i32, 0x24, d15, i32, 0x1f);
    770 
    771     fflush(stdout);
    772     printf("---- VBSL ----\n");
    773     TESTINSN_bin("vbsl d0, d1, d2", d0, d1, i8, 0x24, d2, i16, 0x77);
    774     TESTINSN_bin("vbsl d4, d6, d5", d4, d6, i8, 0xff, d5, i16, 0x57);
    775     TESTINSN_bin("vbsl d10, d11, d12", d10, d11, i8, 0xfe, d12, i8, 0xed);
    776     TESTINSN_bin("vbsl d15, d15, d15", d15, d15, i8, 0xff, d15, i8, 0xff);
    777     TESTINSN_bin("vbsl d0, d1, d2", d0, d1, i8, 0x24, d2, i16, 0x73);
    778     TESTINSN_bin("vbsl d7, d3, d0", d7, d3, i8, 0x24, d0, i16, 0xff);
    779     TESTINSN_bin("vbsl d4, d4, d4", d4, d4, i16, 0xff, d4, i16, 0xff);
    780     TESTINSN_bin("vbsl d2, d3, d15", d2, d3, i32, 0x24, d15, i32, 0x1f);
    781 
    782     fflush(stdout);
    783     printf("---- VBIT ----\n");
    784     TESTINSN_bin("vbit d0, d1, d2", d0, d1, i8, 0x24, d2, i16, 0x77);
    785     TESTINSN_bin("vbit d4, d6, d5", d4, d6, i8, 0xff, d5, i16, 0x57);
    786     TESTINSN_bin("vbit d10, d11, d12", d10, d11, i8, 0xfe, d12, i8, 0xed);
    787     TESTINSN_bin("vbit d15, d15, d15", d15, d15, i8, 0xff, d15, i8, 0xff);
    788     TESTINSN_bin("vbit d0, d1, d2", d0, d1, i8, 0x24, d2, i16, 0x73);
    789     TESTINSN_bin("vbit d7, d3, d0", d7, d3, i8, 0x24, d0, i16, 0xff);
    790     TESTINSN_bin("vbit d4, d4, d4", d4, d4, i16, 0xff, d4, i16, 0xff);
    791     TESTINSN_bin("vbit d2, d3, d15", d2, d3, i32, 0x24, d15, i32, 0x1f);
    792 
    793     fflush(stdout);
    794     printf("---- VBIF ----\n");
    795     TESTINSN_bin("vbif d0, d1, d2", d0, d1, i8, 0x24, d2, i16, 0x77);
    796     TESTINSN_bin("vbif d4, d6, d5", d4, d6, i8, 0xff, d5, i16, 0x57);
    797     TESTINSN_bin("vbif d10, d11, d12", d10, d11, i8, 0xfe, d12, i8, 0xed);
    798     TESTINSN_bin("vbif d15, d15, d15", d15, d15, i8, 0xff, d15, i8, 0xff);
    799     TESTINSN_bin("vbif d0, d1, d2", d0, d1, i8, 0x24, d2, i16, 0x73);
    800     TESTINSN_bin("vbif d7, d3, d0", d7, d3, i8, 0x24, d0, i16, 0xff);
    801     TESTINSN_bin("vbif d4, d4, d4", d4, d4, i16, 0xff, d4, i16, 0xff);
    802     TESTINSN_bin("vbif d2, d3, d15", d2, d3, i32, 0x24, d15, i32, 0x1f);
    803 
    804     fflush(stdout);
    805     printf("---- VEXT ----\n");
    806     TESTINSN_bin("vext.8 d0, d1, d2, #0", d0, d1, i8, 0x77, d2, i8, 0xff);
    807     TESTINSN_bin("vext.8 d0, d1, d2, #1", d0, d1, i8, 0x77, d2, i8, 0xff);
    808     TESTINSN_bin("vext.8 d0, d1, d2, #7", d0, d1, i8, 0x77, d2, i8, 0xff);
    809     TESTINSN_bin("vext.8 d0, d1, d2, #6", d0, d1, i8, 0x77, d2, i8, 0xff);
    810     TESTINSN_bin("vext.8 d10, d11, d12, #4", d10, d11, i8, 0x77, d12, i8, 0xff);
    811     TESTINSN_bin("vext.8 d0, d5, d15, #5", d0, d5, i8, 0x77, d15, i8, 0xff);
    812 
    813     fflush(stdout);
    814     printf("---- VHADD ----\n");
    815     TESTINSN_bin("vhadd.s32 d0, d1, d2", d0, d1, i32, 24, d2, i32, 120);
    816     TESTINSN_bin("vhadd.s32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    817     TESTINSN_bin("vhadd.s16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    818     TESTINSN_bin("vhadd.s8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    819     TESTINSN_bin("vhadd.s8 d0, d1, d2", d0, d1, i8, 141, d2, i8, 121);
    820     TESTINSN_bin("vhadd.s8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
    821     TESTINSN_bin("vhadd.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
    822     TESTINSN_bin("vhadd.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
    823     TESTINSN_bin("vhadd.s32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
    824     TESTINSN_bin("vhadd.u32 d0, d1, d2", d0, d1, i32, 24, d2, i32, 120);
    825     TESTINSN_bin("vhadd.u32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    826     TESTINSN_bin("vhadd.u16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    827     TESTINSN_bin("vhadd.u8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    828     TESTINSN_bin("vhadd.u8 d0, d1, d2", d0, d1, i8, 141, d2, i8, 121);
    829     TESTINSN_bin("vhadd.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
    830     TESTINSN_bin("vhadd.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
    831     TESTINSN_bin("vhadd.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
    832     TESTINSN_bin("vhadd.u32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
    833 
    834     fflush(stdout);
    835     printf("---- VHSUB ----\n");
    836     TESTINSN_bin("vhsub.s32 d0, d1, d2", d0, d1, i32, 24, d2, i32, 120);
    837     TESTINSN_bin("vhsub.s32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    838     TESTINSN_bin("vhsub.s16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    839     TESTINSN_bin("vhsub.s8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    840     TESTINSN_bin("vhsub.s8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
    841     TESTINSN_bin("vhsub.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
    842     TESTINSN_bin("vhsub.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
    843     TESTINSN_bin("vhsub.s32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
    844     TESTINSN_bin("vhsub.u32 d0, d1, d2", d0, d1, i32, 24, d2, i32, 120);
    845     TESTINSN_bin("vhsub.u32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    846     TESTINSN_bin("vhsub.u16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    847     TESTINSN_bin("vhsub.u8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    848     TESTINSN_bin("vhsub.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
    849     TESTINSN_bin("vhsub.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
    850     TESTINSN_bin("vhsub.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
    851     TESTINSN_bin("vhsub.u32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
    852 
    853     fflush(stdout);
    854     printf("---- VQADD ----\n");
    855     TESTINSN_bin_q("vqadd.s32 d0, d1, d2", d0, d1, i32, 24, d2, i32, 120);
    856     TESTINSN_bin_q("vqadd.s32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    857     TESTINSN_bin_q("vqadd.s16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    858     TESTINSN_bin_q("vqadd.s8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    859     TESTINSN_bin_q("vqadd.s8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
    860     TESTINSN_bin_q("vqadd.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
    861     TESTINSN_bin_q("vqadd.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
    862     TESTINSN_bin_q("vqadd.s32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
    863     TESTINSN_bin_q("vqadd.u32 d0, d1, d2", d0, d1, i32, 24, d2, i32, 120);
    864     TESTINSN_bin_q("vqadd.u32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    865     TESTINSN_bin_q("vqadd.u16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    866     TESTINSN_bin_q("vqadd.u8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    867     TESTINSN_bin_q("vqadd.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
    868     TESTINSN_bin_q("vqadd.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
    869     TESTINSN_bin_q("vqadd.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
    870     TESTINSN_bin_q("vqadd.u32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
    871 
    872     fflush(stdout);
    873     printf("---- VQSUB ----\n");
    874     TESTINSN_bin_q("vqsub.s32 d0, d1, d2", d0, d1, i32, 24, d2, i32, 120);
    875     TESTINSN_bin_q("vqsub.s32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    876     TESTINSN_bin_q("vqsub.s16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    877     TESTINSN_bin_q("vqsub.s8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    878     TESTINSN_bin_q("vqsub.s8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
    879     TESTINSN_bin_q("vqsub.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
    880     TESTINSN_bin_q("vqsub.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
    881     TESTINSN_bin_q("vqsub.s32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
    882     TESTINSN_bin_q("vqsub.u32 d0, d1, d2", d0, d1, i32, 24, d2, i32, 120);
    883     TESTINSN_bin_q("vqsub.u32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    884     TESTINSN_bin_q("vqsub.u16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    885     TESTINSN_bin_q("vqsub.u8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    886     TESTINSN_bin_q("vqsub.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
    887     TESTINSN_bin_q("vqsub.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
    888     TESTINSN_bin_q("vqsub.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
    889     TESTINSN_bin_q("vqsub.u32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
    890 
    891     fflush(stdout);
    892     printf("---- VRHADD ----\n");
    893     TESTINSN_bin("vrhadd.s32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 120);
    894     TESTINSN_bin("vrhadd.s32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 121);
    895     TESTINSN_bin("vrhadd.s32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    896     TESTINSN_bin("vrhadd.s16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    897     TESTINSN_bin("vrhadd.s8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    898     TESTINSN_bin("vrhadd.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 1, d5, i32, (1 << 31) + 2);
    899     TESTINSN_bin("vrhadd.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
    900     TESTINSN_bin("vrhadd.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
    901     TESTINSN_bin("vrhadd.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 1, d5, i32, (1 << 31) + 3);
    902     TESTINSN_bin("vrhadd.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
    903     TESTINSN_bin("vrhadd.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
    904     TESTINSN_bin("vrhadd.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 4, d5, i32, (1 << 31) + 2);
    905     TESTINSN_bin("vrhadd.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
    906     TESTINSN_bin("vrhadd.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
    907     TESTINSN_bin("vrhadd.s32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
    908     TESTINSN_bin("vrhadd.u32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 120);
    909     TESTINSN_bin("vrhadd.u32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    910     TESTINSN_bin("vrhadd.u16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    911     TESTINSN_bin("vrhadd.u8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    912     TESTINSN_bin("vrhadd.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
    913     TESTINSN_bin("vrhadd.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
    914     TESTINSN_bin("vrhadd.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
    915     TESTINSN_bin("vrhadd.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
    916     TESTINSN_bin("vrhadd.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
    917     TESTINSN_bin("vrhadd.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
    918     TESTINSN_bin("vrhadd.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
    919     TESTINSN_bin("vrhadd.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
    920     TESTINSN_bin("vrhadd.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
    921     TESTINSN_bin("vrhadd.u32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
    922 
    923     fflush(stdout);
    924     printf("---- VCGT ----\n");
    925     TESTINSN_bin("vcgt.s32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 120);
    926     TESTINSN_bin("vcgt.s32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 121);
    927     TESTINSN_bin("vcgt.s32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    928     TESTINSN_bin("vcgt.s16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    929     TESTINSN_bin("vcgt.s8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    930     TESTINSN_bin("vcgt.s32 d0, d1, d2", d0, d1, i32, 120, d2, i32, 120);
    931     TESTINSN_bin("vcgt.s16 d0, d1, d2", d0, d1, i32, 120, d2, i32, 120);
    932     TESTINSN_bin("vcgt.s8 d0, d1, d2", d0, d1, i32, 120, d2, i32, 120);
    933     TESTINSN_bin("vcgt.s32 d0, d1, d2", d0, d1, i32, 120, d2, i32, 140);
    934     TESTINSN_bin("vcgt.s16 d0, d1, d2", d0, d1, i32, 120, d2, i32, 140);
    935     TESTINSN_bin("vcgt.s8 d0, d1, d2", d0, d1, i32, 120, d2, i32, 140);
    936     TESTINSN_bin("vcgt.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 3, d5, i32, (1 << 31) + 2);
    937     TESTINSN_bin("vcgt.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 3, d2, i32, (1 << 31) + 2);
    938     TESTINSN_bin("vcgt.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 3, d2, i32, (1 << 31) + 2);
    939     TESTINSN_bin("vcgt.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 1, d5, i32, (1 << 31) + 3);
    940     TESTINSN_bin("vcgt.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
    941     TESTINSN_bin("vcgt.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
    942     TESTINSN_bin("vcgt.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 2, d5, i32, (1 << 31) + 2);
    943     TESTINSN_bin("vcgt.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 2, d2, i32, (1 << 31) + 2);
    944     TESTINSN_bin("vcgt.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 2, d2, i32, (1 << 31) + 2);
    945     TESTINSN_bin("vcgt.s32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
    946     TESTINSN_bin("vcgt.u32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 120);
    947     TESTINSN_bin("vcgt.u32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    948     TESTINSN_bin("vcgt.u16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    949     TESTINSN_bin("vcgt.u8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    950     TESTINSN_bin("vcgt.u32 d0, d1, d2", d0, d1, i32, 120, d2, i32, 120);
    951     TESTINSN_bin("vcgt.u16 d0, d1, d2", d0, d1, i32, 120, d2, i32, 120);
    952     TESTINSN_bin("vcgt.u8 d0, d1, d2", d0, d1, i32, 120, d2, i32, 120);
    953     TESTINSN_bin("vcgt.u32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 140);
    954     TESTINSN_bin("vcgt.u16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 140);
    955     TESTINSN_bin("vcgt.u8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 140);
    956     TESTINSN_bin("vcgt.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 3, d2, i32, (1 << 31) + 2);
    957     TESTINSN_bin("vcgt.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 3, d2, i32, (1 << 31) + 2);
    958     TESTINSN_bin("vcgt.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 3, d2, i32, (1 << 31) + 2);
    959     TESTINSN_bin("vcgt.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
    960     TESTINSN_bin("vcgt.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
    961     TESTINSN_bin("vcgt.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
    962     TESTINSN_bin("vcgt.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 2, d2, i32, (1 << 31) + 2);
    963     TESTINSN_bin("vcgt.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 2, d2, i32, (1 << 31) + 2);
    964     TESTINSN_bin("vcgt.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 2, d2, i32, (1 << 31) + 2);
    965     TESTINSN_bin("vcgt.u32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
    966 
    967     fflush(stdout);
    968     printf("---- VCGE ----\n");
    969     TESTINSN_bin("vcge.s32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 120);
    970     TESTINSN_bin("vcge.s32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 121);
    971     TESTINSN_bin("vcge.s32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    972     TESTINSN_bin("vcge.s16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    973     TESTINSN_bin("vcge.s8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    974     TESTINSN_bin("vcge.s32 d0, d1, d2", d0, d1, i32, 120, d2, i32, 120);
    975     TESTINSN_bin("vcge.s16 d0, d1, d2", d0, d1, i32, 120, d2, i32, 120);
    976     TESTINSN_bin("vcge.s8 d0, d1, d2", d0, d1, i32, 120, d2, i32, 120);
    977     TESTINSN_bin("vcge.s32 d0, d1, d2", d0, d1, i32, 120, d2, i32, 140);
    978     TESTINSN_bin("vcge.s16 d0, d1, d2", d0, d1, i32, 120, d2, i32, 140);
    979     TESTINSN_bin("vcge.s8 d0, d1, d2", d0, d1, i32, 120, d2, i32, 140);
    980     TESTINSN_bin("vcge.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 3, d5, i32, (1 << 31) + 2);
    981     TESTINSN_bin("vcge.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 3, d2, i32, (1 << 31) + 2);
    982     TESTINSN_bin("vcge.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 3, d2, i32, (1 << 31) + 2);
    983     TESTINSN_bin("vcge.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 1, d5, i32, (1 << 31) + 3);
    984     TESTINSN_bin("vcge.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
    985     TESTINSN_bin("vcge.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
    986     TESTINSN_bin("vcge.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 2, d5, i32, (1 << 31) + 2);
    987     TESTINSN_bin("vcge.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 2, d2, i32, (1 << 31) + 2);
    988     TESTINSN_bin("vcge.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 2, d2, i32, (1 << 31) + 2);
    989     TESTINSN_bin("vcge.s32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
    990     TESTINSN_bin("vcge.u32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 120);
    991     TESTINSN_bin("vcge.u32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    992     TESTINSN_bin("vcge.u16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    993     TESTINSN_bin("vcge.u8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
    994     TESTINSN_bin("vcge.u32 d0, d1, d2", d0, d1, i32, 120, d2, i32, 120);
    995     TESTINSN_bin("vcge.u16 d0, d1, d2", d0, d1, i32, 120, d2, i32, 120);
    996     TESTINSN_bin("vcge.u8 d0, d1, d2", d0, d1, i32, 120, d2, i32, 120);
    997     TESTINSN_bin("vcge.u32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 140);
    998     TESTINSN_bin("vcge.u16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 140);
    999     TESTINSN_bin("vcge.u8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 140);
   1000     TESTINSN_bin("vcge.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 3, d2, i32, (1 << 31) + 2);
   1001     TESTINSN_bin("vcge.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 3, d2, i32, (1 << 31) + 2);
   1002     TESTINSN_bin("vcge.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 3, d2, i32, (1 << 31) + 2);
   1003     TESTINSN_bin("vcge.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
   1004     TESTINSN_bin("vcge.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
   1005     TESTINSN_bin("vcge.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
   1006     TESTINSN_bin("vcge.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 2, d2, i32, (1 << 31) + 2);
   1007     TESTINSN_bin("vcge.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 2, d2, i32, (1 << 31) + 2);
   1008     TESTINSN_bin("vcge.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 2, d2, i32, (1 << 31) + 2);
   1009     TESTINSN_bin("vcge.u32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
   1010 
   1011     fflush(stdout);
   1012     printf("---- VSHL (register) ----\n");
   1013     TESTINSN_bin("vshl.s8 d0, d1, d2", d0, d1, i32, 24, d2, i32, 1);
   1014     TESTINSN_bin("vshl.s8 d8, d1, d12", d8, d1, i32, 24, d12, i32, 8);
   1015     TESTINSN_bin("vshl.s8 d10, d31, d7", d10, d31, i32, 24, d7, i32, 4);
   1016     TESTINSN_bin("vshl.s16 d3, d8, d11", d3, d8, i32, 14, d11, i32, 2);
   1017     TESTINSN_bin("vshl.s16 d5, d12, d14", d5, d12, i32, (1 << 30), d14, i32, 1);
   1018     TESTINSN_bin("vshl.s16 d15, d2, d1", d15, d2, i32, (1 << 30), d1, i32, 11);
   1019     TESTINSN_bin("vshl.s32 d9, d12, d19", d9, d12, i32, (1 << 31) + 2, d19, i32, 2);
   1020     TESTINSN_bin("vshl.s32 d11, d22, d0", d11, d22, i32, -1, d0, i32, 12);
   1021     TESTINSN_bin("vshl.s32 d5, d2, d3", d5, d2, i32, (1 << 30), d3, i32, 21);
   1022     TESTINSN_bin("vshl.s64 d15, d12, d4", d15, d12, i32, 5, d4, i32, 20);
   1023     TESTINSN_bin("vshl.s64 d8, d2, d4", d8, d2, i32, 15, d4, i32, 4);
   1024     TESTINSN_bin("vshl.s64 d5, d12, d4", d5, d12, i32, (1 << 31) + 1, d4, i32, 30);
   1025     TESTINSN_bin("vshl.s64 d15, d2, d4", d15, d2, i32, 0xffabcd59, d4, i32, 0xabcdefab);
   1026     TESTINSN_bin("vshl.s64 d8, d2, d4", d8, d2, i32, 15, d4, i32, 0x400bb5);
   1027     TESTINSN_bin("vshl.s64 d5, d12, d4", d5, d12, i32, (1 << 31) + 1, d4, i32, 0x30abcff);
   1028     TESTINSN_bin("vshl.u8 d0, d1, d2", d0, d1, i32, 24, d2, i32, 1);
   1029     TESTINSN_bin("vshl.u8 d8, d1, d12", d8, d1, i32, 24, d12, i32, 8);
   1030     TESTINSN_bin("vshl.u8 d10, d11, d7", d10, d11, i32, 24, d7, i32, 4);
   1031     TESTINSN_bin("vshl.u16 d3, d8, d11", d3, d8, i32, 14, d11, i32, 2);
   1032     TESTINSN_bin("vshl.u16 d5, d12, d14", d5, d12, i32, (1 << 30), d14, i32, 1);
   1033     TESTINSN_bin("vshl.u16 d15, d2, d1", d15, d2, i32, (1 << 30), d1, i32, 11);
   1034     TESTINSN_bin("vshl.u32 d9, d12, d15", d9, d12, i32, (1 << 31) + 2, d15, i32, 2);
   1035     TESTINSN_bin("vshl.u32 d11, d2, d0", d11, d2, i32, -1, d0, i32, 12);
   1036     TESTINSN_bin("vshl.u32 d5, d2, d3", d5, d2, i32, (1 << 30), d3, i32, 21);
   1037     TESTINSN_bin("vshl.u64 d15, d12, d4", d15, d12, i32, 5, d4, i32, 20);
   1038     TESTINSN_bin("vshl.u64 d8, d2, d4", d8, d2, i32, 15, d4, i32, 4);
   1039     TESTINSN_bin("vshl.u64 d5, d12, d4", d5, d12, i32, (1 << 31) + 1, d4, i32, 30);
   1040     TESTINSN_bin("vshl.u64 d15, d2, d4", d15, d2, i32, 0xffabcd59, d4, i32, 0xabcdefab);
   1041     TESTINSN_bin("vshl.u64 d8, d2, d4", d8, d2, i32, 15, d4, i32, 0x400bb5);
   1042     TESTINSN_bin("vshl.u64 d5, d12, d4", d5, d12, i32, (1 << 31) + 1, d4, i32, 0x30abcff);
   1043 
   1044     fflush(stdout);
   1045     printf("---- VQSHL (register) ----\n");
   1046     TESTINSN_bin_q("vqshl.s64 d0, d1, d2", d0, d1, i32, 1, d2, i32, 1);
   1047     TESTINSN_bin_q("vqshl.s64 d3, d4, d5", d3, d4, i32, -127, d5, i32, 1);
   1048     TESTINSN_bin_q("vqshl.s64 d3, d4, d5", d3, d4, i32, -127, d5, i32, -3);
   1049     TESTINSN_bin_q("vqshl.s64 d0, d1, d2", d0, d1, i32, 16, d2, i32, 14);
   1050     TESTINSN_bin_q("vqshl.s64 d13, d14, d31", d13, d14, i32, -17, d31, i32, -26);
   1051     TESTINSN_bin_q("vqshl.s64 d7, d8, d2", d7, d8, i32, 24, d2, i32, -60);
   1052     TESTINSN_bin_q("vqshl.s32 d3, d4, d15", d3, d4, i32, 127, d15, i32, -30);
   1053     TESTINSN_bin_q("vqshl.s32 d2, d8, d4", d2, d8, i32, -11, d4, i32, -4);
   1054     TESTINSN_bin_q("vqshl.s32 d12, d11, d13", d12, d11, i32, -120, d13, i32, -9);
   1055     TESTINSN_bin_q("vqshl.s32 d0, d1, d2", d0, d1, i32, 34, d2, i32, -7);
   1056     TESTINSN_bin_q("vqshl.s32 d9, d30, d11", d9, d30, i32, (1 << 31) + 8, d11, i32, -1);
   1057     TESTINSN_bin_q("vqshl.s32 d13, d3, d5", d13, d3, i32, (1 << 27), d5, i32, 3);
   1058     TESTINSN_bin_q("vqshl.s16 d11, d10, d2", d11, d10, i32, (1 << 31), d2, i32, -31);
   1059     TESTINSN_bin_q("vqshl.s16 d3, d14, d7", d3, d14, i32, (1 << 31), d7, i32, -3);
   1060     TESTINSN_bin_q("vqshl.s16 d0, d11, d2", d0, d11, i32, (1 << 31) + 256, d2, i32, -1);
   1061     TESTINSN_bin_q("vqshl.s16 d1, d2, d3", d1, d2, i32, (1 << 31) + 256, d3, i32, -31);
   1062     TESTINSN_bin_q("vqshl.s16 d3, d4, d5", d3, d4, i32, (1 << 31) + (1 << 29), d5, i32, -13);
   1063     TESTINSN_bin_q("vqshl.s16 d0, d15, d2", d0, d15, i32, 1, d2, i32, 30);
   1064     TESTINSN_bin_q("vqshl.s8 d2, d7, d11", d2, d7, i32, -1, d11, i32, 40);
   1065     TESTINSN_bin_q("vqshl.s8 d13, d1, d2", d13, d1, i32, -4, d2, i32, 30);
   1066     TESTINSN_bin_q("vqshl.s8 d3, d7, d5", d3, d7, i32, (1 << 31) + 11, d5, i32, 3);
   1067     TESTINSN_bin_q("vqshl.s8 d10, d11, d12", d10, d11, i32, (1 << 16), d12, i32, 16);
   1068     TESTINSN_bin_q("vqshl.s8 d6, d7, d8", d6, d7, i32, (1 << 30), d8, i32, 2);
   1069     TESTINSN_bin_q("vqshl.s8 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
   1070     TESTINSN_bin_q("vqshl.u64 d0, d1, d2", d0, d1, i32, 1, d2, i32, 1);
   1071     TESTINSN_bin_q("vqshl.u64 d3, d4, d5", d3, d4, i32, -127, d5, i32, 1);
   1072     TESTINSN_bin_q("vqshl.u64 d3, d4, d5", d3, d4, i32, -127, d5, i32, -3);
   1073     TESTINSN_bin_q("vqshl.u64 d0, d1, d2", d0, d1, i32, 16, d2, i32, 14);
   1074     TESTINSN_bin_q("vqshl.u64 d13, d14, d15", d13, d14, i32, -17, d15, i32, -26);
   1075     TESTINSN_bin_q("vqshl.u64 d7, d8, d2", d7, d8, i32, 24, d2, i32, -60);
   1076     TESTINSN_bin_q("vqshl.u32 d3, d4, d15", d3, d4, i32, 127, d15, i32, -30);
   1077     TESTINSN_bin_q("vqshl.u32 d2, d8, d4", d2, d8, i32, -11, d4, i32, -4);
   1078     TESTINSN_bin_q("vqshl.u32 d12, d31, d13", d12, d31, i32, -120, d13, i32, -9);
   1079     TESTINSN_bin_q("vqshl.u32 d0, d1, d2", d0, d1, i32, 34, d2, i32, -7);
   1080     TESTINSN_bin_q("vqshl.u32 d9, d10, d11", d9, d10, i32, (1 << 31) + 8, d11, i32, -1);
   1081     TESTINSN_bin_q("vqshl.u32 d13, d3, d5", d13, d3, i32, (1 << 27), d5, i32, 3);
   1082     TESTINSN_bin_q("vqshl.u16 d11, d10, d2", d11, d10, i32, (1 << 31), d2, i32, -31);
   1083     TESTINSN_bin_q("vqshl.u16 d3, d14, d7", d3, d14, i32, (1 << 31), d7, i32, -3);
   1084     TESTINSN_bin_q("vqshl.u16 d0, d11, d2", d0, d11, i32, (1 << 31) + 256, d2, i32, -1);
   1085     TESTINSN_bin_q("vqshl.u16 d1, d2, d3", d1, d2, i32, (1 << 31) + 256, d3, i32, -31);
   1086     TESTINSN_bin_q("vqshl.u16 d3, d4, d5", d3, d4, i32, (1 << 31) + (1 << 29), d5, i32, -13);
   1087     TESTINSN_bin_q("vqshl.u16 d0, d15, d2", d0, d15, i32, 1, d2, i32, 30);
   1088     TESTINSN_bin_q("vqshl.u8 d2, d7, d11", d2, d7, i32, -1, d11, i32, 40);
   1089     TESTINSN_bin_q("vqshl.u8 d13, d1, d2", d13, d1, i32, -4, d2, i32, 30);
   1090     TESTINSN_bin_q("vqshl.u8 d3, d7, d5", d3, d7, i32, (1 << 31) + 11, d5, i32, 3);
   1091     TESTINSN_bin_q("vqshl.u8 d10, d11, d12", d10, d11, i32, (1 << 16), d12, i32, 16);
   1092     TESTINSN_bin_q("vqshl.u8 d6, d7, d8", d6, d7, i32, (1 << 30), d8, i32, 2);
   1093     TESTINSN_bin_q("vqshl.u8 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
   1094 
   1095     fflush(stdout);
   1096     printf("---- VQSHL / VQSHLU (immediate) ----\n");
   1097     TESTINSN_un_q("vqshl.s64 d0, d1, #1", d0, d1, i32, 1);
   1098     TESTINSN_un_q("vqshl.s64 d31, d30, #1", d31, d30, i32, -127);
   1099     TESTINSN_un_q("vqshl.s64 d5, d4, #0", d5, d4, i32, -127);
   1100     TESTINSN_un_q("vqshl.s64 d5, d4, #63", d5, d4, i32, 16);
   1101     TESTINSN_un_q("vqshl.s64 d5, d4, #60", d5, d4, i32, 16);
   1102     TESTINSN_un_q("vqshl.s64 d5, d4, #59", d5, d4, i32, 16);
   1103     TESTINSN_un_q("vqshl.s64 d5, d4, #58", d5, d4, i32, 16);
   1104     TESTINSN_un_q("vqshl.s64 d5, d4, #17", d5, d4, i32, 16);
   1105     TESTINSN_un_q("vqshl.s64 d5, d4, #63", d5, d4, i32, -1);
   1106     TESTINSN_un_q("vqshl.s64 d5, d4, #60", d5, d4, i32, -1);
   1107     TESTINSN_un_q("vqshl.s64 d5, d4, #7", d5, d4, i32, (1 << 31) + 2);
   1108     TESTINSN_un_q("vqshl.s32 d10, d11, #1", d10, d11, i32, 1);
   1109     TESTINSN_un_q("vqshl.s32 d31, d30, #1", d31, d30, i32, -127);
   1110     TESTINSN_un_q("vqshl.s32 d5, d4, #0", d5, d4, i32, -127);
   1111     TESTINSN_un_q("vqshl.s32 d5, d4, #31", d5, d4, i32, 16);
   1112     TESTINSN_un_q("vqshl.s32 d5, d4, #28", d5, d4, i32, 16);
   1113     TESTINSN_un_q("vqshl.s32 d5, d4, #27", d5, d4, i32, 16);
   1114     TESTINSN_un_q("vqshl.s32 d5, d4, #26", d5, d4, i32, 16);
   1115     TESTINSN_un_q("vqshl.s32 d5, d4, #17", d5, d4, i32, 16);
   1116     TESTINSN_un_q("vqshl.s32 d5, d4, #31", d5, d4, i32, -1);
   1117     TESTINSN_un_q("vqshl.s32 d5, d4, #29", d5, d4, i32, -1);
   1118     TESTINSN_un_q("vqshl.s32 d5, d4, #7", d5, d4, i32, (1 << 31) + 2);
   1119     TESTINSN_un_q("vqshl.s16 d9, d8, #1", d9, d8, i32, 1);
   1120     TESTINSN_un_q("vqshl.s16 d31, d30, #1", d31, d30, i32, -127);
   1121     TESTINSN_un_q("vqshl.s16 d5, d4, #0", d5, d4, i32, -127);
   1122     TESTINSN_un_q("vqshl.s16 d9, d8, #15", d9, d8, i32, 16);
   1123     TESTINSN_un_q("vqshl.s16 d5, d4, #12", d5, d4, i32, 16);
   1124     TESTINSN_un_q("vqshl.s16 d5, d4, #11", d5, d4, i32, 16);
   1125     TESTINSN_un_q("vqshl.s16 d5, d4, #10", d5, d4, i32, 16);
   1126     TESTINSN_un_q("vqshl.s16 d5, d4, #4", d5, d4, i32, 16);
   1127     TESTINSN_un_q("vqshl.s16 d5, d4, #15", d5, d4, i32, -1);
   1128     TESTINSN_un_q("vqshl.s16 d5, d4, #12", d5, d4, i32, -1);
   1129     TESTINSN_un_q("vqshl.s16 d5, d4, #7", d5, d4, i32, (1 << 31) + 2);
   1130     TESTINSN_un_q("vqshl.s8 d0, d1, #1", d0, d1, i32, 1);
   1131     TESTINSN_un_q("vqshl.s8 d31, d30, #1", d31, d30, i32, -127);
   1132     TESTINSN_un_q("vqshl.s8 d5, d4, #0", d5, d4, i32, -127);
   1133     TESTINSN_un_q("vqshl.s8 d5, d4, #7", d5, d4, i32, 16);
   1134     TESTINSN_un_q("vqshl.s8 d25, d4, #4", d25, d4, i32, 16);
   1135     TESTINSN_un_q("vqshl.s8 d5, d4, #3", d5, d4, i32, 16);
   1136     TESTINSN_un_q("vqshl.s8 d5, d4, #2", d5, d4, i32, 16);
   1137     TESTINSN_un_q("vqshl.s8 d5, d4, #1", d5, d4, i32, 16);
   1138     TESTINSN_un_q("vqshl.s8 d5, d4, #7", d5, d4, i32, -1);
   1139     TESTINSN_un_q("vqshl.s8 d5, d4, #5", d5, d4, i32, -1);
   1140     TESTINSN_un_q("vqshl.s8 d5, d4, #2", d5, d4, i32, (1 << 31) + 2);
   1141     TESTINSN_un_q("vqshl.u64 d0, d1, #1", d0, d1, i32, 1);
   1142     TESTINSN_un_q("vqshl.u64 d31, d30, #1", d31, d30, i32, -127);
   1143     TESTINSN_un_q("vqshl.u64 d5, d4, #0", d5, d4, i32, -127);
   1144     TESTINSN_un_q("vqshl.u64 d5, d4, #63", d5, d4, i32, 16);
   1145     TESTINSN_un_q("vqshl.u64 d5, d4, #60", d5, d4, i32, 16);
   1146     TESTINSN_un_q("vqshl.u64 d5, d4, #59", d5, d4, i32, 16);
   1147     TESTINSN_un_q("vqshl.u64 d5, d4, #58", d5, d4, i32, 16);
   1148     TESTINSN_un_q("vqshl.u64 d5, d4, #17", d5, d4, i32, 16);
   1149     TESTINSN_un_q("vqshl.u64 d5, d4, #63", d5, d4, i32, -1);
   1150     TESTINSN_un_q("vqshl.u64 d5, d4, #60", d5, d4, i32, -1);
   1151     TESTINSN_un_q("vqshl.u64 d5, d4, #7", d5, d4, i32, (1 << 31) + 2);
   1152     TESTINSN_un_q("vqshl.u32 d10, d11, #1", d10, d11, i32, 1);
   1153     TESTINSN_un_q("vqshl.u32 d31, d30, #1", d31, d30, i32, -127);
   1154     TESTINSN_un_q("vqshl.u32 d5, d4, #0", d5, d4, i32, -127);
   1155     TESTINSN_un_q("vqshl.u32 d5, d4, #31", d5, d4, i32, 16);
   1156     TESTINSN_un_q("vqshl.u32 d5, d4, #28", d5, d4, i32, 16);
   1157     TESTINSN_un_q("vqshl.u32 d5, d4, #27", d5, d4, i32, 16);
   1158     TESTINSN_un_q("vqshl.u32 d5, d4, #26", d5, d4, i32, 16);
   1159     TESTINSN_un_q("vqshl.u32 d5, d4, #17", d5, d4, i32, 16);
   1160     TESTINSN_un_q("vqshl.u32 d5, d4, #31", d5, d4, i32, -1);
   1161     TESTINSN_un_q("vqshl.u32 d5, d4, #29", d5, d4, i32, -1);
   1162     TESTINSN_un_q("vqshl.u32 d5, d4, #7", d5, d4, i32, (1 << 31) + 2);
   1163     TESTINSN_un_q("vqshl.u16 d9, d8, #1", d9, d8, i32, 1);
   1164     TESTINSN_un_q("vqshl.u16 d31, d30, #1", d31, d30, i32, -127);
   1165     TESTINSN_un_q("vqshl.u16 d5, d4, #0", d5, d4, i32, -127);
   1166     TESTINSN_un_q("vqshl.u16 d9, d8, #15", d9, d8, i32, 16);
   1167     TESTINSN_un_q("vqshl.u16 d5, d4, #12", d5, d4, i32, 16);
   1168     TESTINSN_un_q("vqshl.u16 d5, d4, #11", d5, d4, i32, 16);
   1169     TESTINSN_un_q("vqshl.u16 d5, d4, #10", d5, d4, i32, 16);
   1170     TESTINSN_un_q("vqshl.u16 d5, d4, #4", d5, d4, i32, 16);
   1171     TESTINSN_un_q("vqshl.u16 d5, d4, #15", d5, d4, i32, -1);
   1172     TESTINSN_un_q("vqshl.u16 d5, d4, #12", d5, d4, i32, -1);
   1173     TESTINSN_un_q("vqshl.u16 d5, d4, #7", d5, d4, i32, (1 << 31) + 2);
   1174     TESTINSN_un_q("vqshl.u8 d0, d1, #1", d0, d1, i32, 1);
   1175     TESTINSN_un_q("vqshl.u8 d31, d30, #1", d31, d30, i32, -127);
   1176     TESTINSN_un_q("vqshl.u8 d5, d4, #0", d5, d4, i32, -127);
   1177     TESTINSN_un_q("vqshl.u8 d5, d4, #7", d5, d4, i32, 16);
   1178     TESTINSN_un_q("vqshl.u8 d5, d4, #4", d5, d4, i32, 16);
   1179     TESTINSN_un_q("vqshl.u8 d5, d4, #3", d5, d4, i32, 16);
   1180     TESTINSN_un_q("vqshl.u8 d5, d4, #2", d5, d4, i32, 16);
   1181     TESTINSN_un_q("vqshl.u8 d5, d4, #1", d5, d4, i32, 16);
   1182     TESTINSN_un_q("vqshl.u8 d5, d4, #7", d5, d4, i32, -1);
   1183     TESTINSN_un_q("vqshl.u8 d5, d4, #5", d5, d4, i32, -1);
   1184     TESTINSN_un_q("vqshl.u8 d5, d4, #2", d5, d4, i32, (1 << 31) + 2);
   1185     TESTINSN_un_q("vqshlu.s64 d0, d1, #1", d0, d1, i32, 1);
   1186     TESTINSN_un_q("vqshlu.s64 d31, d30, #1", d31, d30, i32, -127);
   1187     TESTINSN_un_q("vqshlu.s64 d5, d4, #0", d5, d4, i32, -127);
   1188     TESTINSN_un_q("vqshlu.s64 d5, d4, #63", d5, d4, i32, 16);
   1189     TESTINSN_un_q("vqshlu.s64 d5, d4, #60", d5, d4, i32, 16);
   1190     TESTINSN_un_q("vqshlu.s64 d5, d4, #59", d5, d4, i32, 16);
   1191     TESTINSN_un_q("vqshlu.s64 d5, d4, #58", d5, d4, i32, 16);
   1192     TESTINSN_un_q("vqshlu.s64 d5, d4, #17", d5, d4, i32, 16);
   1193     TESTINSN_un_q("vqshlu.s64 d5, d4, #63", d5, d4, i32, -1);
   1194     TESTINSN_un_q("vqshlu.s64 d5, d4, #60", d5, d4, i32, -1);
   1195     TESTINSN_un_q("vqshlu.s64 d5, d4, #7", d5, d4, i32, (1 << 31) + 2);
   1196     TESTINSN_un_q("vqshlu.s32 d10, d11, #1", d10, d11, i32, 1);
   1197     TESTINSN_un_q("vqshlu.s32 d31, d30, #1", d31, d30, i32, -127);
   1198     TESTINSN_un_q("vqshlu.s32 d5, d4, #0", d5, d4, i32, -127);
   1199     TESTINSN_un_q("vqshlu.s32 d5, d4, #31", d5, d4, i32, 16);
   1200     TESTINSN_un_q("vqshlu.s32 d25, d24, #28", d25, d24, i32, 16);
   1201     TESTINSN_un_q("vqshlu.s32 d5, d4, #27", d5, d4, i32, 16);
   1202     TESTINSN_un_q("vqshlu.s32 d5, d4, #26", d5, d4, i32, 16);
   1203     TESTINSN_un_q("vqshlu.s32 d5, d4, #17", d5, d4, i32, 16);
   1204     TESTINSN_un_q("vqshlu.s32 d5, d24, #31", d5, d24, i32, -1);
   1205     TESTINSN_un_q("vqshlu.s32 d5, d4, #29", d5, d4, i32, -1);
   1206     TESTINSN_un_q("vqshlu.s32 d5, d4, #7", d5, d4, i32, (1 << 31) + 2);
   1207     TESTINSN_un_q("vqshlu.s16 d9, d8, #1", d9, d8, i32, 1);
   1208     TESTINSN_un_q("vqshlu.s16 d31, d30, #1", d31, d30, i32, -127);
   1209     TESTINSN_un_q("vqshlu.s16 d5, d4, #0", d5, d4, i32, -127);
   1210     TESTINSN_un_q("vqshlu.s16 d9, d8, #15", d9, d8, i32, 16);
   1211     TESTINSN_un_q("vqshlu.s16 d5, d4, #12", d5, d4, i32, 16);
   1212     TESTINSN_un_q("vqshlu.s16 d5, d4, #11", d5, d4, i32, 16);
   1213     TESTINSN_un_q("vqshlu.s16 d5, d4, #10", d5, d4, i32, 16);
   1214     TESTINSN_un_q("vqshlu.s16 d5, d4, #4", d5, d4, i32, 16);
   1215     TESTINSN_un_q("vqshlu.s16 d15, d14, #15", d15, d14, i32, -1);
   1216     TESTINSN_un_q("vqshlu.s16 d5, d4, #12", d5, d4, i32, -1);
   1217     TESTINSN_un_q("vqshlu.s16 d5, d4, #7", d5, d4, i32, (1 << 31) + 2);
   1218     TESTINSN_un_q("vqshlu.s8 d0, d1, #1", d0, d1, i32, 1);
   1219     TESTINSN_un_q("vqshlu.s8 d31, d30, #1", d31, d30, i32, -127);
   1220     TESTINSN_un_q("vqshlu.s8 d5, d4, #0", d5, d4, i32, -127);
   1221     TESTINSN_un_q("vqshlu.s8 d5, d4, #7", d5, d4, i32, 16);
   1222     TESTINSN_un_q("vqshlu.s8 d5, d4, #4", d5, d4, i32, 16);
   1223     TESTINSN_un_q("vqshlu.s8 d5, d4, #3", d5, d4, i32, 16);
   1224     TESTINSN_un_q("vqshlu.s8 d5, d4, #2", d5, d4, i32, 16);
   1225     TESTINSN_un_q("vqshlu.s8 d5, d4, #1", d5, d4, i32, 16);
   1226     TESTINSN_un_q("vqshlu.s8 d5, d4, #7", d5, d4, i32, -1);
   1227     TESTINSN_un_q("vqshlu.s8 d5, d4, #5", d5, d4, i32, -1);
   1228     TESTINSN_un_q("vqshlu.s8 d5, d4, #2", d5, d4, i32, (1 << 31) + 2);
   1229 
   1230     fflush(stdout);
   1231     printf("---- VQRSHL (register) ----\n");
   1232     TESTINSN_bin_q("vqrshl.s64 d0, d1, d2", d0, d1, i32, 1, d2, i32, 1);
   1233     TESTINSN_bin_q("vqrshl.s64 d3, d4, d5", d3, d4, i32, -127, d5, i32, 1);
   1234     TESTINSN_bin_q("vqrshl.s64 d3, d4, d5", d3, d4, i32, -127, d5, i32, -3);
   1235     TESTINSN_bin_q("vqrshl.s64 d0, d1, d2", d0, d1, i32, 16, d2, i32, 14);
   1236     TESTINSN_bin_q("vqrshl.s64 d13, d14, d15", d13, d14, i32, -17, d15, i32, -26);
   1237     TESTINSN_bin_q("vqrshl.s64 d7, d8, d2", d7, d8, i32, 24, d2, i32, -60);
   1238     TESTINSN_bin_q("vqrshl.s32 d3, d4, d15", d3, d4, i32, 127, d15, i32, -30);
   1239     TESTINSN_bin_q("vqrshl.s32 d2, d8, d4", d2, d8, i32, -11, d4, i32, -4);
   1240     TESTINSN_bin_q("vqrshl.s32 d12, d11, d13", d12, d11, i32, -120, d13, i32, -9);
   1241     TESTINSN_bin_q("vqrshl.s32 d0, d1, d2", d0, d1, i32, 34, d2, i32, -7);
   1242     TESTINSN_bin_q("vqrshl.s32 d9, d10, d11", d9, d10, i32, (1 << 31) + 8, d11, i32, -1);
   1243     TESTINSN_bin_q("vqrshl.s32 d13, d3, d5", d13, d3, i32, (1 << 27), d5, i32, 3);
   1244     TESTINSN_bin_q("vqrshl.s16 d11, d10, d2", d11, d10, i32, (1 << 31), d2, i32, -31);
   1245     TESTINSN_bin_q("vqrshl.s16 d3, d14, d7", d3, d14, i32, (1 << 31), d7, i32, -3);
   1246     TESTINSN_bin_q("vqrshl.s16 d0, d31, d2", d0, d31, i32, (1 << 31) + 256, d2, i32, -1);
   1247     TESTINSN_bin_q("vqrshl.s16 d1, d2, d3", d1, d2, i32, (1 << 31) + 256, d3, i32, -31);
   1248     TESTINSN_bin_q("vqrshl.s16 d3, d4, d5", d3, d4, i32, (1 << 31) + (1 << 29), d5, i32, -13);
   1249     TESTINSN_bin_q("vqrshl.s16 d0, d15, d2", d0, d15, i32, 1, d2, i32, 30);
   1250     TESTINSN_bin_q("vqrshl.s8 d2, d7, d11", d2, d7, i32, 0xf, d11, i32, -1);
   1251     TESTINSN_bin_q("vqrshl.s16 d2, d7, d11", d2, d7, i32, 0xf, d11, i32, -1);
   1252     TESTINSN_bin_q("vqrshl.s32 d2, d7, d11", d2, d7, i32, 0xf, d11, i32, -1);
   1253     TESTINSN_bin_q("vqrshl.s8 d2, d7, d11", d2, d7, i32, -1, d11, i32, -1);
   1254     TESTINSN_bin_q("vqrshl.s16 d2, d7, d11", d2, d7, i32, -1, d11, i32, -1);
   1255     TESTINSN_bin_q("vqrshl.s32 d2, d7, d11", d2, d7, i32, -1, d11, i32, -1);
   1256     TESTINSN_bin_q("vqrshl.s8 d2, d7, d11", d2, d7, i32, -2, d11, i32, -1);
   1257     TESTINSN_bin_q("vqrshl.s16 d2, d7, d11", d2, d7, i32, -2, d11, i32, -1);
   1258     TESTINSN_bin_q("vqrshl.s32 d2, d7, d11", d2, d7, i32, -2, d11, i32, -1);
   1259     TESTINSN_bin_q("vqrshl.s8 d2, d7, d11", d2, d7, i32, -1, d11, i32, 0);
   1260     TESTINSN_bin_q("vqrshl.s16 d2, d7, d11", d2, d7, i32, -1, d11, i32, 0);
   1261     TESTINSN_bin_q("vqrshl.s32 d2, d7, d31", d2, d7, i32, -1, d31, i32, 0);
   1262     TESTINSN_bin_q("vqrshl.s8 d2, d7, d11", d2, d7, i32, -1, d11, i32, 40);
   1263     TESTINSN_bin_q("vqrshl.s8 d13, d1, d2", d13, d1, i32, -4, d2, i32, 30);
   1264     TESTINSN_bin_q("vqrshl.s8 d3, d7, d5", d3, d7, i32, (1 << 31) + 11, d5, i32, 3);
   1265     TESTINSN_bin_q("vqrshl.s8 d10, d11, d12", d10, d11, i32, (1 << 16), d12, i32, 16);
   1266     TESTINSN_bin_q("vqrshl.s8 d6, d7, d8", d6, d7, i32, (1 << 30), d8, i32, 2);
   1267     TESTINSN_bin_q("vqrshl.s8 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
   1268     TESTINSN_bin_q("vqrshl.u64 d0, d1, d2", d0, d1, i32, 1, d2, i32, 1);
   1269     TESTINSN_bin_q("vqrshl.u64 d3, d4, d5", d3, d4, i32, -127, d5, i32, 1);
   1270     TESTINSN_bin_q("vqrshl.u64 d3, d4, d5", d3, d4, i32, -127, d5, i32, -3);
   1271     TESTINSN_bin_q("vqrshl.u64 d0, d1, d2", d0, d1, i32, 16, d2, i32, 14);
   1272     TESTINSN_bin_q("vqrshl.u64 d13, d14, d15", d13, d14, i32, -17, d15, i32, -26);
   1273     TESTINSN_bin_q("vqrshl.u64 d7, d8, d2", d7, d8, i32, 24, d2, i32, -60);
   1274     TESTINSN_bin_q("vqrshl.u32 d3, d4, d15", d3, d4, i32, 127, d15, i32, -30);
   1275     TESTINSN_bin_q("vqrshl.u32 d2, d8, d4", d2, d8, i32, -11, d4, i32, -4);
   1276     TESTINSN_bin_q("vqrshl.u32 d12, d11, d13", d12, d11, i32, -120, d13, i32, -9);
   1277     TESTINSN_bin_q("vqrshl.u32 d0, d1, d2", d0, d1, i32, 34, d2, i32, -7);
   1278     TESTINSN_bin_q("vqrshl.u32 d9, d10, d11", d9, d10, i32, (1 << 31) + 8, d11, i32, -1);
   1279     TESTINSN_bin_q("vqrshl.u32 d13, d3, d5", d13, d3, i32, (1 << 27), d5, i32, 3);
   1280     TESTINSN_bin_q("vqrshl.u16 d11, d10, d2", d11, d10, i32, (1 << 31), d2, i32, -31);
   1281     TESTINSN_bin_q("vqrshl.u16 d3, d14, d7", d3, d14, i32, (1 << 31), d7, i32, -3);
   1282     TESTINSN_bin_q("vqrshl.u16 d0, d31, d2", d0, d31, i32, (1 << 31) + 256, d2, i32, -1);
   1283     TESTINSN_bin_q("vqrshl.u16 d1, d2, d3", d1, d2, i32, (1 << 31) + 256, d3, i32, -31);
   1284     TESTINSN_bin_q("vqrshl.u16 d3, d4, d5", d3, d4, i32, (1 << 31) + (1 << 29), d5, i32, -13);
   1285     TESTINSN_bin_q("vqrshl.u16 d0, d15, d2", d0, d15, i32, 1, d2, i32, 30);
   1286     TESTINSN_bin_q("vqrshl.u8 d2, d7, d11", d2, d7, i32, -1, d11, i32, 40);
   1287     TESTINSN_bin_q("vqrshl.u8 d2, d7, d11", d2, d7, i32, -1, d11, i32, -1);
   1288     TESTINSN_bin_q("vqrshl.u8 d2, d7, d11", d2, d7, i32, 0xf, d11, i32, -1);
   1289     TESTINSN_bin_q("vqrshl.u16 d2, d7, d11", d2, d7, i32, 0xf, d11, i32, -1);
   1290     TESTINSN_bin_q("vqrshl.u32 d2, d7, d11", d2, d7, i32, 0xf, d11, i32, -1);
   1291     TESTINSN_bin_q("vqrshl.u8 d2, d7, d11", d2, d7, i32, -2, d11, i32, -1);
   1292     TESTINSN_bin_q("vqrshl.u16 d2, d7, d11", d2, d7, i32, -2, d11, i32, -1);
   1293     TESTINSN_bin_q("vqrshl.u32 d2, d7, d11", d2, d7, i32, -2, d11, i32, -1);
   1294     TESTINSN_bin_q("vqrshl.u8 d2, d7, d11", d2, d7, i32, -1, d11, i32, 0);
   1295     TESTINSN_bin_q("vqrshl.u16 d2, d7, d11", d2, d7, i32, -1, d11, i32, 0);
   1296     TESTINSN_bin_q("vqrshl.u32 d2, d7, d11", d2, d7, i32, -1, d11, i32, 0);
   1297     TESTINSN_bin_q("vqrshl.u8 d13, d1, d2", d13, d1, i32, -4, d2, i32, 30);
   1298     TESTINSN_bin_q("vqrshl.u8 d3, d7, d5", d3, d7, i32, (1 << 31) + 11, d5, i32, 3);
   1299     TESTINSN_bin_q("vqrshl.u8 d10, d11, d12", d10, d11, i32, (1 << 16), d12, i32, 16);
   1300     TESTINSN_bin_q("vqrshl.u8 d6, d7, d8", d6, d7, i32, (1 << 30), d8, i32, 2);
   1301     TESTINSN_bin_q("vqrshl.u8 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
   1302 
   1303     fflush(stdout);
   1304     printf("---- VRSHL (register) ----\n");
   1305     TESTINSN_bin("vrshl.s64 d0, d1, d2", d0, d1, i32, 1, d2, i32, 1);
   1306     TESTINSN_bin("vrshl.s64 d3, d4, d5", d3, d4, i32, -127, d5, i32, 1);
   1307     TESTINSN_bin("vrshl.s64 d3, d4, d5", d3, d4, i32, -127, d5, i32, -3);
   1308     TESTINSN_bin("vrshl.s64 d0, d1, d2", d0, d1, i32, 16, d2, i32, 14);
   1309     TESTINSN_bin("vrshl.s64 d13, d14, d15", d13, d14, i32, -17, d15, i32, -26);
   1310     TESTINSN_bin("vrshl.s64 d7, d8, d2", d7, d8, i32, 24, d2, i32, -60);
   1311     TESTINSN_bin("vrshl.s32 d3, d4, d15", d3, d4, i32, 127, d15, i32, -30);
   1312     TESTINSN_bin("vrshl.s32 d2, d8, d4", d2, d8, i32, -11, d4, i32, -4);
   1313     TESTINSN_bin("vrshl.s32 d12, d11, d13", d12, d11, i32, -120, d13, i32, -9);
   1314     TESTINSN_bin("vrshl.s32 d0, d1, d2", d0, d1, i32, 34, d2, i32, -7);
   1315     TESTINSN_bin("vrshl.s32 d9, d10, d11", d9, d10, i32, (1 << 31) + 8, d11, i32, -1);
   1316     TESTINSN_bin("vrshl.s32 d13, d3, d5", d13, d3, i32, (1 << 27), d5, i32, 3);
   1317     TESTINSN_bin("vrshl.s16 d11, d10, d2", d11, d10, i32, (1 << 31), d2, i32, -31);
   1318     TESTINSN_bin("vrshl.s16 d3, d14, d7", d3, d14, i32, (1 << 31), d7, i32, -3);
   1319     TESTINSN_bin("vrshl.s16 d0, d11, d2", d0, d11, i32, (1 << 31) + 256, d2, i32, -1);
   1320     TESTINSN_bin("vrshl.s16 d1, d2, d3", d1, d2, i32, (1 << 31) + 256, d3, i32, -31);
   1321     TESTINSN_bin("vrshl.s16 d3, d4, d5", d3, d4, i32, (1 << 31) + (1 << 29), d5, i32, -13);
   1322     TESTINSN_bin("vrshl.s16 d0, d15, d2", d0, d15, i32, 1, d2, i32, 30);
   1323     TESTINSN_bin("vrshl.s8 d2, d7, d11", d2, d7, i32, 0xf, d11, i32, -1);
   1324     TESTINSN_bin("vrshl.s16 d2, d7, d11", d2, d7, i32, 0xf, d11, i32, -1);
   1325     TESTINSN_bin("vrshl.s32 d2, d7, d11", d2, d7, i32, 0xf, d11, i32, -1);
   1326     TESTINSN_bin("vrshl.s8 d2, d7, d31", d2, d7, i32, -1, d31, i32, -1);
   1327     TESTINSN_bin("vrshl.s16 d2, d7, d31", d2, d7, i32, -1, d31, i32, -1);
   1328     TESTINSN_bin("vrshl.s32 d2, d7, d31", d2, d7, i32, -1, d31, i32, -1);
   1329     TESTINSN_bin("vrshl.s8 d2, d7, d11", d2, d7, i32, -2, d11, i32, -1);
   1330     TESTINSN_bin("vrshl.s16 d2, d7, d11", d2, d7, i32, -2, d11, i32, -1);
   1331     TESTINSN_bin("vrshl.s32 d2, d7, d11", d2, d7, i32, -2, d11, i32, -1);
   1332     TESTINSN_bin("vrshl.s8 d2, d7, d11", d2, d7, i32, -1, d11, i32, 0);
   1333     TESTINSN_bin("vrshl.s16 d2, d7, d11", d2, d7, i32, -1, d11, i32, 0);
   1334     TESTINSN_bin("vrshl.s32 d2, d7, d11", d2, d7, i32, -1, d11, i32, 0);
   1335     TESTINSN_bin("vrshl.s8 d2, d7, d11", d2, d7, i32, -1, d11, i32, 40);
   1336     TESTINSN_bin("vrshl.s8 d13, d1, d2", d13, d1, i32, -4, d2, i32, 30);
   1337     TESTINSN_bin("vrshl.s8 d3, d7, d5", d3, d7, i32, (1 << 31) + 11, d5, i32, 3);
   1338     TESTINSN_bin("vrshl.s8 d10, d11, d12", d10, d11, i32, (1 << 16), d12, i32, 16);
   1339     TESTINSN_bin("vrshl.s8 d6, d7, d8", d6, d7, i32, (1 << 30), d8, i32, 2);
   1340     TESTINSN_bin("vrshl.s8 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
   1341     TESTINSN_bin("vrshl.u64 d0, d1, d2", d0, d1, i32, 1, d2, i32, 1);
   1342     TESTINSN_bin("vrshl.u64 d3, d4, d5", d3, d4, i32, -127, d5, i32, 1);
   1343     TESTINSN_bin("vrshl.u64 d3, d4, d5", d3, d4, i32, -127, d5, i32, -3);
   1344     TESTINSN_bin("vrshl.u64 d0, d1, d2", d0, d1, i32, 16, d2, i32, 14);
   1345     TESTINSN_bin("vrshl.u64 d13, d14, d15", d13, d14, i32, -17, d15, i32, -26);
   1346     TESTINSN_bin("vrshl.u64 d7, d8, d2", d7, d8, i32, 24, d2, i32, -60);
   1347     TESTINSN_bin("vrshl.u32 d3, d4, d15", d3, d4, i32, 127, d15, i32, -30);
   1348     TESTINSN_bin("vrshl.u32 d2, d8, d4", d2, d8, i32, -11, d4, i32, -4);
   1349     TESTINSN_bin("vrshl.u32 d12, d11, d13", d12, d11, i32, -120, d13, i32, -9);
   1350     TESTINSN_bin("vrshl.u32 d0, d1, d2", d0, d1, i32, 34, d2, i32, -7);
   1351     TESTINSN_bin("vrshl.u32 d9, d10, d11", d9, d10, i32, (1 << 31) + 8, d11, i32, -1);
   1352     TESTINSN_bin("vrshl.u32 d13, d3, d5", d13, d3, i32, (1 << 27), d5, i32, 3);
   1353     TESTINSN_bin("vrshl.u16 d11, d10, d2", d11, d10, i32, (1 << 31), d2, i32, -31);
   1354     TESTINSN_bin("vrshl.u16 d3, d14, d7", d3, d14, i32, (1 << 31), d7, i32, -3);
   1355     TESTINSN_bin("vrshl.u16 d0, d31, d2", d0, d31, i32, (1 << 31) + 256, d2, i32, -1);
   1356     TESTINSN_bin("vrshl.u16 d1, d2, d3", d1, d2, i32, (1 << 31) + 256, d3, i32, -31);
   1357     TESTINSN_bin("vrshl.u16 d3, d4, d5", d3, d4, i32, (1 << 31) + (1 << 29), d5, i32, -13);
   1358     TESTINSN_bin("vrshl.u16 d0, d15, d2", d0, d15, i32, 1, d2, i32, 30);
   1359     TESTINSN_bin("vrshl.u8 d2, d7, d11", d2, d7, i32, -1, d11, i32, 40);
   1360     TESTINSN_bin("vrshl.u8 d2, d7, d11", d2, d7, i32, -1, d11, i32, -1);
   1361     TESTINSN_bin("vrshl.u8 d2, d7, d11", d2, d7, i32, 0xf, d11, i32, -1);
   1362     TESTINSN_bin("vrshl.u16 d2, d7, d11", d2, d7, i32, 0xf, d11, i32, -1);
   1363     TESTINSN_bin("vrshl.u32 d2, d7, d11", d2, d7, i32, 0xf, d11, i32, -1);
   1364     TESTINSN_bin("vrshl.u8 d2, d7, d11", d2, d7, i32, -1, d11, i32, -1);
   1365     TESTINSN_bin("vrshl.u16 d2, d7, d11", d2, d7, i32, -1, d11, i32, -1);
   1366     TESTINSN_bin("vrshl.u32 d2, d7, d11", d2, d7, i32, -1, d11, i32, -1);
   1367     TESTINSN_bin("vrshl.u8 d2, d7, d31", d2, d7, i32, -2, d31, i32, -1);
   1368     TESTINSN_bin("vrshl.u16 d2, d7, d31", d2, d7, i32, -2, d31, i32, -1);
   1369     TESTINSN_bin("vrshl.u32 d2, d7, d31", d2, d7, i32, -2, d31, i32, -1);
   1370     TESTINSN_bin("vrshl.u8 d13, d1, d2", d13, d1, i32, -4, d2, i32, 30);
   1371     TESTINSN_bin("vrshl.u8 d3, d7, d5", d3, d7, i32, (1 << 31) + 11, d5, i32, 3);
   1372     TESTINSN_bin("vrshl.u8 d10, d11, d12", d10, d11, i32, (1 << 16), d12, i32, 16);
   1373     TESTINSN_bin("vrshl.u8 d6, d7, d8", d6, d7, i32, (1 << 30), d8, i32, 2);
   1374     TESTINSN_bin("vrshl.u8 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
   1375 
   1376     fflush(stdout);
   1377     printf("---- VMAX (integer) ----\n");
   1378     TESTINSN_bin("vmax.s32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 121);
   1379     TESTINSN_bin("vmax.s32 d0, d1, d2", d0, d1, i32, 250, d2, i32, 121);
   1380     TESTINSN_bin("vmax.s32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 140);
   1381     TESTINSN_bin("vmax.s16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
   1382     TESTINSN_bin("vmax.s8 d0, d1, d2", d0, d1, i32, 120, d2, i32, 120);
   1383     TESTINSN_bin("vmax.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 1, d5, i32, (1 << 31) + 2);
   1384     TESTINSN_bin("vmax.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
   1385     TESTINSN_bin("vmax.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
   1386     TESTINSN_bin("vmax.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 1, d5, i32, (1 << 31) + 3);
   1387     TESTINSN_bin("vmax.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
   1388     TESTINSN_bin("vmax.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
   1389     TESTINSN_bin("vmax.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 4, d5, i32, (1 << 31) + 2);
   1390     TESTINSN_bin("vmax.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
   1391     TESTINSN_bin("vmax.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
   1392     TESTINSN_bin("vmax.s32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
   1393     TESTINSN_bin("vmax.u32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 120);
   1394     TESTINSN_bin("vmax.u32 d0, d1, d2", d0, d1, i32, 250, d2, i32, 120);
   1395     TESTINSN_bin("vmax.u32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 140);
   1396     TESTINSN_bin("vmax.u16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
   1397     TESTINSN_bin("vmax.u8 d0, d1, d2", d0, d1, i32, 120, d2, i32, 120);
   1398     TESTINSN_bin("vmax.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
   1399     TESTINSN_bin("vmax.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
   1400     TESTINSN_bin("vmax.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
   1401     TESTINSN_bin("vmax.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
   1402     TESTINSN_bin("vmax.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
   1403     TESTINSN_bin("vmax.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
   1404     TESTINSN_bin("vmax.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
   1405     TESTINSN_bin("vmax.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
   1406     TESTINSN_bin("vmax.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
   1407     TESTINSN_bin("vmax.u32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
   1408 
   1409     fflush(stdout);
   1410     printf("---- VMIN (integer) ----\n");
   1411     TESTINSN_bin("vmin.s32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 121);
   1412     TESTINSN_bin("vmin.s32 d0, d1, d2", d0, d1, i32, 250, d2, i32, 121);
   1413     TESTINSN_bin("vmin.s32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
   1414     TESTINSN_bin("vmin.s16 d0, d1, d2", d0, d1, i32, 120, d2, i32, 120);
   1415     TESTINSN_bin("vmin.s8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 140);
   1416     TESTINSN_bin("vmin.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 1, d5, i32, (1 << 31) + 2);
   1417     TESTINSN_bin("vmin.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
   1418     TESTINSN_bin("vmin.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
   1419     TESTINSN_bin("vmin.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 1, d5, i32, (1 << 31) + 3);
   1420     TESTINSN_bin("vmin.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
   1421     TESTINSN_bin("vmin.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
   1422     TESTINSN_bin("vmin.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 4, d5, i32, (1 << 31) + 2);
   1423     TESTINSN_bin("vmin.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
   1424     TESTINSN_bin("vmin.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
   1425     TESTINSN_bin("vmin.s32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
   1426     TESTINSN_bin("vmin.u32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 120);
   1427     TESTINSN_bin("vmin.u32 d0, d1, d2", d0, d1, i32, 250, d2, i32, 120);
   1428     TESTINSN_bin("vmin.u32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
   1429     TESTINSN_bin("vmin.u16 d0, d1, d2", d0, d1, i32, 120, d2, i32, 120);
   1430     TESTINSN_bin("vmin.u8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 140);
   1431     TESTINSN_bin("vmin.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
   1432     TESTINSN_bin("vmin.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
   1433     TESTINSN_bin("vmin.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
   1434     TESTINSN_bin("vmin.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
   1435     TESTINSN_bin("vmin.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
   1436     TESTINSN_bin("vmin.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
   1437     TESTINSN_bin("vmin.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
   1438     TESTINSN_bin("vmin.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
   1439     TESTINSN_bin("vmin.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
   1440     TESTINSN_bin("vmin.u32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
   1441 
   1442     fflush(stdout);
   1443     printf("---- VABD ----\n");
   1444     TESTINSN_bin("vabd.s32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 120);
   1445     TESTINSN_bin("vabd.s32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 121);
   1446     TESTINSN_bin("vabd.s32 d0, d1, d2", d0, d1, i32, 140, d2, i32, -120);
   1447     TESTINSN_bin("vabd.s16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
   1448     TESTINSN_bin("vabd.s8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
   1449     TESTINSN_bin("vabd.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 1, d5, i32, (1 << 31) + 2);
   1450     TESTINSN_bin("vabd.s8 d5, d7, d5", d5, d7, i32, -255, d5, i32, (1 << 31) + 2);
   1451     TESTINSN_bin("vabd.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 1, d5, i32, -200);
   1452     TESTINSN_bin("vabd.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
   1453     TESTINSN_bin("vabd.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
   1454     TESTINSN_bin("vabd.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 1, d5, i32, (1 << 31) + 3);
   1455     TESTINSN_bin("vabd.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
   1456     TESTINSN_bin("vabd.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
   1457     TESTINSN_bin("vabd.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 4, d5, i32, (1 << 31) + 2);
   1458     TESTINSN_bin("vabd.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
   1459     TESTINSN_bin("vabd.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
   1460     TESTINSN_bin("vabd.s32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
   1461     TESTINSN_bin("vabd.u32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 120);
   1462     TESTINSN_bin("vabd.u32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
   1463     TESTINSN_bin("vabd.u16 d0, d1, d2", d0, d1, i32, -140, d2, i32, 120);
   1464     TESTINSN_bin("vabd.u8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
   1465     TESTINSN_bin("vabd.u8 d5, d7, d5", d5, d7, i32, -255, d5, i32, (1 << 31) + 2);
   1466     TESTINSN_bin("vabd.u8 d5, d7, d5", d5, d7, i32, (1 << 31) + 1, d5, i32, -200);
   1467     TESTINSN_bin("vabd.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
   1468     TESTINSN_bin("vabd.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
   1469     TESTINSN_bin("vabd.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
   1470     TESTINSN_bin("vabd.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
   1471     TESTINSN_bin("vabd.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
   1472     TESTINSN_bin("vabd.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
   1473     TESTINSN_bin("vabd.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
   1474     TESTINSN_bin("vabd.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
   1475     TESTINSN_bin("vabd.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
   1476     TESTINSN_bin("vabd.u32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
   1477 
   1478     fflush(stdout);
   1479     printf("---- VABA ----\n");
   1480     TESTINSN_bin("vaba.s32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 120);
   1481     TESTINSN_bin("vaba.s32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 121);
   1482     TESTINSN_bin("vaba.s32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
   1483     TESTINSN_bin("vaba.s16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
   1484     TESTINSN_bin("vaba.s8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
   1485     TESTINSN_bin("vaba.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 1, d5, i32, (1 << 31) + 2);
   1486     TESTINSN_bin("vaba.s8 d5, d7, d5", d5, d7, i32, -255, d5, i32, (1 << 31) + 2);
   1487     TESTINSN_bin("vaba.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 1, d5, i32, -200);
   1488     TESTINSN_bin("vaba.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
   1489     TESTINSN_bin("vaba.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
   1490     TESTINSN_bin("vaba.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 1, d5, i32, (1 << 31) + 3);
   1491     TESTINSN_bin("vaba.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
   1492     TESTINSN_bin("vaba.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
   1493     TESTINSN_bin("vaba.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 4, d5, i32, (1 << 31) + 2);
   1494     TESTINSN_bin("vaba.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
   1495     TESTINSN_bin("vaba.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
   1496     TESTINSN_bin("vaba.s32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
   1497     TESTINSN_bin("vaba.u32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 120);
   1498     TESTINSN_bin("vaba.u32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
   1499     TESTINSN_bin("vaba.u16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
   1500     TESTINSN_bin("vaba.u8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
   1501     TESTINSN_bin("vaba.u8 d5, d7, d5", d5, d7, i32, -255, d5, i32, (1 << 31) + 2);
   1502     TESTINSN_bin("vaba.u8 d5, d7, d5", d5, d7, i32, (1 << 31) + 1, d5, i32, -200);
   1503     TESTINSN_bin("vaba.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
   1504     TESTINSN_bin("vaba.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
   1505     TESTINSN_bin("vaba.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
   1506     TESTINSN_bin("vaba.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
   1507     TESTINSN_bin("vaba.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
   1508     TESTINSN_bin("vaba.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
   1509     TESTINSN_bin("vaba.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
   1510     TESTINSN_bin("vaba.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
   1511     TESTINSN_bin("vaba.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
   1512     TESTINSN_bin("vaba.u32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
   1513 
   1514     fflush(stdout);
   1515     printf("---- VTST ----\n");
   1516     TESTINSN_bin("vtst.32 d0, d1, d2", d0, d1, i32, 24, d2, i32, 120);
   1517     TESTINSN_bin("vtst.32 d3, d4, d5", d3, d4, i32, 140, d5, i32, 120);
   1518     TESTINSN_bin("vtst.16 d6, d7, d8", d6, d7, i32, 120, d8, i32, 120);
   1519     TESTINSN_bin("vtst.8 d9, d10, d12", d9, d10, i32, 140, d12, i32, 120);
   1520     TESTINSN_bin("vtst.8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
   1521     TESTINSN_bin("vtst.16 d0, d1, d2", d0, d1, i32, (1 << 14) + 1, d2, i32, (1 << 14) + 1);
   1522     TESTINSN_bin("vtst.32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
   1523     TESTINSN_bin("vtst.8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, 2);
   1524     TESTINSN_bin("vtst.16 d0, d1, d2", d0, d1, i32, (1 << 14) + 1, d2, i32, (1 << 14) + 1);
   1525     TESTINSN_bin("vtst.32 d0, d1, d2", d0, d1, i32, 1, d2, i32, (1 << 31) + 2);
   1526     TESTINSN_bin("vtst.32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
   1527 
   1528     fflush(stdout);
   1529     printf("---- VCEQ ----\n");
   1530     TESTINSN_bin("vceq.i32 d0, d1, d2", d0, d1, i32, 24, d2, i32, 120);
   1531     TESTINSN_bin("vceq.i32 d3, d4, d5", d3, d4, i32, 140, d5, i32, 120);
   1532     TESTINSN_bin("vceq.i16 d6, d7, d8", d6, d7, i32, 120, d8, i32, 120);
   1533     TESTINSN_bin("vceq.i8 d9, d10, d12", d9, d10, i32, 140, d12, i32, 120);
   1534     TESTINSN_bin("vceq.i8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
   1535     TESTINSN_bin("vceq.i16 d0, d1, d2", d0, d1, i32, (1 << 14) + 1, d2, i32, (1 << 14) + 1);
   1536     TESTINSN_bin("vceq.i32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
   1537     TESTINSN_bin("vceq.i8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, 2);
   1538     TESTINSN_bin("vceq.i16 d0, d1, d2", d0, d1, i32, 1, d2, i32, (1 << 14) + 1);
   1539     TESTINSN_bin("vceq.i32 d0, d1, d2", d0, d1, i32, 1, d2, i32, (1 << 31) + 2);
   1540     TESTINSN_bin("vceq.i32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
   1541 
   1542     fflush(stdout);
   1543     printf("---- VMLA ----\n");
   1544     TESTINSN_bin("vmla.i32 d0, d1, d2", d0, d1, i32, -24, d2, i32, 120);
   1545     TESTINSN_bin("vmla.i32 d6, d7, d8", d6, d7, i32, 140, d8, i32, 120);
   1546     TESTINSN_bin("vmla.i16 d9, d11, d12", d9, d11, i32, 0x140, d12, i32, 0x120);
   1547     TESTINSN_bin("vmla.i8 d0, d1, d2", d0, d1, i32, 140, d2, i32, -120);
   1548     TESTINSN_bin("vmla.i8 d10, d11, d12", d10, d11, i32, (1 << 5) + 1, d12, i32, (1 << 3) + 2);
   1549     TESTINSN_bin("vmla.i16 d4, d5, d6", d4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2);
   1550     TESTINSN_bin("vmla.i32 d7, d8, d9", d7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2);
   1551     TESTINSN_bin("vmla.i8 d10, d13, d12", d10, d13, i32, (1 << 5) + 1, d12, i32, (1 << 3) + 2);
   1552     TESTINSN_bin("vmla.i16 d4, d5, d6", d4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2);
   1553     TESTINSN_bin("vmla.i32 d7, d8, d9", d7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2);
   1554     TESTINSN_bin("vmla.i32 d10, d11, d15", d10, d11, i32, 24, d15, i32, -120);
   1555 
   1556     fflush(stdout);
   1557     printf("---- VMLS ----\n");
   1558     TESTINSN_bin("vmls.i32 d0, d1, d2", d0, d1, i32, -24, d2, i32, 120);
   1559     TESTINSN_bin("vmls.i32 d6, d7, d8", d6, d7, i32, 140, d8, i32, -120);
   1560     TESTINSN_bin("vmls.i16 d9, d11, d12", d9, d11, i32, 0x140, d12, i32, 0x120);
   1561     TESTINSN_bin("vmls.i8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
   1562     TESTINSN_bin("vmls.i8 d10, d11, d12", d10, d11, i32, (1 << 5) + 1, d12, i32, (1 << 3) + 2);
   1563     TESTINSN_bin("vmls.i16 d4, d5, d6", d4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2);
   1564     TESTINSN_bin("vmls.i32 d7, d8, d9", d7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2);
   1565     TESTINSN_bin("vmls.i8 d10, d13, d12", d10, d13, i32, (1 << 5) + 1, d12, i32, (1 << 3) + 2);
   1566     TESTINSN_bin("vmls.i16 d4, d5, d6", d4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2);
   1567     TESTINSN_bin("vmls.i32 d7, d8, d9", d7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2);
   1568     TESTINSN_bin("vmls.i32 d10, d11, d15", d10, d11, i32, -24, d15, i32, 120);
   1569 
   1570     fflush(stdout);
   1571     printf("---- VMUL ----\n");
   1572     TESTINSN_bin("vmul.i32 d0, d1, d2", d0, d1, i32, 24, d2, i32, 120);
   1573     TESTINSN_bin("vmul.i32 d6, d7, d8", d6, d7, i32, 140, d8, i32, -120);
   1574     TESTINSN_bin("vmul.i16 d9, d11, d12", d9, d11, i32, 0x140, d12, i32, 0x120);
   1575     TESTINSN_bin("vmul.i8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
   1576     TESTINSN_bin("vmul.i8 d10, d11, d12", d10, d11, i32, (1 << 5) + 1, d12, i32, (1 << 3) + 2);
   1577     TESTINSN_bin("vmul.i16 d4, d5, d6", d4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2);
   1578     TESTINSN_bin("vmul.i32 d7, d8, d9", d7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2);
   1579     TESTINSN_bin("vmul.i8 d10, d11, d12", d10, d11, i32, (1 << 25) + 0xfeb2, d12, i32, (1 << 13) + 0xdf);
   1580     TESTINSN_bin("vmul.i16 d4, d5, d6", d4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 2);
   1581     TESTINSN_bin("vmul.i32 d7, d8, d9", d7, d8, i32, (1 << 31), d9, i32, 12);
   1582     TESTINSN_bin("vmul.i8 d10, d13, d12", d10, d13, i32, (1 << 5) + 1, d12, i32, (1 << 3) + 2);
   1583     TESTINSN_bin("vmul.i16 d4, d5, d6", d4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2);
   1584     TESTINSN_bin("vmul.i32 d7, d8, d9", d7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2);
   1585     TESTINSN_bin("vmul.i32 d10, d11, d15", d10, d11, i32, 24, d15, i32, 120);
   1586     TESTINSN_bin("vmul.p8 q0, q1, q2", q0, q1, i32, 3, q2, i32, 3);
   1587     TESTINSN_bin("vmul.p8 q0, q1, q2", q0, q1, i32, 12, q2, i8, 0x0f);
   1588 
   1589     fflush(stdout);
   1590     printf("---- VMUL (by scalar) ----\n");
   1591     TESTINSN_bin("vmul.i32 d0, d1, d4[0]", d0, d1, i32, 24, d4, i32, 120);
   1592     TESTINSN_bin("vmul.i32 d31, d8, d7[1]", d31, d8, i32, 140, d7, i32, -120);
   1593     TESTINSN_bin("vmul.i16 d30, d9, d7[3]", d30, d9, i32, 0x140, d7, i32, 0x120);
   1594     TESTINSN_bin("vmul.i16 d4, d5, d6[2]", d4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2);
   1595     TESTINSN_bin("vmul.i32 d4, d8, d15[1]", d4, d8, i32, (1 << 31) + 1, d15, i32, (1 << 31) + 2);
   1596     TESTINSN_bin("vmul.i16 d4, d5, d6[0]", d4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 2);
   1597     TESTINSN_bin("vmul.i32 d7, d8, d1[1]", d7, d8, i32, (1 << 31), d1, i16, 12);
   1598     TESTINSN_bin("vmul.i16 d4, d5, d6[0]", d4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2);
   1599     TESTINSN_bin("vmul.i32 d7, d8, d1[1]", d7, d8, i32, (1 << 31) + 1, d1, i32, (1 << 31) + 2);
   1600 
   1601     fflush(stdout);
   1602     printf("---- VMLA (by scalar) ----\n");
   1603     TESTINSN_bin("vmla.i32 d0, d1, d4[0]", d0, d1, i32, 24, d4, i32, 120);
   1604     TESTINSN_bin("vmla.i32 d31, d8, d7[1]", d31, d8, i32, 140, d7, i32, -120);
   1605     TESTINSN_bin("vmla.i16 d30, d9, d7[3]", d30, d9, i32, 0x140, d7, i32, 0x120);
   1606     TESTINSN_bin("vmla.i16 d4, d5, d6[2]", d4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2);
   1607     TESTINSN_bin("vmla.i32 d4, d8, d15[1]", d4, d8, i32, (1 << 31) + 1, d15, i32, (1 << 31) + 2);
   1608     TESTINSN_bin("vmla.i16 d4, d5, d6[0]", d4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 2);
   1609     TESTINSN_bin("vmla.i32 d7, d8, d1[1]", d7, d8, i32, (1 << 31), d1, i16, 12);
   1610     TESTINSN_bin("vmla.i16 d4, d5, d6[0]", d4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2);
   1611     TESTINSN_bin("vmla.i32 d7, d8, d1[1]", d7, d8, i32, (1 << 31) + 1, d1, i32, (1 << 31) + 2);
   1612 
   1613     fflush(stdout);
   1614     printf("---- VMLS (by scalar) ----\n");
   1615     TESTINSN_bin("vmls.i32 d0, d1, d4[0]", q0, q1, i32, 24, d4, i32, 120);
   1616     TESTINSN_bin("vmls.i32 d31, d8, d7[1]", d31, d8, i32, 140, d7, i32, -120);
   1617     TESTINSN_bin("vmls.i16 d30, d9, d7[3]", d30, d9, i32, 0x140, d7, i32, 0x120);
   1618     TESTINSN_bin("vmls.i16 d4, d5, d6[2]", d4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2);
   1619     TESTINSN_bin("vmls.i32 d4, d8, d15[1]", d4, d8, i32, (1 << 31) + 1, d15, i32, (1 << 31) + 2);
   1620     TESTINSN_bin("vmls.i16 d4, d5, d6[0]", d4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 2);
   1621     TESTINSN_bin("vmls.i32 d7, d8, d1[1]", d7, d8, i32, (1 << 31), d1, i16, 12);
   1622     TESTINSN_bin("vmls.i16 d4, d5, d6[0]", d4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2);
   1623     TESTINSN_bin("vmls.i32 d7, d8, d1[1]", d7, d8, i32, (1 << 31) + 1, d1, i32, (1 << 31) + 2);
   1624 
   1625     fflush(stdout);
   1626     printf("---- VRSHR ----\n");
   1627     TESTINSN_un("vrshr.s8 d0, d1, #0", d0, d1, i32, -1);
   1628     TESTINSN_un("vrshr.s8 d0, d1, #1", d0, d1, i32, -1);
   1629     TESTINSN_un("vrshr.s16 d3, d4, #2", d3, d4, i32, -0x7c);
   1630     TESTINSN_un("vrshr.s32 d2, d5, #31", d2, d5, i32, -1);
   1631     TESTINSN_un("vrshr.s8 d6, d7, #7", d6, d7, i32, 0xffff);
   1632     TESTINSN_un("vrshr.s16 d8, d9, #12", d8, d9, i32, -10);
   1633     TESTINSN_un("vrshr.s32 d10, d11, #5", d10, d11, i32, 10234);
   1634     TESTINSN_un("vrshr.u8 d12, d13, #1", d12, d13, i32, -1);
   1635     TESTINSN_un("vrshr.u16 d14, d15, #11", d14, d15, i32, -1);
   1636     TESTINSN_un("vrshr.u32 d10, d11, #9", d10, d11, i32, 1000);
   1637     TESTINSN_un("vrshr.u8 d7, d13, #7", d7, d13, i32, -1);
   1638     TESTINSN_un("vrshr.u16 d8, d1, #5", d8, d1, i32, 0xabcf);
   1639     TESTINSN_un("vrshr.u32 d12, d3, #15", d12, d3, i32, -0x1b0);
   1640     TESTINSN_un("vrshr.u64 d0, d1, #42", d0, d1, i32, -1);
   1641     TESTINSN_un("vrshr.s64 d6, d7, #12", d6, d7, i32, 0xfac);
   1642     TESTINSN_un("vrshr.u64 d8, d4, #9", d8, d4, i32, 13560);
   1643     TESTINSN_un("vrshr.s64 d9, d12, #11", d9, d12, i32, 98710);
   1644 
   1645     fflush(stdout);
   1646     printf("---- VRSRA ----\n");
   1647     TESTINSN_un("vrsra.s8 d0, d1, #1", d0, d1, i32, -1);
   1648     TESTINSN_un("vrsra.s16 d3, d4, #2", d3, d4, i32, -0x7c);
   1649     TESTINSN_un("vrsra.s32 d2, d5, #31", d2, d5, i32, -1);
   1650     TESTINSN_un("vrsra.s8 d6, d7, #7", d6, d7, i32, 0xffff);
   1651     TESTINSN_un("vrsra.s16 d8, d9, #12", d8, d9, i32, -10);
   1652     TESTINSN_un("vrsra.s32 d10, d11, #5", d10, d11, i32, 10234);
   1653     TESTINSN_un("vrsra.u8 d12, d13, #1", d12, d13, i32, -1);
   1654     TESTINSN_un("vrsra.u16 d14, d15, #11", d14, d15, i32, -1);
   1655     TESTINSN_un("vrsra.u32 d10, d11, #9", d10, d11, i32, 1000);
   1656     TESTINSN_un("vrsra.u8 d7, d13, #7", d7, d13, i32, -1);
   1657     TESTINSN_un("vrsra.u16 d8, d1, #5", d8, d1, i32, 0xabcf);
   1658     TESTINSN_un("vrsra.u32 d12, d3, #15", d12, d3, i32, -0x1b0);
   1659     TESTINSN_un("vrsra.u64 d0, d1, #42", d0, d1, i32, -1);
   1660     TESTINSN_un("vrsra.s64 d6, d7, #12", d6, d7, i32, 0xfac);
   1661     TESTINSN_un("vrsra.u64 d8, d4, #9", d8, d4, i32, 13560);
   1662     TESTINSN_un("vrsra.s64 d9, d12, #11", d9, d12, i32, 98710);
   1663 
   1664     fflush(stdout);
   1665     printf("---- VSHR ----\n");
   1666     TESTINSN_un("vshr.s8 d0, d1, #0", d0, d1, i32, -1);
   1667     TESTINSN_un("vshr.s8 d0, d1, #1", d0, d1, i32, -1);
   1668     TESTINSN_un("vshr.s16 d3, d4, #2", d3, d4, i32, -0x7c);
   1669     TESTINSN_un("vshr.s32 d2, d5, #31", d2, d5, i32, -1);
   1670     TESTINSN_un("vshr.s8 d6, d7, #7", d6, d7, i32, 0xffff);
   1671     TESTINSN_un("vshr.s16 d8, d9, #12", d8, d9, i32, -10);
   1672     TESTINSN_un("vshr.s32 d10, d11, #5", d10, d11, i32, 10234);
   1673     TESTINSN_un("vshr.u8 d12, d13, #1", d12, d13, i32, -1);
   1674     TESTINSN_un("vshr.u16 d14, d15, #11", d14, d15, i32, -1);
   1675     TESTINSN_un("vshr.u32 d10, d11, #9", d10, d11, i32, 1000);
   1676     TESTINSN_un("vshr.u8 d7, d13, #7", d7, d13, i32, -1);
   1677     TESTINSN_un("vshr.u16 d8, d1, #5", d8, d1, i32, 0xabcf);
   1678     TESTINSN_un("vshr.u32 d12, d3, #15", d12, d3, i32, -0x1b0);
   1679     TESTINSN_un("vshr.u64 d0, d1, #42", d0, d1, i32, -1);
   1680     TESTINSN_un("vshr.s64 d6, d7, #12", d6, d7, i32, 0xfac);
   1681     TESTINSN_un("vshr.u64 d8, d4, #9", d8, d4, i32, 13560);
   1682     TESTINSN_un("vshr.s64 d9, d12, #11", d9, d12, i32, 98710);
   1683 
   1684     fflush(stdout);
   1685     printf("---- VSRA ----\n");
   1686     TESTINSN_un("vsra.s8 d0, d1, #1", d0, d1, i32, -1);
   1687     TESTINSN_un("vsra.s16 d3, d4, #2", d3, d4, i32, -0x7c);
   1688     TESTINSN_un("vsra.s32 d2, d5, #31", d2, d5, i32, -1);
   1689     TESTINSN_un("vsra.s8 d6, d7, #7", d6, d7, i32, 0xffff);
   1690     TESTINSN_un("vsra.s16 d8, d9, #12", d8, d9, i32, -10);
   1691     TESTINSN_un("vsra.s32 d10, d11, #5", d10, d11, i32, 10234);
   1692     TESTINSN_un("vsra.u8 d12, d13, #1", d12, d13, i32, -1);
   1693     TESTINSN_un("vsra.u16 d14, d15, #11", d14, d15, i32, -1);
   1694     TESTINSN_un("vsra.u32 d10, d11, #9", d10, d11, i32, 1000);
   1695     TESTINSN_un("vsra.u8 d7, d13, #7", d7, d13, i32, -1);
   1696     TESTINSN_un("vsra.u16 d8, d1, #5", d8, d1, i32, 0xabcf);
   1697     TESTINSN_un("vsra.u32 d12, d3, #15", d12, d3, i32, -0x1b0);
   1698     TESTINSN_un("vsra.u64 d0, d1, #42", d0, d1, i32, -1);
   1699     TESTINSN_un("vsra.s64 d6, d7, #12", d6, d7, i32, 0xfac);
   1700     TESTINSN_un("vsra.u64 d8, d4, #9", d8, d4, i32, 13560);
   1701     TESTINSN_un("vsra.s64 d9, d12, #11", d9, d12, i32, 98710);
   1702 
   1703     fflush(stdout);
   1704     printf("---- VSRI ----\n");
   1705     TESTINSN_un("vsri.16 d0, d1, #1", d0, d1, i32, -1);
   1706     TESTINSN_un("vsri.16 d3, d4, #2", d3, d4, i32, -0x7c);
   1707     TESTINSN_un("vsri.32 d2, d5, #31", d2, d5, i32, -1);
   1708     TESTINSN_un("vsri.8 d6, d7, #7", d6, d7, i32, 0xffff);
   1709     TESTINSN_un("vsri.16 d8, d9, #12", d8, d9, i32, -10);
   1710     TESTINSN_un("vsri.32 d10, d11, #5", d10, d11, i32, 10234);
   1711     TESTINSN_un("vsri.8 d12, d13, #1", d12, d13, i32, -1);
   1712     TESTINSN_un("vsri.16 d14, d15, #11", d14, d15, i32, -1);
   1713     TESTINSN_un("vsri.32 d10, d11, #9", d10, d11, i32, 1000);
   1714     TESTINSN_un("vsri.8 d7, d13, #7", d7, d13, i32, -1);
   1715     TESTINSN_un("vsri.16 d8, d1, #5", d8, d1, i32, 0xabcf);
   1716     TESTINSN_un("vsri.32 d12, d3, #15", d12, d3, i32, -0x1b0);
   1717     TESTINSN_un("vsri.64 d0, d1, #42", d0, d1, i32, -1);
   1718     TESTINSN_un("vsri.64 d6, d7, #12", d6, d7, i32, 0xfac);
   1719     TESTINSN_un("vsri.64 d8, d4, #9", d8, d4, i32, 13560);
   1720     TESTINSN_un("vsri.64 d9, d12, #11", d9, d12, i32, 98710);
   1721 
   1722     fflush(stdout);
   1723     printf("---- VMOV (ARM core register to scalar) ----\n");
   1724     TESTINSN_core_to_scalar("vmov.32 d0[0], r5", d0, r5, 13);
   1725     TESTINSN_core_to_scalar("vmov.32 d1[1], r3", d1, r3, 12);
   1726     TESTINSN_core_to_scalar("vmov.16 d0[0], r5", d0, r5, 13);
   1727     TESTINSN_core_to_scalar("vmov.16 d2[2], r6", d2, r6, 14);
   1728     TESTINSN_core_to_scalar("vmov.16 d3[3], r1", d3, r1, 17);
   1729     TESTINSN_core_to_scalar("vmov.8 d0[0], r5", d0, r5, 13);
   1730     TESTINSN_core_to_scalar("vmov.8 d0[1], r5", d0, r5, 13);
   1731     TESTINSN_core_to_scalar("vmov.8 d0[2], r5", d0, r5, 13);
   1732     TESTINSN_core_to_scalar("vmov.8 d0[3], r5", d0, r5, 13);
   1733     TESTINSN_core_to_scalar("vmov.8 d0[4], r5", d0, r5, 13);
   1734     TESTINSN_core_to_scalar("vmov.8 d0[5], r5", d0, r5, 13);
   1735     TESTINSN_core_to_scalar("vmov.8 d0[6], r5", d0, r5, 13);
   1736     TESTINSN_core_to_scalar("vmov.8 d31[7], r5", d31, r5, 13);
   1737 
   1738     fflush(stdout);
   1739     printf("---- VMOV (scalar toARM core register) ----\n");
   1740     TESTINSN_scalar_to_core("vmov.32 r5, d0[0]", r5, d0, i32, 0x11223344);
   1741     TESTINSN_scalar_to_core("vmov.32 r6, d5[1]", r6, d5, i32, 0x11223344);
   1742     TESTINSN_scalar_to_core("vmov.u16 r5, d31[0]", r5, d31, i32, 0x11223344);
   1743     TESTINSN_scalar_to_core("vmov.u16 r5, d30[1]", r5, d30, i32, 0x11223344);
   1744     TESTINSN_scalar_to_core("vmov.u16 r5, d31[2]", r5, d31, i32, 0x11223344);
   1745     TESTINSN_scalar_to_core("vmov.u16 r5, d31[3]", r5, d31, i32, 0x11223344);
   1746     TESTINSN_scalar_to_core("vmov.u8 r2, d4[0]", r2, d4, i32, 0x11223344);
   1747     TESTINSN_scalar_to_core("vmov.u8 r2, d4[1]", r2, d4, i32, 0x11223344);
   1748     TESTINSN_scalar_to_core("vmov.u8 r2, d4[2]", r2, d4, i32, 0x11223344);
   1749     TESTINSN_scalar_to_core("vmov.u8 r2, d4[3]", r2, d4, i32, 0x11223344);
   1750     TESTINSN_scalar_to_core("vmov.u8 r2, d4[4]", r2, d4, i32, 0x11223344);
   1751     TESTINSN_scalar_to_core("vmov.u8 r2, d4[5]", r2, d4, i32, 0x11223344);
   1752     TESTINSN_scalar_to_core("vmov.u8 r2, d4[6]", r2, d4, i32, 0x11223344);
   1753     TESTINSN_scalar_to_core("vmov.u8 r2, d4[7]", r2, d4, i32, 0x11223344);
   1754     TESTINSN_scalar_to_core("vmov.s16 r5, d31[0]", r5, d31, i8, 128);
   1755     TESTINSN_scalar_to_core("vmov.s16 r5, d30[1]", r5, d30, i8, 128);
   1756     TESTINSN_scalar_to_core("vmov.s16 r5, d31[2]", r5, d31, i8, 128);
   1757     TESTINSN_scalar_to_core("vmov.s16 r5, d31[3]", r5, d31, i8, 128);
   1758     TESTINSN_scalar_to_core("vmov.s8 r2, d4[0]", r2, d4, i8, 128);
   1759     TESTINSN_scalar_to_core("vmov.s8 r2, d4[1]", r2, d4, i8, 128);
   1760     TESTINSN_scalar_to_core("vmov.s8 r2, d4[2]", r2, d4, i8, 128);
   1761     TESTINSN_scalar_to_core("vmov.s8 r2, d4[3]", r2, d4, i8, 128);
   1762     TESTINSN_scalar_to_core("vmov.s8 r2, d4[4]", r2, d4, i8, 128);
   1763     TESTINSN_scalar_to_core("vmov.s8 r2, d4[5]", r2, d4, i8, 130);
   1764     TESTINSN_scalar_to_core("vmov.s8 r2, d4[6]", r2, d4, i8, 129);
   1765     TESTINSN_scalar_to_core("vmov.s8 r2, d4[7]", r2, d4, i8, 131);
   1766 
   1767     fflush(stdout);
   1768     printf("---- VLD1 (multiple single elements) ----\n");
   1769     TESTINSN_VLDn("vld1.8 {d0}", d0, d0, d0, d0);
   1770     TESTINSN_VLDn("vld1.16 {d0}", d0, d0, d0, d0);
   1771     TESTINSN_VLDn("vld1.32 {d0}", d0, d0, d0, d0);
   1772     TESTINSN_VLDn("vld1.64 {d0}", d0, d0, d0, d0);
   1773     TESTINSN_VLDn("vld1.8 {d9}", d9, d9, d9, d9);
   1774     TESTINSN_VLDn("vld1.16 {d17}", d17, d17, d17, d17);
   1775     TESTINSN_VLDn("vld1.32 {d31}", d31, d31, d31, d31);
   1776     TESTINSN_VLDn("vld1.64 {d14}", d14, d14, d14, d14);
   1777     TESTINSN_VLDn("vld1.8 {d0-d1}", d0, d1, d0, d1);
   1778     TESTINSN_VLDn("vld1.16 {d0-d1}", d0, d1, d0, d1);
   1779     TESTINSN_VLDn("vld1.32 {d5-d6}", d5, d6, d5, d6);
   1780     TESTINSN_VLDn("vld1.64 {d30-d31}", d30, d31, d30, d31);
   1781     TESTINSN_VLDn("vld1.8 {d0-d2}", d0, d1, d2, d0);
   1782     TESTINSN_VLDn("vld1.16 {d0-d2}", d0, d1, d2, d0);
   1783     TESTINSN_VLDn("vld1.32 {d0-d2}", d0, d1, d2, d0);
   1784     TESTINSN_VLDn("vld1.64 {d0-d2}", d0, d1, d2, d0);
   1785     TESTINSN_VLDn("vld1.8 {d0-d3}", d0, d1, d2, d3);
   1786     TESTINSN_VLDn("vld1.16 {d0-d3}", d0, d1, d2, d3);
   1787     TESTINSN_VLDn("vld1.32 {d0-d3}", d0, d1, d2, d3);
   1788     TESTINSN_VLDn("vld1.64 {d0-d3}", d0, d1, d2, d3);
   1789 
   1790     fflush(stdout);
   1791     printf("---- VLD1 (single element to one lane) ----\n");
   1792     TESTINSN_VLDn("vld1.32 {d0[0]}", d0, d0, d0, d0);
   1793     TESTINSN_VLDn("vld1.32 {d0[1]}", d0, d0, d0, d0);
   1794     TESTINSN_VLDn("vld1.16 {d1[0]}", d1, d1, d1, d1);
   1795     TESTINSN_VLDn("vld1.16 {d1[1]}", d1, d1, d1, d1);
   1796     TESTINSN_VLDn("vld1.16 {d1[2]}", d1, d1, d1, d1);
   1797     TESTINSN_VLDn("vld1.16 {d1[3]}", d1, d1, d1, d1);
   1798     TESTINSN_VLDn("vld1.8 {d0[7]}", d0, d0, d0, d0);
   1799     TESTINSN_VLDn("vld1.8 {d1[6]}", d1, d1, d1, d1);
   1800     TESTINSN_VLDn("vld1.8 {d0[5]}", d0, d0, d0, d0);
   1801     TESTINSN_VLDn("vld1.8 {d0[4]}", d0, d0, d0, d0);
   1802     TESTINSN_VLDn("vld1.8 {d20[3]}", d20, d20, d20, d20);
   1803     TESTINSN_VLDn("vld1.8 {d0[2]}", d0, d0, d0, d0);
   1804     TESTINSN_VLDn("vld1.8 {d17[1]}", d17, d17, d17, d17);
   1805     TESTINSN_VLDn("vld1.8 {d30[0]}", d30, d30, d30, d30);
   1806 
   1807     fflush(stdout);
   1808     printf("---- VLD1 (single element to all lanes) ----\n");
   1809     TESTINSN_VLDn("vld1.8 {d0[]}", d0, d0, d0, d0);
   1810     TESTINSN_VLDn("vld1.16 {d0[]}", d0, d0, d0, d0);
   1811     TESTINSN_VLDn("vld1.32 {d0[]}", d0, d0, d0, d0);
   1812     TESTINSN_VLDn("vld1.8 {d9[]}", d9, d9, d9, d9);
   1813     TESTINSN_VLDn("vld1.16 {d17[]}", d17, d17, d17, d17);
   1814     TESTINSN_VLDn("vld1.32 {d31[]}", d31, d31, d31, d31);
   1815     TESTINSN_VLDn("vld1.8 {d0[],d1[]}", d0, d1, d0, d1);
   1816     TESTINSN_VLDn("vld1.16 {d0[],d1[]}", d0, d1, d0, d1);
   1817     TESTINSN_VLDn("vld1.32 {d5[],d6[]}", d5, d6, d5, d6);
   1818 
   1819     fflush(stdout);
   1820     printf("---- VLD2 (multiple 2-elements) ----\n");
   1821     TESTINSN_VLDn("vld2.8 {d30-d31}", d30, d31, d30, d31);
   1822     TESTINSN_VLDn("vld2.16 {d0-d1}", d0, d1, d0, d1);
   1823     TESTINSN_VLDn("vld2.32 {d0-d1}", d0, d1, d0, d1);
   1824     TESTINSN_VLDn("vld2.8 {d10,d12}", d10, d12, d10, d12);
   1825     TESTINSN_VLDn("vld2.16 {d20,d22}", d20, d22, d20, d22);
   1826     TESTINSN_VLDn("vld2.32 {d0,d2}", d0, d2, d0, d2);
   1827     TESTINSN_VLDn("vld2.8 {d0-d3}", d0, d1, d2, d3);
   1828     TESTINSN_VLDn("vld2.16 {d20-d23}", d20, d21, d22, d23);
   1829     TESTINSN_VLDn("vld2.32 {d0-d3}", d0, d1, d2, d3);
   1830 
   1831     fflush(stdout);
   1832     printf("---- VLD2 (single 2-element structure to one lane) ----\n");
   1833     TESTINSN_VLDn("vld2.32 {d0[0],d1[0]}", d0, d1, d0, d1);
   1834     TESTINSN_VLDn("vld2.32 {d0[1],d1[1]}", d0, d1, d0, d1);
   1835     TESTINSN_VLDn("vld2.32 {d0[0],d2[0]}", d0, d2, d0, d2);
   1836     TESTINSN_VLDn("vld2.32 {d0[1],d2[1]}", d0, d2, d0, d2);
   1837     TESTINSN_VLDn("vld2.16 {d1[0],d2[0]}", d1, d2, d1, d2);
   1838     TESTINSN_VLDn("vld2.16 {d1[1],d2[1]}", d1, d2, d1, d2);
   1839     TESTINSN_VLDn("vld2.16 {d1[2],d2[2]}", d1, d2, d1, d2);
   1840     TESTINSN_VLDn("vld2.16 {d1[3],d2[3]}", d1, d2, d1, d2);
   1841     TESTINSN_VLDn("vld2.16 {d1[0],d3[0]}", d1, d3, d1, d3);
   1842     TESTINSN_VLDn("vld2.16 {d1[1],d3[1]}", d1, d3, d1, d3);
   1843     TESTINSN_VLDn("vld2.16 {d1[2],d3[2]}", d1, d3, d1, d3);
   1844     TESTINSN_VLDn("vld2.16 {d1[3],d3[3]}", d1, d3, d1, d3);
   1845     TESTINSN_VLDn("vld2.8 {d0[7],d1[7]}", d0, d1, d0, d1);
   1846     TESTINSN_VLDn("vld2.8 {d1[6],d2[6]}", d1, d2, d1, d2);
   1847     TESTINSN_VLDn("vld2.8 {d0[5],d1[5]}", d0, d1, d0, d1);
   1848     TESTINSN_VLDn("vld2.8 {d0[4],d1[4]}", d0, d1, d0, d1);
   1849     TESTINSN_VLDn("vld2.8 {d20[3],d21[3]}", d20, d21, d20, d21);
   1850     TESTINSN_VLDn("vld2.8 {d0[2],d1[2]}", d0, d1, d0, d1);
   1851     TESTINSN_VLDn("vld2.8 {d17[1],d18[1]}", d17, d18, d17, d18);
   1852     TESTINSN_VLDn("vld2.8 {d30[0],d31[0]}", d30, d31, d30, d31);
   1853 
   1854     fflush(stdout);
   1855     printf("---- VLD2 (2-elements to all lanes) ----\n");
   1856     TESTINSN_VLDn("vld2.8 {d0[],d1[]}", d0, d1, d0, d1);
   1857     TESTINSN_VLDn("vld2.16 {d0[],d1[]}", d0, d1, d0, d1);
   1858     TESTINSN_VLDn("vld2.32 {d0[],d1[]}", d0, d1, d0, d1);
   1859     TESTINSN_VLDn("vld2.8 {d9[],d11[]}", d9, d11, d9, d11);
   1860     TESTINSN_VLDn("vld2.16 {d17[],d18[]}", d17, d18, d17, d18);
   1861     TESTINSN_VLDn("vld2.32 {d30[],d31[]}", d30, d31, d30, d31);
   1862     TESTINSN_VLDn("vld2.8 {d0[],d2[]}", d0, d2, d0, d2);
   1863     TESTINSN_VLDn("vld2.16 {d0[],d2[]}", d0, d2, d0, d2);
   1864     TESTINSN_VLDn("vld2.32 {d5[],d7[]}", d5, d7, d5, d7);
   1865 
   1866     fflush(stdout);
   1867     printf("---- VLD3 (multiple 3-elements) ----\n");
   1868     TESTINSN_VLDn("vld3.8 {d20-d22}", d20, d21, d22, d20);
   1869     TESTINSN_VLDn("vld3.16 {d0-d2}", d0, d1, d2, d0);
   1870     TESTINSN_VLDn("vld3.32 {d0-d2}", d0, d1, d2, d0);
   1871     TESTINSN_VLDn("vld3.8 {d0,d2,d4}", d0, d2, d4, d0);
   1872     TESTINSN_VLDn("vld3.16 {d20,d22,d24}", d20, d22, d24, d20);
   1873     TESTINSN_VLDn("vld3.32 {d0,d2,d4}", d0, d2, d4, d0);
   1874 
   1875     fflush(stdout);
   1876     printf("---- VLD3 (single 3-element structure to one lane) ----\n");
   1877     TESTINSN_VLDn("vld3.32 {d0[0],d1[0],d2[0]}", d0, d1, d2, d1);
   1878     TESTINSN_VLDn("vld3.32 {d0[1],d1[1],d2[1]}", d0, d1, d2, d1);
   1879     TESTINSN_VLDn("vld3.32 {d0[0],d2[0],d4[0]}", d0, d2, d4, d2);
   1880     TESTINSN_VLDn("vld3.32 {d0[1],d2[1],d4[1]}", d0, d2, d4, d2);
   1881     TESTINSN_VLDn("vld3.16 {d1[0],d2[0],d3[0]}", d1, d2, d3, d2);
   1882     TESTINSN_VLDn("vld3.16 {d1[1],d2[1],d3[1]}", d1, d2, d3, d2);
   1883     TESTINSN_VLDn("vld3.16 {d1[2],d2[2],d3[2]}", d1, d2, d3, d2);
   1884     TESTINSN_VLDn("vld3.16 {d1[3],d2[3],d3[3]}", d1, d2, d3, d2);
   1885     TESTINSN_VLDn("vld3.16 {d1[0],d3[0],d5[0]}", d1, d3, d3, d5);
   1886     TESTINSN_VLDn("vld3.16 {d1[1],d3[1],d5[1]}", d1, d3, d3, d5);
   1887     TESTINSN_VLDn("vld3.16 {d1[2],d3[2],d5[2]}", d1, d3, d3, d5);
   1888     TESTINSN_VLDn("vld3.16 {d1[3],d3[3],d5[3]}", d1, d3, d3, d5);
   1889     TESTINSN_VLDn("vld3.8 {d0[7],d1[7],d2[7]}", d0, d1, d2, d1);
   1890     TESTINSN_VLDn("vld3.8 {d1[6],d2[6],d3[6]}", d1, d2, d3, d2);
   1891     TESTINSN_VLDn("vld3.8 {d0[5],d1[5],d2[5]}", d0, d1, d2, d1);
   1892     TESTINSN_VLDn("vld3.8 {d0[4],d1[4],d2[4]}", d0, d1, d2, d1);
   1893     TESTINSN_VLDn("vld3.8 {d20[3],d21[3],d22[3]}", d20, d21, d22, d21);
   1894     TESTINSN_VLDn("vld3.8 {d0[2],d1[2],d2[2]}", d0, d1, d2, d1);
   1895     TESTINSN_VLDn("vld3.8 {d17[1],d18[1],d19[1]}", d17, d18, d19, d18);
   1896     TESTINSN_VLDn("vld3.8 {d29[0],d30[0],d31[0]}", d30, d31, d29, d31);
   1897 
   1898     fflush(stdout);
   1899     printf("---- VLD3 (3-elements to all lanes) ----\n");
   1900     TESTINSN_VLDn("vld3.8 {d0[],d1[],d2[]}", d0, d1, d2, d1);
   1901     TESTINSN_VLDn("vld3.16 {d0[],d1[],d2[]}", d0, d1, d2, d1);
   1902     TESTINSN_VLDn("vld3.32 {d0[],d1[],d2[]}", d0, d1, d2, d1);
   1903     TESTINSN_VLDn("vld3.8 {d9[],d11[],d13[]}", d9, d11, d13, d11);
   1904     TESTINSN_VLDn("vld3.16 {d17[],d18[],d19[]}", d17, d18, d19, d18);
   1905     TESTINSN_VLDn("vld3.32 {d29[],d30[],d31[]}", d29, d30, d30, d31);
   1906     TESTINSN_VLDn("vld3.8 {d0[],d2[],d4[]}", d0, d2, d4, d2);
   1907     TESTINSN_VLDn("vld3.16 {d0[],d2[],d4[]}", d0, d2, d4, d2);
   1908     TESTINSN_VLDn("vld3.32 {d5[],d7[],d9[]}", d5, d7, d9, d7);
   1909 
   1910     fflush(stdout);
   1911     printf("---- VLD4 (multiple 3-elements) ----\n");
   1912     TESTINSN_VLDn("vld4.8 {d0-d3}", d0, d1, d2, d3);
   1913     TESTINSN_VLDn("vld4.16 {d20-d23}", d20, d21, d22, d23);
   1914     TESTINSN_VLDn("vld4.32 {d0-d3}", d0, d1, d2, d3);
   1915     TESTINSN_VLDn("vld4.8 {d0,d2,d4,d6}", d0, d2, d4, d6);
   1916     TESTINSN_VLDn("vld4.16 {d1,d3,d5,d7}", d1, d3, d5, d7);
   1917     TESTINSN_VLDn("vld4.32 {d20,d22,d24,d26}", d20, d22, d24, d26);
   1918 
   1919     fflush(stdout);
   1920     printf("---- VLD4 (single 4-element structure to one lane) ----\n");
   1921     TESTINSN_VLDn("vld4.32 {d0[0],d1[0],d2[0],d3[0]}", d0, d1, d2, d3);
   1922     TESTINSN_VLDn("vld4.32 {d0[1],d1[1],d2[1],d3[1]}", d0, d1, d2, d4);
   1923     TESTINSN_VLDn("vld4.32 {d0[0],d2[0],d4[0],d6[0]}", d0, d2, d4, d6);
   1924     TESTINSN_VLDn("vld4.32 {d0[1],d2[1],d4[1],d6[1]}", d0, d2, d4, d6);
   1925     TESTINSN_VLDn("vld4.16 {d1[0],d2[0],d3[0],d4[0]}", d1, d2, d3, d4);
   1926     TESTINSN_VLDn("vld4.16 {d1[1],d2[1],d3[1],d4[1]}", d1, d2, d3, d4);
   1927     TESTINSN_VLDn("vld4.16 {d1[2],d2[2],d3[2],d4[2]}", d1, d2, d3, d4);
   1928     TESTINSN_VLDn("vld4.16 {d1[3],d2[3],d3[3],d4[3]}", d1, d2, d3, d4);
   1929     TESTINSN_VLDn("vld4.16 {d1[0],d3[0],d5[0],d7[0]}", d1, d3, d5, d7);
   1930     TESTINSN_VLDn("vld4.16 {d1[1],d3[1],d5[1],d7[1]}", d1, d3, d5, d7);
   1931     TESTINSN_VLDn("vld4.16 {d1[2],d3[2],d5[2],d7[2]}", d1, d3, d5, d7);
   1932     TESTINSN_VLDn("vld4.16 {d1[3],d3[3],d5[3],d7[3]}", d1, d3, d5, d7);
   1933     TESTINSN_VLDn("vld4.8 {d0[7],d1[7],d2[7],d3[7]}", d0, d1, d2, d3);
   1934     TESTINSN_VLDn("vld4.8 {d1[6],d2[6],d3[6],d4[6]}", d1, d2, d3, d4);
   1935     TESTINSN_VLDn("vld4.8 {d0[5],d1[5],d2[5],d3[5]}", d0, d1, d2, d3);
   1936     TESTINSN_VLDn("vld4.8 {d0[4],d1[4],d2[4],d3[4]}", d0, d1, d2, d3);
   1937     TESTINSN_VLDn("vld4.8 {d20[3],d21[3],d22[3],d23[3]}", d20, d21, d22, d23);
   1938     TESTINSN_VLDn("vld4.8 {d0[2],d1[2],d2[2],d3[2]}", d0, d1, d2, d3);
   1939     TESTINSN_VLDn("vld4.8 {d17[1],d18[1],d19[1],d20[1]}", d17, d18, d19, d20);
   1940     TESTINSN_VLDn("vld4.8 {d28[0],d29[0],d30[0],d31[0]}", d28, d29, d30, d31);
   1941 
   1942     fflush(stdout);
   1943     printf("---- VLD4 (4-elements to all lanes) ----\n");
   1944     TESTINSN_VLDn("vld4.8 {d0[],d1[],d2[],d3[]}", d0, d1, d2, d3);
   1945     TESTINSN_VLDn("vld4.16 {d0[],d1[],d2[],d3[]}", d0, d1, d2, d3);
   1946     TESTINSN_VLDn("vld4.32 {d0[],d1[],d2[],d3[]}", d0, d1, d2, d3);
   1947     TESTINSN_VLDn("vld4.8 {d9[],d11[],d13[],d15[]}", d9, d11, d13, d15);
   1948     TESTINSN_VLDn("vld4.16 {d17[],d18[],d19[],d20[]}", d17, d18, d19, d20);
   1949     TESTINSN_VLDn("vld4.32 {d28[],d29[],d30[],d31[]}", d28, d29, d30, d31);
   1950     TESTINSN_VLDn("vld4.8 {d0[],d2[],d4[],d6[]}", d0, d2, d4, d6);
   1951     TESTINSN_VLDn("vld4.16 {d0[],d2[],d4[],d6[]}", d0, d2, d4, d6);
   1952     TESTINSN_VLDn("vld4.32 {d5[],d7[],d9[],d11[]}", d5, d7, d9, d11);
   1953 
   1954     fflush(stdout);
   1955     printf("---- VST1 (multiple single elements) ----\n");
   1956     TESTINSN_VSTn("vst1.8 {d0}", d0, d0, d0, d0);
   1957     TESTINSN_VSTn("vst1.16 {d0}", d0, d0, d0, d0);
   1958     TESTINSN_VSTn("vst1.32 {d0}", d0, d0, d0, d0);
   1959     TESTINSN_VSTn("vst1.64 {d0}", d0, d0, d0, d0);
   1960     TESTINSN_VSTn("vst1.8 {d9}", d9, d9, d9, d9);
   1961     TESTINSN_VSTn("vst1.16 {d17}", d17, d17, d17, d17);
   1962     TESTINSN_VSTn("vst1.32 {d31}", d31, d31, d31, d31);
   1963     TESTINSN_VSTn("vst1.64 {d14}", d14, d14, d14, d14);
   1964     TESTINSN_VSTn("vst1.8 {d0-d1}", d0, d1, d0, d1);
   1965     TESTINSN_VSTn("vst1.16 {d0-d1}", d0, d1, d0, d1);
   1966     TESTINSN_VSTn("vst1.32 {d5-d6}", d5, d6, d5, d6);
   1967     TESTINSN_VSTn("vst1.64 {d30-d31}", d30, d31, d30, d31);
   1968     TESTINSN_VSTn("vst1.8 {d0-d2}", d0, d1, d2, d0);
   1969     TESTINSN_VSTn("vst1.16 {d0-d2}", d0, d1, d2, d0);
   1970     TESTINSN_VSTn("vst1.32 {d0-d2}", d0, d1, d2, d0);
   1971     TESTINSN_VSTn("vst1.64 {d0-d2}", d0, d1, d2, d0);
   1972     TESTINSN_VSTn("vst1.8 {d0-d3}", d0, d1, d2, d3);
   1973     TESTINSN_VSTn("vst1.16 {d0-d3}", d0, d1, d2, d3);
   1974     TESTINSN_VSTn("vst1.32 {d0-d3}", d0, d1, d2, d3);
   1975     TESTINSN_VSTn("vst1.64 {d0-d3}", d0, d1, d2, d3);
   1976 
   1977     fflush(stdout);
   1978     printf("---- VST1 (single element from one lane) ----\n");
   1979     TESTINSN_VSTn("vst1.32 {d0[0]}", d0, d0, d0, d0);
   1980     TESTINSN_VSTn("vst1.32 {d0[1]}", d0, d0, d0, d0);
   1981     TESTINSN_VSTn("vst1.16 {d1[0]}", d1, d1, d1, d1);
   1982     TESTINSN_VSTn("vst1.16 {d1[1]}", d1, d1, d1, d1);
   1983     TESTINSN_VSTn("vst1.16 {d1[2]}", d1, d1, d1, d1);
   1984     TESTINSN_VSTn("vst1.16 {d1[3]}", d1, d1, d1, d1);
   1985     TESTINSN_VSTn("vst1.8 {d0[7]}", d0, d0, d0, d0);
   1986     TESTINSN_VSTn("vst1.8 {d1[6]}", d1, d1, d1, d1);
   1987     TESTINSN_VSTn("vst1.8 {d0[5]}", d0, d0, d0, d0);
   1988     TESTINSN_VSTn("vst1.8 {d0[4]}", d0, d0, d0, d0);
   1989     TESTINSN_VSTn("vst1.8 {d20[3]}", d20, d20, d20, d20);
   1990     TESTINSN_VSTn("vst1.8 {d0[2]}", d0, d0, d0, d0);
   1991     TESTINSN_VSTn("vst1.8 {d17[1]}", d17, d17, d17, d17);
   1992     TESTINSN_VSTn("vst1.8 {d30[0]}", d30, d30, d30, d30);
   1993 
   1994     fflush(stdout);
   1995     printf("---- VST2 (multiple 2-elements) ----\n");
   1996     TESTINSN_VSTn("vst2.8 {d30-d31}", d30, d31, d30, d31);
   1997     TESTINSN_VSTn("vst2.16 {d0-d1}", d0, d1, d0, d1);
   1998     TESTINSN_VSTn("vst2.32 {d0-d1}", d0, d1, d0, d1);
   1999     TESTINSN_VSTn("vst2.8 {d10,d12}", d10, d12, d10, d12);
   2000     TESTINSN_VSTn("vst2.16 {d20,d22}", d20, d22, d20, d22);
   2001     TESTINSN_VSTn("vst2.32 {d0,d2}", d0, d2, d0, d2);
   2002     TESTINSN_VSTn("vst2.8 {d0-d3}", d0, d1, d2, d3);
   2003     TESTINSN_VSTn("vst2.16 {d20-d23}", d20, d21, d22, d23);
   2004     TESTINSN_VSTn("vst2.32 {d0-d3}", d0, d1, d2, d3);
   2005 
   2006     fflush(stdout);
   2007     printf("---- VST2 (single 2-element structure from one lane) ----\n");
   2008     TESTINSN_VSTn("vst2.32 {d0[0],d1[0]}", d0, d1, d0, d1);
   2009     TESTINSN_VSTn("vst2.32 {d0[1],d1[1]}", d0, d1, d0, d1);
   2010     TESTINSN_VSTn("vst2.32 {d0[0],d2[0]}", d0, d2, d0, d2);
   2011     TESTINSN_VSTn("vst2.32 {d0[1],d2[1]}", d0, d2, d0, d2);
   2012     TESTINSN_VSTn("vst2.16 {d1[0],d2[0]}", d1, d2, d1, d2);
   2013     TESTINSN_VSTn("vst2.16 {d1[1],d2[1]}", d1, d2, d1, d2);
   2014     TESTINSN_VSTn("vst2.16 {d1[2],d2[2]}", d1, d2, d1, d2);
   2015     TESTINSN_VSTn("vst2.16 {d1[3],d2[3]}", d1, d2, d1, d2);
   2016     TESTINSN_VSTn("vst2.16 {d1[0],d3[0]}", d1, d3, d1, d3);
   2017     TESTINSN_VSTn("vst2.16 {d1[1],d3[1]}", d1, d3, d1, d3);
   2018     TESTINSN_VSTn("vst2.16 {d1[2],d3[2]}", d1, d3, d1, d3);
   2019     TESTINSN_VSTn("vst2.16 {d1[3],d3[3]}", d1, d3, d1, d3);
   2020     TESTINSN_VSTn("vst2.8 {d0[7],d1[7]}", d0, d1, d0, d1);
   2021     TESTINSN_VSTn("vst2.8 {d1[6],d2[6]}", d1, d2, d1, d2);
   2022     TESTINSN_VSTn("vst2.8 {d0[5],d1[5]}", d0, d1, d0, d1);
   2023     TESTINSN_VSTn("vst2.8 {d0[4],d1[4]}", d0, d1, d0, d1);
   2024     TESTINSN_VSTn("vst2.8 {d20[3],d21[3]}", d20, d21, d20, d21);
   2025     TESTINSN_VSTn("vst2.8 {d0[2],d1[2]}", d0, d1, d0, d1);
   2026     TESTINSN_VSTn("vst2.8 {d17[1],d18[1]}", d17, d18, d17, d18);
   2027     TESTINSN_VSTn("vst2.8 {d30[0],d31[0]}", d30, d31, d30, d31);
   2028 
   2029     fflush(stdout);
   2030     printf("---- VST3 (multiple 3-elements) ----\n");
   2031     TESTINSN_VSTn("vst3.8 {d20-d22}", d20, d21, d22, d20);
   2032     TESTINSN_VSTn("vst3.16 {d0-d2}", d0, d1, d2, d0);
   2033     TESTINSN_VSTn("vst3.32 {d0-d2}", d0, d1, d2, d0);
   2034     TESTINSN_VSTn("vst3.8 {d0,d2,d4}", d0, d2, d4, d0);
   2035     TESTINSN_VSTn("vst3.16 {d20,d22,d24}", d20, d22, d24, d20);
   2036     TESTINSN_VSTn("vst3.32 {d0,d2,d4}", d0, d2, d4, d0);
   2037 
   2038     fflush(stdout);
   2039     printf("---- VST3 (single 3-element structure from one lane) ----\n");
   2040     TESTINSN_VSTn("vst3.32 {d0[0],d1[0],d2[0]}", d0, d1, d2, d1);
   2041     TESTINSN_VSTn("vst3.32 {d0[1],d1[1],d2[1]}", d0, d1, d2, d1);
   2042     TESTINSN_VSTn("vst3.32 {d0[0],d2[0],d4[0]}", d0, d2, d4, d2);
   2043     TESTINSN_VSTn("vst3.32 {d0[1],d2[1],d4[1]}", d0, d2, d4, d2);
   2044     TESTINSN_VSTn("vst3.16 {d1[0],d2[0],d3[0]}", d1, d2, d3, d2);
   2045     TESTINSN_VSTn("vst3.16 {d1[1],d2[1],d3[1]}", d1, d2, d3, d2);
   2046     TESTINSN_VSTn("vst3.16 {d1[2],d2[2],d3[2]}", d1, d2, d3, d2);
   2047     TESTINSN_VSTn("vst3.16 {d1[3],d2[3],d3[3]}", d1, d2, d3, d2);
   2048     TESTINSN_VSTn("vst3.16 {d1[0],d3[0],d5[0]}", d1, d3, d3, d5);
   2049     TESTINSN_VSTn("vst3.16 {d1[1],d3[1],d5[1]}", d1, d3, d3, d5);
   2050     TESTINSN_VSTn("vst3.16 {d1[2],d3[2],d5[2]}", d1, d3, d3, d5);
   2051     TESTINSN_VSTn("vst3.16 {d1[3],d3[3],d5[3]}", d1, d3, d3, d5);
   2052     TESTINSN_VSTn("vst3.8 {d0[7],d1[7],d2[7]}", d0, d1, d2, d1);
   2053     TESTINSN_VSTn("vst3.8 {d1[6],d2[6],d3[6]}", d1, d2, d3, d2);
   2054     TESTINSN_VSTn("vst3.8 {d0[5],d1[5],d2[5]}", d0, d1, d2, d1);
   2055     TESTINSN_VSTn("vst3.8 {d0[4],d1[4],d2[4]}", d0, d1, d2, d1);
   2056     TESTINSN_VSTn("vst3.8 {d20[3],d21[3],d22[3]}", d20, d21, d22, d21);
   2057     TESTINSN_VSTn("vst3.8 {d0[2],d1[2],d2[2]}", d0, d1, d2, d1);
   2058     TESTINSN_VSTn("vst3.8 {d17[1],d18[1],d19[1]}", d17, d18, d19, d18);
   2059     TESTINSN_VSTn("vst3.8 {d29[0],d30[0],d31[0]}", d30, d31, d29, d31);
   2060 
   2061     fflush(stdout);
   2062     printf("---- VST4 (multiple 4-elements) ----\n");
   2063     TESTINSN_VSTn("vst4.8 {d0-d3}", d0, d1, d2, d3);
   2064     TESTINSN_VSTn("vst4.16 {d20-d23}", d20, d21, d22, d23);
   2065     TESTINSN_VSTn("vst4.32 {d0-d3}", d0, d1, d2, d3);
   2066     TESTINSN_VSTn("vst4.8 {d0,d2,d4,d6}", d0, d2, d4, d6);
   2067     TESTINSN_VSTn("vst4.16 {d1,d3,d5,d7}", d1, d3, d5, d7);
   2068     TESTINSN_VSTn("vst4.32 {d20,d22,d24,d26}", d20, d22, d24, d26);
   2069 
   2070     fflush(stdout);
   2071     printf("---- VST4 (single 4-element structure from one lane) ----\n");
   2072     TESTINSN_VSTn("vst4.32 {d0[0],d1[0],d2[0],d3[0]}", d0, d1, d2, d3);
   2073     TESTINSN_VSTn("vst4.32 {d0[1],d1[1],d2[1],d3[1]}", d0, d1, d2, d4);
   2074     TESTINSN_VSTn("vst4.32 {d0[0],d2[0],d4[0],d6[0]}", d0, d2, d4, d6);
   2075     TESTINSN_VSTn("vst4.32 {d0[1],d2[1],d4[1],d6[1]}", d0, d2, d4, d6);
   2076     TESTINSN_VSTn("vst4.16 {d1[0],d2[0],d3[0],d4[0]}", d1, d2, d3, d4);
   2077     TESTINSN_VSTn("vst4.16 {d1[1],d2[1],d3[1],d4[1]}", d1, d2, d3, d4);
   2078     TESTINSN_VSTn("vst4.16 {d1[2],d2[2],d3[2],d4[2]}", d1, d2, d3, d4);
   2079     TESTINSN_VSTn("vst4.16 {d1[3],d2[3],d3[3],d4[3]}", d1, d2, d3, d4);
   2080     TESTINSN_VSTn("vst4.16 {d1[0],d3[0],d5[0],d7[0]}", d1, d3, d5, d7);
   2081     TESTINSN_VSTn("vst4.16 {d1[1],d3[1],d5[1],d7[1]}", d1, d3, d5, d7);
   2082     TESTINSN_VSTn("vst4.16 {d1[2],d3[2],d5[2],d7[2]}", d1, d3, d5, d7);
   2083     TESTINSN_VSTn("vst4.16 {d1[3],d3[3],d5[3],d7[3]}", d1, d3, d5, d7);
   2084     TESTINSN_VSTn("vst4.8 {d0[7],d1[7],d2[7],d3[7]}", d0, d1, d2, d3);
   2085     TESTINSN_VSTn("vst4.8 {d1[6],d2[6],d3[6],d4[6]}", d1, d2, d3, d4);
   2086     TESTINSN_VSTn("vst4.8 {d0[5],d1[5],d2[5],d3[5]}", d0, d1, d2, d3);
   2087     TESTINSN_VSTn("vst4.8 {d0[4],d1[4],d2[4],d3[4]}", d0, d1, d2, d3);
   2088     TESTINSN_VSTn("vst4.8 {d20[3],d21[3],d22[3],d23[3]}", d20, d21, d22, d23);
   2089     TESTINSN_VSTn("vst4.8 {d0[2],d1[2],d2[2],d3[2]}", d0, d1, d2, d3);
   2090     TESTINSN_VSTn("vst4.8 {d17[1],d18[1],d19[1],d20[1]}", d17, d18, d19, d20);
   2091     TESTINSN_VSTn("vst4.8 {d28[0],d29[0],d30[0],d31[0]}", d28, d29, d30, d31);
   2092 
   2093     fflush(stdout);
   2094     printf("---- VLD1 (multiple single elements) ----\n");
   2095     TESTINSN_VLDn_WB("vld1.8 {d0}", d0, d0, d0, d0);
   2096     TESTINSN_VLDn_WB("vld1.16 {d0}", d0, d0, d0, d0);
   2097     TESTINSN_VLDn_WB("vld1.32 {d0}", d0, d0, d0, d0);
   2098     TESTINSN_VLDn_WB("vld1.64 {d0}", d0, d0, d0, d0);
   2099     TESTINSN_VLDn_WB("vld1.8 {d9}", d9, d9, d9, d9);
   2100     TESTINSN_VLDn_WB("vld1.16 {d17}", d17, d17, d17, d17);
   2101     TESTINSN_VLDn_WB("vld1.32 {d31}", d31, d31, d31, d31);
   2102     TESTINSN_VLDn_WB("vld1.64 {d14}", d14, d14, d14, d14);
   2103     TESTINSN_VLDn_WB("vld1.8 {d0-d1}", d0, d1, d0, d1);
   2104     TESTINSN_VLDn_WB("vld1.16 {d0-d1}", d0, d1, d0, d1);
   2105     TESTINSN_VLDn_WB("vld1.32 {d5-d6}", d5, d6, d5, d6);
   2106     TESTINSN_VLDn_WB("vld1.64 {d30-d31}", d30, d31, d30, d31);
   2107     TESTINSN_VLDn_WB("vld1.8 {d0-d2}", d0, d1, d2, d0);
   2108     TESTINSN_VLDn_WB("vld1.16 {d0-d2}", d0, d1, d2, d0);
   2109     TESTINSN_VLDn_WB("vld1.32 {d0-d2}", d0, d1, d2, d0);
   2110     TESTINSN_VLDn_WB("vld1.64 {d0-d2}", d0, d1, d2, d0);
   2111     TESTINSN_VLDn_WB("vld1.8 {d0-d3}", d0, d1, d2, d3);
   2112     TESTINSN_VLDn_WB("vld1.16 {d0-d3}", d0, d1, d2, d3);
   2113     TESTINSN_VLDn_WB("vld1.32 {d0-d3}", d0, d1, d2, d3);
   2114     TESTINSN_VLDn_WB("vld1.64 {d0-d3}", d0, d1, d2, d3);
   2115 
   2116     fflush(stdout);
   2117     printf("---- VLD1 (single element to one lane) ----\n");
   2118     TESTINSN_VLDn_WB("vld1.32 {d0[0]}", d0, d0, d0, d0);
   2119     TESTINSN_VLDn_WB("vld1.32 {d0[1]}", d0, d0, d0, d0);
   2120     TESTINSN_VLDn_WB("vld1.16 {d1[0]}", d1, d1, d1, d1);
   2121     TESTINSN_VLDn_WB("vld1.16 {d1[1]}", d1, d1, d1, d1);
   2122     TESTINSN_VLDn_WB("vld1.16 {d1[2]}", d1, d1, d1, d1);
   2123     TESTINSN_VLDn_WB("vld1.16 {d1[3]}", d1, d1, d1, d1);
   2124     TESTINSN_VLDn_WB("vld1.8 {d0[7]}", d0, d0, d0, d0);
   2125     TESTINSN_VLDn_WB("vld1.8 {d1[6]}", d1, d1, d1, d1);
   2126     TESTINSN_VLDn_WB("vld1.8 {d0[5]}", d0, d0, d0, d0);
   2127     TESTINSN_VLDn_WB("vld1.8 {d0[4]}", d0, d0, d0, d0);
   2128     TESTINSN_VLDn_WB("vld1.8 {d20[3]}", d20, d20, d20, d20);
   2129     TESTINSN_VLDn_WB("vld1.8 {d0[2]}", d0, d0, d0, d0);
   2130     TESTINSN_VLDn_WB("vld1.8 {d17[1]}", d17, d17, d17, d17);
   2131     TESTINSN_VLDn_WB("vld1.8 {d30[0]}", d30, d30, d30, d30);
   2132 
   2133     fflush(stdout);
   2134     printf("---- VLD1 (single element to all lanes) ----\n");
   2135     TESTINSN_VLDn_WB("vld1.8 {d0[]}", d0, d0, d0, d0);
   2136     TESTINSN_VLDn_WB("vld1.16 {d0[]}", d0, d0, d0, d0);
   2137     TESTINSN_VLDn_WB("vld1.32 {d0[]}", d0, d0, d0, d0);
   2138     TESTINSN_VLDn_WB("vld1.8 {d9[]}", d9, d9, d9, d9);
   2139     TESTINSN_VLDn_WB("vld1.16 {d17[]}", d17, d17, d17, d17);
   2140     TESTINSN_VLDn_WB("vld1.32 {d31[]}", d31, d31, d31, d31);
   2141     TESTINSN_VLDn_WB("vld1.8 {d0[],d1[]}", d0, d1, d0, d1);
   2142     TESTINSN_VLDn_WB("vld1.16 {d0[],d1[]}", d0, d1, d0, d1);
   2143     TESTINSN_VLDn_WB("vld1.32 {d5[],d6[]}", d5, d6, d5, d6);
   2144 
   2145     fflush(stdout);
   2146     printf("---- VLD2 (multiple 2-elements) ----\n");
   2147     TESTINSN_VLDn_WB("vld2.8 {d30-d31}", d30, d31, d30, d31);
   2148     TESTINSN_VLDn_WB("vld2.16 {d0-d1}", d0, d1, d0, d1);
   2149     TESTINSN_VLDn_WB("vld2.32 {d0-d1}", d0, d1, d0, d1);
   2150     TESTINSN_VLDn_WB("vld2.8 {d10,d12}", d10, d12, d10, d12);
   2151     TESTINSN_VLDn_WB("vld2.16 {d20,d22}", d20, d22, d20, d22);
   2152     TESTINSN_VLDn_WB("vld2.32 {d0,d2}", d0, d2, d0, d2);
   2153     TESTINSN_VLDn_WB("vld2.8 {d0-d3}", d0, d1, d2, d3);
   2154     TESTINSN_VLDn_WB("vld2.16 {d20-d23}", d20, d21, d22, d23);
   2155     TESTINSN_VLDn_WB("vld2.32 {d0-d3}", d0, d1, d2, d3);
   2156 
   2157     fflush(stdout);
   2158     printf("---- VLD2 (single 2-element structure to one lane) ----\n");
   2159     TESTINSN_VLDn_WB("vld2.32 {d0[0],d1[0]}", d0, d1, d0, d1);
   2160     TESTINSN_VLDn_WB("vld2.32 {d0[1],d1[1]}", d0, d1, d0, d1);
   2161     TESTINSN_VLDn_WB("vld2.32 {d0[0],d2[0]}", d0, d2, d0, d2);
   2162     TESTINSN_VLDn_WB("vld2.32 {d0[1],d2[1]}", d0, d2, d0, d2);
   2163     TESTINSN_VLDn_WB("vld2.16 {d1[0],d2[0]}", d1, d2, d1, d2);
   2164     TESTINSN_VLDn_WB("vld2.16 {d1[1],d2[1]}", d1, d2, d1, d2);
   2165     TESTINSN_VLDn_WB("vld2.16 {d1[2],d2[2]}", d1, d2, d1, d2);
   2166     TESTINSN_VLDn_WB("vld2.16 {d1[3],d2[3]}", d1, d2, d1, d2);
   2167     TESTINSN_VLDn_WB("vld2.16 {d1[0],d3[0]}", d1, d3, d1, d3);
   2168     TESTINSN_VLDn_WB("vld2.16 {d1[1],d3[1]}", d1, d3, d1, d3);
   2169     TESTINSN_VLDn_WB("vld2.16 {d1[2],d3[2]}", d1, d3, d1, d3);
   2170     TESTINSN_VLDn_WB("vld2.16 {d1[3],d3[3]}", d1, d3, d1, d3);
   2171     TESTINSN_VLDn_WB("vld2.8 {d0[7],d1[7]}", d0, d1, d0, d1);
   2172     TESTINSN_VLDn_WB("vld2.8 {d1[6],d2[6]}", d1, d2, d1, d2);
   2173     TESTINSN_VLDn_WB("vld2.8 {d0[5],d1[5]}", d0, d1, d0, d1);
   2174     TESTINSN_VLDn_WB("vld2.8 {d0[4],d1[4]}", d0, d1, d0, d1);
   2175     TESTINSN_VLDn_WB("vld2.8 {d20[3],d21[3]}", d20, d21, d20, d21);
   2176     TESTINSN_VLDn_WB("vld2.8 {d0[2],d1[2]}", d0, d1, d0, d1);
   2177     TESTINSN_VLDn_WB("vld2.8 {d17[1],d18[1]}", d17, d18, d17, d18);
   2178     TESTINSN_VLDn_WB("vld2.8 {d30[0],d31[0]}", d30, d31, d30, d31);
   2179 
   2180     fflush(stdout);
   2181     printf("---- VLD2 (2-elements to all lanes) ----\n");
   2182     TESTINSN_VLDn_WB("vld2.8 {d0[],d1[]}", d0, d1, d0, d1);
   2183     TESTINSN_VLDn_WB("vld2.16 {d0[],d1[]}", d0, d1, d0, d1);
   2184     TESTINSN_VLDn_WB("vld2.32 {d0[],d1[]}", d0, d1, d0, d1);
   2185     TESTINSN_VLDn_WB("vld2.8 {d9[],d11[]}", d9, d11, d9, d11);
   2186     TESTINSN_VLDn_WB("vld2.16 {d17[],d18[]}", d17, d18, d17, d18);
   2187     TESTINSN_VLDn_WB("vld2.32 {d30[],d31[]}", d30, d31, d30, d31);
   2188     TESTINSN_VLDn_WB("vld2.8 {d0[],d2[]}", d0, d2, d0, d2);
   2189     TESTINSN_VLDn_WB("vld2.16 {d0[],d2[]}", d0, d2, d0, d2);
   2190     TESTINSN_VLDn_WB("vld2.32 {d5[],d7[]}", d5, d7, d5, d7);
   2191 
   2192     fflush(stdout);
   2193     printf("---- VLD3 (multiple 3-elements) ----\n");
   2194     TESTINSN_VLDn_WB("vld3.8 {d20-d22}", d20, d21, d22, d20);
   2195     TESTINSN_VLDn_WB("vld3.16 {d0-d2}", d0, d1, d2, d0);
   2196     TESTINSN_VLDn_WB("vld3.32 {d0-d2}", d0, d1, d2, d0);
   2197     TESTINSN_VLDn_WB("vld3.8 {d0,d2,d4}", d0, d2, d4, d0);
   2198     TESTINSN_VLDn_WB("vld3.16 {d20,d22,d24}", d20, d22, d24, d20);
   2199     TESTINSN_VLDn_WB("vld3.32 {d0,d2,d4}", d0, d2, d4, d0);
   2200 
   2201     fflush(stdout);
   2202     printf("---- VLD3 (single 3-element structure to one lane) ----\n");
   2203     TESTINSN_VLDn_WB("vld3.32 {d0[0],d1[0],d2[0]}", d0, d1, d2, d1);
   2204     TESTINSN_VLDn_WB("vld3.32 {d0[1],d1[1],d2[1]}", d0, d1, d2, d1);
   2205     TESTINSN_VLDn_WB("vld3.32 {d0[0],d2[0],d4[0]}", d0, d2, d4, d2);
   2206     TESTINSN_VLDn_WB("vld3.32 {d0[1],d2[1],d4[1]}", d0, d2, d4, d2);
   2207     TESTINSN_VLDn_WB("vld3.16 {d1[0],d2[0],d3[0]}", d1, d2, d3, d2);
   2208     TESTINSN_VLDn_WB("vld3.16 {d1[1],d2[1],d3[1]}", d1, d2, d3, d2);
   2209     TESTINSN_VLDn_WB("vld3.16 {d1[2],d2[2],d3[2]}", d1, d2, d3, d2);
   2210     TESTINSN_VLDn_WB("vld3.16 {d1[3],d2[3],d3[3]}", d1, d2, d3, d2);
   2211     TESTINSN_VLDn_WB("vld3.16 {d1[0],d3[0],d5[0]}", d1, d3, d3, d5);
   2212     TESTINSN_VLDn_WB("vld3.16 {d1[1],d3[1],d5[1]}", d1, d3, d3, d5);
   2213     TESTINSN_VLDn_WB("vld3.16 {d1[2],d3[2],d5[2]}", d1, d3, d3, d5);
   2214     TESTINSN_VLDn_WB("vld3.16 {d1[3],d3[3],d5[3]}", d1, d3, d3, d5);
   2215     TESTINSN_VLDn_WB("vld3.8 {d0[7],d1[7],d2[7]}", d0, d1, d2, d1);
   2216     TESTINSN_VLDn_WB("vld3.8 {d1[6],d2[6],d3[6]}", d1, d2, d3, d2);
   2217     TESTINSN_VLDn_WB("vld3.8 {d0[5],d1[5],d2[5]}", d0, d1, d2, d1);
   2218     TESTINSN_VLDn_WB("vld3.8 {d0[4],d1[4],d2[4]}", d0, d1, d2, d1);
   2219     TESTINSN_VLDn_WB("vld3.8 {d20[3],d21[3],d22[3]}", d20, d21, d22, d21);
   2220     TESTINSN_VLDn_WB("vld3.8 {d0[2],d1[2],d2[2]}", d0, d1, d2, d1);
   2221     TESTINSN_VLDn_WB("vld3.8 {d17[1],d18[1],d19[1]}", d17, d18, d19, d18);
   2222     TESTINSN_VLDn_WB("vld3.8 {d29[0],d30[0],d31[0]}", d30, d31, d29, d31);
   2223 
   2224     fflush(stdout);
   2225     printf("---- VLD3 (3-elements to all lanes) ----\n");
   2226     TESTINSN_VLDn_WB("vld3.8 {d0[],d1[],d2[]}", d0, d1, d2, d1);
   2227     TESTINSN_VLDn_WB("vld3.16 {d0[],d1[],d2[]}", d0, d1, d2, d1);
   2228     TESTINSN_VLDn_WB("vld3.32 {d0[],d1[],d2[]}", d0, d1, d2, d1);
   2229     TESTINSN_VLDn_WB("vld3.8 {d9[],d11[],d13[]}", d9, d11, d13, d11);
   2230     TESTINSN_VLDn_WB("vld3.16 {d17[],d18[],d19[]}", d17, d18, d19, d18);
   2231     TESTINSN_VLDn_WB("vld3.32 {d29[],d30[],d31[]}", d29, d30, d30, d31);
   2232     TESTINSN_VLDn_WB("vld3.8 {d0[],d2[],d4[]}", d0, d2, d4, d2);
   2233     TESTINSN_VLDn_WB("vld3.16 {d0[],d2[],d4[]}", d0, d2, d4, d2);
   2234     TESTINSN_VLDn_WB("vld3.32 {d5[],d7[],d9[]}", d5, d7, d9, d7);
   2235 
   2236     fflush(stdout);
   2237     printf("---- VLD4 (multiple 3-elements) ----\n");
   2238     TESTINSN_VLDn_WB("vld4.8 {d0-d3}", d0, d1, d2, d3);
   2239     TESTINSN_VLDn_WB("vld4.16 {d20-d23}", d20, d21, d22, d23);
   2240     TESTINSN_VLDn_WB("vld4.32 {d0-d3}", d0, d1, d2, d3);
   2241     TESTINSN_VLDn_WB("vld4.8 {d0,d2,d4,d6}", d0, d2, d4, d6);
   2242     TESTINSN_VLDn_WB("vld4.16 {d1,d3,d5,d7}", d1, d3, d5, d7);
   2243     TESTINSN_VLDn_WB("vld4.32 {d20,d22,d24,d26}", d20, d22, d24, d26);
   2244 
   2245     fflush(stdout);
   2246     printf("---- VLD4 (single 4-element structure to one lane) ----\n");
   2247     TESTINSN_VLDn_WB("vld4.32 {d0[0],d1[0],d2[0],d3[0]}", d0, d1, d2, d3);
   2248     TESTINSN_VLDn_WB("vld4.32 {d0[1],d1[1],d2[1],d3[1]}", d0, d1, d2, d4);
   2249     TESTINSN_VLDn_WB("vld4.32 {d0[0],d2[0],d4[0],d6[0]}", d0, d2, d4, d6);
   2250     TESTINSN_VLDn_WB("vld4.32 {d0[1],d2[1],d4[1],d6[1]}", d0, d2, d4, d6);
   2251     TESTINSN_VLDn_WB("vld4.16 {d1[0],d2[0],d3[0],d4[0]}", d1, d2, d3, d4);
   2252     TESTINSN_VLDn_WB("vld4.16 {d1[1],d2[1],d3[1],d4[1]}", d1, d2, d3, d4);
   2253     TESTINSN_VLDn_WB("vld4.16 {d1[2],d2[2],d3[2],d4[2]}", d1, d2, d3, d4);
   2254     TESTINSN_VLDn_WB("vld4.16 {d1[3],d2[3],d3[3],d4[3]}", d1, d2, d3, d4);
   2255     TESTINSN_VLDn_WB("vld4.16 {d1[0],d3[0],d5[0],d7[0]}", d1, d3, d5, d7);
   2256     TESTINSN_VLDn_WB("vld4.16 {d1[1],d3[1],d5[1],d7[1]}", d1, d3, d5, d7);
   2257     TESTINSN_VLDn_WB("vld4.16 {d1[2],d3[2],d5[2],d7[2]}", d1, d3, d5, d7);
   2258     TESTINSN_VLDn_WB("vld4.16 {d1[3],d3[3],d5[3],d7[3]}", d1, d3, d5, d7);
   2259     TESTINSN_VLDn_WB("vld4.8 {d0[7],d1[7],d2[7],d3[7]}", d0, d1, d2, d3);
   2260     TESTINSN_VLDn_WB("vld4.8 {d1[6],d2[6],d3[6],d4[6]}", d1, d2, d3, d4);
   2261     TESTINSN_VLDn_WB("vld4.8 {d0[5],d1[5],d2[5],d3[5]}", d0, d1, d2, d3);
   2262     TESTINSN_VLDn_WB("vld4.8 {d0[4],d1[4],d2[4],d3[4]}", d0, d1, d2, d3);
   2263     TESTINSN_VLDn_WB("vld4.8 {d20[3],d21[3],d22[3],d23[3]}", d20, d21, d22, d23);
   2264     TESTINSN_VLDn_WB("vld4.8 {d0[2],d1[2],d2[2],d3[2]}", d0, d1, d2, d3);
   2265     TESTINSN_VLDn_WB("vld4.8 {d17[1],d18[1],d19[1],d20[1]}", d17, d18, d19, d20);
   2266     TESTINSN_VLDn_WB("vld4.8 {d28[0],d29[0],d30[0],d31[0]}", d28, d29, d30, d31);
   2267 
   2268     fflush(stdout);
   2269     printf("---- VLD4 (4-elements to all lanes) ----\n");
   2270     TESTINSN_VLDn_WB("vld4.8 {d0[],d1[],d2[],d3[]}", d0, d1, d2, d3);
   2271     TESTINSN_VLDn_WB("vld4.16 {d0[],d1[],d2[],d3[]}", d0, d1, d2, d3);
   2272     TESTINSN_VLDn_WB("vld4.32 {d0[],d1[],d2[],d3[]}", d0, d1, d2, d3);
   2273     TESTINSN_VLDn_WB("vld4.8 {d9[],d11[],d13[],d15[]}", d9, d11, d13, d15);
   2274     TESTINSN_VLDn_WB("vld4.16 {d17[],d18[],d19[],d20[]}", d17, d18, d19, d20);
   2275     TESTINSN_VLDn_WB("vld4.32 {d28[],d29[],d30[],d31[]}", d28, d29, d30, d31);
   2276     TESTINSN_VLDn_WB("vld4.8 {d0[],d2[],d4[],d6[]}", d0, d2, d4, d6);
   2277     TESTINSN_VLDn_WB("vld4.16 {d0[],d2[],d4[],d6[]}", d0, d2, d4, d6);
   2278     TESTINSN_VLDn_WB("vld4.32 {d5[],d7[],d9[],d11[]}", d5, d7, d9, d11);
   2279 
   2280     fflush(stdout);
   2281     printf("---- VST1 (multiple single elements) ----\n");
   2282     TESTINSN_VSTn_WB("vst1.8 {d0}", d0, d0, d0, d0);
   2283     TESTINSN_VSTn_WB("vst1.16 {d0}", d0, d0, d0, d0);
   2284     TESTINSN_VSTn_WB("vst1.32 {d0}", d0, d0, d0, d0);
   2285     TESTINSN_VSTn_WB("vst1.64 {d0}", d0, d0, d0, d0);
   2286     TESTINSN_VSTn_WB("vst1.8 {d9}", d9, d9, d9, d9);
   2287     TESTINSN_VSTn_WB("vst1.16 {d17}", d17, d17, d17, d17);
   2288     TESTINSN_VSTn_WB("vst1.32 {d31}", d31, d31, d31, d31);
   2289     TESTINSN_VSTn_WB("vst1.64 {d14}", d14, d14, d14, d14);
   2290     TESTINSN_VSTn_WB("vst1.8 {d0-d1}", d0, d1, d0, d1);
   2291     TESTINSN_VSTn_WB("vst1.16 {d0-d1}", d0, d1, d0, d1);
   2292     TESTINSN_VSTn_WB("vst1.32 {d5-d6}", d5, d6, d5, d6);
   2293     TESTINSN_VSTn_WB("vst1.64 {d30-d31}", d30, d31, d30, d31);
   2294     TESTINSN_VSTn_WB("vst1.8 {d0-d2}", d0, d1, d2, d0);
   2295     TESTINSN_VSTn_WB("vst1.16 {d0-d2}", d0, d1, d2, d0);
   2296     TESTINSN_VSTn_WB("vst1.32 {d0-d2}", d0, d1, d2, d0);
   2297     TESTINSN_VSTn_WB("vst1.64 {d0-d2}", d0, d1, d2, d0);
   2298     TESTINSN_VSTn_WB("vst1.8 {d0-d3}", d0, d1, d2, d3);
   2299     TESTINSN_VSTn_WB("vst1.16 {d0-d3}", d0, d1, d2, d3);
   2300     TESTINSN_VSTn_WB("vst1.32 {d0-d3}", d0, d1, d2, d3);
   2301     TESTINSN_VSTn_WB("vst1.64 {d0-d3}", d0, d1, d2, d3);
   2302 
   2303     fflush(stdout);
   2304     printf("---- VST1 (single element from one lane) ----\n");
   2305     TESTINSN_VSTn_WB("vst1.32 {d0[0]}", d0, d0, d0, d0);
   2306     TESTINSN_VSTn_WB("vst1.32 {d0[1]}", d0, d0, d0, d0);
   2307     TESTINSN_VSTn_WB("vst1.16 {d1[0]}", d1, d1, d1, d1);
   2308     TESTINSN_VSTn_WB("vst1.16 {d1[1]}", d1, d1, d1, d1);
   2309     TESTINSN_VSTn_WB("vst1.16 {d1[2]}", d1, d1, d1, d1);
   2310     TESTINSN_VSTn_WB("vst1.16 {d1[3]}", d1, d1, d1, d1);
   2311     TESTINSN_VSTn_WB("vst1.8 {d0[7]}", d0, d0, d0, d0);
   2312     TESTINSN_VSTn_WB("vst1.8 {d1[6]}", d1, d1, d1, d1);
   2313     TESTINSN_VSTn_WB("vst1.8 {d0[5]}", d0, d0, d0, d0);
   2314     TESTINSN_VSTn_WB("vst1.8 {d0[4]}", d0, d0, d0, d0);
   2315     TESTINSN_VSTn_WB("vst1.8 {d20[3]}", d20, d20, d20, d20);
   2316     TESTINSN_VSTn_WB("vst1.8 {d0[2]}", d0, d0, d0, d0);
   2317     TESTINSN_VSTn_WB("vst1.8 {d17[1]}", d17, d17, d17, d17);
   2318     TESTINSN_VSTn_WB("vst1.8 {d30[0]}", d30, d30, d30, d30);
   2319 
   2320     fflush(stdout);
   2321     printf("---- VST2 (multiple 2-elements) ----\n");
   2322     TESTINSN_VSTn_WB("vst2.8 {d30-d31}", d30, d31, d30, d31);
   2323     TESTINSN_VSTn_WB("vst2.16 {d0-d1}", d0, d1, d0, d1);
   2324     TESTINSN_VSTn_WB("vst2.32 {d0-d1}", d0, d1, d0, d1);
   2325     TESTINSN_VSTn_WB("vst2.8 {d10,d12}", d10, d12, d10, d12);
   2326     TESTINSN_VSTn_WB("vst2.16 {d20,d22}", d20, d22, d20, d22);
   2327     TESTINSN_VSTn_WB("vst2.32 {d0,d2}", d0, d2, d0, d2);
   2328     TESTINSN_VSTn_WB("vst2.8 {d0-d3}", d0, d1, d2, d3);
   2329     TESTINSN_VSTn_WB("vst2.16 {d20-d23}", d20, d21, d22, d23);
   2330     TESTINSN_VSTn_WB("vst2.32 {d0-d3}", d0, d1, d2, d3);
   2331 
   2332     fflush(stdout);
   2333     printf("---- VST2 (single 2-element structure from one lane) ----\n");
   2334     TESTINSN_VSTn_WB("vst2.32 {d0[0],d1[0]}", d0, d1, d0, d1);
   2335     TESTINSN_VSTn_WB("vst2.32 {d0[1],d1[1]}", d0, d1, d0, d1);
   2336     TESTINSN_VSTn_WB("vst2.32 {d0[0],d2[0]}", d0, d2, d0, d2);
   2337     TESTINSN_VSTn_WB("vst2.32 {d0[1],d2[1]}", d0, d2, d0, d2);
   2338     TESTINSN_VSTn_WB("vst2.16 {d1[0],d2[0]}", d1, d2, d1, d2);
   2339     TESTINSN_VSTn_WB("vst2.16 {d1[1],d2[1]}", d1, d2, d1, d2);
   2340     TESTINSN_VSTn_WB("vst2.16 {d1[2],d2[2]}", d1, d2, d1, d2);
   2341     TESTINSN_VSTn_WB("vst2.16 {d1[3],d2[3]}", d1, d2, d1, d2);
   2342     TESTINSN_VSTn_WB("vst2.16 {d1[0],d3[0]}", d1, d3, d1, d3);
   2343     TESTINSN_VSTn_WB("vst2.16 {d1[1],d3[1]}", d1, d3, d1, d3);
   2344     TESTINSN_VSTn_WB("vst2.16 {d1[2],d3[2]}", d1, d3, d1, d3);
   2345     TESTINSN_VSTn_WB("vst2.16 {d1[3],d3[3]}", d1, d3, d1, d3);
   2346     TESTINSN_VSTn_WB("vst2.8 {d0[7],d1[7]}", d0, d1, d0, d1);
   2347     TESTINSN_VSTn_WB("vst2.8 {d1[6],d2[6]}", d1, d2, d1, d2);
   2348     TESTINSN_VSTn_WB("vst2.8 {d0[5],d1[5]}", d0, d1, d0, d1);
   2349     TESTINSN_VSTn_WB("vst2.8 {d0[4],d1[4]}", d0, d1, d0, d1);
   2350     TESTINSN_VSTn_WB("vst2.8 {d20[3],d21[3]}", d20, d21, d20, d21);
   2351     TESTINSN_VSTn_WB("vst2.8 {d0[2],d1[2]}", d0, d1, d0, d1);
   2352     TESTINSN_VSTn_WB("vst2.8 {d17[1],d18[1]}", d17, d18, d17, d18);
   2353     TESTINSN_VSTn_WB("vst2.8 {d30[0],d31[0]}", d30, d31, d30, d31);
   2354 
   2355     fflush(stdout);
   2356     printf("---- VST3 (multiple 3-elements) ----\n");
   2357     TESTINSN_VSTn_WB("vst3.8 {d20-d22}", d20, d21, d22, d20);
   2358     TESTINSN_VSTn_WB("vst3.16 {d0-d2}", d0, d1, d2, d0);
   2359     TESTINSN_VSTn_WB("vst3.32 {d0-d2}", d0, d1, d2, d0);
   2360     TESTINSN_VSTn_WB("vst3.8 {d0,d2,d4}", d0, d2, d4, d0);
   2361     TESTINSN_VSTn_WB("vst3.16 {d20,d22,d24}", d20, d22, d24, d20);
   2362     TESTINSN_VSTn_WB("vst3.32 {d0,d2,d4}", d0, d2, d4, d0);
   2363 
   2364     fflush(stdout);
   2365     printf("---- VST3 (single 3-element structure from one lane) ----\n");
   2366     TESTINSN_VSTn_WB("vst3.32 {d0[0],d1[0],d2[0]}", d0, d1, d2, d1);
   2367     TESTINSN_VSTn_WB("vst3.32 {d0[1],d1[1],d2[1]}", d0, d1, d2, d1);
   2368     TESTINSN_VSTn_WB("vst3.32 {d0[0],d2[0],d4[0]}", d0, d2, d4, d2);
   2369     TESTINSN_VSTn_WB("vst3.32 {d0[1],d2[1],d4[1]}", d0, d2, d4, d2);
   2370     TESTINSN_VSTn_WB("vst3.16 {d1[0],d2[0],d3[0]}", d1, d2, d3, d2);
   2371     TESTINSN_VSTn_WB("vst3.16 {d1[1],d2[1],d3[1]}", d1, d2, d3, d2);
   2372     TESTINSN_VSTn_WB("vst3.16 {d1[2],d2[2],d3[2]}", d1, d2, d3, d2);
   2373     TESTINSN_VSTn_WB("vst3.16 {d1[3],d2[3],d3[3]}", d1, d2, d3, d2);
   2374     TESTINSN_VSTn_WB("vst3.16 {d1[0],d3[0],d5[0]}", d1, d3, d3, d5);
   2375     TESTINSN_VSTn_WB("vst3.16 {d1[1],d3[1],d5[1]}", d1, d3, d3, d5);
   2376     TESTINSN_VSTn_WB("vst3.16 {d1[2],d3[2],d5[2]}", d1, d3, d3, d5);
   2377     TESTINSN_VSTn_WB("vst3.16 {d1[3],d3[3],d5[3]}", d1, d3, d3, d5);
   2378     TESTINSN_VSTn_WB("vst3.8 {d0[7],d1[7],d2[7]}", d0, d1, d2, d1);
   2379     TESTINSN_VSTn_WB("vst3.8 {d1[6],d2[6],d3[6]}", d1, d2, d3, d2);
   2380     TESTINSN_VSTn_WB("vst3.8 {d0[5],d1[5],d2[5]}", d0, d1, d2, d1);
   2381     TESTINSN_VSTn_WB("vst3.8 {d0[4],d1[4],d2[4]}", d0, d1, d2, d1);
   2382     TESTINSN_VSTn_WB("vst3.8 {d20[3],d21[3],d22[3]}", d20, d21, d22, d21);
   2383     TESTINSN_VSTn_WB("vst3.8 {d0[2],d1[2],d2[2]}", d0, d1, d2, d1);
   2384     TESTINSN_VSTn_WB("vst3.8 {d17[1],d18[1],d19[1]}", d17, d18, d19, d18);
   2385     TESTINSN_VSTn_WB("vst3.8 {d29[0],d30[0],d31[0]}", d30, d31, d29, d31);
   2386 
   2387     fflush(stdout);
   2388     printf("---- VST4 (multiple 4-elements) ----\n");
   2389     TESTINSN_VSTn_WB("vst4.8 {d0-d3}", d0, d1, d2, d3);
   2390     TESTINSN_VSTn_WB("vst4.16 {d20-d23}", d20, d21, d22, d23);
   2391     TESTINSN_VSTn_WB("vst4.32 {d0-d3}", d0, d1, d2, d3);
   2392     TESTINSN_VSTn_WB("vst4.8 {d0,d2,d4,d6}", d0, d2, d4, d6);
   2393     TESTINSN_VSTn_WB("vst4.16 {d1,d3,d5,d7}", d1, d3, d5, d7);
   2394     TESTINSN_VSTn_WB("vst4.32 {d20,d22,d24,d26}", d20, d22, d24, d26);
   2395 
   2396     fflush(stdout);
   2397     printf("---- VST4 (single 4-element structure from one lane) ----\n");
   2398     TESTINSN_VSTn_WB("vst4.32 {d0[0],d1[0],d2[0],d3[0]}", d0, d1, d2, d3);
   2399     TESTINSN_VSTn_WB("vst4.32 {d0[1],d1[1],d2[1],d3[1]}", d0, d1, d2, d4);
   2400     TESTINSN_VSTn_WB("vst4.32 {d0[0],d2[0],d4[0],d6[0]}", d0, d2, d4, d6);
   2401     TESTINSN_VSTn_WB("vst4.32 {d0[1],d2[1],d4[1],d6[1]}", d0, d2, d4, d6);
   2402     TESTINSN_VSTn_WB("vst4.16 {d1[0],d2[0],d3[0],d4[0]}", d1, d2, d3, d4);
   2403     TESTINSN_VSTn_WB("vst4.16 {d1[1],d2[1],d3[1],d4[1]}", d1, d2, d3, d4);
   2404     TESTINSN_VSTn_WB("vst4.16 {d1[2],d2[2],d3[2],d4[2]}", d1, d2, d3, d4);
   2405     TESTINSN_VSTn_WB("vst4.16 {d1[3],d2[3],d3[3],d4[3]}", d1, d2, d3, d4);
   2406     TESTINSN_VSTn_WB("vst4.16 {d1[0],d3[0],d5[0],d7[0]}", d1, d3, d5, d7);
   2407     TESTINSN_VSTn_WB("vst4.16 {d1[1],d3[1],d5[1],d7[1]}", d1, d3, d5, d7);
   2408     TESTINSN_VSTn_WB("vst4.16 {d1[2],d3[2],d5[2],d7[2]}", d1, d3, d5, d7);
   2409     TESTINSN_VSTn_WB("vst4.16 {d1[3],d3[3],d5[3],d7[3]}", d1, d3, d5, d7);
   2410     TESTINSN_VSTn_WB("vst4.8 {d0[7],d1[7],d2[7],d3[7]}", d0, d1, d2, d3);
   2411     TESTINSN_VSTn_WB("vst4.8 {d1[6],d2[6],d3[6],d4[6]}", d1, d2, d3, d4);
   2412     TESTINSN_VSTn_WB("vst4.8 {d0[5],d1[5],d2[5],d3[5]}", d0, d1, d2, d3);
   2413     TESTINSN_VSTn_WB("vst4.8 {d0[4],d1[4],d2[4],d3[4]}", d0, d1, d2, d3);
   2414     TESTINSN_VSTn_WB("vst4.8 {d20[3],d21[3],d22[3],d23[3]}", d20, d21, d22, d23);
   2415     TESTINSN_VSTn_WB("vst4.8 {d0[2],d1[2],d2[2],d3[2]}", d0, d1, d2, d3);
   2416     TESTINSN_VSTn_WB("vst4.8 {d17[1],d18[1],d19[1],d20[1]}", d17, d18, d19, d20);
   2417     TESTINSN_VSTn_WB("vst4.8 {d28[0],d29[0],d30[0],d31[0]}", d28, d29, d30, d31);
   2418 
   2419     fflush(stdout);
   2420     printf("---- VLD1 (multiple single elements) ----\n");
   2421     TESTINSN_VLDn_RI("vld1.8 {d0}", d0, d0, d0, d0, r5, 13);
   2422     TESTINSN_VLDn_RI("vld1.16 {d0}", d0, d0, d0, d0, r8, 13);
   2423     TESTINSN_VLDn_RI("vld1.32 {d0}", d0, d0, d0, d0, r5, 42);
   2424     TESTINSN_VLDn_RI("vld1.64 {d0}", d0, d0, d0, d0, r5, 0);
   2425     TESTINSN_VLDn_RI("vld1.8 {d9}", d9, d9, d9, d9, r5, 13);
   2426     TESTINSN_VLDn_RI("vld1.16 {d17}", d17, d17, d17, d17, r6, 13);
   2427     TESTINSN_VLDn_RI("vld1.32 {d31}", d31, d31, d31, d31, r5, -3);
   2428     TESTINSN_VLDn_RI("vld1.64 {d14}", d14, d14, d14, d14, r5, 13);
   2429     TESTINSN_VLDn_RI("vld1.8 {d0-d1}", d0, d1, d0, d1, r5, 13);
   2430     TESTINSN_VLDn_RI("vld1.16 {d0-d1}", d0, d1, d0, d1, r5, 13);
   2431     TESTINSN_VLDn_RI("vld1.32 {d5-d6}", d5, d6, d5, d6, r5, 13);
   2432     TESTINSN_VLDn_RI("vld1.64 {d30-d31}", d30, d31, d30, d31, r5, 13);
   2433     TESTINSN_VLDn_RI("vld1.8 {d0-d2}", d0, d1, d2, d0, r5, 13);
   2434     TESTINSN_VLDn_RI("vld1.16 {d0-d2}", d0, d1, d2, d0, r5, 13);
   2435     TESTINSN_VLDn_RI("vld1.32 {d0-d2}", d0, d1, d2, d0, r5, 13);
   2436     TESTINSN_VLDn_RI("vld1.64 {d0-d2}", d0, d1, d2, d0, r5, 13);
   2437     TESTINSN_VLDn_RI("vld1.8 {d0-d3}", d0, d1, d2, d3, r5, 13);
   2438     TESTINSN_VLDn_RI("vld1.16 {d0-d3}", d0, d1, d2, d3, r5, 13);
   2439     TESTINSN_VLDn_RI("vld1.32 {d0-d3}", d0, d1, d2, d3, r5, 13);
   2440     TESTINSN_VLDn_RI("vld1.64 {d0-d3}", d0, d1, d2, d3, r5, 13);
   2441 
   2442     fflush(stdout);
   2443     printf("---- VLD1 (single element to one lane) ----\n");
   2444     TESTINSN_VLDn_RI("vld1.32 {d0[0]}", d0, d0, d0, d0, r5, 13);
   2445     TESTINSN_VLDn_RI("vld1.32 {d0[1]}", d0, d0, d0, d0, r9, 42);
   2446     TESTINSN_VLDn_RI("vld1.16 {d1[0]}", d1, d1, d1, d1, r5, 13);
   2447     TESTINSN_VLDn_RI("vld1.16 {d1[1]}", d1, d1, d1, d1, r1, 0);
   2448     TESTINSN_VLDn_RI("vld1.16 {d1[2]}", d1, d1, d1, d1, r5, -3);
   2449     TESTINSN_VLDn_RI("vld1.16 {d1[3]}", d1, d1, d1, d1, r5, 13);
   2450     TESTINSN_VLDn_RI("vld1.8 {d0[7]}", d0, d0, d0, d0, r5, 13);
   2451     TESTINSN_VLDn_RI("vld1.8 {d1[6]}", d1, d1, d1, d1, r5, 13);
   2452     TESTINSN_VLDn_RI("vld1.8 {d0[5]}", d0, d0, d0, d0, r5, 13);
   2453     TESTINSN_VLDn_RI("vld1.8 {d0[4]}", d0, d0, d0, d0, r5, 13);
   2454     TESTINSN_VLDn_RI("vld1.8 {d20[3]}", d20, d20, d20, d20, r5, 13);
   2455     TESTINSN_VLDn_RI("vld1.8 {d0[2]}", d0, d0, d0, d0, r5, 13);
   2456     TESTINSN_VLDn_RI("vld1.8 {d17[1]}", d17, d17, d17, d17, r5, 13);
   2457     TESTINSN_VLDn_RI("vld1.8 {d30[0]}", d30, d30, d30, d30, r5, 13);
   2458 
   2459     fflush(stdout);
   2460     printf("---- VLD1 (single element to all lanes) ----\n");
   2461     TESTINSN_VLDn_RI("vld1.8 {d0[]}", d0, d0, d0, d0, r5, 13);
   2462     TESTINSN_VLDn_RI("vld1.16 {d0[]}", d0, d0, d0, d0, r9, 42);
   2463     TESTINSN_VLDn_RI("vld1.32 {d0[]}", d0, d0, d0, d0, r1, 0);
   2464     TESTINSN_VLDn_RI("vld1.8 {d9[]}", d9, d9, d9, d9, r5, -3);
   2465     TESTINSN_VLDn_RI("vld1.16 {d17[]}", d17, d17, d17, d17, r5, 13);
   2466     TESTINSN_VLDn_RI("vld1.32 {d31[]}", d31, d31, d31, d31, r5, 13);
   2467     TESTINSN_VLDn_RI("vld1.8 {d0[],d1[]}", d0, d1, d0, d1, r5, 13);
   2468     TESTINSN_VLDn_RI("vld1.16 {d0[],d1[]}", d0, d1, d0, d1, r5, 13);
   2469     TESTINSN_VLDn_RI("vld1.32 {d5[],d6[]}", d5, d6, d5, d6, r5, 13);
   2470 
   2471     fflush(stdout);
   2472     printf("---- VLD2 (multiple 2-elements) ----\n");
   2473     TESTINSN_VLDn_RI("vld2.8 {d30-d31}", d30, d31, d30, d31, r5, 13);
   2474     TESTINSN_VLDn_RI("vld2.16 {d0-d1}", d0, d1, d0, d1, r9, 42);
   2475     TESTINSN_VLDn_RI("vld2.32 {d0-d1}", d0, d1, d0, d1, r1, 0);
   2476     TESTINSN_VLDn_RI("vld2.8 {d10,d12}", d10, d12, d10, d12, r5, -3);
   2477     TESTINSN_VLDn_RI("vld2.16 {d20,d22}", d20, d22, d20, d22, r5, 13);
   2478     TESTINSN_VLDn_RI("vld2.32 {d0,d2}", d0, d2, d0, d2, r5, 13);
   2479     TESTINSN_VLDn_RI("vld2.8 {d0-d3}", d0, d1, d2, d3, r5, 13);
   2480     TESTINSN_VLDn_RI("vld2.16 {d20-d23}", d20, d21, d22, d23, r5, 13);
   2481     TESTINSN_VLDn_RI("vld2.32 {d0-d3}", d0, d1, d2, d3, r5, 13);
   2482 
   2483     fflush(stdout);
   2484     printf("---- VLD2 (single 2-element structure to one lane) ----\n");
   2485     TESTINSN_VLDn_RI("vld2.32 {d0[0],d1[0]}", d0, d1, d0, d1, r5, 13);
   2486     TESTINSN_VLDn_RI("vld2.32 {d0[1],d1[1]}", d0, d1, d0, d1, r9, 42);
   2487     TESTINSN_VLDn_RI("vld2.32 {d0[0],d2[0]}", d0, d2, d0, d2, r1, 0);
   2488     TESTINSN_VLDn_RI("vld2.32 {d0[1],d2[1]}", d0, d2, d0, d2, r5, -3);
   2489     TESTINSN_VLDn_RI("vld2.16 {d1[0],d2[0]}", d1, d2, d1, d2, r5, 13);
   2490     TESTINSN_VLDn_RI("vld2.16 {d1[1],d2[1]}", d1, d2, d1, d2, r5, 13);
   2491     TESTINSN_VLDn_RI("vld2.16 {d1[2],d2[2]}", d1, d2, d1, d2, r5, 13);
   2492     TESTINSN_VLDn_RI("vld2.16 {d1[3],d2[3]}", d1, d2, d1, d2, r5, 13);
   2493     TESTINSN_VLDn_RI("vld2.16 {d1[0],d3[0]}", d1, d3, d1, d3, r5, 13);
   2494     TESTINSN_VLDn_RI("vld2.16 {d1[1],d3[1]}", d1, d3, d1, d3, r5, 13);
   2495     TESTINSN_VLDn_RI("vld2.16 {d1[2],d3[2]}", d1, d3, d1, d3, r5, 13);
   2496     TESTINSN_VLDn_RI("vld2.16 {d1[3],d3[3]}", d1, d3, d1, d3, r5, 13);
   2497     TESTINSN_VLDn_RI("vld2.8 {d0[7],d1[7]}", d0, d1, d0, d1, r5, 13);
   2498     TESTINSN_VLDn_RI("vld2.8 {d1[6],d2[6]}", d1, d2, d1, d2, r5, 13);
   2499     TESTINSN_VLDn_RI("vld2.8 {d0[5],d1[5]}", d0, d1, d0, d1, r5, 13);
   2500     TESTINSN_VLDn_RI("vld2.8 {d0[4],d1[4]}", d0, d1, d0, d1, r5, 13);
   2501     TESTINSN_VLDn_RI("vld2.8 {d20[3],d21[3]}", d20, d21, d20, d21, r5, 13);
   2502     TESTINSN_VLDn_RI("vld2.8 {d0[2],d1[2]}", d0, d1, d0, d1, r5, 13);
   2503     TESTINSN_VLDn_RI("vld2.8 {d17[1],d18[1]}", d17, d18, d17, d18, r5, 13);
   2504     TESTINSN_VLDn_RI("vld2.8 {d30[0],d31[0]}", d30, d31, d30, d31, r5, 13);
   2505 
   2506     fflush(stdout);
   2507     printf("---- VLD2 (2-elements to all lanes) ----\n");
   2508     TESTINSN_VLDn_RI("vld2.8 {d0[],d1[]}", d0, d1, d0, d1, r5, 13);
   2509     TESTINSN_VLDn_RI("vld2.16 {d0[],d1[]}", d0, d1, d0, d1, r9, 42);
   2510     TESTINSN_VLDn_RI("vld2.32 {d0[],d1[]}", d0, d1, d0, d1, r1, 0);
   2511     TESTINSN_VLDn_RI("vld2.8 {d9[],d11[]}", d9, d11, d9, d11, r5, -3);
   2512     TESTINSN_VLDn_RI("vld2.16 {d17[],d18[]}", d17, d18, d17, d18, r5, 13);
   2513     TESTINSN_VLDn_RI("vld2.32 {d30[],d31[]}", d30, d31, d30, d31, r5, 13);
   2514     TESTINSN_VLDn_RI("vld2.8 {d0[],d2[]}", d0, d2, d0, d2, r5, 13);
   2515     TESTINSN_VLDn_RI("vld2.16 {d0[],d2[]}", d0, d2, d0, d2, r5, 13);
   2516     TESTINSN_VLDn_RI("vld2.32 {d5[],d7[]}", d5, d7, d5, d7, r5, 13);
   2517 
   2518     fflush(stdout);
   2519     printf("---- VLD3 (multiple 3-elements) ----\n");
   2520     TESTINSN_VLDn_RI("vld3.8 {d20-d22}", d20, d21, d22, d20, r5, 13);
   2521     TESTINSN_VLDn_RI("vld3.16 {d0-d2}", d0, d1, d2, d0, r9, 42);
   2522     TESTINSN_VLDn_RI("vld3.32 {d0-d2}", d0, d1, d2, d0, r1, 0);
   2523     TESTINSN_VLDn_RI("vld3.8 {d0,d2,d4}", d0, d2, d4, d0, r5, -3);
   2524     TESTINSN_VLDn_RI("vld3.16 {d20,d22,d24}", d20, d22, d24, d20, r5, 13);
   2525     TESTINSN_VLDn_RI("vld3.32 {d0,d2,d4}", d0, d2, d4, d0, r5, 13);
   2526 
   2527     fflush(stdout);
   2528     printf("---- VLD3 (single 3-element structure to one lane) ----\n");
   2529     TESTINSN_VLDn_RI("vld3.32 {d0[0],d1[0],d2[0]}", d0, d1, d2, d1, r5, 13);
   2530     TESTINSN_VLDn_RI("vld3.32 {d0[1],d1[1],d2[1]}", d0, d1, d2, d1, r9, 42);
   2531     TESTINSN_VLDn_RI("vld3.32 {d0[0],d2[0],d4[0]}", d0, d2, d4, d2, r1, 0);
   2532     TESTINSN_VLDn_RI("vld3.32 {d0[1],d2[1],d4[1]}", d0, d2, d4, d2, r5, -3);
   2533     TESTINSN_VLDn_RI("vld3.16 {d1[0],d2[0],d3[0]}", d1, d2, d3, d2, r5, 13);
   2534     TESTINSN_VLDn_RI("vld3.16 {d1[1],d2[1],d3[1]}", d1, d2, d3, d2, r5, 13);
   2535     TESTINSN_VLDn_RI("vld3.16 {d1[2],d2[2],d3[2]}", d1, d2, d3, d2, r5, 13);
   2536     TESTINSN_VLDn_RI("vld3.16 {d1[3],d2[3],d3[3]}", d1, d2, d3, d2, r5, 13);
   2537     TESTINSN_VLDn_RI("vld3.16 {d1[0],d3[0],d5[0]}", d1, d3, d3, d5, r5, 13);
   2538     TESTINSN_VLDn_RI("vld3.16 {d1[1],d3[1],d5[1]}", d1, d3, d3, d5, r5, 13);
   2539     TESTINSN_VLDn_RI("vld3.16 {d1[2],d3[2],d5[2]}", d1, d3, d3, d5, r5, 13);
   2540     TESTINSN_VLDn_RI("vld3.16 {d1[3],d3[3],d5[3]}", d1, d3, d3, d5, r5, 13);
   2541     TESTINSN_VLDn_RI("vld3.8 {d0[7],d1[7],d2[7]}", d0, d1, d2, d1, r5, 13);
   2542     TESTINSN_VLDn_RI("vld3.8 {d1[6],d2[6],d3[6]}", d1, d2, d3, d2, r5, 13);
   2543     TESTINSN_VLDn_RI("vld3.8 {d0[5],d1[5],d2[5]}", d0, d1, d2, d1, r5, 13);
   2544     TESTINSN_VLDn_RI("vld3.8 {d0[4],d1[4],d2[4]}", d0, d1, d2, d1, r5, 13);
   2545     TESTINSN_VLDn_RI("vld3.8 {d20[3],d21[3],d22[3]}", d20, d21, d22, d21, r5, 13);
   2546     TESTINSN_VLDn_RI("vld3.8 {d0[2],d1[2],d2[2]}", d0, d1, d2, d1, r5, 13);
   2547     TESTINSN_VLDn_RI("vld3.8 {d17[1],d18[1],d19[1]}", d17, d18, d19, d18, r5, 13);
   2548     TESTINSN_VLDn_RI("vld3.8 {d29[0],d30[0],d31[0]}", d30, d31, d29, d31, r5, 13);
   2549 
   2550     fflush(stdout);
   2551     printf("---- VLD3 (3-elements to all lanes) ----\n");
   2552     TESTINSN_VLDn_RI("vld3.8 {d0[],d1[],d2[]}", d0, d1, d2, d1, r5, 13);
   2553     TESTINSN_VLDn_RI("vld3.16 {d0[],d1[],d2[]}", d0, d1, d2, d1, r9, 42);
   2554     TESTINSN_VLDn_RI("vld3.32 {d0[],d1[],d2[]}", d0, d1, d2, d1, r1, 0);
   2555     TESTINSN_VLDn_RI("vld3.8 {d9[],d11[],d13[]}", d9, d11, d13, d11, r5, -3);
   2556     TESTINSN_VLDn_RI("vld3.16 {d17[],d18[],d19[]}", d17, d18, d19, d18, r5, 13);
   2557     TESTINSN_VLDn_RI("vld3.32 {d29[],d30[],d31[]}", d29, d30, d30, d31, r5, 13);
   2558     TESTINSN_VLDn_RI("vld3.8 {d0[],d2[],d4[]}", d0, d2, d4, d2, r5, 13);
   2559     TESTINSN_VLDn_RI("vld3.16 {d0[],d2[],d4[]}", d0, d2, d4, d2, r5, 13);
   2560     TESTINSN_VLDn_RI("vld3.32 {d5[],d7[],d9[]}", d5, d7, d9, d7, r5, 13);
   2561 
   2562     fflush(stdout);
   2563     printf("---- VLD4 (multiple 3-elements) ----\n");
   2564     TESTINSN_VLDn_RI("vld4.8 {d0-d3}", d0, d1, d2, d3, r5, 13);
   2565     TESTINSN_VLDn_RI("vld4.16 {d20-d23}", d20, d21, d22, d23, r9, 0);
   2566     TESTINSN_VLDn_RI("vld4.32 {d0-d3}", d0, d1, d2, d3, r0, 42);
   2567     TESTINSN_VLDn_RI("vld4.8 {d0,d2,d4,d6}", d0, d2, d4, d6, r5, -3);
   2568     TESTINSN_VLDn_RI("vld4.16 {d1,d3,d5,d7}", d1, d3, d5, d7, r5, 13);
   2569     TESTINSN_VLDn_RI("vld4.32 {d20,d22,d24,d26}", d20, d22, d24, d26, r5, 13);
   2570 
   2571     fflush(stdout);
   2572     printf("---- VLD4 (single 4-element structure to one lane) ----\n");
   2573     TESTINSN_VLDn_RI("vld4.32 {d0[0],d1[0],d2[0],d3[0]}", d0, d1, d2, d3, r5, 13);
   2574     TESTINSN_VLDn_RI("vld4.32 {d0[1],d1[1],d2[1],d3[1]}", d0, d1, d2, d4, r9, 42);
   2575     TESTINSN_VLDn_RI("vld4.32 {d0[0],d2[0],d4[0],d6[0]}", d0, d2, d4, d6, r1, 0);
   2576     TESTINSN_VLDn_RI("vld4.32 {d0[1],d2[1],d4[1],d6[1]}", d0, d2, d4, d6, r5, -3);
   2577     TESTINSN_VLDn_RI("vld4.16 {d1[0],d2[0],d3[0],d4[0]}", d1, d2, d3, d4, r5, 13);
   2578     TESTINSN_VLDn_RI("vld4.16 {d1[1],d2[1],d3[1],d4[1]}", d1, d2, d3, d4, r5, 13);
   2579     TESTINSN_VLDn_RI("vld4.16 {d1[2],d2[2],d3[2],d4[2]}", d1, d2, d3, d4, r5, 13);
   2580     TESTINSN_VLDn_RI("vld4.16 {d1[3],d2[3],d3[3],d4[3]}", d1, d2, d3, d4, r5, 13);
   2581     TESTINSN_VLDn_RI("vld4.16 {d1[0],d3[0],d5[0],d7[0]}", d1, d3, d5, d7, r5, 13);
   2582     TESTINSN_VLDn_RI("vld4.16 {d1[1],d3[1],d5[1],d7[1]}", d1, d3, d5, d7, r5, 13);
   2583     TESTINSN_VLDn_RI("vld4.16 {d1[2],d3[2],d5[2],d7[2]}", d1, d3, d5, d7, r5, 13);
   2584     TESTINSN_VLDn_RI("vld4.16 {d1[3],d3[3],d5[3],d7[3]}", d1, d3, d5, d7, r5, 13);
   2585     TESTINSN_VLDn_RI("vld4.8 {d0[7],d1[7],d2[7],d3[7]}", d0, d1, d2, d3, r5, 13);
   2586     TESTINSN_VLDn_RI("vld4.8 {d1[6],d2[6],d3[6],d4[6]}", d1, d2, d3, d4, r5, 13);
   2587     TESTINSN_VLDn_RI("vld4.8 {d0[5],d1[5],d2[5],d3[5]}", d0, d1, d2, d3, r5, 13);
   2588     TESTINSN_VLDn_RI("vld4.8 {d0[4],d1[4],d2[4],d3[4]}", d0, d1, d2, d3, r5, 13);
   2589     TESTINSN_VLDn_RI("vld4.8 {d20[3],d21[3],d22[3],d23[3]}", d20, d21, d22, d23, r5, 13);
   2590     TESTINSN_VLDn_RI("vld4.8 {d0[2],d1[2],d2[2],d3[2]}", d0, d1, d2, d3, r5, 13);
   2591     TESTINSN_VLDn_RI("vld4.8 {d17[1],d18[1],d19[1],d20[1]}", d17, d18, d19, d20, r5, 13);
   2592     TESTINSN_VLDn_RI("vld4.8 {d28[0],d29[0],d30[0],d31[0]}", d28, d29, d30, d31, r5, 13);
   2593 
   2594     fflush(stdout);
   2595     printf("---- VLD4 (4-elements to all lanes) ----\n");
   2596     TESTINSN_VLDn_RI("vld4.8 {d0[],d1[],d2[],d3[]}", d0, d1, d2, d3, r5, 13);
   2597     TESTINSN_VLDn_RI("vld4.16 {d0[],d1[],d2[],d3[]}", d0, d1, d2, d3, r9, 42);
   2598     TESTINSN_VLDn_RI("vld4.32 {d0[],d1[],d2[],d3[]}", d0, d1, d2, d3, r1, 0);
   2599     TESTINSN_VLDn_RI("vld4.8 {d9[],d11[],d13[],d15[]}", d9, d11, d13, d15, r5, -3);
   2600     TESTINSN_VLDn_RI("vld4.16 {d17[],d18[],d19[],d20[]}", d17, d18, d19, d20, r5, 13);
   2601     TESTINSN_VLDn_RI("vld4.32 {d28[],d29[],d30[],d31[]}", d28, d29, d30, d31, r5, 13);
   2602     TESTINSN_VLDn_RI("vld4.8 {d0[],d2[],d4[],d6[]}", d0, d2, d4, d6, r5, 13);
   2603     TESTINSN_VLDn_RI("vld4.16 {d0[],d2[],d4[],d6[]}", d0, d2, d4, d6, r5, 13);
   2604     TESTINSN_VLDn_RI("vld4.32 {d5[],d7[],d9[],d11[]}", d5, d7, d9, d11, r5, 13);
   2605 
   2606     fflush(stdout);
   2607     printf("---- VST1 (multiple single elements) ----\n");
   2608     TESTINSN_VSTn_RI("vst1.8 {d0}", d0, d0, d0, d0, r5, 13);
   2609     TESTINSN_VSTn_RI("vst1.16 {d0}", d0, d0, d0, d0, r9, 42);
   2610     TESTINSN_VSTn_RI("vst1.32 {d0}", d0, d0, d0, d0, r5, 0);
   2611     TESTINSN_VSTn_RI("vst1.64 {d0}", d0, d0, d0, d0, r5, -3);
   2612     TESTINSN_VSTn_RI("vst1.8 {d9}", d9, d9, d9, d9, r5, 13);
   2613     TESTINSN_VSTn_RI("vst1.16 {d17}", d17, d17, d17, d17, r5, 13);
   2614     TESTINSN_VSTn_RI("vst1.32 {d31}", d31, d31, d31, d31, r5, 13);
   2615     TESTINSN_VSTn_RI("vst1.64 {d14}", d14, d14, d14, d14, r5, 13);
   2616     TESTINSN_VSTn_RI("vst1.8 {d0-d1}", d0, d1, d0, d1, r5, 13);
   2617     TESTINSN_VSTn_RI("vst1.16 {d0-d1}", d0, d1, d0, d1, r5, 13);
   2618     TESTINSN_VSTn_RI("vst1.32 {d5-d6}", d5, d6, d5, d6, r5, 13);
   2619     TESTINSN_VSTn_RI("vst1.64 {d30-d31}", d30, d31, d30, d31, r5, 13);
   2620     TESTINSN_VSTn_RI("vst1.8 {d0-d2}", d0, d1, d2, d0, r5, 13);
   2621     TESTINSN_VSTn_RI("vst1.16 {d0-d2}", d0, d1, d2, d0, r5, 13);
   2622     TESTINSN_VSTn_RI("vst1.32 {d0-d2}", d0, d1, d2, d0, r5, 13);
   2623     TESTINSN_VSTn_RI("vst1.64 {d0-d2}", d0, d1, d2, d0, r5, 13);
   2624     TESTINSN_VSTn_RI("vst1.8 {d0-d3}", d0, d1, d2, d3, r5, 13);
   2625     TESTINSN_VSTn_RI("vst1.16 {d0-d3}", d0, d1, d2, d3, r5, 13);
   2626     TESTINSN_VSTn_RI("vst1.32 {d0-d3}", d0, d1, d2, d3, r5, 13);
   2627     TESTINSN_VSTn_RI("vst1.64 {d0-d3}", d0, d1, d2, d3, r5, 13);
   2628 
   2629     fflush(stdout);
   2630     printf("---- VST1 (single element from one lane) ----\n");
   2631     TESTINSN_VSTn_RI("vst1.32 {d0[0]}", d0, d0, d0, d0, r5, 13);
   2632     TESTINSN_VSTn_RI("vst1.32 {d0[1]}", d0, d0, d0, d0, r9, 42);
   2633     TESTINSN_VSTn_RI("vst1.16 {d1[0]}", d1, d1, d1, d1, r1, 0);
   2634     TESTINSN_VSTn_RI("vst1.16 {d1[1]}", d1, d1, d1, d1, r5, -3);
   2635     TESTINSN_VSTn_RI("vst1.16 {d1[2]}", d1, d1, d1, d1, r5, 13);
   2636     TESTINSN_VSTn_RI("vst1.16 {d1[3]}", d1, d1, d1, d1, r5, 13);
   2637     TESTINSN_VSTn_RI("vst1.8 {d0[7]}", d0, d0, d0, d0, r5, 13);
   2638     TESTINSN_VSTn_RI("vst1.8 {d1[6]}", d1, d1, d1, d1, r5, 13);
   2639     TESTINSN_VSTn_RI("vst1.8 {d0[5]}", d0, d0, d0, d0, r5, 13);
   2640     TESTINSN_VSTn_RI("vst1.8 {d0[4]}", d0, d0, d0, d0, r5, 13);
   2641     TESTINSN_VSTn_RI("vst1.8 {d20[3]}", d20, d20, d20, d20, r5, 13);
   2642     TESTINSN_VSTn_RI("vst1.8 {d0[2]}", d0, d0, d0, d0, r5, 13);
   2643     TESTINSN_VSTn_RI("vst1.8 {d17[1]}", d17, d17, d17, d17, r5, 13);
   2644     TESTINSN_VSTn_RI("vst1.8 {d30[0]}", d30, d30, d30, d30, r5, 13);
   2645 
   2646     fflush(stdout);
   2647     printf("---- VST2 (multiple 2-elements) ----\n");
   2648     TESTINSN_VSTn_RI("vst2.8 {d30-d31}", d30, d31, d30, d31, r5, 13);
   2649     TESTINSN_VSTn_RI("vst2.16 {d0-d1}", d0, d1, d0, d1, r9, 42);
   2650     TESTINSN_VSTn_RI("vst2.32 {d0-d1}", d0, d1, d0, d1, r1, 0);
   2651     TESTINSN_VSTn_RI("vst2.8 {d10,d12}", d10, d12, d10, d12, r5, -3);
   2652     TESTINSN_VSTn_RI("vst2.16 {d20,d22}", d20, d22, d20, d22, r5, 13);
   2653     TESTINSN_VSTn_RI("vst2.32 {d0,d2}", d0, d2, d0, d2, r5, 13);
   2654     TESTINSN_VSTn_RI("vst2.8 {d0-d3}", d0, d1, d2, d3, r5, 13);
   2655     TESTINSN_VSTn_RI("vst2.16 {d20-d23}", d20, d21, d22, d23, r5, 13);
   2656     TESTINSN_VSTn_RI("vst2.32 {d0-d3}", d0, d1, d2, d3, r5, 13);
   2657 
   2658     fflush(stdout);
   2659     printf("---- VST2 (single 2-element structure from one lane) ----\n");
   2660     TESTINSN_VSTn_RI("vst2.32 {d0[0],d1[0]}", d0, d1, d0, d1, r5, 13);
   2661     TESTINSN_VSTn_RI("vst2.32 {d0[1],d1[1]}", d0, d1, d0, d1, r9, 42);
   2662     TESTINSN_VSTn_RI("vst2.32 {d0[0],d2[0]}", d0, d2, d0, d2, r1, 0);
   2663     TESTINSN_VSTn_RI("vst2.32 {d0[1],d2[1]}", d0, d2, d0, d2, r5, -3);
   2664     TESTINSN_VSTn_RI("vst2.16 {d1[0],d2[0]}", d1, d2, d1, d2, r5, 13);
   2665     TESTINSN_VSTn_RI("vst2.16 {d1[1],d2[1]}", d1, d2, d1, d2, r5, 13);
   2666     TESTINSN_VSTn_RI("vst2.16 {d1[2],d2[2]}", d1, d2, d1, d2, r5, 13);
   2667     TESTINSN_VSTn_RI("vst2.16 {d1[3],d2[3]}", d1, d2, d1, d2, r5, 13);
   2668     TESTINSN_VSTn_RI("vst2.16 {d1[0],d3[0]}", d1, d3, d1, d3, r5, 13);
   2669     TESTINSN_VSTn_RI("vst2.16 {d1[1],d3[1]}", d1, d3, d1, d3, r5, 13);
   2670     TESTINSN_VSTn_RI("vst2.16 {d1[2],d3[2]}", d1, d3, d1, d3, r5, 13);
   2671     TESTINSN_VSTn_RI("vst2.16 {d1[3],d3[3]}", d1, d3, d1, d3, r5, 13);
   2672     TESTINSN_VSTn_RI("vst2.8 {d0[7],d1[7]}", d0, d1, d0, d1, r5, 13);
   2673     TESTINSN_VSTn_RI("vst2.8 {d1[6],d2[6]}", d1, d2, d1, d2, r5, 13);
   2674     TESTINSN_VSTn_RI("vst2.8 {d0[5],d1[5]}", d0, d1, d0, d1, r5, 13);
   2675     TESTINSN_VSTn_RI("vst2.8 {d0[4],d1[4]}", d0, d1, d0, d1, r5, 13);
   2676     TESTINSN_VSTn_RI("vst2.8 {d20[3],d21[3]}", d20, d21, d20, d21, r5, 13);
   2677     TESTINSN_VSTn_RI("vst2.8 {d0[2],d1[2]}", d0, d1, d0, d1, r5, 13);
   2678     TESTINSN_VSTn_RI("vst2.8 {d17[1],d18[1]}", d17, d18, d17, d18, r5, 13);
   2679     TESTINSN_VSTn_RI("vst2.8 {d30[0],d31[0]}", d30, d31, d30, d31, r5, 13);
   2680 
   2681     fflush(stdout);
   2682     printf("---- VST3 (multiple 3-elements) ----\n");
   2683     TESTINSN_VSTn_RI("vst3.8 {d20-d22}", d20, d21, d22, d20, r5, 13);
   2684     TESTINSN_VSTn_RI("vst3.16 {d0-d2}", d0, d1, d2, d0, r9, 42);
   2685     TESTINSN_VSTn_RI("vst3.32 {d0-d2}", d0, d1, d2, d0, r1, 0);
   2686     TESTINSN_VSTn_RI("vst3.8 {d0,d2,d4}", d0, d2, d4, d0, r5, -3);
   2687     TESTINSN_VSTn_RI("vst3.16 {d20,d22,d24}", d20, d22, d24, d20, r5, 13);
   2688     TESTINSN_VSTn_RI("vst3.32 {d0,d2,d4}", d0, d2, d4, d0, r5, 13);
   2689 
   2690     fflush(stdout);
   2691     printf("---- VST3 (single 3-element structure from one lane) ----\n");
   2692     TESTINSN_VSTn_RI("vst3.32 {d0[0],d1[0],d2[0]}", d0, d1, d2, d1, r5, 13);
   2693     TESTINSN_VSTn_RI("vst3.32 {d0[1],d1[1],d2[1]}", d0, d1, d2, d1, r9, 42);
   2694     TESTINSN_VSTn_RI("vst3.32 {d0[0],d2[0],d4[0]}", d0, d2, d4, d2, r1, 0);
   2695     TESTINSN_VSTn_RI("vst3.32 {d0[1],d2[1],d4[1]}", d0, d2, d4, d2, r5, -3);
   2696     TESTINSN_VSTn_RI("vst3.16 {d1[0],d2[0],d3[0]}", d1, d2, d3, d2, r5, 13);
   2697     TESTINSN_VSTn_RI("vst3.16 {d1[1],d2[1],d3[1]}", d1, d2, d3, d2, r5, 13);
   2698     TESTINSN_VSTn_RI("vst3.16 {d1[2],d2[2],d3[2]}", d1, d2, d3, d2, r5, 13);
   2699     TESTINSN_VSTn_RI("vst3.16 {d1[3],d2[3],d3[3]}", d1, d2, d3, d2, r5, 13);
   2700     TESTINSN_VSTn_RI("vst3.16 {d1[0],d3[0],d5[0]}", d1, d3, d3, d5, r5, 13);
   2701     TESTINSN_VSTn_RI("vst3.16 {d1[1],d3[1],d5[1]}", d1, d3, d3, d5, r5, 13);
   2702     TESTINSN_VSTn_RI("vst3.16 {d1[2],d3[2],d5[2]}", d1, d3, d3, d5, r5, 13);
   2703     TESTINSN_VSTn_RI("vst3.16 {d1[3],d3[3],d5[3]}", d1, d3, d3, d5, r5, 13);
   2704     TESTINSN_VSTn_RI("vst3.8 {d0[7],d1[7],d2[7]}", d0, d1, d2, d1, r5, 13);
   2705     TESTINSN_VSTn_RI("vst3.8 {d1[6],d2[6],d3[6]}", d1, d2, d3, d2, r5, 13);
   2706     TESTINSN_VSTn_RI("vst3.8 {d0[5],d1[5],d2[5]}", d0, d1, d2, d1, r5, 13);
   2707     TESTINSN_VSTn_RI("vst3.8 {d0[4],d1[4],d2[4]}", d0, d1, d2, d1, r5, 13);
   2708     TESTINSN_VSTn_RI("vst3.8 {d20[3],d21[3],d22[3]}", d20, d21, d22, d21, r5, 13);
   2709     TESTINSN_VSTn_RI("vst3.8 {d0[2],d1[2],d2[2]}", d0, d1, d2, d1, r5, 13);
   2710     TESTINSN_VSTn_RI("vst3.8 {d17[1],d18[1],d19[1]}", d17, d18, d19, d18, r5, 13);
   2711     TESTINSN_VSTn_RI("vst3.8 {d29[0],d30[0],d31[0]}", d30, d31, d29, d31, r5, 13);
   2712 
   2713     fflush(stdout);
   2714     printf("---- VST4 (multiple 4-elements) ----\n");
   2715     TESTINSN_VSTn_RI("vst4.8 {d0-d3}", d0, d1, d2, d3, r5, 13);
   2716     TESTINSN_VSTn_RI("vst4.16 {d20-d23}", d20, d21, d22, d23, r9, 42);
   2717     TESTINSN_VSTn_RI("vst4.32 {d0-d3}", d0, d1, d2, d3, r1, 0);
   2718     TESTINSN_VSTn_RI("vst4.8 {d0,d2,d4,d6}", d0, d2, d4, d6, r5, -3);
   2719     TESTINSN_VSTn_RI("vst4.16 {d1,d3,d5,d7}", d1, d3, d5, d7, r5, 13);
   2720     TESTINSN_VSTn_RI("vst4.32 {d20,d22,d24,d26}", d20, d22, d24, d26, r5, 13);
   2721 
   2722     fflush(stdout);
   2723     printf("---- VST4 (single 4-element structure from one lane) ----\n");
   2724     TESTINSN_VSTn_RI("vst4.32 {d0[0],d1[0],d2[0],d3[0]}", d0, d1, d2, d3, r5, 13);
   2725     TESTINSN_VSTn_RI("vst4.32 {d0[1],d1[1],d2[1],d3[1]}", d0, d1, d2, d4, r9, 42);
   2726     TESTINSN_VSTn_RI("vst4.32 {d0[0],d2[0],d4[0],d6[0]}", d0, d2, d4, d6, r1, 0);
   2727     TESTINSN_VSTn_RI("vst4.32 {d0[1],d2[1],d4[1],d6[1]}", d0, d2, d4, d6, r5, -3);
   2728     TESTINSN_VSTn_RI("vst4.16 {d1[0],d2[0],d3[0],d4[0]}", d1, d2, d3, d4, r5, 13);
   2729     TESTINSN_VSTn_RI("vst4.16 {d1[1],d2[1],d3[1],d4[1]}", d1, d2, d3, d4, r5, 13);
   2730     TESTINSN_VSTn_RI("vst4.16 {d1[2],d2[2],d3[2],d4[2]}", d1, d2, d3, d4, r5, 13);
   2731     TESTINSN_VSTn_RI("vst4.16 {d1[3],d2[3],d3[3],d4[3]}", d1, d2, d3, d4, r5, 13);
   2732     TESTINSN_VSTn_RI("vst4.16 {d1[0],d3[0],d5[0],d7[0]}", d1, d3, d5, d7, r5, 13);
   2733     TESTINSN_VSTn_RI("vst4.16 {d1[1],d3[1],d5[1],d7[1]}", d1, d3, d5, d7, r5, 13);
   2734     TESTINSN_VSTn_RI("vst4.16 {d1[2],d3[2],d5[2],d7[2]}", d1, d3, d5, d7, r5, 13);
   2735     TESTINSN_VSTn_RI("vst4.16 {d1[3],d3[3],d5[3],d7[3]}", d1, d3, d5, d7, r5, 13);
   2736     TESTINSN_VSTn_RI("vst4.8 {d0[7],d1[7],d2[7],d3[7]}", d0, d1, d2, d3, r5, 13);
   2737     TESTINSN_VSTn_RI("vst4.8 {d1[6],d2[6],d3[6],d4[6]}", d1, d2, d3, d4, r5, 13);
   2738     TESTINSN_VSTn_RI("vst4.8 {d0[5],d1[5],d2[5],d3[5]}", d0, d1, d2, d3, r5, 13);
   2739     TESTINSN_VSTn_RI("vst4.8 {d0[4],d1[4],d2[4],d3[4]}", d0, d1, d2, d3, r5, 13);
   2740     TESTINSN_VSTn_RI("vst4.8 {d20[3],d21[3],d22[3],d23[3]}", d20, d21, d22, d23, r5, 13);
   2741     TESTINSN_VSTn_RI("vst4.8 {d0[2],d1[2],d2[2],d3[2]}", d0, d1, d2, d3, r5, 13);
   2742     TESTINSN_VSTn_RI("vst4.8 {d17[1],d18[1],d19[1],d20[1]}", d17, d18, d19, d20, r5, 13);
   2743     TESTINSN_VSTn_RI("vst4.8 {d28[0],d29[0],d30[0],d31[0]}", d28, d29, d30, d31, r5, 13);
   2744 
   2745     fflush(stdout);
   2746     printf("---- VMOVN ----\n");
   2747     TESTINSN_bin("vmovn.i32 d0, q0", d0, d0, i32, 0x32, d1, i32, 0x24);
   2748     TESTINSN_bin("vmovn.i16 d7, q5", d7, d10, i32, 0x32, d11, i32, 0x24);
   2749     TESTINSN_bin("vmovn.i64 d31, q0", d31, d0, i32, 0x32, d1, i32, 0x24);
   2750     TESTINSN_bin("vmovn.i32 d0, q0", d0, d0, i8, 0xff, d1, i8, 0xf0);
   2751     TESTINSN_bin("vmovn.i16 d7, q5", d7, d10, i16, 0xdead, d11, i16, 0xbeef);
   2752     TESTINSN_bin("vmovn.i64 d31, q0", d31, d0, i32, 0xff00fe0f, d1, i8, 0x24);
   2753 
   2754     fflush(stdout);
   2755     printf("---- VQMOVN ----\n");
   2756     TESTINSN_bin_q("vqmovn.u32 d0, q0", d0, d0, i32, 0x32, d1, i32, 0x24);
   2757     TESTINSN_bin_q("vqmovn.u16 d7, q5", d7, d10, i32, 0x32, d11, i32, 0x24);
   2758     TESTINSN_bin_q("vqmovn.u64 d31, q0", d31, d0, i32, 0x32, d1, i32, 0x24);
   2759     TESTINSN_bin_q("vqmovn.u32 d0, q0", d0, d0, i8, 0xff, d1, i8, 0xf0);
   2760     TESTINSN_bin_q("vqmovn.u16 d7, q5", d7, d10, i16, 0xdead, d11, i16, 0xbeef);
   2761     TESTINSN_bin_q("vqmovn.u64 d31, q0", d31, d0, i32, 0xff00fe0f, d1, i8, 0x24);
   2762     TESTINSN_bin_q("vqmovn.s32 d0, q0", d0, d0, i32, 0x32, d1, i32, 0x24);
   2763     TESTINSN_bin_q("vqmovn.s16 d7, q5", d7, d10, i32, 0x32, d11, i32, 0x24);
   2764     TESTINSN_bin_q("vqmovn.s64 d31, q0", d31, d0, i32, 0x32, d1, i32, 0x24);
   2765     TESTINSN_bin_q("vqmovn.s32 d0, q0", d0, d0, i8, 0xff, d1, i8, 0xf0);
   2766     TESTINSN_bin_q("vqmovn.s16 d7, q5", d7, d10, i16, 0xdead, d11, i16, 0xbeef);
   2767     TESTINSN_bin_q("vqmovn.s64 d31, q0", d31, d0, i32, 0xff00fe0f, d1, i8, 0x24);
   2768     TESTINSN_bin_q("vqmovn.s32 d0, q0", d0, d0, i8, 0xff, d1, i8, 0xff);
   2769     TESTINSN_bin_q("vqmovn.s16 d7, q5", d7, d10, i8, 0xff, d11, i16, 0xff);
   2770     TESTINSN_bin_q("vqmovn.s64 d31, q0", d31, d0, i8, 0xff, d1, i8, 0xff);
   2771 
   2772     fflush(stdout);
   2773     printf("---- VQMOVN ----\n");
   2774     TESTINSN_bin_q("vqmovun.s32 d0, q0", d0, d0, i32, 0x32, d1, i32, 0x24);
   2775     TESTINSN_bin_q("vqmovun.s16 d7, q5", d7, d10, i32, 0x32, d11, i32, 0x24);
   2776     TESTINSN_bin_q("vqmovun.s64 d31, q0", d31, d0, i32, 0x32, d1, i32, 0x24);
   2777     TESTINSN_bin_q("vqmovun.s32 d0, q0", d0, d0, i8, 0xff, d1, i8, 0xf0);
   2778     TESTINSN_bin_q("vqmovun.s16 d7, q5", d7, d10, i16, 0xdead, d11, i16, 0xbeef);
   2779     TESTINSN_bin_q("vqmovun.s64 d31, q0", d31, d0, i32, 0xff00fe0f, d1, i8, 0x24);
   2780     TESTINSN_bin_q("vqmovun.s32 d0, q0", d0, d0, i8, 0xff, d1, i8, 0xff);
   2781     TESTINSN_bin_q("vqmovun.s16 d7, q5", d7, d10, i8, 0xff, d11, i16, 0xff);
   2782     TESTINSN_bin_q("vqmovun.s64 d31, q0", d31, d0, i8, 0xff, d1, i8, 0xff);
   2783 
   2784     fflush(stdout);
   2785     printf("---- VABS ----\n");
   2786     TESTINSN_un("vabs.s32 d0, d1", d0, d1, i32, 0x73);
   2787     TESTINSN_un("vabs.s16 d15, d4", d15, d4, i32, 0x73);
   2788     TESTINSN_un("vabs.s8 d8, d7", d8, d7, i32, 0x73);
   2789     TESTINSN_un("vabs.s32 d0, d1", d0, d1, i32, 0xfe);
   2790     TESTINSN_un("vabs.s16 d31, d4", d31, d4, i32, 0xef);
   2791     TESTINSN_un("vabs.s8 d8, d7", d8, d7, i32, 0xde);
   2792     TESTINSN_un("vabs.s32 d0, d1", d0, d1, i16, 0xfe0a);
   2793     TESTINSN_un("vabs.s16 d15, d4", d15, d4, i16, 0xef0b);
   2794     TESTINSN_un("vabs.s8 d8, d7", d8, d7, i16, 0xde0c);
   2795 
   2796     fflush(stdout);
   2797     printf("---- VQABS ----\n");
   2798     TESTINSN_un_q("vqabs.s32 d0, d1", d0, d1, i32, 0x73);
   2799     TESTINSN_un_q("vqabs.s32 d0, d1", d0, d1, i32, 1 << 31);
   2800     TESTINSN_un_q("vqabs.s16 d0, d1", d0, d1, i32, 1 << 31);
   2801     TESTINSN_un_q("vqabs.s8 d0, d1", d0, d1, i32, 1 << 31);
   2802     TESTINSN_un_q("vqabs.s16 d15, d4", d15, d4, i32, 0x73);
   2803     TESTINSN_un_q("vqabs.s8 d8, d7", d8, d7, i32, 0x73);
   2804     TESTINSN_un_q("vqabs.s32 d0, d1", d0, d1, i32, 0xfe);
   2805     TESTINSN_un_q("vqabs.s16 d31, d4", d31, d4, i32, 0xef);
   2806     TESTINSN_un_q("vqabs.s8 d8, d7", d8, d7, i32, 0xde);
   2807     TESTINSN_un_q("vqabs.s32 d0, d1", d0, d1, i16, 0xfe0a);
   2808     TESTINSN_un_q("vqabs.s16 d15, d4", d15, d4, i16, 0xef0b);
   2809     TESTINSN_un_q("vqabs.s8 d8, d7", d8, d7, i16, 0xde0c);
   2810 
   2811     fflush(stdout);
   2812     printf("---- VADDHN ----\n");
   2813     TESTINSN_bin("vaddhn.i32 d0, q1, q1", d0, q1, i32, 0x73, q1, i32, 0x72);
   2814     TESTINSN_bin("vaddhn.i16 d0, q1, q2", d0, q1, i32, 0x73, q2, i32, 0x72);
   2815     TESTINSN_bin("vaddhn.i32 d0, q1, q2", d0, q1, i32, 0x73, q2, i32, 0x72);
   2816     TESTINSN_bin("vaddhn.i64 d0, q1, q2", d0, q1, i32, 0x73, q2, i32, 0x72);
   2817     TESTINSN_bin("vaddhn.i16 d0, q15, q2", d0, q15, i16, 0xef73, q2, i32, 0x0172);
   2818     TESTINSN_bin("vaddhn.i32 d31, q1, q2", d31, q1, i16, 0xef73, q2, i32, 0x0172);
   2819     TESTINSN_bin("vaddhn.i64 d0, q1, q8", d0, q1, i16, 0xef73, q8, i32, 0x0172);
   2820     TESTINSN_bin("vaddhn.i32 d0, q1, q1", d0, q1, i8, 0x73, q1, i32, 0x72);
   2821     TESTINSN_bin("vaddhn.i16 d0, q1, q2", d0, q1, i8, 0x73, q2, i32, 0x72);
   2822     TESTINSN_bin("vaddhn.i32 d0, q1, q2", d0, q1, i8, 0x73, q2, i32, 0x72);
   2823     TESTINSN_bin("vaddhn.i64 d0, q1, q2", d0, q1, i8, 0x73, q2, i32, 0x72);
   2824 
   2825     fflush(stdout);
   2826     printf("---- VRADDHN ----\n");
   2827     TESTINSN_bin("vraddhn.i32 d0, q1, q1", d0, q1, i32, 0x73, q1, i32, 0x72);
   2828     TESTINSN_bin("vraddhn.i16 d0, q1, q2", d0, q1, i32, 0x73, q2, i32, 0x72);
   2829     TESTINSN_bin("vraddhn.i32 d0, q1, q2", d0, q1, i32, 0x73, q2, i32, 0x72);
   2830     TESTINSN_bin("vraddhn.i64 d0, q1, q2", d0, q1, i32, 0x73, q2, i32, 0x72);
   2831     TESTINSN_bin("vraddhn.i16 d0, q15, q2", d0, q15, i16, 0xef73, q2, i32, 0x0172);
   2832     TESTINSN_bin("vraddhn.i32 d31, q1, q2", d31, q1, i16, 0xef73, q2, i32, 0x0172);
   2833     TESTINSN_bin("vraddhn.i64 d0, q1, q8", d0, q1, i16, 0xef73, q8, i32, 0x0172);
   2834     TESTINSN_bin("vraddhn.i32 d0, q1, q1", d0, q1, i8, 0x73, q1, i32, 0x72);
   2835     TESTINSN_bin("vraddhn.i16 d0, q1, q2", d0, q1, i8, 0x73, q2, i32, 0x72);
   2836     TESTINSN_bin("vraddhn.i32 d0, q1, q2", d0, q1, i8, 0x73, q2, i32, 0x72);
   2837     TESTINSN_bin("vraddhn.i64 d0, q1, q2", d0, q1, i8, 0x73, q2, i32, 0x72);
   2838     TESTINSN_bin("vraddhn.i16 d0, q15, q2", d0, q15, i16, 0xef73, q2, i32, 0x0102);
   2839     TESTINSN_bin("vraddhn.i32 d31, q1, q2", d31, q1, i16, 0xef73, q2, i32, 0x0102);
   2840     TESTINSN_bin("vraddhn.i64 d0, q1, q8", d0, q1, i16, 0xef73, q8, i32, 0x0102);
   2841     TESTINSN_bin("vraddhn.i32 d0, q1, q1", d0, q1, i8, 0x73, q1, i32, 0x02);
   2842     TESTINSN_bin("vraddhn.i16 d0, q1, q2", d0, q1, i8, 0x73, q2, i32, 0x02);
   2843     TESTINSN_bin("vraddhn.i32 d0, q1, q2", d0, q1, i8, 0x73, q2, i32, 0x02);
   2844     TESTINSN_bin("vraddhn.i64 d0, q1, q2", d0, q1, i8, 0x73, q2, i32, 0x02);
   2845 
   2846     fflush(stdout);
   2847     printf("---- VSUBHN ----\n");
   2848     TESTINSN_bin("vsubhn.i32 d0, q1, q1", d0, q1, i32, 0x73, q1, i32, 0x72);
   2849     TESTINSN_bin("vsubhn.i16 d0, q1, q2", d0, q1, i32, 0x73, q2, i32, 0x72);
   2850     TESTINSN_bin("vsubhn.i32 d0, q1, q2", d0, q1, i32, 0x73, q2, i32, 0x72);
   2851     TESTINSN_bin("vsubhn.i64 d0, q1, q2", d0, q1, i32, 0x73, q2, i32, 0x72);
   2852     TESTINSN_bin("vsubhn.i16 d0, q15, q2", d0, q15, i16, 0xef73, q2, i32, 0x0172);
   2853     TESTINSN_bin("vsubhn.i32 d31, q1, q2", d31, q1, i16, 0xef73, q2, i32, 0x0172);
   2854     TESTINSN_bin("vsubhn.i64 d0, q1, q8", d0, q1, i16, 0xef73, q8, i32, 0x0172);
   2855     TESTINSN_bin("vsubhn.i32 d0, q1, q1", d0, q1, i8, 0x73, q1, i32, 0x72);
   2856     TESTINSN_bin("vsubhn.i16 d0, q1, q2", d0, q1, i8, 0x73, q2, i32, 0x72);
   2857     TESTINSN_bin("vsubhn.i32 d0, q1, q2", d0, q1, i8, 0x73, q2, i32, 0x72);
   2858     TESTINSN_bin("vsubhn.i64 d0, q1, q2", d0, q1, i8, 0x73, q2, i32, 0x72);
   2859 
   2860     fflush(stdout);
   2861     printf("---- VRSUBHN ----\n");
   2862     TESTINSN_bin("vrsubhn.i32 d0, q1, q1", d0, q1, i32, 0x73, q1, i32, 0x72);
   2863     TESTINSN_bin("vrsubhn.i16 d0, q1, q2", d0, q1, i32, 0x73, q2, i32, 0x72);
   2864     TESTINSN_bin("vrsubhn.i32 d0, q1, q2", d0, q1, i32, 0x73, q2, i32, 0x72);
   2865     TESTINSN_bin("vrsubhn.i64 d0, q1, q2", d0, q1, i32, 0x73, q2, i32, 0x72);
   2866     TESTINSN_bin("vrsubhn.i16 d0, q15, q2", d0, q15, i16, 0xef73, q2, i32, 0x0172);
   2867     TESTINSN_bin("vrsubhn.i32 d31, q1, q2", d31, q1, i16, 0xef73, q2, i32, 0x0172);
   2868     TESTINSN_bin("vrsubhn.i64 d0, q1, q8", d0, q1, i16, 0xef73, q8, i32, 0x0172);
   2869     TESTINSN_bin("vrsubhn.i32 d0, q1, q1", d0, q1, i8, 0x73, q1, i32, 0x72);
   2870     TESTINSN_bin("vrsubhn.i16 d0, q1, q2", d0, q1, i8, 0x73, q2, i32, 0x72);
   2871     TESTINSN_bin("vrsubhn.i32 d0, q1, q2", d0, q1, i8, 0x73, q2, i32, 0x72);
   2872     TESTINSN_bin("vrsubhn.i64 d0, q1, q2", d0, q1, i8, 0x73, q2, i32, 0x72);
   2873     TESTINSN_bin("vrsubhn.i16 d0, q15, q2", d0, q15, i16, 0xef93, q2, i32, 0x0102);
   2874     TESTINSN_bin("vrsubhn.i32 d31, q1, q2", d31, q1, i16, 0xef93, q2, i32, 0x0102);
   2875     TESTINSN_bin("vrsubhn.i64 d0, q1, q8", d0, q1, i16, 0xef93, q8, i32, 0x0102);
   2876     TESTINSN_bin("vrsubhn.i32 d0, q1, q1", d0, q1, i8, 0x93, q1, i32, 0x02);
   2877     TESTINSN_bin("vrsubhn.i16 d0, q1, q2", d0, q1, i8, 0x93, q2, i32, 0x02);
   2878     TESTINSN_bin("vrsubhn.i32 d0, q1, q2", d0, q1, i8, 0x93, q2, i32, 0x02);
   2879     TESTINSN_bin("vrsubhn.i64 d0, q1, q2", d0, q1, i8, 0x93, q2, i32, 0x02);
   2880 
   2881     fflush(stdout);
   2882     printf("---- VCEQ #0 ----\n");
   2883     TESTINSN_un("vceq.i32 d0, d1, #0", d0, d1, i32, 0x21);
   2884     TESTINSN_un("vceq.i16 d2, d1, #0", d2, d1, i32, 0x21);
   2885     TESTINSN_un("vceq.i8 d10, d11, #0", d10, d11, i32, 0x21);
   2886     TESTINSN_un("vceq.i32 d0, d1, #0", d0, d1, i32, 0x0);
   2887     TESTINSN_un("vceq.i16 d2, d1, #0", d2, d1, i32, 0x0);
   2888     TESTINSN_un("vceq.i8 d10, d31, #0", d10, d31, i32, 0x0);
   2889 
   2890     fflush(stdout);
   2891     printf("---- VCGT #0 ----\n");
   2892     TESTINSN_un("vcgt.s32 d0, d1, #0", d0, d1, i32, 0x21);
   2893     TESTINSN_un("vcgt.s16 d2, d1, #0", d2, d1, i32, 0x21);
   2894     TESTINSN_un("vcgt.s8 d10, d31, #0", d10, d31, i32, 0x21);
   2895     TESTINSN_un("vcgt.s32 d0, d1, #0", d0, d1, i32, 0x0);
   2896     TESTINSN_un("vcgt.s16 d2, d1, #0", d2, d1, i32, 0x0);
   2897     TESTINSN_un("vcgt.s8 d10, d11, #0", d10, d11, i32, 0x0);
   2898     TESTINSN_un("vcgt.s32 d0, d1, #0", d0, d1, i8, 0xef);
   2899     TESTINSN_un("vcgt.s16 d2, d1, #0", d2, d1, i8, 0xed);
   2900     TESTINSN_un("vcgt.s8 d10, d11, #0", d10, d11, i8, 0xae);
   2901 
   2902     fflush(stdout);
   2903     printf("---- VCGE #0 ----\n");
   2904     TESTINSN_un("vcge.s32 d0, d1, #0", d0, d1, i32, 0x21);
   2905     TESTINSN_un("vcge.s16 d2, d1, #0", d2, d1, i32, 0x21);
   2906     TESTINSN_un("vcge.s8 d10, d11, #0", d10, d11, i32, 0x21);
   2907     TESTINSN_un("vcge.s32 d0, d1, #0", d0, d1, i32, 0x0);
   2908     TESTINSN_un("vcge.s16 d2, d1, #0", d2, d1, i32, 0x0);
   2909     TESTINSN_un("vcge.s8 d10, d31, #0", d10, d31, i32, 0x0);
   2910     TESTINSN_un("vcge.s32 d0, d1, #0", d0, d1, i8, 0xef);
   2911     TESTINSN_un("vcge.s16 d2, d1, #0", d2, d1, i8, 0xed);
   2912     TESTINSN_un("vcge.s8 d10, d11, #0", d10, d11, i8, 0xae);
   2913     TESTINSN_un("vcge.s32 d0, d1, #0", d0, d1, i32, 0xef);
   2914     TESTINSN_un("vcge.s16 d2, d1, #0", d2, d1, i32, 0xed);
   2915     TESTINSN_un("vcge.s8 d10, d11, #0", d10, d11, i32, 0xae);
   2916 
   2917     fflush(stdout);
   2918     printf("---- VCLE #0 ----\n");
   2919     TESTINSN_un("vcle.s32 d0, d1, #0", d0, d1, i32, 0x21);
   2920     TESTINSN_un("vcle.s16 d2, d1, #0", d2, d1, i32, 0x21);
   2921     TESTINSN_un("vcle.s8 d10, d11, #0", d10, d11, i32, 0x21);
   2922     TESTINSN_un("vcle.s32 d0, d1, #0", d0, d1, i32, 0x0);
   2923     TESTINSN_un("vcle.s16 d2, d1, #0", d2, d1, i32, 0x0);
   2924     TESTINSN_un("vcle.s8 d10, d31, #0", d10, d31, i32, 0x0);
   2925     TESTINSN_un("vcle.s32 d0, d1, #0", d0, d1, i8, 0xef);
   2926     TESTINSN_un("vcle.s16 d2, d1, #0", d2, d1, i8, 0xed);
   2927     TESTINSN_un("vcle.s8 d10, d11, #0", d10, d11, i8, 0xae);
   2928 
   2929     fflush(stdout);
   2930     printf("---- VCLT #0 ----\n");
   2931     TESTINSN_un("vclt.s32 d0, d1, #0", d0, d1, i32, 0x21);
   2932     TESTINSN_un("vclt.s16 d2, d1, #0", d2, d1, i32, 0x21);
   2933     TESTINSN_un("vclt.s8 d10, d11, #0", d10, d11, i32, 0x21);
   2934     TESTINSN_un("vclt.s32 d0, d1, #0", d0, d1, i32, 0x0);
   2935     TESTINSN_un("vclt.s16 d2, d1, #0", d2, d1, i32, 0x0);
   2936     TESTINSN_un("vclt.s8 d10, d11, #0", d10, d11, i32, 0x0);
   2937     TESTINSN_un("vclt.s32 d0, d1, #0", d0, d1, i8, 0xef);
   2938     TESTINSN_un("vclt.s16 d2, d1, #0", d2, d1, i8, 0xed);
   2939     TESTINSN_un("vclt.s8 d10, d31, #0", d10, d31, i8, 0xae);
   2940     TESTINSN_un("vclt.s32 d0, d1, #0", d0, d1, i32, 0xef);
   2941     TESTINSN_un("vclt.s16 d2, d1, #0", d2, d1, i32, 0xed);
   2942     TESTINSN_un("vclt.s8 d10, d11, #0", d10, d11, i32, 0xae);
   2943 
   2944     fflush(stdout);
   2945     printf("---- VCNT ----\n");
   2946     TESTINSN_un("vcnt.8 d0, d1", d0, d1, i32, 0xac3d25eb);
   2947     TESTINSN_un("vcnt.8 d11, d14", d11, d14, i32, 0xac3d25eb);
   2948     TESTINSN_un("vcnt.8 d6, d2", d6, d2, i32, 0xad0eb);
   2949 
   2950     fflush(stdout);
   2951     printf("---- VCLS ----\n");
   2952     TESTINSN_un("vcls.s8 d0, d1", d0, d1, i32, 0x21);
   2953     TESTINSN_un("vcls.s8 d30, d31", d30, d31, i8, 0x82);
   2954     TESTINSN_un("vcls.s16 d0, d1", d0, d1, i32, 0x21);
   2955     TESTINSN_un("vcls.s16 d31, d30", d31, d30, i8, 0x82);
   2956     TESTINSN_un("vcls.s32 d6, d1", d6, d1, i32, 0x21);
   2957     TESTINSN_un("vcls.s32 d30, d5", d30, d5, i8, 0x82);
   2958     TESTINSN_un("vcls.s8 d2, d4", d2, d4, i8, 0xff);
   2959     TESTINSN_un("vcls.s16 d2, d4", d2, d4, i8, 0xff);
   2960     TESTINSN_un("vcls.s32 d2, d4", d2, d4, i8, 0xff);
   2961     TESTINSN_un("vcls.s8 d2, d4", d2, d4, i16, 0xffef);
   2962     TESTINSN_un("vcls.s16 d2, d4", d2, d4, i16, 0xffef);
   2963     TESTINSN_un("vcls.s32 d2, d4", d2, d4, i16, 0xffef);
   2964     TESTINSN_un("vcls.s8 d2, d4", d2, d4, i8, 0x00);
   2965     TESTINSN_un("vcls.s16 d2, d4", d2, d4, i8, 0x00);
   2966     TESTINSN_un("vcls.s32 d2, d4", d2, d4, i8, 0x00);
   2967     TESTINSN_un("vcls.s8 d2, d4", d2, d4, i16, 0x00ef);
   2968     TESTINSN_un("vcls.s16 d2, d4", d2, d4, i16, 0x00ef);
   2969     TESTINSN_un("vcls.s32 d2, d4", d2, d4, i16, 0x00ef);
   2970 
   2971     fflush(stdout);
   2972     printf("---- VCLZ ----\n");
   2973     TESTINSN_un("vclz.i8 d0, d1", d0, d1, i32, 0x21);
   2974     TESTINSN_un("vclz.i8 d30, d31", d30, d31, i8, 0x82);
   2975     TESTINSN_un("vclz.i16 d0, d1", d0, d1, i32, 0x21);
   2976     TESTINSN_un("vclz.i16 d31, d30", d31, d30, i8, 0x82);
   2977     TESTINSN_un("vclz.i32 d6, d1", d6, d1, i32, 0x21);
   2978     TESTINSN_un("vclz.i32 d30, d5", d30, d5, i8, 0x82);
   2979     TESTINSN_un("vclz.i8 d2, d4", d2, d4, i8, 0xff);
   2980     TESTINSN_un("vclz.i16 d2, d4", d2, d4, i8, 0xff);
   2981     TESTINSN_un("vclz.i32 d2, d4", d2, d4, i8, 0xff);
   2982     TESTINSN_un("vclz.i8 d2, d4", d2, d4, i16, 0xffef);
   2983     TESTINSN_un("vclz.i16 d2, d4", d2, d4, i16, 0xffef);
   2984     TESTINSN_un("vclz.i32 d2, d4", d2, d4, i16, 0xffef);
   2985     TESTINSN_un("vclz.i8 d2, d4", d2, d4, i8, 0x00);
   2986     TESTINSN_un("vclz.i16 d2, d4", d2, d4, i8, 0x00);
   2987     TESTINSN_un("vclz.i32 d2, d4", d2, d4, i8, 0x00);
   2988     TESTINSN_un("vclz.i8 d2, d4", d2, d4, i16, 0x00ef);
   2989     TESTINSN_un("vclz.i16 d2, d4", d2, d4, i16, 0x00ef);
   2990     TESTINSN_un("vclz.i32 d2, d4", d2, d4, i16, 0x00ef);
   2991 
   2992     fflush(stdout);
   2993     printf("---- VSLI ----\n");
   2994     TESTINSN_un("vsli.16 d0, d1, #1", d0, d1, i32, 7);
   2995     TESTINSN_un("vsli.16 d3, d4, #2", d3, d4, i32, -0x7c);
   2996     TESTINSN_un("vsli.32 d2, d5, #31", d2, d5, i32, -1);
   2997     TESTINSN_un("vsli.8 d6, d7, #7", d6, d7, i32, 0xffff);
   2998     TESTINSN_un("vsli.16 d8, d9, #12", d8, d9, i32, -10);
   2999     TESTINSN_un("vsli.32 d10, d11, #5", d10, d11, i32, 10234);
   3000     TESTINSN_un("vsli.8 d12, d13, #1", d12, d13, i32, -1);
   3001     TESTINSN_un("vsli.16 d14, d15, #11", d14, d15, i32, -1);
   3002     TESTINSN_un("vsli.32 d10, d11, #9", d10, d11, i32, 1000);
   3003     TESTINSN_un("vsli.8 d7, d13, #7", d7, d13, i32, -1);
   3004     TESTINSN_un("vsli.16 d8, d1, #1", d8, d1, i32, 0xabcf);
   3005     TESTINSN_un("vsli.32 d12, d3, #15", d12, d3, i32, -0x1b0);
   3006     TESTINSN_un("vsli.64 d0, d1, #42", d0, d1, i32, -1);
   3007     TESTINSN_un("vsli.64 d6, d7, #12", d6, d7, i32, 0xfac);
   3008     TESTINSN_un("vsli.64 d8, d4, #9", d8, d4, i32, 13560);
   3009     TESTINSN_un("vsli.64 d9, d12, #11", d9, d12, i32, 98710);
   3010 
   3011     fflush(stdout);
   3012     printf("---- VPADD ----\n");
   3013     TESTINSN_bin("vpadd.i32 d0, d1, d2", d0, d1, i32, 24, d2, i32, 120);
   3014     TESTINSN_bin("vpadd.i32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
   3015     TESTINSN_bin("vpadd.i16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
   3016     TESTINSN_bin("vpadd.i8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
   3017     TESTINSN_bin("vpadd.i8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
   3018     TESTINSN_bin("vpadd.i16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
   3019     TESTINSN_bin("vpadd.i32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
   3020     TESTINSN_bin("vpadd.i32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
   3021 
   3022     fflush(stdout);
   3023     printf("---- VPADDL ----\n");
   3024     TESTINSN_un("vpaddl.u32 d0, d1", d0, d1, i32, 24);
   3025     TESTINSN_un("vpaddl.u32 d0, d1", d0, d1, i32, 140);
   3026     TESTINSN_un("vpaddl.u16 d0, d1", d0, d1, i32, 140);
   3027     TESTINSN_un("vpaddl.u8 d0, d1", d0, d1, i32, 140);
   3028     TESTINSN_un("vpaddl.u8 d0, d1", d0, d1, i32, (1 << 31) + 1);
   3029     TESTINSN_un("vpaddl.u16 d0, d1", d0, d1, i32, (1 << 31) + 1);
   3030     TESTINSN_un("vpaddl.u32 d0, d1", d0, d1, i32, (1 << 31) + 1);
   3031     TESTINSN_un("vpaddl.u32 d10, d11", d10, d11, i32, 24);
   3032     TESTINSN_un("vpaddl.s32 d0, d1", d0, d1, i32, 24);
   3033     TESTINSN_un("vpaddl.s32 d0, d1", d0, d1, i32, 140);
   3034     TESTINSN_un("vpaddl.s16 d0, d1", d0, d1, i32, 140);
   3035     TESTINSN_un("vpaddl.s8 d0, d1", d0, d1, i32, 140);
   3036     TESTINSN_un("vpaddl.s8 d0, d1", d0, d1, i32, (1 << 31) + 1);
   3037     TESTINSN_un("vpaddl.s16 d0, d1", d0, d1, i32, (1 << 31) + 1);
   3038     TESTINSN_un("vpaddl.s32 d0, d1", d0, d1, i32, (1 << 31) + 1);
   3039     TESTINSN_un("vpaddl.s32 d10, d11", d10, d11, i32, 24);
   3040 
   3041     fflush(stdout);
   3042     printf("---- VPADAL ----\n");
   3043     TESTINSN_un("vpadal.u32 d0, d1", d0, d1, i32, 24);
   3044     TESTINSN_un("vpadal.u32 d0, d1", d0, d1, i32, 140);
   3045     TESTINSN_un("vpadal.u16 d0, d1", d0, d1, i32, 140);
   3046     TESTINSN_un("vpadal.u8 d0, d1", d0, d1, i8, 140);
   3047     TESTINSN_un("vpadal.u8 d0, d1", d0, d1, i32, (1 << 31) + 1);
   3048     TESTINSN_un("vpadal.u16 d0, d1", d0, d1, i32, (1 << 31) + 1);
   3049     TESTINSN_un("vpadal.u32 d0, d1", d0, d1, i32, (1 << 31) + 1);
   3050     TESTINSN_un("vpadal.u32 d10, d11", d10, d11, i32, 24);
   3051     TESTINSN_un("vpadal.s32 d0, d1", d0, d1, i32, 24);
   3052     TESTINSN_un("vpadal.s32 d0, d1", d0, d1, i32, 140);
   3053     TESTINSN_un("vpadal.s16 d0, d1", d0, d1, i32, 140);
   3054     TESTINSN_un("vpadal.s8 d0, d1", d0, d1, i8, 140);
   3055     TESTINSN_un("vpadal.s8 d0, d1", d0, d1, i32, (1 << 31) + 1);
   3056     TESTINSN_un("vpadal.s16 d0, d1", d0, d1, i32, (1 << 31) + 1);
   3057     TESTINSN_un("vpadal.s32 d0, d1", d0, d1, i32, (1 << 31) + 1);
   3058     TESTINSN_un("vpadal.s32 d10, d11", d10, d11, i32, 24);
   3059 
   3060     fflush(stdout);
   3061     printf("---- VZIP ----\n");
   3062     TESTINSN_dual("vzip.32 d0, d1", d0, i8, 0x12, d1, i8, 0x34);
   3063     TESTINSN_dual("vzip.16 d1, d0", d0, i8, 0x12, d1, i8, 0x34);
   3064     TESTINSN_dual("vzip.8 d10, d11", d10, i8, 0x12, d11, i8, 0x34);
   3065     TESTINSN_dual("vzip.32 d0, d1", d0, i32, 0x12345678, d1, i32, 0x0a0b0c0d);
   3066     TESTINSN_dual("vzip.16 d1, d0", d0, i32, 0x12345678, d1, i32, 0x0a0b0c0d);
   3067     TESTINSN_dual("vzip.8 d30, d31", d30, i32, 0x12345678, d31, i32, 0x0a0b0c0d);
   3068 
   3069     fflush(stdout);
   3070     printf("---- VUZP ----\n");
   3071     TESTINSN_dual("vuzp.32 d0, d1", d0, i8, 0x12, d1, i8, 0x34);
   3072     TESTINSN_dual("vuzp.16 d1, d0", d0, i8, 0x12, d1, i8, 0x34);
   3073     TESTINSN_dual("vuzp.8 d10, d11", d10, i8, 0x12, d11, i8, 0x34);
   3074     TESTINSN_dual("vuzp.32 d0, d1", d0, i32, 0x12345678, d1, i32, 0x0a0b0c0d);
   3075     TESTINSN_dual("vuzp.16 d1, d0", d0, i32, 0x12345678, d1, i32, 0x0a0b0c0d);
   3076     TESTINSN_dual("vuzp.8 d30, d31", d30, i32, 0x12345678, d31, i32, 0x0a0b0c0d);
   3077 
   3078     fflush(stdout);
   3079     printf("---- VTRN ----\n");
   3080     TESTINSN_dual("vtrn.32 d0, d1", d0, i8, 0x12, d1, i8, 0x34);
   3081     TESTINSN_dual("vtrn.16 d1, d0", d0, i8, 0x12, d1, i8, 0x34);
   3082     TESTINSN_dual("vtrn.8 d10, d11", d10, i8, 0x12, d11, i8, 0x34);
   3083     TESTINSN_dual("vtrn.32 d0, d1", d0, i32, 0x12345678, d1, i32, 0x0a0b0c0d);
   3084     TESTINSN_dual("vtrn.16 d1, d0", d0, i32, 0x12345678, d1, i32, 0x0a0b0c0d);
   3085     TESTINSN_dual("vtrn.8 d30, d31", d30, i32, 0x12345678, d31, i32, 0x0a0b0c0d);
   3086 
   3087     fflush(stdout);
   3088     printf("---- VSWP ----\n");
   3089     TESTINSN_dual("vswp d0, d1", d0, i8, 0x12, d1, i8, 0x34);
   3090     TESTINSN_dual("vswp d1, d0", d0, i8, 0x12, d1, i8, 0x34);
   3091     TESTINSN_dual("vswp d10, d11", d10, i8, 0x12, d11, i8, 0x34);
   3092     TESTINSN_dual("vswp d0, d1", d0, i32, 0x12345678, d1, i32, 0x0a0b0c0d);
   3093     TESTINSN_dual("vswp d1, d0", d0, i32, 0x12345678, d1, i32, 0x0a0b0c0d);
   3094     TESTINSN_dual("vswp d30, d31", d30, i32, 0x12345678, d31, i32, 0x0a0b0c0d);
   3095 
   3096     fflush(stdout);
   3097     printf("---- VSHRN ----\n");
   3098     TESTINSN_un("vshrn.i16 d0, q1, #1", d0, q1, i32, -1);
   3099     TESTINSN_un("vshrn.i16 d3, q4, #2", d3, q4, i32, -0x7c);
   3100     TESTINSN_un("vshrn.i32 d2, q5, #10", d2, q5, i32, -1);
   3101     TESTINSN_un("vshrn.i32 d2, q5, #1", d2, q5, i32, 0x7fffffff);
   3102     TESTINSN_un("vshrn.i64 d6, q7, #7", d6, q7, i32, 0xffff);
   3103     TESTINSN_un("vshrn.i16 d8, q9, #8", d8, q9, i32, -10);
   3104     TESTINSN_un("vshrn.i32 d10, q11, #5", d10, q11, i32, 10234);
   3105     TESTINSN_un("vshrn.i64 d12, q13, #1", d12, q13, i32, -1);
   3106     TESTINSN_un("vshrn.i16 d14, q15, #6", d14, q15, i32, -1);
   3107     TESTINSN_un("vshrn.i32 d10, q11, #9", d10, q11, i32, 1000);
   3108     TESTINSN_un("vshrn.i64 d7, q13, #7", d7, q13, i32, -1);
   3109     TESTINSN_un("vshrn.i16 d8, q1, #1", d8, q1, i32, 0xabcf);
   3110     TESTINSN_un("vshrn.i32 d12, q3, #15", d12, q3, i32, -0x1b0);
   3111     TESTINSN_un("vshrn.i64 d0, q1, #22", d0, q1, i32, -1);
   3112     TESTINSN_un("vshrn.i64 d6, q7, #12", d6, q7, i32, 0xfac);
   3113     TESTINSN_un("vshrn.i64 d8, q4, #9", d8, q4, i32, 13560);
   3114     TESTINSN_un("vshrn.i64 d9, q12, #11", d9, q12, i32, 98710);
   3115 
   3116     fflush(stdout);
   3117     printf("---- VDUP ----\n");
   3118     TESTINSN_un("vdup.8 d12, d2[0]", d12, d2, i32, 0xabc4657);
   3119     TESTINSN_un("vdup.8 d0, d3[2]", d0, d3, i32, 0x7a1b3);
   3120     TESTINSN_un("vdup.8 d1, d0[7]", d1, d0, i32, 0x713aaa);
   3121     TESTINSN_un("vdup.8 d10, d4[3]", d10, d4, i32, 0xaa713);
   3122     TESTINSN_un("vdup.8 d4, d28[4]", d4, d28, i32, 0x7b1c3);
   3123     TESTINSN_un("vdup.16 d17, d19[1]", d17, d19, i32, 0x713ffff);
   3124     TESTINSN_un("vdup.16 d15, d31[2]", d15, d31, i32, 0x7f00fa);
   3125     TESTINSN_un("vdup.16 d6, d2[0]", d6, d2, i32, 0xffabcde);
   3126     TESTINSN_un("vdup.16 d8, d22[3]", d8, d22, i32, 0x713);
   3127     TESTINSN_un("vdup.16 d9, d2[0]", d9, d2, i32, 0x713);
   3128     TESTINSN_un("vdup.32 d10, d17[1]", d10, d17, i32, 0x713);
   3129     TESTINSN_un("vdup.32 d15, d11[0]", d15, d11, i32, 0x3);
   3130     TESTINSN_un("vdup.32 d30, d29[1]", d30, d29, i32, 0xf00000aa);
   3131     TESTINSN_un("vdup.32 d22, d0[1]", d22, d0, i32, 0xf);
   3132     TESTINSN_un("vdup.32 d13, d13[0]", d13, d13, i32, -1);
   3133 
   3134     fflush(stdout);
   3135     printf("---- VQDMULH ----\n");
   3136     TESTINSN_bin_q("vqdmulh.s32 d0, d1, d2", d0, d1, i32, 24, d2, i32, 120);
   3137     TESTINSN_bin_q("vqdmulh.s32 d6, d7, d8", d6, d7, i32, 140, d8, i32, -120);
   3138     TESTINSN_bin_q("vqdmulh.s16 d9, d11, d12", d9, d11, i32, 0x140, d12, i32, 0x120);
   3139     TESTINSN_bin_q("vqdmulh.s16 d4, d5, d6", d4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2);
   3140     TESTINSN_bin_q("vqdmulh.s32 d7, d8, d9", d7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2);
   3141     TESTINSN_bin_q("vqdmulh.s16 d4, d5, d6", d4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 2);
   3142     TESTINSN_bin_q("vqdmulh.s32 d7, d8, d9", d7, d8, i32, (1 << 31), d9, i32, 12);
   3143     TESTINSN_bin_q("vqdmulh.s16 d4, d5, d6", d4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2);
   3144     TESTINSN_bin_q("vqdmulh.s32 d7, d8, d9", d7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2);
   3145     TESTINSN_bin_q("vqdmulh.s32 d10, d11, d15", d10, d11, i32, 24, d15, i32, 120);
   3146     TESTINSN_bin_q("vqdmulh.s32 d10, d30, d31", d10, d30, i32, 1 << 31, d31, i32, 1 << 31);
   3147     TESTINSN_bin_q("vqdmulh.s16 d10, d30, d31", d10, d30, i32, 1 << 31, d31, i32, 1 << 31);
   3148     TESTINSN_bin_q("vqdmulh.s32 d10, d30, d31", d10, d30, i32, 1 << 30, d31, i32, 1 << 31);
   3149     TESTINSN_bin_q("vqdmulh.s16 d10, d30, d31", d10, d30, i32, 1 << 31, d31, i32, 1 << 30);
   3150 
   3151     fflush(stdout);
   3152     printf("---- VQDMULH (by scalar) ----\n");
   3153     TESTINSN_bin_q("vqdmulh.s32 d0, d1, d6[0]", d0, d1, i32, 24, d6, i32, 120);
   3154     TESTINSN_bin_q("vqdmulh.s32 d6, d7, d1[1]", d6, d7, i32, 140, d1, i32, -120);
   3155     TESTINSN_bin_q("vqdmulh.s16 d9, d11, d7[0]", d9, d11, i32, 0x140, d7, i32, 0x120);
   3156     TESTINSN_bin_q("vqdmulh.s16 d4, d5, d6[0]", d4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2);
   3157     TESTINSN_bin_q("vqdmulh.s32 d7, d8, d9[1]", d7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2);
   3158     TESTINSN_bin_q("vqdmulh.s16 d4, d5, d6[1]", d4, d5, i32, (1 << 14) - 0xabcd, d6, i16, (1 << 13) + 2);
   3159     TESTINSN_bin_q("vqdmulh.s32 d7, d8, d9[0]", d7, d8, i32, (1 << 31), d9, i32, 12);
   3160     TESTINSN_bin_q("vqdmulh.s16 d4, d5, d6[2]", d4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2);
   3161     TESTINSN_bin_q("vqdmulh.s32 d7, d8, d9[0]", d7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2);
   3162     TESTINSN_bin_q("vqdmulh.s32 d10, d31, d15[0]", d10, d31, i32, 24, d15, i32, 120);
   3163     TESTINSN_bin_q("vqdmulh.s32 d10, d14, d15[1]", d10, d14, i32, 1 << 31, d7, i32, 1 << 31);
   3164     TESTINSN_bin_q("vqdmulh.s16 d10, d14, d7[3]", d10, d14, i32, 1 << 31, q15, i32, 1 << 31);
   3165     TESTINSN_bin_q("vqdmulh.s32 d10, d14, d15[1]", d10, d14, i32, 1 << 30, d15, i32, 1 << 31);
   3166     TESTINSN_bin_q("vqdmulh.s16 d31, d14, d7[1]", d31, d14, i32, 1 << 31, d7, i32, 1 << 30);
   3167 
   3168     fflush(stdout);
   3169     printf("---- VSHRN ----\n");
   3170     TESTINSN_un("vshrn.i64 d2, q2, #1", d2, q2, i32, 0xabc4657);
   3171     TESTINSN_un("vshrn.i64 d3, q3, #0", d3, q3, i32, 0x7a1b3);
   3172     TESTINSN_un("vshrn.i64 d1, q0, #3", d1, q0, i32, 0x713aaa);
   3173     TESTINSN_un("vshrn.i64 d0, q4, #5", d0, q4, i32, 0xaa713);
   3174     TESTINSN_un("vshrn.i64 d4, q8, #11", d4, q8, i32, 0x7b1c3);
   3175     TESTINSN_un("vshrn.i16 d7, q12, #6", d7, q12, i32, 0x713ffff);
   3176     TESTINSN_un("vshrn.i16 d15, q11, #2", d15, q11, i32, 0x7f00fa);
   3177     TESTINSN_un("vshrn.i16 d6, q2, #4", d6, q2, i32, 0xffabc);
   3178     TESTINSN_un("vshrn.i16 d8, q12, #3", d8, q12, i32, 0x713);
   3179     TESTINSN_un("vshrn.i16 d9, q2, #7", d9, q2, i32, 0x713);
   3180     TESTINSN_un("vshrn.i32 d10, q13, #2", d10, q13, i32, 0x713);
   3181     TESTINSN_un("vshrn.i32 d15, q11, #1", d15, q11, i32, 0x3);
   3182     TESTINSN_un("vshrn.i32 d10, q9, #5", d10, q9, i32, 0xf00000aa);
   3183     TESTINSN_un("vshrn.i32 d12, q0, #6", d12, q0, i32, 0xf);
   3184     TESTINSN_un("vshrn.i32 d13, q13, #2", d13, q13, i32, -1);
   3185 
   3186     fflush(stdout);
   3187     printf("---- VQSHRN ----\n");
   3188     TESTINSN_un_q("vqshrn.s16 d0, q1, #1", d0, q1, i32, -1);
   3189     TESTINSN_un_q("vqshrn.s16 d3, q4, #2", d3, q4, i32, -0x7c);
   3190     TESTINSN_un_q("vqshrn.s32 d2, q5, #10", d2, q5, i32, -1);
   3191     TESTINSN_un_q("vqshrn.s32 d2, q5, #1", d2, q5, i32, 0x7fffffff);
   3192     TESTINSN_un_q("vqshrn.s16 d2, q5, #1", d2, q5, i16, 0x7fff);
   3193     TESTINSN_un_q("vqshrn.s64 d6, q7, #7", d6, q7, i32, 0xffff);
   3194     TESTINSN_un_q("vqshrn.s16 d8, q9, #8", d8, q9, i32, -10);
   3195     TESTINSN_un_q("vqshrn.s32 d10, q11, #5", d10, q11, i32, 10234);
   3196     TESTINSN_un_q("vqshrn.s64 d12, q13, #1", d12, q13, i32, -1);
   3197     TESTINSN_un_q("vqshrn.s16 d14, q15, #6", d14, q15, i32, -1);
   3198     TESTINSN_un_q("vqshrn.s32 d10, q11, #9", d10, q11, i32, 1000);
   3199     TESTINSN_un_q("vqshrn.s64 d7, q13, #7", d7, q13, i32, -1);
   3200     TESTINSN_un_q("vqshrn.s16 d8, q1, #1", d8, q1, i32, 0xabcf);
   3201     TESTINSN_un_q("vqshrn.s32 d8, q1, #1", d8, q1, i32, 0xabcf);
   3202     TESTINSN_un_q("vqshrn.s32 d12, q3, #15", d12, q3, i32, -0x1b0);
   3203     TESTINSN_un_q("vqshrn.s64 d0, q1, #22", d0, q1, i32, -1);
   3204     TESTINSN_un_q("vqshrn.s64 d6, q7, #12", d6, q7, i32, 0xfac);
   3205     TESTINSN_un_q("vqshrn.s64 d8, q4, #9", d8, q4, i32, 13560);
   3206     TESTINSN_un_q("vqshrn.s64 d9, q12, #11", d9, q12, i32, 98710);
   3207     TESTINSN_un_q("vqshrn.u16 d0, q1, #1", d0, q1, i32, -1);
   3208     TESTINSN_un_q("vqshrn.u16 d3, q4, #2", d3, q4, i32, -0x7c);
   3209     TESTINSN_un_q("vqshrn.u32 d2, q5, #10", d2, q5, i32, -1);
   3210     TESTINSN_un_q("vqshrn.u32 d2, q5, #1", d2, q5, i32, 0x7fffffff);
   3211     TESTINSN_un_q("vqshrn.u16 d2, q5, #1", d2, q5, i16, 0x7fff);
   3212     TESTINSN_un_q("vqshrn.u64 d6, q7, #7", d6, q7, i32, 0xffff);
   3213     TESTINSN_un_q("vqshrn.u16 d8, q9, #8", d8, q9, i32, -10);
   3214     TESTINSN_un_q("vqshrn.u32 d10, q11, #5", d10, q11, i32, 10234);
   3215     TESTINSN_un_q("vqshrn.u64 d12, q13, #1", d12, q13, i32, -1);
   3216     TESTINSN_un_q("vqshrn.u16 d14, q15, #6", d14, q15, i32, -1);
   3217     TESTINSN_un_q("vqshrn.u32 d10, q11, #9", d10, q11, i32, 1000);
   3218     TESTINSN_un_q("vqshrn.u64 d7, q13, #7", d7, q13, i32, -1);
   3219     TESTINSN_un_q("vqshrn.u16 d8, q1, #1", d8, q1, i32, 0xabcf);
   3220     TESTINSN_un_q("vqshrn.u32 d8, q1, #1", d8, q1, i32, 0xabcf);
   3221     TESTINSN_un_q("vqshrn.u32 d12, q3, #15", d12, q3, i32, -0x1b0);
   3222     TESTINSN_un_q("vqshrn.u64 d0, q1, #22", d0, q1, i32, -1);
   3223     TESTINSN_un_q("vqshrn.u64 d6, q7, #12", d6, q7, i32, 0xfac);
   3224     TESTINSN_un_q("vqshrn.u64 d8, q4, #9", d8, q4, i32, 13560);
   3225     TESTINSN_un_q("vqshrn.u64 d9, q12, #11", d9, q12, i32, 98710);
   3226 
   3227     fflush(stdout);
   3228     printf("---- VQSHRUN ----\n");
   3229     TESTINSN_un_q("vqshrun.s16 d0, q1, #1", d0, q1, i32, -1);
   3230     TESTINSN_un_q("vqshrun.s16 d3, q4, #2", d3, q4, i32, -0x7c);
   3231     TESTINSN_un_q("vqshrun.s32 d2, q5, #10", d2, q5, i32, -1);
   3232     TESTINSN_un_q("vqshrun.s32 d2, q5, #1", d2, q5, i32, 0x7fffffff);
   3233     TESTINSN_un_q("vqshrun.s16 d2, q5, #1", d2, q5, i16, 0x7fff);
   3234     TESTINSN_un_q("vqshrun.s64 d6, q7, #7", d6, q7, i32, 0xffff);
   3235     TESTINSN_un_q("vqshrun.s16 d8, q9, #8", d8, q9, i32, -10);
   3236     TESTINSN_un_q("vqshrun.s32 d10, q11, #5", d10, q11, i32, 10234);
   3237     TESTINSN_un_q("vqshrun.s64 d12, q13, #1", d12, q13, i32, -1);
   3238     TESTINSN_un_q("vqshrun.s16 d14, q15, #6", d14, q15, i32, -1);
   3239     TESTINSN_un_q("vqshrun.s32 d10, q11, #9", d10, q11, i32, 1000);
   3240     TESTINSN_un_q("vqshrun.s64 d7, q13, #7", d7, q13, i32, -1);
   3241     TESTINSN_un_q("vqshrun.s16 d8, q1, #1", d8, q1, i32, 0xabcf);
   3242     TESTINSN_un_q("vqshrun.s32 d8, q1, #1", d8, q1, i32, 0xabcf);
   3243     TESTINSN_un_q("vqshrun.s32 d12, q3, #15", d12, q3, i32, -0x1b0);
   3244     TESTINSN_un_q("vqshrun.s64 d0, q1, #22", d0, q1, i32, -1);
   3245     TESTINSN_un_q("vqshrun.s64 d6, q7, #12", d6, q7, i32, 0xfac);
   3246     TESTINSN_un_q("vqshrun.s64 d8, q4, #9", d8, q4, i32, 13560);
   3247     TESTINSN_un_q("vqshrun.s64 d9, q12, #11", d9, q12, i32, 98710);
   3248 
   3249     fflush(stdout);
   3250     printf("---- VQRSHRN ----\n");
   3251     TESTINSN_un_q("vqrshrn.s16 d0, q1, #1", d0, q1, i32, -1);
   3252     TESTINSN_un_q("vqrshrn.s16 d3, q4, #2", d3, q4, i32, -0x7c);
   3253     TESTINSN_un_q("vqrshrn.s32 d2, q5, #10", d2, q5, i32, -1);
   3254     TESTINSN_un_q("vqrshrn.s32 d2, q5, #1", d2, q5, i32, 0x7fffffff);
   3255     TESTINSN_un_q("vqrshrn.s16 d2, q5, #1", d2, q5, i16, 0x7fff);
   3256     TESTINSN_un_q("vqrshrn.s64 d6, q7, #7", d6, q7, i32, 0xffff);
   3257     TESTINSN_un_q("vqrshrn.s16 d8, q9, #8", d8, q9, i32, -10);
   3258     TESTINSN_un_q("vqrshrn.s32 d10, q11, #5", d10, q11, i32, 10234);
   3259     TESTINSN_un_q("vqrshrn.s64 d12, q13, #1", d12, q13, i32, -1);
   3260     TESTINSN_un_q("vqrshrn.s16 d14, q15, #6", d14, q15, i32, -1);
   3261     TESTINSN_un_q("vqrshrn.s32 d10, q11, #9", d10, q11, i32, 1000);
   3262     TESTINSN_un_q("vqrshrn.s64 d7, q13, #7", d7, q13, i32, -1);
   3263     TESTINSN_un_q("vqrshrn.s16 d8, q1, #1", d8, q1, i32, 0xabcf);
   3264     TESTINSN_un_q("vqrshrn.s32 d8, q1, #1", d8, q1, i32, 0xabcf);
   3265     TESTINSN_un_q("vqrshrn.s32 d12, q3, #15", d12, q3, i32, -0x1b0);
   3266     TESTINSN_un_q("vqrshrn.s64 d0, q1, #22", d0, q1, i32, -1);
   3267     TESTINSN_un_q("vqrshrn.s64 d6, q7, #12", d6, q7, i32, 0xfac);
   3268     TESTINSN_un_q("vqrshrn.s64 d8, q4, #9", d8, q4, i32, 13560);
   3269     TESTINSN_un_q("vqrshrn.s64 d9, q12, #11", d9, q12, i32, 98710);
   3270     TESTINSN_un_q("vqrshrn.u16 d0, q1, #1", d0, q1, i32, -1);
   3271     TESTINSN_un_q("vqrshrn.u16 d3, q4, #2", d3, q4, i32, -0x7c);
   3272     TESTINSN_un_q("vqrshrn.u32 d2, q5, #10", d2, q5, i32, -1);
   3273     TESTINSN_un_q("vqrshrn.u32 d2, q5, #1", d2, q5, i32, 0x7fffffff);
   3274     TESTINSN_un_q("vqrshrn.u16 d2, q5, #1", d2, q5, i16, 0x7fff);
   3275     TESTINSN_un_q("vqrshrn.u64 d6, q7, #7", d6, q7, i32, 0xffff);
   3276     TESTINSN_un_q("vqrshrn.u16 d8, q9, #8", d8, q9, i32, -10);
   3277     TESTINSN_un_q("vqrshrn.u32 d10, q11, #5", d10, q11, i32, 10234);
   3278     TESTINSN_un_q("vqrshrn.u64 d12, q13, #1", d12, q13, i32, -1);
   3279     TESTINSN_un_q("vqrshrn.u16 d14, q15, #6", d14, q15, i32, -1);
   3280     TESTINSN_un_q("vqrshrn.u32 d10, q11, #9", d10, q11, i32, 1000);
   3281     TESTINSN_un_q("vqrshrn.u64 d7, q13, #7", d7, q13, i32, -1);
   3282     TESTINSN_un_q("vqrshrn.u16 d8, q1, #1", d8, q1, i32, 0xabcf);
   3283     TESTINSN_un_q("vqrshrn.u32 d8, q1, #1", d8, q1, i32, 0xabcf);
   3284     TESTINSN_un_q("vqrshrn.u32 d12, q3, #15", d12, q3, i32, -0x1b0);
   3285     TESTINSN_un_q("vqrshrn.u64 d0, q1, #22", d0, q1, i32, -1);
   3286     TESTINSN_un_q("vqrshrn.u64 d6, q7, #12", d6, q7, i32, 0xfac);
   3287     TESTINSN_un_q("vqrshrn.u64 d8, q4, #9", d8, q4, i32, 13560);
   3288     TESTINSN_un_q("vqrshrn.u64 d9, q12, #11", d9, q12, i32, 98710);
   3289 
   3290     fflush(stdout);
   3291     printf("---- VQRSHRUN ----\n");
   3292     TESTINSN_un_q("vqrshrun.s16 d0, q1, #1", d0, q1, i32, -1);
   3293     TESTINSN_un_q("vqrshrun.s16 d3, q4, #2", d3, q4, i32, -0x7c);
   3294     TESTINSN_un_q("vqrshrun.s32 d2, q5, #10", d2, q5, i32, -1);
   3295     TESTINSN_un_q("vqrshrun.s32 d2, q5, #1", d2, q5, i32, 0x7fffffff);
   3296     TESTINSN_un_q("vqrshrun.s16 d2, q5, #1", d2, q5, i16, 0x7fff);
   3297     TESTINSN_un_q("vqrshrun.s64 d6, q7, #7", d6, q7, i32, 0xffff);
   3298     TESTINSN_un_q("vqrshrun.s16 d8, q9, #8", d8, q9, i32, -10);
   3299     TESTINSN_un_q("vqrshrun.s32 d10, q11, #5", d10, q11, i32, 10234);
   3300     TESTINSN_un_q("vqrshrun.s64 d12, q13, #1", d12, q13, i32, -1);
   3301     TESTINSN_un_q("vqrshrun.s16 d14, q15, #6", d14, q15, i32, -1);
   3302     TESTINSN_un_q("vqrshrun.s32 d10, q11, #9", d10, q11, i32, 1000);
   3303     TESTINSN_un_q("vqrshrun.s64 d7, q13, #7", d7, q13, i32, -1);
   3304     TESTINSN_un_q("vqrshrun.s16 d8, q1, #1", d8, q1, i32, 0xabcf);
   3305     TESTINSN_un_q("vqrshrun.s32 d8, q1, #1", d8, q1, i32, 0xabcf);
   3306     TESTINSN_un_q("vqrshrun.s32 d12, q3, #15", d12, q3, i32, -0x1b0);
   3307     TESTINSN_un_q("vqrshrun.s64 d0, q1, #22", d0, q1, i32, -1);
   3308     TESTINSN_un_q("vqrshrun.s64 d6, q7, #12", d6, q7, i32, 0xfac);
   3309     TESTINSN_un_q("vqrshrun.s64 d8, q4, #9", d8, q4, i32, 13560);
   3310     TESTINSN_un_q("vqrshrun.s64 d9, q12, #11", d9, q12, i32, 98710);
   3311 
   3312     fflush(stdout);
   3313     printf("---- VRSHRN ----\n");
   3314     TESTINSN_un("vrshrn.i64 d2, q2, #1", d2, q2, i32, 0xabc4657);
   3315     TESTINSN_un("vrshrn.i64 d3, q3, #0", d3, q3, i32, 0x7a1b3);
   3316     TESTINSN_un("vrshrn.i64 d1, q0, #3", d1, q0, i32, 0x713aaa);
   3317     TESTINSN_un("vrshrn.i64 d0, q4, #5", d0, q4, i32, 0xaa713);
   3318     TESTINSN_un("vrshrn.i64 d4, q8, #11", d4, q8, i32, 0x7b1c3);
   3319     TESTINSN_un("vrshrn.i16 d7, q12, #6", d7, q12, i32, 0x713ffff);
   3320     TESTINSN_un("vrshrn.i16 d15, q11, #2", d15, q11, i32, 0x7f00fa);
   3321     TESTINSN_un("vrshrn.i16 d6, q2, #4", d6, q2, i32, 0xffabc);
   3322     TESTINSN_un("vrshrn.i16 d8, q12, #3", d8, q12, i32, 0x713);
   3323     TESTINSN_un("vrshrn.i16 d9, q2, #7", d9, q2, i32, 0x713);
   3324     TESTINSN_un("vrshrn.i32 d10, q13, #2", d10, q13, i32, 0x713);
   3325     TESTINSN_un("vrshrn.i32 d15, q11, #1", d15, q11, i32, 0x3);
   3326     TESTINSN_un("vrshrn.i32 d10, q9, #5", d10, q9, i32, 0xf00000aa);
   3327     TESTINSN_un("vrshrn.i32 d12, q0, #6", d12, q0, i32, 0xf);
   3328     TESTINSN_un("vrshrn.i32 d13, q13, #2", d13, q13, i32, -1);
   3329 
   3330     fflush(stdout);
   3331     printf("---- VSHL (immediate) ----\n");
   3332     TESTINSN_un("vshl.i64 d0, d1, #1", d0, d1, i32, 24);
   3333     TESTINSN_un("vshl.i64 d5, d2, #1", d5, d2, i32, (1 << 30));
   3334     TESTINSN_un("vshl.i64 d9, d12, #2", d9, d12, i32, (1 << 31) + 2);
   3335     TESTINSN_un("vshl.i64 d11, d2, #12", d11, d2, i32, -1);
   3336     TESTINSN_un("vshl.i64 d15, d12, #63", d15, d12, i32, 5);
   3337     TESTINSN_un("vshl.i64 d5, d12, #62", d5, d12, i32, (1 << 31) + 1);
   3338     TESTINSN_un("vshl.i32 d0, d1, #1", d0, d1, i32, 24);
   3339     TESTINSN_un("vshl.i32 d5, d2, #1", d5, d2, i32, (1 << 30));
   3340     TESTINSN_un("vshl.i32 d9, d12, #2", d9, d12, i32, (1 << 31) + 2);
   3341     TESTINSN_un("vshl.i32 d11, d2, #12", d11, d2, i32, -1);
   3342     TESTINSN_un("vshl.i32 d15, d12, #20", d15, d12, i32, 5);
   3343     TESTINSN_un("vshl.i32 d5, d12, #30", d5, d12, i32, (1 << 31) + 1);
   3344     TESTINSN_un("vshl.i16 d0, d1, #1", d0, d1, i16, 24);
   3345     TESTINSN_un("vshl.i16 d5, d2, #1", d5, d2, i32, (1 << 30));
   3346     TESTINSN_un("vshl.i16 d9, d12, #2", d9, d12, i32, (1 << 31) + 2);
   3347     TESTINSN_un("vshl.i16 d11, d2, #12", d11, d2, i16, -1);
   3348     TESTINSN_un("vshl.i16 d15, d12, #3", d15, d12, i16, 5);
   3349     TESTINSN_un("vshl.i16 d5, d12, #14", d5, d12, i32, (1 << 31) + 1);
   3350     TESTINSN_un("vshl.i8 d0, d1, #1", d0, d1, i8, 24);
   3351     TESTINSN_un("vshl.i8 d5, d2, #1", d5, d2, i32, (1 << 30));
   3352     TESTINSN_un("vshl.i8 d9, d12, #2", d9, d12, i32, (1 << 31) + 2);
   3353     TESTINSN_un("vshl.i8 d11, d2, #7", d11, d2, i8, -1);
   3354     TESTINSN_un("vshl.i8 d15, d12, #3", d15, d12, i8, 5);
   3355     TESTINSN_un("vshl.i8 d5, d12, #6", d5, d12, i32, (1 << 31) + 1);
   3356 
   3357     fflush(stdout);
   3358     printf("---- VNEG ----\n");
   3359     TESTINSN_un("vneg.s32 d0, d1", d0, d1, i32, 0x73);
   3360     TESTINSN_un("vneg.s16 d15, d4", d15, d4, i32, 0x73);
   3361     TESTINSN_un("vneg.s8 d8, d7", d8, d7, i32, 0x73);
   3362     TESTINSN_un("vneg.s32 d0, d1", d0, d1, i32, 0xfe);
   3363     TESTINSN_un("vneg.s16 d31, d4", d31, d4, i32, 0xef);
   3364     TESTINSN_un("vneg.s8 d8, d7", d8, d7, i32, 0xde);
   3365     TESTINSN_un("vneg.s32 d0, d1", d0, d1, i16, 0xfe0a);
   3366     TESTINSN_un("vneg.s16 d15, d4", d15, d4, i16, 0xef0b);
   3367     TESTINSN_un("vneg.s8 d8, d7", d8, d7, i16, 0xde0c);
   3368 
   3369     fflush(stdout);
   3370     printf("---- VQNEG ----\n");
   3371     TESTINSN_un_q("vqneg.s32 d0, d1", d0, d1, i32, 0x73);
   3372     TESTINSN_un_q("vqneg.s32 d0, d1", d0, d1, i32, 1 << 31);
   3373     TESTINSN_un_q("vqneg.s16 d0, d1", d0, d1, i32, 1 << 31);
   3374     TESTINSN_un_q("vqneg.s8 d0, d1", d0, d1, i32, 1 << 31);
   3375     TESTINSN_un_q("vqneg.s16 d15, d4", d15, d4, i32, 0x73);
   3376     TESTINSN_un_q("vqneg.s8 d8, d7", d8, d7, i32, 0x73);
   3377     TESTINSN_un_q("vqneg.s32 d0, d1", d0, d1, i32, 0xfe);
   3378     TESTINSN_un_q("vqneg.s16 d31, d4", d31, d4, i32, 0xef);
   3379     TESTINSN_un_q("vqneg.s8 d8, d7", d8, d7, i32, 0xde);
   3380     TESTINSN_un_q("vqneg.s32 d0, d1", d0, d1, i16, 0xfe0a);
   3381     TESTINSN_un_q("vqneg.s16 d15, d4", d15, d4, i16, 0xef0b);
   3382     TESTINSN_un_q("vqneg.s8 d8, d7", d8, d7, i16, 0xde0c);
   3383 
   3384     fflush(stdout);
   3385     printf("---- VREV ----\n");
   3386     TESTINSN_un("vrev64.8 d0, d1", d0, d1, i32, 0xaabbccdd);
   3387     TESTINSN_un("vrev64.16 d10, d31", d10, d31, i32, 0xaabbccdd);
   3388     TESTINSN_un("vrev64.32 d1, d14", d1, d14, i32, 0xaabbccdd);
   3389     TESTINSN_un("vrev32.8 d0, d1", d0, d1, i32, 0xaabbccdd);
   3390     TESTINSN_un("vrev32.16 d30, d15", d30, d15, i32, 0xaabbccdd);
   3391     TESTINSN_un("vrev16.8 d0, d1", d0, d1, i32, 0xaabbccdd);
   3392 
   3393     fflush(stdout);
   3394     printf("---- VTBL ----\n");
   3395     TESTINSN_tbl_1("vtbl.8 d0, {d2}, d1", d0, d1, i8, 0, d2, i32, 0x12345678);
   3396     TESTINSN_tbl_1("vtbl.8 d0, {d31}, d1", d0, d1, i8, 0x07, d31, i32, 0x12345678);
   3397     TESTINSN_tbl_1("vtbl.8 d0, {d20}, d1", d0, d1, i8, 1, d20, i32, 0x12345678);
   3398     TESTINSN_tbl_1("vtbl.8 d0, {d2}, d31", d0, d31, i8, 2, d2, i32, 0x12345678);
   3399     TESTINSN_tbl_1("vtbl.8 d30, {d2}, d1", d30, d1, i32, 0x07030501, d2, i32, 0x12345678);
   3400     TESTINSN_tbl_1("vtbl.8 d31, {d2}, d1", d31, d1, i16, 0x0104, d2, i32, 0x12345678);
   3401     TESTINSN_tbl_1("vtbl.8 d30, {d2}, d1", d30, d1, i32, 0x07080501, d2, i32, 0x12345678);
   3402     TESTINSN_tbl_1("vtbl.8 d30, {d2}, d1", d30, d1, i32, 0x07ed05ee, d2, i32, 0x12345678);
   3403     TESTINSN_tbl_2("vtbl.8 d0, {d2-d3}, d1", d0, d1, i8, 0, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4);
   3404     TESTINSN_tbl_2("vtbl.8 d0, {d1-d2}, d3", d0, d3, i8, 0xa, d1, i32, 0x12345678, d2, i32, 0xa1a2a3a4);
   3405     TESTINSN_tbl_2("vtbl.8 d0, {d30-d31}, d1", d0, d1, i8, 0xf, d30, i32, 0x12345678, d31, i32, 0xa1a2a3a4);
   3406     TESTINSN_tbl_2("vtbl.8 d0, {d22-d23}, d1", d0, d1, i8, 9, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4);
   3407     TESTINSN_tbl_2("vtbl.8 d0, {d22-d23}, d1", d0, d1, i8, 15, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4);
   3408     TESTINSN_tbl_2("vtbl.8 d0, {d22-d23}, d1", d0, d1, i8, 4, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4);
   3409     TESTINSN_tbl_2("vtbl.8 d0, {d22-d23}, d1", d0, d1, i8, 14, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4);
   3410     TESTINSN_tbl_2("vtbl.8 d0, {d22-d23}, d1", d0, d1, i8, 15, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4);
   3411     TESTINSN_tbl_2("vtbl.8 d30, {d2-d3}, d31", d30, d31, i32, 0x07030501, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4);
   3412     TESTINSN_tbl_2("vtbl.8 d30, {d2-d3}, d31", d30, d31, i32, 0x0c0a0501, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4);
   3413     TESTINSN_tbl_2("vtbl.8 d30, {d2-d3}, d31", d30, d31, i32, 0x070e0e01, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4);
   3414     TESTINSN_tbl_2("vtbl.8 d30, {d2-d3}, d31", d30, d31, i32, 0x0d130f01, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4);
   3415     TESTINSN_tbl_2("vtbl.8 d30, {d2-d3}, d31", d30, d31, i32, 0x07030511, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4);
   3416     TESTINSN_tbl_3("vtbl.8 d0, {d2-d4}, d1", d0, d1, i8, 0, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd);
   3417     TESTINSN_tbl_3("vtbl.8 d0, {d1-d3}, d10", d0, d10, i8, 0x11, d1, i32, 0x12345678, d2, i32, 0xa1a2a3a4, d3, i32, 0xcacbcccd);
   3418     TESTINSN_tbl_3("vtbl.8 d0, {d29-d31}, d1", d0, d1, i8, 0x17, d29, i32, 0x12345678, d30, i32, 0xa1a2a3a4, d31, i32, 0xcacbcccd);
   3419     TESTINSN_tbl_3("vtbl.8 d0, {d22-d24}, d1", d0, d1, i8, 9, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4, d24, i32, 0xcacbcccd);
   3420     TESTINSN_tbl_3("vtbl.8 d0, {d22-d24}, d1", d0, d1, i8, 15, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4, d24, i32, 0xcacbcccd);
   3421     TESTINSN_tbl_3("vtbl.8 d0, {d22-d24}, d1", d0, d1, i8, 4, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4, d24, i32, 0xcacbcccd);
   3422     TESTINSN_tbl_3("vtbl.8 d0, {d22-d24}, d1", d0, d1, i8, 16, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4, d24, i32, 0xcacbcccd);
   3423     TESTINSN_tbl_3("vtbl.8 d0, {d22-d24}, d1", d0, d1, i8, 17, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4, d24, i32, 0xcacbcccd);
   3424     TESTINSN_tbl_3("vtbl.8 d30, {d2-d4}, d31", d30, d31, i32, 0x0a031504, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd);
   3425     TESTINSN_tbl_3("vtbl.8 d30, {d2-d4}, d31", d30, d31, i32, 0x0c0a0501, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd);
   3426     TESTINSN_tbl_3("vtbl.8 d30, {d2-d4}, d31", d30, d31, i32, 0x170efe0f, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd);
   3427     TESTINSN_tbl_3("vtbl.8 d30, {d2-d4}, d31", d30, d31, i32, 0x0d130f11, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd);
   3428     TESTINSN_tbl_3("vtbl.8 d30, {d2-d4}, d31", d30, d31, i32, 0x070f1511, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd);
   3429     TESTINSN_tbl_4("vtbl.8 d0, {d2-d5}, d1", d0, d1, i8, 0, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd, d5, i32, 0xfefdfcfb);
   3430     TESTINSN_tbl_4("vtbl.8 d0, {d1-d4}, d10", d0, d10, i8, 0x11, d1, i32, 0x12345678, d2, i32, 0xa1a2a3a4, d3, i32, 0xcacbcccd, d4, i32, 0xfefdfcfb);
   3431     TESTINSN_tbl_4("vtbl.8 d0, {d28-d31}, d1", d0, d1, i8, 0x17, d28, i32, 0x12345678, d29, i32, 0xa1a2a3a4, d30, i32, 0xcacbcccd, d31, i32, 0xfefdfcfb);
   3432     TESTINSN_tbl_4("vtbl.8 d0, {d22-d25}, d1", d0, d1, i8, 9, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4, d24, i32, 0xcacbcccd, d25, i32, 0xfefdfcfb);
   3433     TESTINSN_tbl_4("vtbl.8 d0, {d22-d25}, d1", d0, d1, i8, 0x1a, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4, d24, i32, 0xcacbcccd, d25, i32, 0xfefdfcfb);
   3434     TESTINSN_tbl_4("vtbl.8 d0, {d22-d25}, d1", d0, d1, i8, 4, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4, d24, i32, 0xcacbcccd, d25, i32, 0xfefdfcfb);
   3435     TESTINSN_tbl_4("vtbl.8 d0, {d22-d25}, d1", d0, d1, i8, 0x16, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4, d24, i32, 0xcacbcccd, d25, i32, 0xfefdfcfb);
   3436     TESTINSN_tbl_4("vtbl.8 d0, {d22-d25}, d1", d0, d1, i8, 0x1f, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4, d24, i32, 0xcacbcccd, d25, i32, 0xfefdfcfb);
   3437     TESTINSN_tbl_4("vtbl.8 d30, {d2-d5}, d31", d30, d31, i32, 0x1a0315ff, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd, d5, i32, 0xfefdfcfb);
   3438     TESTINSN_tbl_4("vtbl.8 d30, {d2-d5}, d31", d30, d31, i32, 0x0c0a0501, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd, d5, i32, 0xfefdfcfb);
   3439     TESTINSN_tbl_4("vtbl.8 d30, {d2-d5}, d31", d30, d31, i32, 0x171efe0f, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd, d5, i32, 0xfefdfcfb);
   3440     TESTINSN_tbl_4("vtbl.8 d30, {d2-d5}, d31", d30, d31, i32, 0x1d130f1a, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd, d5, i32, 0xfefdfcfb);
   3441     TESTINSN_tbl_4("vtbl.8 d30, {d2-d5}, d31", d30, d31, i32, 0x17101c11, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd, d5, i32, 0xfefdfcfb);
   3442 
   3443     fflush(stdout);
   3444     printf("---- VTBX ----\n");
   3445     TESTINSN_tbl_1("vtbx.8 d0, {d2}, d1", d0, d1, i8, 0, d2, i32, 0x12345678);
   3446     TESTINSN_tbl_1("vtbx.8 d0, {d31}, d1", d0, d1, i8, 0x07, d31, i32, 0x12345678);
   3447     TESTINSN_tbl_1("vtbx.8 d0, {d20}, d1", d0, d1, i8, 1, d20, i32, 0x12345678);
   3448     TESTINSN_tbl_1("vtbx.8 d0, {d2}, d31", d0, d31, i8, 2, d2, i32, 0x12345678);
   3449     TESTINSN_tbl_1("vtbx.8 d30, {d2}, d1", d30, d1, i32, 0x07030501, d2, i32, 0x12345678);
   3450     TESTINSN_tbl_1("vtbx.8 d31, {d2}, d1", d31, d1, i16, 0x0104, d2, i32, 0x12345678);
   3451     TESTINSN_tbl_1("vtbx.8 d30, {d2}, d1", d30, d1, i32, 0x07080501, d2, i32, 0x12345678);
   3452     TESTINSN_tbl_1("vtbx.8 d30, {d2}, d1", d30, d1, i32, 0x07ed05ee, d2, i32, 0x12345678);
   3453     TESTINSN_tbl_2("vtbx.8 d0, {d2-d3}, d1", d0, d1, i8, 0, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4);
   3454     TESTINSN_tbl_2("vtbx.8 d0, {d1-d2}, d3", d0, d3, i8, 0xa, d1, i32, 0x12345678, d2, i32, 0xa1a2a3a4);
   3455     TESTINSN_tbl_2("vtbx.8 d0, {d30-d31}, d1", d0, d1, i8, 0xf, d30, i32, 0x12345678, d31, i32, 0xa1a2a3a4);
   3456     TESTINSN_tbl_2("vtbx.8 d0, {d22-d23}, d1", d0, d1, i8, 9, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4);
   3457     TESTINSN_tbl_2("vtbx.8 d0, {d22-d23}, d1", d0, d1, i8, 15, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4);
   3458     TESTINSN_tbl_2("vtbx.8 d0, {d22-d23}, d1", d0, d1, i8, 4, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4);
   3459     TESTINSN_tbl_2("vtbx.8 d0, {d22-d23}, d1", d0, d1, i8, 14, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4);
   3460     TESTINSN_tbl_2("vtbx.8 d0, {d22-d23}, d1", d0, d1, i8, 15, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4);
   3461     TESTINSN_tbl_2("vtbx.8 d30, {d2-d3}, d31", d30, d31, i32, 0x07030501, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4);
   3462     TESTINSN_tbl_2("vtbx.8 d30, {d2-d3}, d31", d30, d31, i32, 0x0c0a0501, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4);
   3463     TESTINSN_tbl_2("vtbx.8 d30, {d2-d3}, d31", d30, d31, i32, 0x070e0e01, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4);
   3464     TESTINSN_tbl_2("vtbx.8 d30, {d2-d3}, d31", d30, d31, i32, 0x0d130f01, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4);
   3465     TESTINSN_tbl_2("vtbx.8 d30, {d2-d3}, d31", d30, d31, i32, 0x07030511, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4);
   3466     TESTINSN_tbl_3("vtbx.8 d0, {d2-d4}, d1", d0, d1, i8, 0, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd);
   3467     TESTINSN_tbl_3("vtbx.8 d0, {d1-d3}, d10", d0, d10, i8, 0x11, d1, i32, 0x12345678, d2, i32, 0xa1a2a3a4, d3, i32, 0xcacbcccd);
   3468     TESTINSN_tbl_3("vtbx.8 d0, {d29-d31}, d1", d0, d1, i8, 0x17, d29, i32, 0x12345678, d30, i32, 0xa1a2a3a4, d31, i32, 0xcacbcccd);
   3469     TESTINSN_tbl_3("vtbx.8 d0, {d22-d24}, d1", d0, d1, i8, 9, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4, d24, i32, 0xcacbcccd);
   3470     TESTINSN_tbl_3("vtbx.8 d0, {d22-d24}, d1", d0, d1, i8, 15, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4, d24, i32, 0xcacbcccd);
   3471     TESTINSN_tbl_3("vtbx.8 d0, {d22-d24}, d1", d0, d1, i8, 4, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4, d24, i32, 0xcacbcccd);
   3472     TESTINSN_tbl_3("vtbx.8 d0, {d22-d24}, d1", d0, d1, i8, 16, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4, d24, i32, 0xcacbcccd);
   3473     TESTINSN_tbl_3("vtbx.8 d0, {d22-d24}, d1", d0, d1, i8, 17, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4, d24, i32, 0xcacbcccd);
   3474     TESTINSN_tbl_3("vtbx.8 d30, {d2-d4}, d31", d30, d31, i32, 0x0a031504, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd);
   3475     TESTINSN_tbl_3("vtbx.8 d30, {d2-d4}, d31", d30, d31, i32, 0x0c0a0501, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd);
   3476     TESTINSN_tbl_3("vtbx.8 d30, {d2-d4}, d31", d30, d31, i32, 0x170efe0f, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd);
   3477     TESTINSN_tbl_3("vtbx.8 d30, {d2-d4}, d31", d30, d31, i32, 0x0d130f11, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd);
   3478     TESTINSN_tbl_3("vtbx.8 d30, {d2-d4}, d31", d30, d31, i32, 0x070f1511, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd);
   3479     TESTINSN_tbl_4("vtbx.8 d0, {d2-d5}, d1", d0, d1, i8, 0, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd, d5, i32, 0xfefdfcfb);
   3480     TESTINSN_tbl_4("vtbx.8 d0, {d1-d4}, d10", d0, d10, i8, 0x11, d1, i32, 0x12345678, d2, i32, 0xa1a2a3a4, d3, i32, 0xcacbcccd, d4, i32, 0xfefdfcfb);
   3481     TESTINSN_tbl_4("vtbx.8 d0, {d28-d31}, d1", d0, d1, i8, 0x17, d28, i32, 0x12345678, d29, i32, 0xa1a2a3a4, d30, i32, 0xcacbcccd, d31, i32, 0xfefdfcfb);
   3482     TESTINSN_tbl_4("vtbx.8 d0, {d22-d25}, d1", d0, d1, i8, 9, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4, d24, i32, 0xcacbcccd, d25, i32, 0xfefdfcfb);
   3483     TESTINSN_tbl_4("vtbx.8 d0, {d22-d25}, d1", d0, d1, i8, 0x1a, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4, d24, i32, 0xcacbcccd, d25, i32, 0xfefdfcfb);
   3484     TESTINSN_tbl_4("vtbx.8 d0, {d22-d25}, d1", d0, d1, i8, 4, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4, d24, i32, 0xcacbcccd, d25, i32, 0xfefdfcfb);
   3485     TESTINSN_tbl_4("vtbx.8 d0, {d22-d25}, d1", d0, d1, i8, 0x16, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4, d24, i32, 0xcacbcccd, d25, i32, 0xfefdfcfb);
   3486     TESTINSN_tbl_4("vtbx.8 d0, {d22-d25}, d1", d0, d1, i8, 0x1f, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4, d24, i32, 0xcacbcccd, d25, i32, 0xfefdfcfb);
   3487     TESTINSN_tbl_4("vtbx.8 d30, {d2-d5}, d31", d30, d31, i32, 0x1a0315ff, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd, d5, i32, 0xfefdfcfb);
   3488     TESTINSN_tbl_4("vtbx.8 d30, {d2-d5}, d31", d30, d31, i32, 0x0c0a0501, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd, d5, i32, 0xfefdfcfb);
   3489     TESTINSN_tbl_4("vtbx.8 d30, {d2-d5}, d31", d30, d31, i32, 0x171efe0f, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd, d5, i32, 0xfefdfcfb);
   3490     TESTINSN_tbl_4("vtbx.8 d30, {d2-d5}, d31", d30, d31, i32, 0x1d130f1a, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd, d5, i32, 0xfefdfcfb);
   3491     TESTINSN_tbl_4("vtbx.8 d30, {d2-d5}, d31", d30, d31, i32, 0x17101c11, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd, d5, i32, 0xfefdfcfb);
   3492 
   3493     fflush(stdout);
   3494     printf("---- VPMAX (integer) ----\n");
   3495     TESTINSN_bin("vpmax.s32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 121);
   3496     TESTINSN_bin("vpmax.s32 d0, d1, d2", d0, d1, i32, 250, d2, i32, 121);
   3497     TESTINSN_bin("vpmax.s32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 140);
   3498     TESTINSN_bin("vpmax.s16 d0, d1, d2", d0, d1, i32, 0x01200140, d2, i32, 120);
   3499     TESTINSN_bin("vpmax.s8 d0, d1, d2", d0, d1, i32, 120, d2, i32, 120);
   3500     TESTINSN_bin("vpmax.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 1, d5, i32, (1 << 31) + 2);
   3501     TESTINSN_bin("vpmax.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
   3502     TESTINSN_bin("vpmax.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
   3503     TESTINSN_bin("vpmax.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 1, d5, i32, (1 << 31) + 3);
   3504     TESTINSN_bin("vpmax.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
   3505     TESTINSN_bin("vpmax.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
   3506     TESTINSN_bin("vpmax.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 4, d5, i32, (1 << 31) + 2);
   3507     TESTINSN_bin("vpmax.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
   3508     TESTINSN_bin("vpmax.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
   3509     TESTINSN_bin("vpmax.s32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
   3510     TESTINSN_bin("vpmax.u32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 120);
   3511     TESTINSN_bin("vpmax.u32 d0, d1, d2", d0, d1, i32, 250, d2, i32, 120);
   3512     TESTINSN_bin("vpmax.u32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 140);
   3513     TESTINSN_bin("vpmax.u16 d0, d1, d2", d0, d1, i32, 0x01200140, d2, i32, 120);
   3514     TESTINSN_bin("vpmax.u8 d0, d1, d2", d0, d1, i32, 0x01202120, d2, i32, 120);
   3515     TESTINSN_bin("vpmax.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
   3516     TESTINSN_bin("vpmax.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
   3517     TESTINSN_bin("vpmax.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
   3518     TESTINSN_bin("vpmax.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
   3519     TESTINSN_bin("vpmax.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
   3520     TESTINSN_bin("vpmax.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
   3521     TESTINSN_bin("vpmax.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
   3522     TESTINSN_bin("vpmax.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
   3523     TESTINSN_bin("vpmax.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
   3524     TESTINSN_bin("vpmax.u32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
   3525 
   3526     fflush(stdout);
   3527     printf("---- VPMIN (integer) ----\n");
   3528     TESTINSN_bin("vpmin.s32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 121);
   3529     TESTINSN_bin("vpmin.s32 d0, d1, d2", d0, d1, i32, 250, d2, i32, 121);
   3530     TESTINSN_bin("vpmin.s32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 140);
   3531     TESTINSN_bin("vpmin.s16 d0, d1, d2", d0, d1, i32, 0x01200140, d2, i32, 120);
   3532     TESTINSN_bin("vpmin.s8 d0, d1, d2", d0, d1, i32, 120, d2, i32, 120);
   3533     TESTINSN_bin("vpmin.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 1, d5, i32, (1 << 31) + 2);
   3534     TESTINSN_bin("vpmin.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
   3535     TESTINSN_bin("vpmin.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
   3536     TESTINSN_bin("vpmin.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 1, d5, i32, (1 << 31) + 3);
   3537     TESTINSN_bin("vpmin.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
   3538     TESTINSN_bin("vpmin.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
   3539     TESTINSN_bin("vpmin.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 4, d5, i32, (1 << 31) + 2);
   3540     TESTINSN_bin("vpmin.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
   3541     TESTINSN_bin("vpmin.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
   3542     TESTINSN_bin("vpmin.s32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
   3543     TESTINSN_bin("vpmin.u32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 120);
   3544     TESTINSN_bin("vpmin.u32 d0, d1, d2", d0, d1, i32, 250, d2, i32, 120);
   3545     TESTINSN_bin("vpmin.u32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 140);
   3546     TESTINSN_bin("vpmin.u16 d0, d1, d2", d0, d1, i32, 0x01200140, d2, i32, 120);
   3547     TESTINSN_bin("vpmin.u8 d0, d1, d2", d0, d1, i32, 0x01202120, d2, i32, 120);
   3548     TESTINSN_bin("vpmin.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
   3549     TESTINSN_bin("vpmin.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
   3550     TESTINSN_bin("vpmin.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
   3551     TESTINSN_bin("vpmin.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
   3552     TESTINSN_bin("vpmin.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
   3553     TESTINSN_bin("vpmin.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
   3554     TESTINSN_bin("vpmin.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
   3555     TESTINSN_bin("vpmin.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
   3556     TESTINSN_bin("vpmin.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
   3557     TESTINSN_bin("vpmin.u32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
   3558 
   3559     fflush(stdout);
   3560     printf("---- VQRDMULH ----\n");
   3561     TESTINSN_bin_q("vqrdmulh.s32 d0, d1, d2", d0, d1, i32, 24, d2, i32, 120);
   3562     TESTINSN_bin_q("vqrdmulh.s32 d6, d7, d8", d6, d7, i32, 140, d8, i32, -120);
   3563     TESTINSN_bin_q("vqrdmulh.s16 d9, d11, d12", d9, d11, i32, 0x140, d12, i32, 0x120);
   3564     TESTINSN_bin_q("vqrdmulh.s16 d4, d5, d6", d4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2);
   3565     TESTINSN_bin_q("vqrdmulh.s32 d7, d8, d9", d7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2);
   3566     TESTINSN_bin_q("vqrdmulh.s16 d4, d5, d6", d4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 2);
   3567     TESTINSN_bin_q("vqrdmulh.s32 d7, d8, d9", d7, d8, i32, (1 << 31), d9, i32, 12);
   3568     TESTINSN_bin_q("vqrdmulh.s16 d4, d5, d6", d4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2);
   3569     TESTINSN_bin_q("vqrdmulh.s32 d7, d8, d9", d7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2);
   3570     TESTINSN_bin_q("vqrdmulh.s32 d10, d11, d15", d10, d11, i32, 24, d15, i32, 120);
   3571     TESTINSN_bin_q("vqrdmulh.s32 d10, d30, d31", d10, d30, i32, 1 << 31, d31, i32, 1 << 31);
   3572     TESTINSN_bin_q("vqrdmulh.s16 d10, d30, d31", d10, d30, i32, 1 << 31, d31, i32, (1 << 31) + 1);
   3573     TESTINSN_bin_q("vqrdmulh.s32 d10, d30, d31", d10, d30, i32, 1 << 30, d31, i32, 1 << 31);
   3574     TESTINSN_bin_q("vqrdmulh.s16 d10, d30, d31", d10, d30, i32, 1 << 31, d31, i32, 1 << 30);
   3575 
   3576     fflush(stdout);
   3577     printf("---- VQRDMULH (by scalar) ----\n");
   3578     TESTINSN_bin_q("vqrdmulh.s32 d0, d1, d6[0]", d0, d1, i32, 24, d6, i32, 120);
   3579     TESTINSN_bin_q("vqrdmulh.s32 d6, d7, d1[1]", d6, d7, i32, 140, d1, i32, -120);
   3580     TESTINSN_bin_q("vqrdmulh.s16 d9, d11, d7[0]", d9, d11, i32, 0x140, d7, i32, 0x120);
   3581     TESTINSN_bin_q("vqrdmulh.s16 d4, d5, d6[0]", d4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2);
   3582     TESTINSN_bin_q("vqrdmulh.s32 d7, d8, d9[1]", d7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2);
   3583     TESTINSN_bin_q("vqrdmulh.s16 d4, d5, d6[1]", d4, d5, i32, (1 << 14) - 0xabcd, d6, i16, (1 << 13) + 2);
   3584     TESTINSN_bin_q("vqrdmulh.s32 d7, d8, d9[0]", d7, d8, i32, (1 << 31), d9, i32, 12);
   3585     TESTINSN_bin_q("vqrdmulh.s16 d4, d5, d6[2]", d4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2);
   3586     TESTINSN_bin_q("vqrdmulh.s32 d7, d8, d9[0]", d7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2);
   3587     TESTINSN_bin_q("vqrdmulh.s32 d10, d31, d15[0]", d10, d31, i32, 24, d15, i32, 120);
   3588     TESTINSN_bin_q("vqrdmulh.s32 d10, d14, d15[1]", d10, d14, i32, 1 << 31, d7, i32, 1 << 31);
   3589     TESTINSN_bin_q("vqrdmulh.s16 d10, d14, d7[3]", d10, d14, i32, 1 << 31, q15, i32, (1 << 31) + 1);
   3590     TESTINSN_bin_q("vqrdmulh.s32 d10, d14, d15[1]", d10, d14, i32, 1 << 30, d15, i32, 1 << 31);
   3591     TESTINSN_bin_q("vqrdmulh.s16 d31, d14, d7[1]", d31, d14, i32, 1 << 31, d7, i32, 1 << 30);
   3592 
   3593     fflush(stdout);
   3594     printf("---- VADD (fp) ----\n");
   3595     TESTINSN_bin("vadd.f32 d0, d5, d2", d0, d5, i32, f2u(23.04), d2, i32, f2u(-45.5687));
   3596     TESTINSN_bin("vadd.f32 d3, d4, d5", d3, d4, i32, f2u(-347856.475), d5, i32, f2u(1346));
   3597     TESTINSN_bin("vadd.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(-45786.476));
   3598     TESTINSN_bin("vadd.f32 d9, d5, d7", d9, d5, i32, f2u(95867.76), d7, i32, f2u(17065));
   3599     TESTINSN_bin("vadd.f32 d0, d5, d2", d0, d5, i32, f2u(-45667.24), d2, i32, f2u(-248562.76));
   3600     TESTINSN_bin("vadd.f32 d3, d4, d5", d3, d4, i32, f2u(24.87556), d5, i32, f2u(1346.0004));
   3601     TESTINSN_bin("vadd.f32 d10, d11, d2", d10, d11, i32, f2u(48755.7), d2, i32, f2u(1089.2));
   3602     TESTINSN_bin("vadd.f32 d9, d5, d7", d9, d5, i32, f2u(214), d7, i32, f2u(1752065));
   3603     TESTINSN_bin("vadd.f32 d0, d11, d12", d0, d11, i32, f2u(356047.56), d12, i32, f2u(5867.009));
   3604     TESTINSN_bin("vadd.f32 d7, d1, d6", d7, d1, i32, f2u(34.00046), d6, i32, f2u(0.0024575));
   3605     TESTINSN_bin("vadd.f32 d0, d1, d2", d0, d1, i32, f2u(2754), d2, i32, f2u(107));
   3606     TESTINSN_bin("vadd.f32 d3, d4, d5", d3, d4, i32, f2u(874), d5, i32, f2u(1384.6));
   3607     TESTINSN_bin("vadd.f32 d10, d11, d2", d10, d11, i32, f2u(487.587), d2, i32, f2u(109));
   3608     TESTINSN_bin("vadd.f32 d9, d5, d7", d9, d5, i32, f2u(2146), d7, i32, f2u(1752));
   3609     TESTINSN_bin("vadd.f32 d0, d11, d12", d0, d11, i32, f2u(-56.25), d12, i32, f2u(-5786.47));
   3610     TESTINSN_bin("vadd.f32 d7, d1, d6", d7, d1, i32, f2u(456.2489562), d6, i32, f2u(-7.2945676));
   3611     TESTINSN_bin("vadd.f32 d0, d5, d2", d0, d5, i32, f2u(532.987), d2, i32, f2u(-0.0045876));
   3612     TESTINSN_bin("vadd.f32 d10, d13, d15", d10, d13, i32, f2u(-485.2457), d15, i32, f2u(-567.245));
   3613     TESTINSN_bin("vadd.f32 d10, d13, d15", d10, d13, i32, f2u(278456.45), d15, i32, f2u(8756.0076));
   3614     TESTINSN_bin("vadd.f32 d0, d1, d2", d0, d1, i32, f2u(876988654), d2, i32, f2u(1224808797));
   3615     TESTINSN_bin("vadd.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(NAN));
   3616     TESTINSN_bin("vadd.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(1.0));
   3617     TESTINSN_bin("vadd.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(0.0));
   3618     TESTINSN_bin("vadd.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(INFINITY));
   3619     TESTINSN_bin("vadd.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(-INFINITY));
   3620     TESTINSN_bin("vadd.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(NAN));
   3621     TESTINSN_bin("vadd.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(1.0));
   3622     TESTINSN_bin("vadd.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(0.0));
   3623     TESTINSN_bin("vadd.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(INFINITY));
   3624     TESTINSN_bin("vadd.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(-INFINITY));
   3625     TESTINSN_bin("vadd.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(NAN));
   3626     TESTINSN_bin("vadd.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(1.0));
   3627     TESTINSN_bin("vadd.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(0.0));
   3628     TESTINSN_bin("vadd.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY));
   3629     TESTINSN_bin("vadd.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY));
   3630     TESTINSN_bin("vadd.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(NAN));
   3631     TESTINSN_bin("vadd.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(1.0));
   3632     TESTINSN_bin("vadd.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(0.0));
   3633     TESTINSN_bin("vadd.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY));
   3634     TESTINSN_bin("vadd.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY));
   3635 
   3636     fflush(stdout);
   3637     printf("---- VSUB (fp) ----\n");
   3638     TESTINSN_bin("vsub.f32 d0, d5, d2", d0, d5, i32, f2u(23.04), d2, i32, f2u(-45.5687));
   3639     TESTINSN_bin("vsub.f32 d3, d4, d5", d3, d4, i32, f2u(-347856.475), d5, i32, f2u(1346));
   3640     TESTINSN_bin("vsub.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(-45786.476));
   3641     TESTINSN_bin("vsub.f32 d9, d5, d7", d9, d5, i32, f2u(95867.76), d7, i32, f2u(17065));
   3642     TESTINSN_bin("vsub.f32 d0, d5, d2", d0, d5, i32, f2u(-45667.24), d2, i32, f2u(-248562.76));
   3643     TESTINSN_bin("vsub.f32 d3, d4, d5", d3, d4, i32, f2u(24), d5, i32, f2u(1346));
   3644     TESTINSN_bin("vsub.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(1089));
   3645     TESTINSN_bin("vsub.f32 d9, d5, d7", d9, d5, i32, f2u(214), d7, i32, f2u(1752065));
   3646     TESTINSN_bin("vsub.f32 d0, d11, d12", d0, d11, i32, f2u(356047.56), d12, i32, f2u(5867.009));
   3647     TESTINSN_bin("vsub.f32 d7, d1, d6", d7, d1, i32, f2u(34.00046), d6, i32, f2u(0.0024575));
   3648     TESTINSN_bin("vsub.f32 d0, d1, d2", d0, d1, i32, f2u(2754), d2, i32, f2u(107));
   3649     TESTINSN_bin("vsub.f32 d3, d4, d5", d3, d4, i32, f2u(874), d5, i32, f2u(1384.6));
   3650     TESTINSN_bin("vsub.f32 d10, d11, d2", d10, d11, i32, f2u(487.587), d2, i32, f2u(109));
   3651     TESTINSN_bin("vsub.f32 d9, d5, d7", d9, d5, i32, f2u(2146), d7, i32, f2u(1752));
   3652     TESTINSN_bin("vsub.f32 d0, d11, d12", d0, d11, i32, f2u(-56.25), d12, i32, f2u(-5786.47));
   3653     TESTINSN_bin("vsub.f32 d7, d1, d6", d7, d1, i32, f2u(456.2489562), d6, i32, f2u(-7.2945676));
   3654     TESTINSN_bin("vsub.f32 d0, d5, d2", d0, d5, i32, f2u(532.987), d2, i32, f2u(-0.0045876));
   3655     TESTINSN_bin("vsub.f32 d10, d13, d15", d10, d13, i32, f2u(-485.2457), d15, i32, f2u(-567.245));
   3656     TESTINSN_bin("vsub.f32 d10, d13, d15", d10, d13, i32, f2u(278456.45), d15, i32, f2u(8756.0076));
   3657     TESTINSN_bin("vsub.f32 d0, d1, d2", d0, d1, i32, f2u(876988654), d2, i32, f2u(1224808797));
   3658     TESTINSN_bin("vsub.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(NAN));
   3659     TESTINSN_bin("vsub.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(1.0));
   3660     TESTINSN_bin("vsub.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(0.0));
   3661     TESTINSN_bin("vsub.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(INFINITY));
   3662     TESTINSN_bin("vsub.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(-INFINITY));
   3663     TESTINSN_bin("vsub.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(NAN));
   3664     TESTINSN_bin("vsub.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(1.0));
   3665     TESTINSN_bin("vsub.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(0.0));
   3666     TESTINSN_bin("vsub.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(INFINITY));
   3667     TESTINSN_bin("vsub.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(-INFINITY));
   3668     TESTINSN_bin("vsub.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(NAN));
   3669     TESTINSN_bin("vsub.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(1.0));
   3670     TESTINSN_bin("vsub.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(0.0));
   3671     TESTINSN_bin("vsub.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY));
   3672     TESTINSN_bin("vsub.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY));
   3673     TESTINSN_bin("vsub.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(NAN));
   3674     TESTINSN_bin("vsub.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(1.0));
   3675     TESTINSN_bin("vsub.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(0.0));
   3676     TESTINSN_bin("vsub.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY));
   3677     TESTINSN_bin("vsub.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY));
   3678 
   3679     fflush(stdout);
   3680     printf("---- VMUL (fp) ----\n");
   3681     TESTINSN_bin("vmul.f32 d0, d5, d2", d0, d5, i32, f2u(23.04), d2, i32, f2u(-45.5687));
   3682     TESTINSN_bin("vmul.f32 d3, d4, d5", d3, d4, i32, f2u(-347856.475), d5, i32, f2u(1346));
   3683     TESTINSN_bin("vmul.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(-45786.476));
   3684     TESTINSN_bin("vmul.f32 d9, d5, d7", d9, d5, i32, f2u(95867.76), d7, i32, f2u(17065));
   3685     TESTINSN_bin("vmul.f32 d0, d5, d2", d0, d5, i32, f2u(-45667.24), d2, i32, f2u(-248562.76));
   3686     TESTINSN_bin("vmul.f32 d3, d4, d5", d3, d4, i32, f2u(24), d5, i32, f2u(1346));
   3687     TESTINSN_bin("vmul.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(1089));
   3688     TESTINSN_bin("vmul.f32 d9, d5, d7", d9, d5, i32, f2u(214), d7, i32, f2u(1752065));
   3689     TESTINSN_bin("vmul.f32 d0, d11, d12", d0, d11, i32, f2u(356047.56), d12, i32, f2u(5867.009));
   3690     TESTINSN_bin("vmul.f32 d7, d1, d6", d7, d1, i32, f2u(34.00046), d6, i32, f2u(0.0024575));
   3691     TESTINSN_bin("vmul.f32 d0, d1, d2", d0, d1, i32, f2u(2754), d2, i32, f2u(107));
   3692     TESTINSN_bin("vmul.f32 d3, d4, d5", d3, d4, i32, f2u(874), d5, i32, f2u(1384.6));
   3693     TESTINSN_bin("vmul.f32 d10, d11, d2", d10, d11, i32, f2u(487.587), d2, i32, f2u(109));
   3694     TESTINSN_bin("vmul.f32 d9, d5, d7", d9, d5, i32, f2u(2146), d7, i32, f2u(1752));
   3695     TESTINSN_bin("vmul.f32 d0, d11, d12", d0, d11, i32, f2u(-56.25), d12, i32, f2u(-5786.47));
   3696     TESTINSN_bin("vmul.f32 d7, d1, d6", d7, d1, i32, f2u(456.2489562), d6, i32, f2u(-7.2945676));
   3697     TESTINSN_bin("vmul.f32 d0, d5, d2", d0, d5, i32, f2u(532.987), d2, i32, f2u(-0.0045876));
   3698     TESTINSN_bin("vmul.f32 d10, d13, d15", d10, d13, i32, f2u(-485.2457), d15, i32, f2u(-567.245));
   3699     TESTINSN_bin("vmul.f32 d10, d13, d15", d10, d13, i32, f2u(278456.45), d15, i32, f2u(8756.0076));
   3700     TESTINSN_bin("vmul.f32 d0, d1, d2", d0, d1, i32, f2u(876988654), d2, i32, f2u(1224808797));
   3701     TESTINSN_bin("vmul.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(NAN));
   3702     TESTINSN_bin("vmul.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(1.0));
   3703     TESTINSN_bin("vmul.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(0.0));
   3704     TESTINSN_bin("vmul.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(INFINITY));
   3705     TESTINSN_bin("vmul.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(-INFINITY));
   3706     TESTINSN_bin("vmul.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(NAN));
   3707     TESTINSN_bin("vmul.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(1.0));
   3708     TESTINSN_bin("vmul.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(0.0));
   3709     TESTINSN_bin("vmul.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(INFINITY));
   3710     TESTINSN_bin("vmul.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(-INFINITY));
   3711     TESTINSN_bin("vmul.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(NAN));
   3712     TESTINSN_bin("vmul.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(1.0));
   3713     TESTINSN_bin("vmul.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(0.0));
   3714     TESTINSN_bin("vmul.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY));
   3715     TESTINSN_bin("vmul.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY));
   3716     TESTINSN_bin("vmul.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(NAN));
   3717     TESTINSN_bin("vmul.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(1.0));
   3718     TESTINSN_bin("vmul.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(0.0));
   3719     TESTINSN_bin("vmul.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY));
   3720     TESTINSN_bin("vmul.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY));
   3721 
   3722     fflush(stdout);
   3723     printf("---- VMUL (fp by scalar) ----\n");
   3724     TESTINSN_bin("vmul.f32 d0, d1, d4[0]", d0, d1, i32, f2u(24), d4, i32, f2u(120));
   3725     TESTINSN_bin("vmul.f32 d31, d8, d7[1]", d31, d8, i32, f2u(140), d7, i32, f2u(-120));
   3726     TESTINSN_bin("vmul.f32 d4, d8, d15[1]", d4, d8, i32, (1 << 31) + 1, d15, i32, (1 << 31) + 2);
   3727     TESTINSN_bin("vmul.f32 d7, d8, d1[1]", d7, d8, i32, (1 << 31), d1, i16, 12);
   3728     TESTINSN_bin("vmul.f32 d17, d8, d1[1]", d17, d8, i32, (1 << 31) + 1, d1, i32, (1 << 31) + 2);
   3729     TESTINSN_bin("vmul.f32 d7, d8, d1[0]", d7, d8, i32, f2u(1e22), d1, i32, f2u(1e-19));
   3730     TESTINSN_bin("vmul.f32 d7, d24, d1[0]", d7, d24, i32, f2u(1e12), d1, i32, f2u(1e11));
   3731     TESTINSN_bin("vmul.f32 d0, d1, d2[0]", d0, d1, i32, f2u(NAN), d2, i32, f2u(NAN));
   3732     TESTINSN_bin("vmul.f32 d0, d1, d2[0]", d0, d1, i32, f2u(NAN), d2, i32, f2u(1.0));
   3733     TESTINSN_bin("vmul.f32 d0, d1, d2[0]", d0, d1, i32, f2u(NAN), d2, i32, f2u(0.0));
   3734     TESTINSN_bin("vmul.f32 d0, d1, d2[0]", d0, d1, i32, f2u(NAN), d2, i32, f2u(INFINITY));
   3735     TESTINSN_bin("vmul.f32 d0, d1, d2[0]", d0, d1, i32, f2u(NAN), d2, i32, f2u(-INFINITY));
   3736     TESTINSN_bin("vmul.f32 d0, d1, d2[0]", d0, d1, i32, f2u(0.0), d2, i32, f2u(NAN));
   3737     TESTINSN_bin("vmul.f32 d0, d1, d2[0]", d0, d1, i32, f2u(0.0), d2, i32, f2u(1.0));
   3738     TESTINSN_bin("vmul.f32 d0, d1, d2[0]", d0, d1, i32, f2u(0.0), d2, i32, f2u(0.0));
   3739     TESTINSN_bin("vmul.f32 d0, d1, d2[0]", d0, d1, i32, f2u(0.0), d2, i32, f2u(INFINITY));
   3740     TESTINSN_bin("vmul.f32 d0, d1, d2[0]", d0, d1, i32, f2u(0.0), d2, i32, f2u(-INFINITY));
   3741     TESTINSN_bin("vmul.f32 d0, d1, d2[0]", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(NAN));
   3742     TESTINSN_bin("vmul.f32 d0, d1, d2[0]", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(1.0));
   3743     TESTINSN_bin("vmul.f32 d0, d1, d2[0]", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(0.0));
   3744     TESTINSN_bin("vmul.f32 d0, d1, d2[0]", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY));
   3745     TESTINSN_bin("vmul.f32 d0, d1, d2[0]", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY));
   3746     TESTINSN_bin("vmul.f32 d0, d1, d2[0]", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(NAN));
   3747     TESTINSN_bin("vmul.f32 d0, d1, d2[0]", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(1.0));
   3748     TESTINSN_bin("vmul.f32 d0, d1, d2[0]", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(0.0));
   3749     TESTINSN_bin("vmul.f32 d0, d1, d2[0]", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY));
   3750     TESTINSN_bin("vmul.f32 d0, d1, d2[0]", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY));
   3751 
   3752     fflush(stdout);
   3753     printf("---- VMLA (fp) ----\n");
   3754     TESTINSN_bin_f("vmla.f32 d0, d5, d2", d0, d5, i32, f2u(23.04), d2, i32, f2u(-45.5687));
   3755     TESTINSN_bin_f("vmla.f32 d3, d4, d5", d3, d4, i32, f2u(-347856.475), d5, i32, f2u(1346));
   3756     TESTINSN_bin_f("vmla.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(-45786.476));
   3757     TESTINSN_bin_f("vmla.f32 d9, d5, d7", d9, d5, i32, f2u(95867.76), d7, i32, f2u(17065));
   3758     TESTINSN_bin_f("vmla.f32 d0, d5, d2", d0, d5, i32, f2u(-45667.24), d2, i32, f2u(-248562.76));
   3759     TESTINSN_bin_f("vmla.f32 d3, d4, d5", d3, d4, i32, f2u(24), d5, i32, f2u(1346));
   3760     TESTINSN_bin_f("vmla.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(1089));
   3761     TESTINSN_bin_f("vmla.f32 d9, d5, d7", d9, d5, i32, f2u(214), d7, i32, f2u(1752065));
   3762     TESTINSN_bin_f("vmla.f32 d0, d11, d12", d0, d11, i32, f2u(356047.56), d12, i32, f2u(5867.009));
   3763     TESTINSN_bin_f("vmla.f32 d7, d1, d6", d7, d1, i32, f2u(34.00046), d6, i32, f2u(0.0024575));
   3764     TESTINSN_bin_f("vmla.f32 d0, d1, d2", d0, d1, i32, f2u(2754), d2, i32, f2u(107));
   3765     TESTINSN_bin_f("vmla.f32 d3, d4, d5", d3, d4, i32, f2u(874), d5, i32, f2u(1384.6));
   3766     TESTINSN_bin_f("vmla.f32 d10, d11, d2", d10, d11, i32, f2u(487.587), d2, i32, f2u(109));
   3767     TESTINSN_bin_f("vmla.f32 d9, d5, d7", d9, d5, i32, f2u(2146), d7, i32, f2u(1752));
   3768     TESTINSN_bin_f("vmla.f32 d0, d11, d12", d0, d11, i32, f2u(-56.25), d12, i32, f2u(-5786.47));
   3769     TESTINSN_bin_f("vmla.f32 d7, d1, d6", d7, d1, i32, f2u(456.2489562), d6, i32, f2u(-7.2945676));
   3770     TESTINSN_bin_f("vmla.f32 d0, d5, d2", d0, d5, i32, f2u(532.987), d2, i32, f2u(-0.0045876));
   3771     TESTINSN_bin_f("vmla.f32 d10, d13, d15", d10, d13, i32, f2u(-485.2457), d15, i32, f2u(-567.245));
   3772     TESTINSN_bin_f("vmla.f32 d10, d13, d15", d10, d13, i32, f2u(278456.45), d15, i32, f2u(8756.0076));
   3773     TESTINSN_bin_f("vmla.f32 d0, d1, d2", d0, d1, i32, f2u(876988654), d2, i32, f2u(1224808797));
   3774     TESTINSN_bin_f("vmla.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(NAN));
   3775     TESTINSN_bin_f("vmla.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(1.0));
   3776     TESTINSN_bin_f("vmla.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(0.0));
   3777     TESTINSN_bin_f("vmla.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(INFINITY));
   3778     TESTINSN_bin_f("vmla.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(-INFINITY));
   3779     TESTINSN_bin_f("vmla.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(NAN));
   3780     TESTINSN_bin_f("vmla.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(1.0));
   3781     TESTINSN_bin_f("vmla.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(0.0));
   3782     TESTINSN_bin_f("vmla.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(INFINITY));
   3783     TESTINSN_bin_f("vmla.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(-INFINITY));
   3784     TESTINSN_bin_f("vmla.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(NAN));
   3785     TESTINSN_bin_f("vmla.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(1.0));
   3786     TESTINSN_bin_f("vmla.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(0.0));
   3787     TESTINSN_bin_f("vmla.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY));
   3788     TESTINSN_bin_f("vmla.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY));
   3789     TESTINSN_bin_f("vmla.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(NAN));
   3790     TESTINSN_bin_f("vmla.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(1.0));
   3791     TESTINSN_bin_f("vmla.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(0.0));
   3792     TESTINSN_bin_f("vmla.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY));
   3793     TESTINSN_bin_f("vmla.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY));
   3794 
   3795     fflush(stdout);
   3796     printf("---- VMLA (fp by scalar) ----\n");
   3797     TESTINSN_bin_f("vmla.f32 d0, d1, d4[0]", d0, d1, i32, f2u(24), d4, i32, f2u(120));
   3798     TESTINSN_bin_f("vmla.f32 d31, d8, d7[1]", d31, d8, i32, f2u(140), d7, i32, f2u(-120));
   3799     TESTINSN_bin_f("vmla.f32 d4, d8, d15[1]", d4, d8, i32, (1 << 31) + 1, d15, i32, (1 << 31) + 2);
   3800     TESTINSN_bin_f("vmla.f32 d7, d8, d1[1]", d7, d8, i32, (1 << 31), d1, i16, 12);
   3801     TESTINSN_bin_f("vmla.f32 d17, d8, d1[1]", d17, d8, i32, (1 << 31) + 1, d1, i32, (1 << 31) + 2);
   3802     TESTINSN_bin_f("vmla.f32 d7, d8, d1[0]", d7, d8, i32, f2u(1e22), d1, i32, f2u(1e-19));
   3803     TESTINSN_bin_f("vmla.f32 d7, d24, d1[0]", d7, d24, i32, f2u(1e12), d1, i32, f2u(1e11));
   3804     TESTINSN_bin_f("vmla.f32 d0, d1, d2[0]", d0, d1, i32, f2u(NAN), d2, i32, f2u(NAN));
   3805     TESTINSN_bin_f("vmla.f32 d0, d1, d2[0]", d0, d1, i32, f2u(NAN), d2, i32, f2u(1.0));
   3806     TESTINSN_bin_f("vmla.f32 d0, d1, d2[0]", d0, d1, i32, f2u(NAN), d2, i32, f2u(0.0));
   3807     TESTINSN_bin_f("vmla.f32 d0, d1, d2[0]", d0, d1, i32, f2u(NAN), d2, i32, f2u(INFINITY));
   3808     TESTINSN_bin_f("vmla.f32 d0, d1, d2[0]", d0, d1, i32, f2u(NAN), d2, i32, f2u(-INFINITY));
   3809     TESTINSN_bin_f("vmla.f32 d0, d1, d2[0]", d0, d1, i32, f2u(0.0), d2, i32, f2u(NAN));
   3810     TESTINSN_bin_f("vmla.f32 d0, d1, d2[0]", d0, d1, i32, f2u(0.0), d2, i32, f2u(1.0));
   3811     TESTINSN_bin_f("vmla.f32 d0, d1, d2[0]", d0, d1, i32, f2u(0.0), d2, i32, f2u(0.0));
   3812     TESTINSN_bin_f("vmla.f32 d0, d1, d2[0]", d0, d1, i32, f2u(0.0), d2, i32, f2u(INFINITY));
   3813     TESTINSN_bin_f("vmla.f32 d0, d1, d2[0]", d0, d1, i32, f2u(0.0), d2, i32, f2u(-INFINITY));
   3814     TESTINSN_bin_f("vmla.f32 d0, d1, d2[0]", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(NAN));
   3815     TESTINSN_bin_f("vmla.f32 d0, d1, d2[0]", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(1.0));
   3816     TESTINSN_bin_f("vmla.f32 d0, d1, d2[0]", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(0.0));
   3817     TESTINSN_bin_f("vmla.f32 d0, d1, d2[0]", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY));
   3818     TESTINSN_bin_f("vmla.f32 d0, d1, d2[0]", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY));
   3819     TESTINSN_bin_f("vmla.f32 d0, d1, d2[0]", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(NAN));
   3820     TESTINSN_bin_f("vmla.f32 d0, d1, d2[0]", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(1.0));
   3821     TESTINSN_bin_f("vmla.f32 d0, d1, d2[0]", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(0.0));
   3822     TESTINSN_bin_f("vmla.f32 d0, d1, d2[0]", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY));
   3823     TESTINSN_bin_f("vmla.f32 d0, d1, d2[0]", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY));
   3824 
   3825     fflush(stdout);
   3826     printf("---- VMLS (fp) ----\n");
   3827     TESTINSN_bin_f("vmls.f32 d0, d5, d2", d0, d5, i32, f2u(23.04), d2, i32, f2u(-45.5687));
   3828     TESTINSN_bin_f("vmls.f32 d3, d4, d5", d3, d4, i32, f2u(-347856.475), d5, i32, f2u(1346));
   3829     TESTINSN_bin_f("vmls.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(-45786.476));
   3830     TESTINSN_bin_f("vmls.f32 d9, d5, d7", d9, d5, i32, f2u(95867.76), d7, i32, f2u(17065));
   3831     TESTINSN_bin_f("vmls.f32 d0, d5, d2", d0, d5, i32, f2u(-45667.24), d2, i32, f2u(-248562.76));
   3832     TESTINSN_bin_f("vmls.f32 d3, d4, d5", d3, d4, i32, f2u(24), d5, i32, f2u(1346));
   3833     TESTINSN_bin_f("vmls.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(1089));
   3834     TESTINSN_bin_f("vmls.f32 d9, d5, d7", d9, d5, i32, f2u(214), d7, i32, f2u(1752065));
   3835     TESTINSN_bin_f("vmls.f32 d0, d11, d12", d0, d11, i32, f2u(356047.56), d12, i32, f2u(5867.009));
   3836     TESTINSN_bin_f("vmls.f32 d7, d1, d6", d7, d1, i32, f2u(34.00046), d6, i32, f2u(0.0024575));
   3837     TESTINSN_bin_f("vmls.f32 d0, d1, d2", d0, d1, i32, f2u(2754), d2, i32, f2u(107));
   3838     TESTINSN_bin_f("vmls.f32 d3, d4, d5", d3, d4, i32, f2u(874), d5, i32, f2u(1384.6));
   3839     TESTINSN_bin_f("vmls.f32 d10, d11, d2", d10, d11, i32, f2u(487.587), d2, i32, f2u(109));
   3840     TESTINSN_bin_f("vmls.f32 d9, d5, d7", d9, d5, i32, f2u(2146), d7, i32, f2u(1752));
   3841     TESTINSN_bin_f("vmls.f32 d0, d11, d12", d0, d11, i32, f2u(-56.25), d12, i32, f2u(-5786.47));
   3842     TESTINSN_bin_f("vmls.f32 d7, d1, d6", d7, d1, i32, f2u(456.2489562), d6, i32, f2u(-7.2945676));
   3843     TESTINSN_bin_f("vmls.f32 d0, d5, d2", d0, d5, i32, f2u(532.987), d2, i32, f2u(-0.0045876));
   3844     TESTINSN_bin_f("vmls.f32 d10, d13, d15", d10, d13, i32, f2u(-485.2457), d15, i32, f2u(-567.245));
   3845     TESTINSN_bin_f("vmls.f32 d10, d13, d15", d10, d13, i32, f2u(278456.45), d15, i32, f2u(8756.0076));
   3846     TESTINSN_bin_f("vmls.f32 d0, d1, d2", d0, d1, i32, f2u(876988654), d2, i32, f2u(1224808797));
   3847     TESTINSN_bin_f("vmls.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(NAN));
   3848     TESTINSN_bin_f("vmls.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(1.0));
   3849     TESTINSN_bin_f("vmls.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(0.0));
   3850     TESTINSN_bin_f("vmls.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(INFINITY));
   3851     TESTINSN_bin_f("vmls.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(-INFINITY));
   3852     TESTINSN_bin_f("vmls.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(NAN));
   3853     TESTINSN_bin_f("vmls.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(1.0));
   3854     TESTINSN_bin_f("vmls.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(0.0));
   3855     TESTINSN_bin_f("vmls.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(INFINITY));
   3856     TESTINSN_bin_f("vmls.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(-INFINITY));
   3857     TESTINSN_bin_f("vmls.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(NAN));
   3858     TESTINSN_bin_f("vmls.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(1.0));
   3859     TESTINSN_bin_f("vmls.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(0.0));
   3860     TESTINSN_bin_f("vmls.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY));
   3861     TESTINSN_bin_f("vmls.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY));
   3862     TESTINSN_bin_f("vmls.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(NAN));
   3863     TESTINSN_bin_f("vmls.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(1.0));
   3864     TESTINSN_bin_f("vmls.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(0.0));
   3865     TESTINSN_bin_f("vmls.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY));
   3866     TESTINSN_bin_f("vmls.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY));
   3867 
   3868     fflush(stdout);
   3869     printf("---- VMLS (fp by scalar) ----\n");
   3870     TESTINSN_bin_f("vmls.f32 d0, d1, d4[0]", d0, d1, i32, f2u(24), d4, i32, f2u(120));
   3871     TESTINSN_bin_f("vmls.f32 d31, d8, d7[1]", d31, d8, i32, f2u(140), d7, i32, f2u(-120));
   3872     TESTINSN_bin_f("vmls.f32 d4, d8, d15[1]", d4, d8, i32, (1 << 31) + 1, d15, i32, (1 << 31) + 2);
   3873     TESTINSN_bin_f("vmls.f32 d7, d8, d1[1]", d7, d8, i32, (1 << 31), d1, i16, 12);
   3874     TESTINSN_bin_f("vmls.f32 d17, d8, d1[1]", d17, d8, i32, (1 << 31) + 1, d1, i32, (1 << 31) + 2);
   3875     TESTINSN_bin_f("vmls.f32 d7, d8, d1[0]", d7, d8, i32, f2u(1e22), d1, i32, f2u(1e-19));
   3876     TESTINSN_bin_f("vmls.f32 d7, d24, d1[0]", d7, d24, i32, f2u(1e12), d1, i32, f2u(1e11));
   3877     TESTINSN_bin_f("vmls.f32 d0, d1, d2[0]", d0, d1, i32, f2u(NAN), d2, i32, f2u(NAN));
   3878     TESTINSN_bin_f("vmls.f32 d0, d1, d2[0]", d0, d1, i32, f2u(NAN), d2, i32, f2u(1.0));
   3879     TESTINSN_bin_f("vmls.f32 d0, d1, d2[0]", d0, d1, i32, f2u(NAN), d2, i32, f2u(0.0));
   3880     TESTINSN_bin_f("vmls.f32 d0, d1, d2[0]", d0, d1, i32, f2u(NAN), d2, i32, f2u(INFINITY));
   3881     TESTINSN_bin_f("vmls.f32 d0, d1, d2[0]", d0, d1, i32, f2u(NAN), d2, i32, f2u(-INFINITY));
   3882     TESTINSN_bin_f("vmls.f32 d0, d1, d2[0]", d0, d1, i32, f2u(0.0), d2, i32, f2u(NAN));
   3883     TESTINSN_bin_f("vmls.f32 d0, d1, d2[0]", d0, d1, i32, f2u(0.0), d2, i32, f2u(1.0));
   3884     TESTINSN_bin_f("vmls.f32 d0, d1, d2[0]", d0, d1, i32, f2u(0.0), d2, i32, f2u(0.0));
   3885     TESTINSN_bin_f("vmls.f32 d0, d1, d2[0]", d0, d1, i32, f2u(0.0), d2, i32, f2u(INFINITY));
   3886     TESTINSN_bin_f("vmls.f32 d0, d1, d2[0]", d0, d1, i32, f2u(0.0), d2, i32, f2u(-INFINITY));
   3887     TESTINSN_bin_f("vmls.f32 d0, d1, d2[0]", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(NAN));
   3888     TESTINSN_bin_f("vmls.f32 d0, d1, d2[0]", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(1.0));
   3889     TESTINSN_bin_f("vmls.f32 d0, d1, d2[0]", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(0.0));
   3890     TESTINSN_bin_f("vmls.f32 d0, d1, d2[0]", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY));
   3891     TESTINSN_bin_f("vmls.f32 d0, d1, d2[0]", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY));
   3892     TESTINSN_bin_f("vmls.f32 d0, d1, d2[0]", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(NAN));
   3893     TESTINSN_bin_f("vmls.f32 d0, d1, d2[0]", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(1.0));
   3894     TESTINSN_bin_f("vmls.f32 d0, d1, d2[0]", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(0.0));
   3895     TESTINSN_bin_f("vmls.f32 d0, d1, d2[0]", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY));
   3896     TESTINSN_bin_f("vmls.f32 d0, d1, d2[0]", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY));
   3897 
   3898     fflush(stdout);
   3899     printf("---- VABD (fp) ----\n");
   3900     TESTINSN_bin("vabd.f32 d0, d5, d2", d0, d5, i32, f2u(23.04), d2, i32, f2u(-45.5687));
   3901     TESTINSN_bin("vabd.f32 d3, d4, d5", d3, d4, i32, f2u(-347856.475), d5, i32, f2u(1346));
   3902     TESTINSN_bin("vabd.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(-45786.476));
   3903     TESTINSN_bin("vabd.f32 d9, d5, d7", d9, d5, i32, f2u(95867.76), d7, i32, f2u(17065));
   3904     TESTINSN_bin("vabd.f32 d0, d5, d2", d0, d5, i32, f2u(-45667.24), d2, i32, f2u(-248562.76));
   3905     TESTINSN_bin("vabd.f32 d3, d4, d5", d3, d4, i32, f2u(24), d5, i32, f2u(1346));
   3906     TESTINSN_bin("vabd.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(1089));
   3907     TESTINSN_bin("vabd.f32 d9, d5, d7", d9, d5, i32, f2u(214), d7, i32, f2u(1752065));
   3908     TESTINSN_bin("vabd.f32 d0, d11, d12", d0, d11, i32, f2u(356047.56), d12, i32, f2u(5867.009));
   3909     TESTINSN_bin("vabd.f32 d7, d1, d6", d7, d1, i32, f2u(34.00046), d6, i32, f2u(0.0024575));
   3910     TESTINSN_bin("vabd.f32 d0, d1, d2", d0, d1, i32, f2u(2754), d2, i32, f2u(107));
   3911     TESTINSN_bin("vabd.f32 d3, d4, d5", d3, d4, i32, f2u(874), d5, i32, f2u(1384.6));
   3912     TESTINSN_bin("vabd.f32 d10, d11, d2", d10, d11, i32, f2u(487.587), d2, i32, f2u(109));
   3913     TESTINSN_bin("vabd.f32 d9, d5, d7", d9, d5, i32, f2u(2146), d7, i32, f2u(1752));
   3914     TESTINSN_bin("vabd.f32 d0, d11, d12", d0, d11, i32, f2u(-56.25), d12, i32, f2u(-5786.47));
   3915     TESTINSN_bin("vabd.f32 d7, d1, d6", d7, d1, i32, f2u(456.2489562), d6, i32, f2u(-7.2945676));
   3916     TESTINSN_bin("vabd.f32 d0, d5, d2", d0, d5, i32, f2u(532.987), d2, i32, f2u(-0.0045876));
   3917     TESTINSN_bin("vabd.f32 d10, d13, d15", d10, d13, i32, f2u(-485.2457), d15, i32, f2u(-567.245));
   3918     TESTINSN_bin("vabd.f32 d10, d13, d15", d10, d13, i32, f2u(278456.45), d15, i32, f2u(8756.0076));
   3919     TESTINSN_bin("vabd.f32 d0, d1, d2", d0, d1, i32, f2u(876988654), d2, i32, f2u(1224808797));
   3920 
   3921     fflush(stdout);
   3922     printf("---- VPADD (fp) ----\n");
   3923     TESTINSN_bin("vpadd.f32 d0, d5, d2", d0, d5, i32, f2u(23.04), d2, i32, f2u(-45.5687));
   3924     TESTINSN_bin("vpadd.f32 d3, d4, d5", d3, d4, i32, f2u(-347856.475), d5, i32, f2u(1346));
   3925     TESTINSN_bin("vpadd.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(-45786.476));
   3926     TESTINSN_bin("vpadd.f32 d9, d5, d7", d9, d5, i32, f2u(95867.76), d7, i32, f2u(17065));
   3927     TESTINSN_bin("vpadd.f32 d0, d5, d2", d0, d5, i32, f2u(-45667.24), d2, i32, f2u(-248562.76));
   3928     TESTINSN_bin("vpadd.f32 d3, d4, d5", d3, d4, i32, f2u(24), d5, i32, f2u(1346));
   3929     TESTINSN_bin("vpadd.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(1089));
   3930     TESTINSN_bin("vpadd.f32 d9, d5, d7", d9, d5, i32, f2u(214), d7, i32, f2u(1752065));
   3931     TESTINSN_bin("vpadd.f32 d0, d11, d12", d0, d11, i32, f2u(356047.56), d12, i32, f2u(5867.009));
   3932     TESTINSN_bin("vpadd.f32 d7, d1, d6", d7, d1, i32, f2u(34.00046), d6, i32, f2u(0.0024575));
   3933     TESTINSN_bin("vpadd.f32 d0, d1, d2", d0, d1, i32, f2u(2754), d2, i32, f2u(107));
   3934     TESTINSN_bin("vpadd.f32 d3, d4, d5", d3, d4, i32, f2u(874), d5, i32, f2u(1384.6));
   3935     TESTINSN_bin("vpadd.f32 d10, d11, d2", d10, d11, i32, f2u(487.587), d2, i32, f2u(109));
   3936     TESTINSN_bin("vpadd.f32 d9, d5, d7", d9, d5, i32, f2u(2146), d7, i32, f2u(1752));
   3937     TESTINSN_bin("vpadd.f32 d0, d11, d12", d0, d11, i32, f2u(-56.25), d12, i32, f2u(-5786.47));
   3938     TESTINSN_bin("vpadd.f32 d7, d1, d6", d7, d1, i32, f2u(456.2489562), d6, i32, f2u(-7.2945676));
   3939     TESTINSN_bin("vpadd.f32 d0, d5, d2", d0, d5, i32, f2u(532.987), d2, i32, f2u(-0.0045876));
   3940     TESTINSN_bin("vpadd.f32 d10, d13, d15", d10, d13, i32, f2u(-485.2457), d15, i32, f2u(-567.245));
   3941     TESTINSN_bin("vpadd.f32 d10, d13, d15", d10, d13, i32, f2u(278456.45), d15, i32, f2u(8756.0076));
   3942     TESTINSN_bin("vpadd.f32 d0, d1, d2", d0, d1, i32, f2u(876988654), d2, i32, f2u(1224808797));
   3943     TESTINSN_bin("vpadd.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(NAN));
   3944     TESTINSN_bin("vpadd.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(1.0));
   3945     TESTINSN_bin("vpadd.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(0.0));
   3946     TESTINSN_bin("vpadd.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(INFINITY));
   3947     TESTINSN_bin("vpadd.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(-INFINITY));
   3948     TESTINSN_bin("vpadd.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(NAN));
   3949     TESTINSN_bin("vpadd.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(1.0));
   3950     TESTINSN_bin("vpadd.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(0.0));
   3951     TESTINSN_bin("vpadd.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(INFINITY));
   3952     TESTINSN_bin("vpadd.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(-INFINITY));
   3953     TESTINSN_bin("vpadd.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(NAN));
   3954     TESTINSN_bin("vpadd.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(1.0));
   3955     TESTINSN_bin("vpadd.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(0.0));
   3956     TESTINSN_bin("vpadd.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY));
   3957     TESTINSN_bin("vpadd.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY));
   3958     TESTINSN_bin("vpadd.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(NAN));
   3959     TESTINSN_bin("vpadd.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(1.0));
   3960     TESTINSN_bin("vpadd.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(0.0));
   3961     TESTINSN_bin("vpadd.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY));
   3962     TESTINSN_bin("vpadd.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY));
   3963 
   3964     fflush(stdout);
   3965     printf("---- VCVT (integer <-> fp) ----\n");
   3966     TESTINSN_un("vcvt.u32.f32 d0, d1", d0, d1, i32, f2u(3.2));
   3967     TESTINSN_un("vcvt.u32.f32 d10, d11", d10, d11, i32, f2u(3e22));
   3968     TESTINSN_un("vcvt.u32.f32 d15, d4", d15, d4, i32, f2u(3e9));
   3969     TESTINSN_un("vcvt.u32.f32 d15, d4", d15, d4, i32, f2u(-0.5));
   3970     TESTINSN_un("vcvt.u32.f32 d15, d4", d15, d4, i32, f2u(-7.1));
   3971     TESTINSN_un("vcvt.u32.f32 d12, d8", d12, d8, i32, f2u(8.0 - 1.0/1024.0));
   3972     TESTINSN_un("vcvt.u32.f32 d12, d8", d12, d8, i32, f2u(-8.0 + 1.0/1024.0));
   3973     TESTINSN_un("vcvt.s32.f32 d0, d1", d0, d1, i32, f2u(3.2));
   3974     TESTINSN_un("vcvt.s32.f32 d20, d21", d20, d21, i32, f2u(3e22));
   3975     TESTINSN_un("vcvt.s32.f32 d15, d4", d15, d4, i32, f2u(3e9));
   3976     TESTINSN_un("vcvt.s32.f32 d15, d4", d15, d4, i32, f2u(-0.5));
   3977     TESTINSN_un("vcvt.s32.f32 d15, d4", d15, d4, i32, f2u(-7.1));
   3978     TESTINSN_un("vcvt.s32.f32 d12, d8", d12, d8, i32, f2u(8.0 - 1.0/1024.0));
   3979     TESTINSN_un("vcvt.s32.f32 d12, d8", d12, d8, i32, f2u(-8.0 + 1.0/1024.0));
   3980     TESTINSN_un("vcvt.f32.u32 d0, d1", d0, d1, i32, 7);
   3981     TESTINSN_un("vcvt.f32.u32 d10, d11", d10, d11, i32, 1 << 31);
   3982     TESTINSN_un("vcvt.f32.u32 d0, d1", d0, d1, i32, (1U << 31) + 1);
   3983     TESTINSN_un("vcvt.f32.u32 d24, d26", d24, d26, i32, (1U << 31) - 1);
   3984     TESTINSN_un("vcvt.f32.u32 d0, d14", d0, d14, i32, 0x30a0bcef);
   3985     TESTINSN_un("vcvt.f32.s32 d0, d1", d0, d1, i32, 7);
   3986     TESTINSN_un("vcvt.f32.s32 d30, d31", d30, d31, i32, 1 << 31);
   3987     TESTINSN_un("vcvt.f32.s32 d0, d1", d0, d1, i32, (1U << 31) + 1);
   3988     TESTINSN_un("vcvt.f32.s32 d0, d1", d0, d1, i32, (1U << 31) - 1);
   3989     TESTINSN_un("vcvt.u32.f32 d0, d1", d0, d1, i32, f2u(NAN));
   3990     TESTINSN_un("vcvt.u32.f32 d0, d1", d0, d1, i32, f2u(0.0));
   3991     TESTINSN_un("vcvt.u32.f32 d0, d1", d0, d1, i32, f2u(INFINITY));
   3992     TESTINSN_un("vcvt.u32.f32 d0, d1", d0, d1, i32, f2u(-INFINITY));
   3993     TESTINSN_un("vcvt.s32.f32 d0, d1", d0, d1, i32, f2u(NAN));
   3994     TESTINSN_un("vcvt.s32.f32 d0, d1", d0, d1, i32, f2u(0.0));
   3995     TESTINSN_un("vcvt.s32.f32 d0, d1", d0, d1, i32, f2u(INFINITY));
   3996     TESTINSN_un("vcvt.s32.f32 d0, d1", d0, d1, i32, f2u(-INFINITY));
   3997 
   3998     fflush(stdout);
   3999     printf("---- VCVT (fixed <-> fp) ----\n");
   4000     TESTINSN_un("vcvt.u32.f32 d0, d1, #3", d0, d1, i32, f2u(3.2));
   4001     TESTINSN_un("vcvt.u32.f32 d10, d11, #1", d10, d11, i32, f2u(3e22));
   4002     TESTINSN_un("vcvt.u32.f32 d15, d4, #32", d15, d4, i32, f2u(3e9));
   4003     TESTINSN_un("vcvt.u32.f32 d15, d4, #7", d15, d4, i32, f2u(-0.5));
   4004     TESTINSN_un("vcvt.u32.f32 d15, d4, #4", d15, d4, i32, f2u(-7.1));
   4005     TESTINSN_un("vcvt.u32.f32 d12, d8, #3", d12, d8, i32, f2u(8.0 - 1.0/1024.0));
   4006     TESTINSN_un("vcvt.u32.f32 d12, d8, #3", d12, d8, i32, f2u(-8.0 + 1.0/1024.0));
   4007     TESTINSN_un("vcvt.s32.f32 d0, d1, #5", d0, d1, i32, f2u(3.2));
   4008     TESTINSN_un("vcvt.s32.f32 d20, d21, #1", d20, d21, i32, f2u(3e22));
   4009     TESTINSN_un("vcvt.s32.f32 d15, d4, #8", d15, d4, i32, f2u(3e9));
   4010     TESTINSN_un("vcvt.s32.f32 d15, d4, #2", d15, d4, i32, f2u(-0.5));
   4011     TESTINSN_un("vcvt.s32.f32 d15, d4, #1", d15, d4, i32, f2u(-7.1));
   4012     TESTINSN_un("vcvt.s32.f32 d12, d8, #2", d12, d8, i32, f2u(8.0 - 1.0/1024.0));
   4013     TESTINSN_un("vcvt.s32.f32 d12, d8, #2", d12, d8, i32, f2u(-8.0 + 1.0/1024.0));
   4014     TESTINSN_un("vcvt.f32.u32 d0, d1, #5", d0, d1, i32, 7);
   4015     TESTINSN_un("vcvt.f32.u32 d10, d11, #9", d10, d11, i32, 1 << 31);
   4016     TESTINSN_un("vcvt.f32.u32 d0, d1, #4", d0, d1, i32, (1U << 31) + 1);
   4017     TESTINSN_un("vcvt.f32.u32 d24, d26, #6", d24, d26, i32, (1U << 31) - 1);
   4018     TESTINSN_un("vcvt.f32.u32 d0, d14, #5", d0, d14, i32, 0x30a0bcef);
   4019     TESTINSN_un("vcvt.f32.s32 d0, d1, #12", d0, d1, i32, 7);
   4020     TESTINSN_un("vcvt.f32.s32 d30, d31, #8", d30, d31, i32, 1 << 31);
   4021     TESTINSN_un("vcvt.f32.s32 d0, d1, #1", d0, d1, i32, (1U << 31) + 1);
   4022     TESTINSN_un("vcvt.f32.s32 d0, d1, #6", d0, d1, i32, (1U << 31) - 1);
   4023     TESTINSN_un("vcvt.f32.s32 d0, d14, #2", d0, d14, i32, 0x30a0bcef);
   4024     TESTINSN_un("vcvt.u32.f32 d0, d1, #3", d0, d1, i32, f2u(NAN));
   4025     TESTINSN_un("vcvt.u32.f32 d0, d1, #3", d0, d1, i32, f2u(0.0));
   4026     TESTINSN_un("vcvt.u32.f32 d0, d1, #3", d0, d1, i32, f2u(INFINITY));
   4027     TESTINSN_un("vcvt.u32.f32 d0, d1, #3", d0, d1, i32, f2u(-INFINITY));
   4028     TESTINSN_un("vcvt.s32.f32 d0, d1, #3", d0, d1, i32, f2u(NAN));
   4029     TESTINSN_un("vcvt.s32.f32 d0, d1, #3", d0, d1, i32, f2u(0.0));
   4030     TESTINSN_un("vcvt.s32.f32 d0, d1, #3", d0, d1, i32, f2u(INFINITY));
   4031     TESTINSN_un("vcvt.s32.f32 d0, d1, #3", d0, d1, i32, f2u(-INFINITY));
   4032 
   4033     fflush(stdout);
   4034     printf("---- VMAX (fp) ----\n");
   4035     TESTINSN_bin("vmax.f32 d0, d5, d2", d0, d5, i32, f2u(23.04), d2, i32, f2u(-45.5687));
   4036     TESTINSN_bin("vmax.f32 d3, d4, d5", d3, d4, i32, f2u(-347856.475), d5, i32, f2u(1346));
   4037     TESTINSN_bin("vmax.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(-45786.476));
   4038     TESTINSN_bin("vmax.f32 d9, d5, d7", d9, d5, i32, f2u(95867.76), d7, i32, f2u(17065));
   4039     TESTINSN_bin("vmax.f32 d0, d5, d2", d0, d5, i32, f2u(-45667.24), d2, i32, f2u(-248562.76));
   4040     TESTINSN_bin("vmax.f32 d3, d4, d5", d3, d4, i32, f2u(24.87556), d5, i32, f2u(1346.0004));
   4041     TESTINSN_bin("vmax.f32 d10, d11, d2", d10, d11, i32, f2u(48755.7), d2, i32, f2u(1089.2));
   4042     TESTINSN_bin("vmax.f32 d9, d5, d7", d9, d5, i32, f2u(214), d7, i32, f2u(1752065));
   4043     TESTINSN_bin("vmax.f32 d0, d11, d12", d0, d11, i32, f2u(356047.56), d12, i32, f2u(5867.009));
   4044     TESTINSN_bin("vmax.f32 d7, d1, d6", d7, d1, i32, f2u(34.00046), d6, i32, f2u(0.0024575));
   4045     TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(2754), d2, i32, f2u(107));
   4046     TESTINSN_bin("vmax.f32 d3, d4, d5", d3, d4, i32, f2u(874), d5, i32, f2u(1384.6));
   4047     TESTINSN_bin("vmax.f32 d10, d11, d2", d10, d11, i32, f2u(487.587), d2, i32, f2u(109));
   4048     TESTINSN_bin("vmax.f32 d9, d5, d7", d9, d5, i32, f2u(2146), d7, i32, f2u(1752));
   4049     TESTINSN_bin("vmax.f32 d0, d11, d12", d0, d11, i32, f2u(-56.25), d12, i32, f2u(-5786.47));
   4050     TESTINSN_bin("vmax.f32 d7, d1, d6", d7, d1, i32, f2u(456.2489562), d6, i32, f2u(-7.2945676));
   4051     TESTINSN_bin("vmax.f32 d0, d5, d2", d0, d5, i32, f2u(532.987), d2, i32, f2u(-0.0045876));
   4052     TESTINSN_bin("vmax.f32 d10, d13, d15", d10, d13, i32, f2u(-485.2457), d15, i32, f2u(-567.245));
   4053     TESTINSN_bin("vmax.f32 d10, d13, d15", d10, d13, i32, f2u(278456.45), d15, i32, f2u(8756.0076));
   4054     TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(876988654), d2, i32, f2u(1224808797));
   4055     TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(0), d2, i32, f2u(0));
   4056     TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(1.0/1024.0), d2, i32, f2u(-1.0/1024.0));
   4057     TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(-1.0/1024.0), d2, i32, f2u(1.0/1024.0));
   4058     TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(2342+1.0/1024.0), d2, i32, f2u(2342-1.0/1024.0));
   4059     TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(-2342+1.0/1024.0), d2, i32, f2u(-2342-1.0/1024.0));
   4060     TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(89276+1.0/1024.0), d2, i32, f2u(98276+1.0/1024.0));
   4061     TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(NAN));
   4062     TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(1.0));
   4063     TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(0.0));
   4064     TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(INFINITY));
   4065     TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(-INFINITY));
   4066     TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(NAN));
   4067     TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(1.0));
   4068     TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(0.0));
   4069     TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(INFINITY));
   4070     TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(-INFINITY));
   4071     TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(NAN));
   4072     TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(1.0));
   4073     TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(0.0));
   4074     TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY));
   4075     TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY));
   4076     TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(NAN));
   4077     TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(1.0));
   4078     TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(0.0));
   4079     TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY));
   4080     TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY));
   4081 
   4082     fflush(stdout);
   4083     printf("---- VMIN (fp) ----\n");
   4084     TESTINSN_bin("vmin.f32 d0, d5, d2", d0, d5, i32, f2u(23.04), d2, i32, f2u(-45.5687));
   4085     TESTINSN_bin("vmin.f32 d3, d4, d5", d3, d4, i32, f2u(-347856.475), d5, i32, f2u(1346));
   4086     TESTINSN_bin("vmin.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(-45786.476));
   4087     TESTINSN_bin("vmin.f32 d9, d5, d7", d9, d5, i32, f2u(95867.76), d7, i32, f2u(17065));
   4088     TESTINSN_bin("vmin.f32 d0, d5, d2", d0, d5, i32, f2u(-45667.24), d2, i32, f2u(-248562.76));
   4089     TESTINSN_bin("vmin.f32 d3, d4, d5", d3, d4, i32, f2u(24.87556), d5, i32, f2u(1346.0004));
   4090     TESTINSN_bin("vmin.f32 d10, d11, d2", d10, d11, i32, f2u(48755.7), d2, i32, f2u(1089.2));
   4091     TESTINSN_bin("vmin.f32 d9, d5, d7", d9, d5, i32, f2u(214), d7, i32, f2u(1752065));
   4092     TESTINSN_bin("vmin.f32 d0, d11, d12", d0, d11, i32, f2u(356047.56), d12, i32, f2u(5867.009));
   4093     TESTINSN_bin("vmin.f32 d7, d1, d6", d7, d1, i32, f2u(34.00046), d6, i32, f2u(0.0024575));
   4094     TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(2754), d2, i32, f2u(107));
   4095     TESTINSN_bin("vmin.f32 d3, d4, d5", d3, d4, i32, f2u(874), d5, i32, f2u(1384.6));
   4096     TESTINSN_bin("vmin.f32 d10, d11, d2", d10, d11, i32, f2u(487.587), d2, i32, f2u(109));
   4097     TESTINSN_bin("vmin.f32 d9, d5, d7", d9, d5, i32, f2u(2146), d7, i32, f2u(1752));
   4098     TESTINSN_bin("vmin.f32 d0, d11, d12", d0, d11, i32, f2u(-56.25), d12, i32, f2u(-5786.47));
   4099     TESTINSN_bin("vmin.f32 d7, d1, d6", d7, d1, i32, f2u(456.2489562), d6, i32, f2u(-7.2945676));
   4100     TESTINSN_bin("vmin.f32 d0, d5, d2", d0, d5, i32, f2u(532.987), d2, i32, f2u(-0.0045876));
   4101     TESTINSN_bin("vmin.f32 d10, d13, d15", d10, d13, i32, f2u(-485.2457), d15, i32, f2u(-567.245));
   4102     TESTINSN_bin("vmin.f32 d10, d13, d15", d10, d13, i32, f2u(278456.45), d15, i32, f2u(8756.0076));
   4103     TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(876988654), d2, i32, f2u(1224808797));
   4104     TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(0), d2, i32, f2u(0));
   4105     TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(1.0/1024.0), d2, i32, f2u(-1.0/1024.0));
   4106     TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(-1.0/1024.0), d2, i32, f2u(1.0/1024.0));
   4107     TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(2342+1.0/1024.0), d2, i32, f2u(2342-1.0/1024.0));
   4108     TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(-2342+1.0/1024.0), d2, i32, f2u(-2342-1.0/1024.0));
   4109     TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(89276+1.0/1024.0), d2, i32, f2u(98276+1.0/1024.0));
   4110     TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(NAN));
   4111     TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(1.0));
   4112     TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(0.0));
   4113     TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(INFINITY));
   4114     TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(-INFINITY));
   4115     TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(NAN));
   4116     TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(1.0));
   4117     TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(0.0));
   4118     TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(INFINITY));
   4119     TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(-INFINITY));
   4120     TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(NAN));
   4121     TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(1.0));
   4122     TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(0.0));
   4123     TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY));
   4124     TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY));
   4125     TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(NAN));
   4126     TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(1.0));
   4127     TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(0.0));
   4128     TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY));
   4129     TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY));
   4130 
   4131     fflush(stdout);
   4132     printf("---- VPMAX (fp) ----\n");
   4133     TESTINSN_bin("vpmax.f32 d0, d5, d2", d0, d5, i32, f2u(23.04), d2, i32, f2u(-45.5687));
   4134     TESTINSN_bin("vpmax.f32 d3, d4, d5", d3, d4, i32, f2u(-347856.475), d5, i32, f2u(1346));
   4135     TESTINSN_bin("vpmax.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(-45786.476));
   4136     TESTINSN_bin("vpmax.f32 d9, d5, d7", d9, d5, i32, f2u(95867.76), d7, i32, f2u(17065));
   4137     TESTINSN_bin("vpmax.f32 d0, d5, d2", d0, d5, i32, f2u(-45667.24), d2, i32, f2u(-248562.76));
   4138     TESTINSN_bin("vpmax.f32 d3, d4, d5", d3, d4, i32, f2u(24.87556), d5, i32, f2u(1346.0004));
   4139     TESTINSN_bin("vpmax.f32 d10, d11, d2", d10, d11, i32, f2u(48755.7), d2, i32, f2u(1089.2));
   4140     TESTINSN_bin("vpmax.f32 d9, d5, d7", d9, d5, i32, f2u(214), d7, i32, f2u(1752065));
   4141     TESTINSN_bin("vpmax.f32 d0, d11, d12", d0, d11, i32, f2u(356047.56), d12, i32, f2u(5867.009));
   4142     TESTINSN_bin("vpmax.f32 d7, d1, d6", d7, d1, i32, f2u(34.00046), d6, i32, f2u(0.0024575));
   4143     TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(2754), d2, i32, f2u(107));
   4144     TESTINSN_bin("vpmax.f32 d3, d4, d5", d3, d4, i32, f2u(874), d5, i32, f2u(1384.6));
   4145     TESTINSN_bin("vpmax.f32 d10, d11, d2", d10, d11, i32, f2u(487.587), d2, i32, f2u(109));
   4146     TESTINSN_bin("vpmax.f32 d9, d5, d7", d9, d5, i32, f2u(2146), d7, i32, f2u(1752));
   4147     TESTINSN_bin("vpmax.f32 d0, d11, d12", d0, d11, i32, f2u(-56.25), d12, i32, f2u(-5786.47));
   4148     TESTINSN_bin("vpmax.f32 d7, d1, d6", d7, d1, i32, f2u(456.2489562), d6, i32, f2u(-7.2945676));
   4149     TESTINSN_bin("vpmax.f32 d0, d5, d2", d0, d5, i32, f2u(532.987), d2, i32, f2u(-0.0045876));
   4150     TESTINSN_bin("vpmax.f32 d10, d13, d15", d10, d13, i32, f2u(-485.2457), d15, i32, f2u(-567.245));
   4151     TESTINSN_bin("vpmax.f32 d10, d13, d15", d10, d13, i32, f2u(278456.45), d15, i32, f2u(8756.0076));
   4152     TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(876988654), d2, i32, f2u(1224808797));
   4153     TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(0), d2, i32, f2u(0));
   4154     TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(1.0/1024.0), d2, i32, f2u(-1.0/1024.0));
   4155     TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(-1.0/1024.0), d2, i32, f2u(1.0/1024.0));
   4156     TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(2342+1.0/1024.0), d2, i32, f2u(2342-1.0/1024.0));
   4157     TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(-2342+1.0/1024.0), d2, i32, f2u(-2342-1.0/1024.0));
   4158     TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(89276+1.0/1024.0), d2, i32, f2u(98276+1.0/1024.0));
   4159     TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(NAN));
   4160     TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(1.0));
   4161     TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(0.0));
   4162     TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(INFINITY));
   4163     TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(-INFINITY));
   4164     TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(NAN));
   4165     TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(1.0));
   4166     TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(0.0));
   4167     TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(INFINITY));
   4168     TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(-INFINITY));
   4169     TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(NAN));
   4170     TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(1.0));
   4171     TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(0.0));
   4172     TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY));
   4173     TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY));
   4174     TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(NAN));
   4175     TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(1.0));
   4176     TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(0.0));
   4177     TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY));
   4178     TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY));
   4179 
   4180     fflush(stdout);
   4181     printf("---- VPMIN (fp) ----\n");
   4182     TESTINSN_bin("vpmin.f32 d0, d5, d2", d0, d5, i32, f2u(23.04), d2, i32, f2u(-45.5687));
   4183     TESTINSN_bin("vpmin.f32 d3, d4, d5", d3, d4, i32, f2u(-347856.475), d5, i32, f2u(1346));
   4184     TESTINSN_bin("vpmin.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(-45786.476));
   4185     TESTINSN_bin("vpmin.f32 d9, d5, d7", d9, d5, i32, f2u(95867.76), d7, i32, f2u(17065));
   4186     TESTINSN_bin("vpmin.f32 d0, d5, d2", d0, d5, i32, f2u(-45667.24), d2, i32, f2u(-248562.76));
   4187     TESTINSN_bin("vpmin.f32 d3, d4, d5", d3, d4, i32, f2u(24.87556), d5, i32, f2u(1346.0004));
   4188     TESTINSN_bin("vpmin.f32 d10, d11, d2", d10, d11, i32, f2u(48755.7), d2, i32, f2u(1089.2));
   4189     TESTINSN_bin("vpmin.f32 d9, d5, d7", d9, d5, i32, f2u(214), d7, i32, f2u(1752065));
   4190     TESTINSN_bin("vpmin.f32 d0, d11, d12", d0, d11, i32, f2u(356047.56), d12, i32, f2u(5867.009));
   4191     TESTINSN_bin("vpmin.f32 d7, d1, d6", d7, d1, i32, f2u(34.00046), d6, i32, f2u(0.0024575));
   4192     TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(2754), d2, i32, f2u(107));
   4193     TESTINSN_bin("vpmin.f32 d3, d4, d5", d3, d4, i32, f2u(874), d5, i32, f2u(1384.6));
   4194     TESTINSN_bin("vpmin.f32 d10, d11, d2", d10, d11, i32, f2u(487.587), d2, i32, f2u(109));
   4195     TESTINSN_bin("vpmin.f32 d9, d5, d7", d9, d5, i32, f2u(2146), d7, i32, f2u(1752));
   4196     TESTINSN_bin("vpmin.f32 d0, d11, d12", d0, d11, i32, f2u(-56.25), d12, i32, f2u(-5786.47));
   4197     TESTINSN_bin("vpmin.f32 d7, d1, d6", d7, d1, i32, f2u(456.2489562), d6, i32, f2u(-7.2945676));
   4198     TESTINSN_bin("vpmin.f32 d0, d5, d2", d0, d5, i32, f2u(532.987), d2, i32, f2u(-0.0045876));
   4199     TESTINSN_bin("vpmin.f32 d10, d13, d15", d10, d13, i32, f2u(-485.2457), d15, i32, f2u(-567.245));
   4200     TESTINSN_bin("vpmin.f32 d10, d13, d15", d10, d13, i32, f2u(278456.45), d15, i32, f2u(8756.0076));
   4201     TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(876988654), d2, i32, f2u(1224808797));
   4202     TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(0), d2, i32, f2u(0));
   4203     TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(1.0/1024.0), d2, i32, f2u(-1.0/1024.0));
   4204     TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(-1.0/1024.0), d2, i32, f2u(1.0/1024.0));
   4205     TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(2342+1.0/1024.0), d2, i32, f2u(2342-1.0/1024.0));
   4206     TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(-2342+1.0/1024.0), d2, i32, f2u(-2342-1.0/1024.0));
   4207     TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(89276+1.0/1024.0), d2, i32, f2u(98276+1.0/1024.0));
   4208     TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(NAN));
   4209     TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(1.0));
   4210     TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(0.0));
   4211     TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(INFINITY));
   4212     TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(-INFINITY));
   4213     TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(NAN));
   4214     TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(1.0));
   4215     TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(0.0));
   4216     TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(INFINITY));
   4217     TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(-INFINITY));
   4218     TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(NAN));
   4219     TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(1.0));
   4220     TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(0.0));
   4221     TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY));
   4222     TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY));
   4223     TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(NAN));
   4224     TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(1.0));
   4225     TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(0.0));
   4226     TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY));
   4227     TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY));
   4228 
   4229     fflush(stdout);
   4230     printf("---- VRECPE ----\n");
   4231     TESTINSN_un("vrecpe.u32 d0, d1", d0, d1, i32, f2u(3.2));
   4232     TESTINSN_un("vrecpe.u32 d0, d1", d0, d1, i32, f2u(-653.2));
   4233     TESTINSN_un("vrecpe.u32 d10, d11", d10, d11, i32, f2u(3e22));
   4234     TESTINSN_un("vrecpe.u32 d15, d4", d15, d4, i32, f2u(3e9));
   4235     TESTINSN_un("vrecpe.u32 d15, d4", d15, d4, i32, f2u(-0.5));
   4236     TESTINSN_un("vrecpe.u32 d15, d4", d15, d4, i32, f2u(-7.1));
   4237     TESTINSN_un("vrecpe.u32 d12, d8", d12, d8, i32, f2u(8.0 - 1.0/1024.0));
   4238     TESTINSN_un("vrecpe.u32 d12, d8", d12, d8, i32, f2u(-8.0 + 1.0/1024.0));
   4239     TESTINSN_un("vrecpe.u32 d0, d1", d0, d1, i32, f2u(3.2));
   4240     TESTINSN_un("vrecpe.u32 d10, d11", d10, d11, i32, f2u(3e22));
   4241     TESTINSN_un("vrecpe.u32 d15, d4", d15, d4, i32, f2u(3e9));
   4242     TESTINSN_un("vrecpe.f32 d15, d4", d15, d4, i32, f2u(-0.5));
   4243     TESTINSN_un("vrecpe.f32 d15, d4", d15, d4, i32, f2u(-7.1));
   4244     TESTINSN_un("vrecpe.f32 d12, d8", d12, d8, i32, f2u(8.0 - 1.0/1024.0));
   4245     TESTINSN_un("vrecpe.f32 d12, d8", d12, d8, i32, f2u(-8.0 + 1.0/1024.0));
   4246     TESTINSN_un("vrecpe.f32 d0, d1", d0, d1, i32, 7);
   4247     TESTINSN_un("vrecpe.f32 d10, d11", d10, d11, i32, 1 << 31);
   4248     TESTINSN_un("vrecpe.f32 d0, d1", d0, d1, i32, (1U << 31) + 1);
   4249     TESTINSN_un("vrecpe.f32 d0, d1", d0, d1, i32, (1U << 31) - 1);
   4250     TESTINSN_un("vrecpe.f32 d0, d14", d0, d14, i32, 0x30a0bcef);
   4251     TESTINSN_un("vrecpe.f32 d0, d1", d0, d1, i32, 7);
   4252     TESTINSN_un("vrecpe.f32 d10, d11", d10, d11, i32, 1 << 31);
   4253     TESTINSN_un("vrecpe.f32 d0, d1", d0, d1, i32, (1U << 31) + 1);
   4254     TESTINSN_un("vrecpe.f32 d0, d1", d0, d1, i32, (1U << 31) - 1);
   4255     TESTINSN_un("vrecpe.f32 d0, d14", d0, d14, i32, 0x30a0bcef);
   4256     TESTINSN_un("vrecpe.f32 d0, d1", d0, d1, i32, f2u(NAN));
   4257     TESTINSN_un("vrecpe.f32 d0, d1", d0, d1, i32, f2u(0.0));
   4258     TESTINSN_un("vrecpe.f32 d0, d1", d0, d1, i32, f2u(INFINITY));
   4259     TESTINSN_un("vrecpe.f32 d0, d1", d0, d1, i32, f2u(-INFINITY));
   4260 
   4261     fflush(stdout);
   4262     printf("---- VRECPS ----\n");
   4263     TESTINSN_bin("vrecps.f32 d0, d5, d2", d0, d5, i32, f2u(23.04), d2, i32, f2u(-45.5687));
   4264     TESTINSN_bin("vrecps.f32 d3, d4, d5", d3, d4, i32, f2u(-347856.475), d5, i32, f2u(1346));
   4265     TESTINSN_bin("vrecps.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(-45786.476));
   4266     TESTINSN_bin("vrecps.f32 d9, d5, d7", d9, d5, i32, f2u(95867.76), d7, i32, f2u(17065));
   4267     TESTINSN_bin("vrecps.f32 d0, d5, d2", d0, d5, i32, f2u(-45667.24), d2, i32, f2u(-248562.76));
   4268     TESTINSN_bin("vrecps.f32 d3, d4, d5", d3, d4, i32, f2u(24), d5, i32, f2u(1346));
   4269     TESTINSN_bin("vrecps.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(1089));
   4270     TESTINSN_bin("vrecps.f32 d9, d5, d7", d9, d5, i32, f2u(214), d7, i32, f2u(1752065));
   4271     TESTINSN_bin("vrecps.f32 d0, d11, d12", d0, d11, i32, f2u(356047.56), d12, i32, f2u(5867.009));
   4272     TESTINSN_bin("vrecps.f32 d7, d1, d6", d7, d1, i32, f2u(34.00046), d6, i32, f2u(0.0024575));
   4273     TESTINSN_bin("vrecps.f32 d0, d1, d2", d0, d1, i32, f2u(2754), d2, i32, f2u(107));
   4274     TESTINSN_bin("vrecps.f32 d3, d4, d5", d3, d4, i32, f2u(874), d5, i32, f2u(1384.6));
   4275     TESTINSN_bin("vrecps.f32 d10, d11, d2", d10, d11, i32, f2u(487.587), d2, i32, f2u(109));
   4276     TESTINSN_bin("vrecps.f32 d9, d5, d7", d9, d5, i32, f2u(2146), d7, i32, f2u(1752));
   4277     TESTINSN_bin("vrecps.f32 d0, d11, d12", d0, d11, i32, f2u(-56.25), d12, i32, f2u(-5786.47));
   4278     TESTINSN_bin("vrecps.f32 d7, d1, d6", d7, d1, i32, f2u(456.2489562), d6, i32, f2u(-7.2945676));
   4279     TESTINSN_bin("vrecps.f32 d0, d5, d2", d0, d5, i32, f2u(532.987), d2, i32, f2u(-0.0045876));
   4280     TESTINSN_bin("vrecps.f32 d10, d13, d15", d10, d13, i32, f2u(-485.2457), d15, i32, f2u(-567.245));
   4281     TESTINSN_bin("vrecps.f32 d10, d13, d15", d10, d13, i32, f2u(278456.45), d15, i32, f2u(8756.0076));
   4282     TESTINSN_bin("vrecps.f32 d0, d1, d2", d0, d1, i32, f2u(876988654), d2, i32, f2u(1224808797));
   4283     TESTINSN_bin("vrecps.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(NAN));
   4284     TESTINSN_bin("vrecps.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(1.0));
   4285     TESTINSN_bin("vrecps.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(0.0));
   4286     TESTINSN_bin("vrecps.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(INFINITY));
   4287     TESTINSN_bin("vrecps.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(-INFINITY));
   4288     TESTINSN_bin("vrecps.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(NAN));
   4289     TESTINSN_bin("vrecps.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(1.0));
   4290     TESTINSN_bin("vrecps.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(0.0));
   4291     TESTINSN_bin("vrecps.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(INFINITY));
   4292     TESTINSN_bin("vrecps.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(-INFINITY));
   4293     TESTINSN_bin("vrecps.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(NAN));
   4294     TESTINSN_bin("vrecps.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(1.0));
   4295     TESTINSN_bin("vrecps.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(0.0));
   4296     TESTINSN_bin("vrecps.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY));
   4297     TESTINSN_bin("vrecps.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY));
   4298     TESTINSN_bin("vrecps.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(NAN));
   4299     TESTINSN_bin("vrecps.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(1.0));
   4300     TESTINSN_bin("vrecps.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(0.0));
   4301     TESTINSN_bin("vrecps.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY));
   4302     TESTINSN_bin("vrecps.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY));
   4303 
   4304     fflush(stdout);
   4305     printf("---- VABS (fp) ----\n");
   4306     TESTINSN_un("vabs.f32 d0, d1", d0, d1, i32, f2u(3.2));
   4307     TESTINSN_un("vabs.f32 d10, d11", d10, d11, i32, f2u(3e22));
   4308     TESTINSN_un("vabs.f32 d15, d4", d15, d4, i32, f2u(3e9));
   4309     TESTINSN_un("vabs.f32 d15, d4", d15, d4, i32, f2u(-0.5));
   4310     TESTINSN_un("vabs.f32 d15, d4", d15, d4, i32, f2u(-7.1));
   4311     TESTINSN_un("vabs.f32 d12, d8", d12, d8, i32, f2u(8.0 - 1.0/1024.0));
   4312     TESTINSN_un("vabs.f32 d12, d8", d12, d8, i32, f2u(-8.0 + 1.0/1024.0));
   4313     TESTINSN_un("vabs.f32 d0, d1", d0, d1, i32, f2u(3.2));
   4314     TESTINSN_un("vabs.f32 d10, d11", d10, d11, i32, f2u(3e22));
   4315     TESTINSN_un("vabs.f32 d15, d4", d15, d4, i32, f2u(3e9));
   4316     TESTINSN_un("vabs.f32 d15, d4", d15, d4, i32, f2u(-0.5));
   4317     TESTINSN_un("vabs.f32 d15, d4", d15, d4, i32, f2u(-7.1));
   4318     TESTINSN_un("vabs.f32 d12, d8", d12, d8, i32, f2u(8.0 - 1.0/1024.0));
   4319     TESTINSN_un("vabs.f32 d12, d8", d12, d8, i32, f2u(-8.0 + 1.0/1024.0));
   4320     TESTINSN_un("vabs.f32 d0, d1", d0, d1, i32, 7);
   4321     TESTINSN_un("vabs.f32 d10, d11", d10, d11, i32, 1 << 31);
   4322     TESTINSN_un("vabs.f32 d0, d1", d0, d1, i32, (1U << 31) + 1);
   4323     TESTINSN_un("vabs.f32 d0, d1", d0, d1, i32, (1U << 31) - 1);
   4324     TESTINSN_un("vabs.f32 d0, d14", d0, d14, i32, 0x30a0bcef);
   4325     TESTINSN_un("vabs.f32 d0, d1", d0, d1, i32, 7);
   4326     TESTINSN_un("vabs.f32 d10, d11", d10, d11, i32, 1 << 31);
   4327     TESTINSN_un("vabs.f32 d0, d1", d0, d1, i32, (1U << 31) + 1);
   4328     TESTINSN_un("vabs.f32 d0, d1", d0, d1, i32, (1U << 31) - 1);
   4329     TESTINSN_un("vabs.f32 d0, d14", d0, d14, i32, 0x30a0bcef);
   4330     TESTINSN_un("vabs.f32 d0, d1", d0, d1, i32, f2u(NAN));
   4331     TESTINSN_un("vabs.f32 d0, d1", d0, d1, i32, f2u(0.0));
   4332     TESTINSN_un("vabs.f32 d0, d1", d0, d1, i32, f2u(INFINITY));
   4333     TESTINSN_un("vabs.f32 d0, d1", d0, d1, i32, f2u(-INFINITY));
   4334 
   4335     fflush(stdout);
   4336     printf("---- VCGT (fp) ----\n");
   4337     TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(0.5), d2, i32, f2u(-0.5));
   4338     TESTINSN_bin("vcgt.f32 d2, d15, d12", d2, d15, i32, f2u(-0.53), d12, i32, f2u(0.52));
   4339     TESTINSN_bin("vcgt.f32 d15, d7, d8", d15, d7, i32, f2u(231.45), d7, i32, f2u(231.45));
   4340     TESTINSN_bin("vcgt.f32 d0, d5, d2", d0, d5, i32, f2u(23.04), d2, i32, f2u(-45.5687));
   4341     TESTINSN_bin("vcgt.f32 d3, d4, d5", d3, d4, i32, f2u(-347856.475), d5, i32, f2u(1346));
   4342     TESTINSN_bin("vcgt.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(-45786.476));
   4343     TESTINSN_bin("vcgt.f32 d9, d5, d7", d9, d5, i32, f2u(95867.76), d7, i32, f2u(17065));
   4344     TESTINSN_bin("vcgt.f32 d0, d5, d2", d0, d5, i32, f2u(-45667.24), d2, i32, f2u(-248562.76));
   4345     TESTINSN_bin("vcgt.f32 d3, d4, d5", d3, d4, i32, f2u(24.87556), d5, i32, f2u(1346.0004));
   4346     TESTINSN_bin("vcgt.f32 d10, d31, d2", d10, d31, i32, f2u(48755.7), d2, i32, f2u(1089.2));
   4347     TESTINSN_bin("vcgt.f32 d9, d5, d7", d9, d5, i32, f2u(214), d7, i32, f2u(1752065));
   4348     TESTINSN_bin("vcgt.f32 d0, d11, d12", d0, d11, i32, f2u(356047.56), d12, i32, f2u(5867.009));
   4349     TESTINSN_bin("vcgt.f32 d7, d1, d6", d7, d1, i32, f2u(34.00046), d6, i32, f2u(0.0024575));
   4350     TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(2754), d2, i32, f2u(107));
   4351     TESTINSN_bin("vcgt.f32 d3, d4, d5", d3, d4, i32, f2u(874), d5, i32, f2u(1384.6));
   4352     TESTINSN_bin("vcgt.f32 d20, d21, d2", d20, d21, i32, f2u(487.587), d2, i32, f2u(109));
   4353     TESTINSN_bin("vcgt.f32 d9, d5, d7", d9, d5, i32, f2u(2146), d7, i32, f2u(1752));
   4354     TESTINSN_bin("vcgt.f32 d0, d11, d12", d0, d11, i32, f2u(-56.25), d12, i32, f2u(-5786.47));
   4355     TESTINSN_bin("vcgt.f32 d7, d1, d6", d7, d1, i32, f2u(456.2489562), d6, i32, f2u(-7.2945676));
   4356     TESTINSN_bin("vcgt.f32 d0, d5, d2", d0, d5, i32, f2u(532.987), d2, i32, f2u(-0.0045876));
   4357     TESTINSN_bin("vcgt.f32 d10, d13, d15", d10, d13, i32, f2u(-485.2457), d15, i32, f2u(-567.245));
   4358     TESTINSN_bin("vcgt.f32 d10, d13, d15", d10, d13, i32, f2u(278456.45), d15, i32, f2u(8756.0076));
   4359     TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(876988654), d2, i32, f2u(1224808797));
   4360     TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(0), d2, i32, f2u(0));
   4361     TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(1.0/1024.0), d2, i32, f2u(-1.0/1024.0));
   4362     TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(-1.0/1024.0), d2, i32, f2u(1.0/1024.0));
   4363     TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(2342+1.0/1024.0), d2, i32, f2u(2342-1.0/1024.0));
   4364     TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(-2342+1.0/1024.0), d2, i32, f2u(-2342-1.0/1024.0));
   4365     TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(89276+1.0/1024.0), d2, i32, f2u(98276+1.0/1024.0));
   4366     TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(NAN));
   4367     TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(1.0));
   4368     TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(0.0));
   4369     TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(INFINITY));
   4370     TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(-INFINITY));
   4371     TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(NAN));
   4372     TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(1.0));
   4373     TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(0.0));
   4374     TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(INFINITY));
   4375     TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(-INFINITY));
   4376     TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(NAN));
   4377     TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(1.0));
   4378     TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(0.0));
   4379     TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY));
   4380     TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY));
   4381     TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(NAN));
   4382     TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(1.0));
   4383     TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(0.0));
   4384     TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY));
   4385     TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY));
   4386 
   4387     fflush(stdout);
   4388     printf("---- VCGE (fp) ----\n");
   4389     TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(0.5), d2, i32, f2u(-0.5));
   4390     TESTINSN_bin("vcge.f32 d2, d15, d12", d2, d15, i32, f2u(-0.53), d12, i32, f2u(0.52));
   4391     TESTINSN_bin("vcge.f32 d15, d7, d8", d15, d7, i32, f2u(231.45), d7, i32, f2u(231.45));
   4392     TESTINSN_bin("vcge.f32 d0, d5, d2", d0, d5, i32, f2u(23.04), d2, i32, f2u(-45.5687));
   4393     TESTINSN_bin("vcge.f32 d3, d4, d5", d3, d4, i32, f2u(-347856.475), d5, i32, f2u(1346));
   4394     TESTINSN_bin("vcge.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(-45786.476));
   4395     TESTINSN_bin("vcge.f32 d9, d5, d7", d9, d5, i32, f2u(95867.76), d7, i32, f2u(17065));
   4396     TESTINSN_bin("vcge.f32 d0, d5, d2", d0, d5, i32, f2u(-45667.24), d2, i32, f2u(-248562.76));
   4397     TESTINSN_bin("vcge.f32 d3, d4, d5", d3, d4, i32, f2u(24.87556), d5, i32, f2u(1346.0004));
   4398     TESTINSN_bin("vcge.f32 d10, d31, d2", d10, d31, i32, f2u(48755.7), d2, i32, f2u(1089.2));
   4399     TESTINSN_bin("vcge.f32 d9, d5, d7", d9, d5, i32, f2u(214), d7, i32, f2u(1752065));
   4400     TESTINSN_bin("vcge.f32 d0, d11, d12", d0, d11, i32, f2u(356047.56), d12, i32, f2u(5867.009));
   4401     TESTINSN_bin("vcge.f32 d7, d1, d6", d7, d1, i32, f2u(34.00046), d6, i32, f2u(0.0024575));
   4402     TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(2754), d2, i32, f2u(107));
   4403     TESTINSN_bin("vcge.f32 d3, d4, d5", d3, d4, i32, f2u(874), d5, i32, f2u(1384.6));
   4404     TESTINSN_bin("vcge.f32 d20, d21, d2", d20, d21, i32, f2u(487.587), d2, i32, f2u(109));
   4405     TESTINSN_bin("vcge.f32 d9, d5, d7", d9, d5, i32, f2u(2146), d7, i32, f2u(1752));
   4406     TESTINSN_bin("vcge.f32 d0, d11, d12", d0, d11, i32, f2u(-56.25), d12, i32, f2u(-5786.47));
   4407     TESTINSN_bin("vcge.f32 d7, d1, d6", d7, d1, i32, f2u(456.2489562), d6, i32, f2u(-7.2945676));
   4408     TESTINSN_bin("vcge.f32 d0, d5, d2", d0, d5, i32, f2u(532.987), d2, i32, f2u(-0.0045876));
   4409     TESTINSN_bin("vcge.f32 d10, d13, d15", d10, d13, i32, f2u(-485.2457), d15, i32, f2u(-567.245));
   4410     TESTINSN_bin("vcge.f32 d10, d13, d15", d10, d13, i32, f2u(278456.45), d15, i32, f2u(8756.0076));
   4411     TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(876988654), d2, i32, f2u(1224808797));
   4412     TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(0), d2, i32, f2u(0));
   4413     TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(1.0/1024.0), d2, i32, f2u(-1.0/1024.0));
   4414     TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(-1.0/1024.0), d2, i32, f2u(1.0/1024.0));
   4415     TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(2342+1.0/1024.0), d2, i32, f2u(2342-1.0/1024.0));
   4416     TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(-2342+1.0/1024.0), d2, i32, f2u(-2342-1.0/1024.0));
   4417     TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(89276+1.0/1024.0), d2, i32, f2u(98276+1.0/1024.0));
   4418     TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(NAN));
   4419     TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(1.0));
   4420     TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(0.0));
   4421     TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(INFINITY));
   4422     TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(-INFINITY));
   4423     TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(NAN));
   4424     TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(1.0));
   4425     TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(0.0));
   4426     TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(INFINITY));
   4427     TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(-INFINITY));
   4428     TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(NAN));
   4429     TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(1.0));
   4430     TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(0.0));
   4431     TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY));
   4432     TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY));
   4433     TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(NAN));
   4434     TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(1.0));
   4435     TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(0.0));
   4436     TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY));
   4437     TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY));
   4438 
   4439     fflush(stdout);
   4440     printf("---- VACGT (fp) ----\n");
   4441     TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(0.5), d2, i32, f2u(-0.5));
   4442     TESTINSN_bin("vacgt.f32 d2, d15, d12", d2, d15, i32, f2u(-0.53), d12, i32, f2u(0.52));
   4443     TESTINSN_bin("vacgt.f32 d15, d7, d8", d15, d7, i32, f2u(231.45), d7, i32, f2u(231.45));
   4444     TESTINSN_bin("vacgt.f32 d0, d5, d2", d0, d5, i32, f2u(23.04), d2, i32, f2u(-45.5687));
   4445     TESTINSN_bin("vacgt.f32 d3, d4, d5", d3, d4, i32, f2u(-347856.475), d5, i32, f2u(1346));
   4446     TESTINSN_bin("vacgt.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(-45786.476));
   4447     TESTINSN_bin("vacgt.f32 d9, d5, d7", d9, d5, i32, f2u(95867.76), d7, i32, f2u(17065));
   4448     TESTINSN_bin("vacgt.f32 d0, d5, d2", d0, d5, i32, f2u(-45667.24), d2, i32, f2u(-248562.76));
   4449     TESTINSN_bin("vacgt.f32 d3, d4, d5", d3, d4, i32, f2u(24.87556), d5, i32, f2u(1346.0004));
   4450     TESTINSN_bin("vacgt.f32 d10, d31, d2", d10, d31, i32, f2u(48755.7), d2, i32, f2u(1089.2));
   4451     TESTINSN_bin("vacgt.f32 d9, d5, d7", d9, d5, i32, f2u(214), d7, i32, f2u(1752065));
   4452     TESTINSN_bin("vacgt.f32 d0, d11, d12", d0, d11, i32, f2u(356047.56), d12, i32, f2u(5867.009));
   4453     TESTINSN_bin("vacgt.f32 d7, d1, d6", d7, d1, i32, f2u(34.00046), d6, i32, f2u(0.0024575));
   4454     TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(2754), d2, i32, f2u(107));
   4455     TESTINSN_bin("vacgt.f32 d3, d4, d5", d3, d4, i32, f2u(874), d5, i32, f2u(1384.6));
   4456     TESTINSN_bin("vacgt.f32 d20, d21, d2", d20, d21, i32, f2u(487.587), d2, i32, f2u(109));
   4457     TESTINSN_bin("vacgt.f32 d9, d5, d7", d9, d5, i32, f2u(2146), d7, i32, f2u(1752));
   4458     TESTINSN_bin("vacgt.f32 d0, d11, d12", d0, d11, i32, f2u(-56.25), d12, i32, f2u(-5786.47));
   4459     TESTINSN_bin("vacgt.f32 d7, d1, d6", d7, d1, i32, f2u(456.2489562), d6, i32, f2u(-7.2945676));
   4460     TESTINSN_bin("vacgt.f32 d0, d5, d2", d0, d5, i32, f2u(532.987), d2, i32, f2u(-0.0045876));
   4461     TESTINSN_bin("vacgt.f32 d10, d13, d15", d10, d13, i32, f2u(-485.2457), d15, i32, f2u(-567.245));
   4462     TESTINSN_bin("vacgt.f32 d10, d13, d15", d10, d13, i32, f2u(278456.45), d15, i32, f2u(8756.0076));
   4463     TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(876988654), d2, i32, f2u(1224808797));
   4464     TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(0), d2, i32, f2u(0));
   4465     TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(1.0/1024.0), d2, i32, f2u(-1.0/1024.0));
   4466     TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(-1.0/1024.0), d2, i32, f2u(1.0/1024.0));
   4467     TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(2342+1.0/1024.0), d2, i32, f2u(2342-1.0/1024.0));
   4468     TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(-2342+1.0/1024.0), d2, i32, f2u(-2342-1.0/1024.0));
   4469     TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(89276+1.0/1024.0), d2, i32, f2u(98276+1.0/1024.0));
   4470     TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(NAN));
   4471     TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(1.0));
   4472     TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(0.0));
   4473     TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(INFINITY));
   4474     TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(-INFINITY));
   4475     TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(NAN));
   4476     TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(1.0));
   4477     TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(0.0));
   4478     TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(INFINITY));
   4479     TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(-INFINITY));
   4480     TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(NAN));
   4481     TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(1.0));
   4482     TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(0.0));
   4483     TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY));
   4484     TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY));
   4485     TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(NAN));
   4486     TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(1.0));
   4487     TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(0.0));
   4488     TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY));
   4489     TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY));
   4490 
   4491     fflush(stdout);
   4492     printf("---- VACGE (fp) ----\n");
   4493     TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(0.5), d2, i32, f2u(-0.5));
   4494     TESTINSN_bin("vacge.f32 d2, d15, d12", d2, d15, i32, f2u(-0.53), d12, i32, f2u(0.52));
   4495     TESTINSN_bin("vacge.f32 d15, d7, d8", d15, d7, i32, f2u(231.45), d7, i32, f2u(231.45));
   4496     TESTINSN_bin("vacge.f32 d0, d5, d2", d0, d5, i32, f2u(23.04), d2, i32, f2u(-45.5687));
   4497     TESTINSN_bin("vacge.f32 d3, d4, d5", d3, d4, i32, f2u(-347856.475), d5, i32, f2u(1346));
   4498     TESTINSN_bin("vacge.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(-45786.476));
   4499     TESTINSN_bin("vacge.f32 d9, d5, d7", d9, d5, i32, f2u(95867.76), d7, i32, f2u(17065));
   4500     TESTINSN_bin("vacge.f32 d0, d5, d2", d0, d5, i32, f2u(-45667.24), d2, i32, f2u(-248562.76));
   4501     TESTINSN_bin("vacge.f32 d3, d4, d5", d3, d4, i32, f2u(24.87556), d5, i32, f2u(1346.0004));
   4502     TESTINSN_bin("vacge.f32 d10, d31, d2", d10, d31, i32, f2u(48755.7), d2, i32, f2u(1089.2));
   4503     TESTINSN_bin("vacge.f32 d9, d5, d7", d9, d5, i32, f2u(214), d7, i32, f2u(1752065));
   4504     TESTINSN_bin("vacge.f32 d0, d11, d12", d0, d11, i32, f2u(356047.56), d12, i32, f2u(5867.009));
   4505     TESTINSN_bin("vacge.f32 d7, d1, d6", d7, d1, i32, f2u(34.00046), d6, i32, f2u(0.0024575));
   4506     TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(2754), d2, i32, f2u(107));
   4507     TESTINSN_bin("vacge.f32 d3, d4, d5", d3, d4, i32, f2u(874), d5, i32, f2u(1384.6));
   4508     TESTINSN_bin("vacge.f32 d20, d21, d2", d20, d21, i32, f2u(487.587), d2, i32, f2u(109));
   4509     TESTINSN_bin("vacge.f32 d9, d5, d7", d9, d5, i32, f2u(2146), d7, i32, f2u(1752));
   4510     TESTINSN_bin("vacge.f32 d0, d11, d12", d0, d11, i32, f2u(-56.25), d12, i32, f2u(-5786.47));
   4511     TESTINSN_bin("vacge.f32 d7, d1, d6", d7, d1, i32, f2u(456.2489562), d6, i32, f2u(-7.2945676));
   4512     TESTINSN_bin("vacge.f32 d0, d5, d2", d0, d5, i32, f2u(532.987), d2, i32, f2u(-0.0045876));
   4513     TESTINSN_bin("vacge.f32 d10, d13, d15", d10, d13, i32, f2u(-485.2457), d15, i32, f2u(-567.245));
   4514     TESTINSN_bin("vacge.f32 d10, d13, d15", d10, d13, i32, f2u(278456.45), d15, i32, f2u(8756.0076));
   4515     TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(876988654), d2, i32, f2u(1224808797));
   4516     TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(0), d2, i32, f2u(0));
   4517     TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(1.0/1024.0), d2, i32, f2u(-1.0/1024.0));
   4518     TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(-1.0/1024.0), d2, i32, f2u(1.0/1024.0));
   4519     TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(2342+1.0/1024.0), d2, i32, f2u(2342-1.0/1024.0));
   4520     TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(-2342+1.0/1024.0), d2, i32, f2u(-2342-1.0/1024.0));
   4521     TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(89276+1.0/1024.0), d2, i32, f2u(98276+1.0/1024.0));
   4522     TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(NAN));
   4523     TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(1.0));
   4524     TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(0.0));
   4525     TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(INFINITY));
   4526     TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(-INFINITY));
   4527     TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(NAN));
   4528     TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(1.0));
   4529     TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(0.0));
   4530     TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(INFINITY));
   4531     TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(-INFINITY));
   4532     TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(NAN));
   4533     TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(1.0));
   4534     TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(0.0));
   4535     TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY));
   4536     TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY));
   4537     TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(NAN));
   4538     TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(1.0));
   4539     TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(0.0));
   4540     TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY));
   4541     TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY));
   4542 
   4543     fflush(stdout);
   4544     printf("---- VCEQ (fp) ----\n");
   4545     TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(0.5), d2, i32, f2u(-0.5));
   4546     TESTINSN_bin("vceq.f32 d2, d15, d12", d2, d15, i32, f2u(-0.53), d12, i32, f2u(0.52));
   4547     TESTINSN_bin("vceq.f32 d15, d7, d8", d15, d7, i32, f2u(231.45), d7, i32, f2u(231.45));
   4548     TESTINSN_bin("vceq.f32 d0, d5, d2", d0, d5, i32, f2u(23.04), d2, i32, f2u(-45.5687));
   4549     TESTINSN_bin("vceq.f32 d3, d4, d5", d3, d4, i32, f2u(-347856.475), d5, i32, f2u(1346));
   4550     TESTINSN_bin("vceq.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(-45786.476));
   4551     TESTINSN_bin("vceq.f32 d9, d5, d7", d9, d5, i32, f2u(95867.76), d7, i32, f2u(17065));
   4552     TESTINSN_bin("vceq.f32 d0, d5, d2", d0, d5, i32, f2u(-45667.24), d2, i32, f2u(-248562.76));
   4553     TESTINSN_bin("vceq.f32 d3, d4, d5", d3, d4, i32, f2u(24.87556), d5, i32, f2u(1346.0004));
   4554     TESTINSN_bin("vceq.f32 d10, d31, d2", d10, d31, i32, f2u(48755.7), d2, i32, f2u(1089.2));
   4555     TESTINSN_bin("vceq.f32 d9, d5, d7", d9, d5, i32, f2u(214), d7, i32, f2u(1752065));
   4556     TESTINSN_bin("vceq.f32 d0, d11, d12", d0, d11, i32, f2u(356047.56), d12, i32, f2u(5867.009));
   4557     TESTINSN_bin("vceq.f32 d7, d1, d6", d7, d1, i32, f2u(34.00046), d6, i32, f2u(0.0024575));
   4558     TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(2754), d2, i32, f2u(107));
   4559     TESTINSN_bin("vceq.f32 d3, d4, d5", d3, d4, i32, f2u(874), d5, i32, f2u(1384.6));
   4560     TESTINSN_bin("vceq.f32 d20, d21, d2", d20, d21, i32, f2u(487.587), d2, i32, f2u(109));
   4561     TESTINSN_bin("vceq.f32 d9, d5, d7", d9, d5, i32, f2u(2146), d7, i32, f2u(1752));
   4562     TESTINSN_bin("vceq.f32 d0, d11, d12", d0, d11, i32, f2u(-56.25), d12, i32, f2u(-5786.47));
   4563     TESTINSN_bin("vceq.f32 d7, d1, d6", d7, d1, i32, f2u(456.2489562), d6, i32, f2u(-7.2945676));
   4564     TESTINSN_bin("vceq.f32 d0, d5, d2", d0, d5, i32, f2u(532.987), d2, i32, f2u(-0.0045876));
   4565     TESTINSN_bin("vceq.f32 d10, d13, d15", d10, d13, i32, f2u(-485.2457), d15, i32, f2u(-567.245));
   4566     TESTINSN_bin("vceq.f32 d10, d13, d15", d10, d13, i32, f2u(278456.45), d15, i32, f2u(8756.0076));
   4567     TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(876988654), d2, i32, f2u(1224808797));
   4568     TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(0), d2, i32, f2u(0));
   4569     TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(1.0/1024.0), d2, i32, f2u(-1.0/1024.0));
   4570     TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(-1.0/1024.0), d2, i32, f2u(1.0/1024.0));
   4571     TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(2342+1.0/1024.0), d2, i32, f2u(2342-1.0/1024.0));
   4572     TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(-2342+1.0/1024.0), d2, i32, f2u(-2342-1.0/1024.0));
   4573     TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(89276+1.0/1024.0), d2, i32, f2u(98276+1.0/1024.0));
   4574     TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(NAN));
   4575     TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(1.0));
   4576     TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(0.0));
   4577     TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(INFINITY));
   4578     TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(-INFINITY));
   4579     TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(NAN));
   4580     TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(1.0));
   4581     TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(0.0));
   4582     TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(INFINITY));
   4583     TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(-INFINITY));
   4584     TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(NAN));
   4585     TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(1.0));
   4586     TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(0.0));
   4587     TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY));
   4588     TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY));
   4589     TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(NAN));
   4590     TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(1.0));
   4591     TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(0.0));
   4592     TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY));
   4593     TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY));
   4594 
   4595     fflush(stdout);
   4596     printf("---- VCEQ (fp) #0 ----\n");
   4597     TESTINSN_un("vceq.f32 d0, d1, #0", d0, d1, i32, 0x01000000);
   4598     TESTINSN_un("vceq.f32 d0, d1, #0", d0, d1, i32, 0x1);
   4599     TESTINSN_un("vceq.f32 d2, d1, #0", d2, d1, i32, 1 << 31);
   4600     TESTINSN_un("vceq.f32 d2, d1, #0", d2, d1, i32, f2u(23.04));
   4601     TESTINSN_un("vceq.f32 d2, d31, #0", d2, d31, i32, f2u(-23.04));
   4602     TESTINSN_un("vceq.f32 d30, d15, #0", d30, d15, i32, 0x0);
   4603     TESTINSN_un("vceq.f32 d0, d1, #0", d0, d1, i32, f2u(NAN));
   4604     TESTINSN_un("vceq.f32 d0, d1, #0", d0, d1, i32, f2u(0.0));
   4605     TESTINSN_un("vceq.f32 d0, d1, #0", d0, d1, i32, f2u(INFINITY));
   4606     TESTINSN_un("vceq.f32 d0, d1, #0", d0, d1, i32, f2u(-INFINITY));
   4607 
   4608     fflush(stdout);
   4609     printf("---- VCGT (fp) #0 ----\n");
   4610     TESTINSN_un("vcgt.f32 d0, d1, #0", d0, d1, i32, 0x01000000);
   4611     TESTINSN_un("vcgt.f32 d0, d1, #0", d0, d1, i32, 0x1);
   4612     TESTINSN_un("vcgt.f32 d2, d1, #0", d2, d1, i32, 1 << 31);
   4613     TESTINSN_un("vcgt.f32 d2, d1, #0", d2, d1, i32, f2u(23.04));
   4614     TESTINSN_un("vcgt.f32 d2, d31, #0", d2, d31, i32, f2u(-23.04));
   4615     TESTINSN_un("vcgt.f32 d30, d15, #0", d30, d15, i32, 0x0);
   4616     TESTINSN_un("vcgt.f32 d0, d1, #0", d0, d1, i32, f2u(NAN));
   4617     TESTINSN_un("vcgt.f32 d0, d1, #0", d0, d1, i32, f2u(0.0));
   4618     TESTINSN_un("vcgt.f32 d0, d1, #0", d0, d1, i32, f2u(INFINITY));
   4619     TESTINSN_un("vcgt.f32 d0, d1, #0", d0, d1, i32, f2u(-INFINITY));
   4620 
   4621     fflush(stdout);
   4622     printf("---- VCLT (fp) #0 ----\n");
   4623     TESTINSN_un("vclt.f32 d0, d1, #0", d0, d1, i32, 0x01000000);
   4624     TESTINSN_un("vclt.f32 d0, d1, #0", d0, d1, i32, 0x1);
   4625     TESTINSN_un("vclt.f32 d2, d1, #0", d2, d1, i32, 1 << 31);
   4626     TESTINSN_un("vclt.f32 d2, d1, #0", d2, d1, i32, f2u(23.04));
   4627     TESTINSN_un("vclt.f32 d2, d31, #0", d2, d31, i32, f2u(-23.04));
   4628     TESTINSN_un("vclt.f32 d30, d15, #0", d30, d15, i32, 0x0);
   4629     TESTINSN_un("vclt.f32 d0, d1, #0", d0, d1, i32, f2u(NAN));
   4630     TESTINSN_un("vclt.f32 d0, d1, #0", d0, d1, i32, f2u(0.0));
   4631     TESTINSN_un("vclt.f32 d0, d1, #0", d0, d1, i32, f2u(INFINITY));
   4632     TESTINSN_un("vclt.f32 d0, d1, #0", d0, d1, i32, f2u(-INFINITY));
   4633 
   4634     fflush(stdout);
   4635     printf("---- VCGE (fp) #0 ----\n");
   4636     TESTINSN_un("vcge.f32 d0, d1, #0", d0, d1, i32, 0x01000000);
   4637     TESTINSN_un("vcge.f32 d0, d1, #0", d0, d1, i32, 0x1);
   4638     TESTINSN_un("vcge.f32 d2, d1, #0", d2, d1, i32, 1 << 31);
   4639     TESTINSN_un("vcge.f32 d2, d1, #0", d2, d1, i32, f2u(23.04));
   4640     TESTINSN_un("vcge.f32 d2, d31, #0", d2, d31, i32, f2u(-23.04));
   4641     TESTINSN_un("vcge.f32 d30, d15, #0", d30, d15, i32, 0x0);
   4642     TESTINSN_un("vcle.f32 d0, d1, #0", d0, d1, i32, f2u(NAN));
   4643     TESTINSN_un("vcle.f32 d0, d1, #0", d0, d1, i32, f2u(0.0));
   4644     TESTINSN_un("vcle.f32 d0, d1, #0", d0, d1, i32, f2u(INFINITY));
   4645     TESTINSN_un("vcle.f32 d0, d1, #0", d0, d1, i32, f2u(-INFINITY));
   4646 
   4647     fflush(stdout);
   4648     printf("---- VCLE (fp) #0 ----\n");
   4649     TESTINSN_un("vcle.f32 d0, d1, #0", d0, d1, i32, 0x01000000);
   4650     TESTINSN_un("vcle.f32 d0, d1, #0", d0, d1, i32, 0x1);
   4651     TESTINSN_un("vcle.f32 d2, d1, #0", d2, d1, i32, 1 << 31);
   4652     TESTINSN_un("vcle.f32 d2, d1, #0", d2, d1, i32, f2u(23.04));
   4653     TESTINSN_un("vcle.f32 d2, d31, #0", d2, d31, i32, f2u(-23.04));
   4654     TESTINSN_un("vcle.f32 d30, d15, #0", d30, d15, i32, 0x0);
   4655     TESTINSN_un("vcle.f32 d0, d1, #0", d0, d1, i32, f2u(NAN));
   4656     TESTINSN_un("vcle.f32 d0, d1, #0", d0, d1, i32, f2u(0.0));
   4657     TESTINSN_un("vcle.f32 d0, d1, #0", d0, d1, i32, f2u(INFINITY));
   4658     TESTINSN_un("vcle.f32 d0, d1, #0", d0, d1, i32, f2u(-INFINITY));
   4659 
   4660     fflush(stdout);
   4661     printf("---- VNEG (fp) ----\n");
   4662     TESTINSN_un("vneg.f32 d0, d1", d0, d1, i32, 0x01000000);
   4663     TESTINSN_un("vneg.f32 d0, d1", d0, d1, i32, 0x1);
   4664     TESTINSN_un("vneg.f32 d2, d1", d2, d1, i32, 1 << 31);
   4665     TESTINSN_un("vneg.f32 d2, d1", d2, d1, i32, f2u(23.04));
   4666     TESTINSN_un("vneg.f32 d2, d31", d2, d31, i32, f2u(-23.04));
   4667     TESTINSN_un("vneg.f32 d30, d15", d30, d15, i32, 0x0);
   4668     TESTINSN_un("vneg.f32 d0, d1", d0, d1, i32, f2u(NAN));
   4669     TESTINSN_un("vneg.f32 d0, d1", d0, d1, i32, f2u(0.0));
   4670     TESTINSN_un("vneg.f32 d0, d1", d0, d1, i32, f2u(INFINITY));
   4671     TESTINSN_un("vneg.f32 d0, d1", d0, d1, i32, f2u(-INFINITY));
   4672 
   4673     fflush(stdout);
   4674     printf("---- VRSQRTS ----\n");
   4675     TESTINSN_bin("vrsqrts.f32 d0, d5, d2", d0, d5, i32, f2u(23.04), d2, i32, f2u(-45.5687));
   4676     TESTINSN_bin("vrsqrts.f32 d3, d4, d5", d3, d4, i32, f2u(-347856.475), d5, i32, f2u(1346));
   4677     TESTINSN_bin("vrsqrts.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(-45786.476));
   4678     TESTINSN_bin("vrsqrts.f32 d9, d5, d7", d9, d5, i32, f2u(95867.76), d7, i32, f2u(17065));
   4679     TESTINSN_bin("vrsqrts.f32 d0, d5, d2", d0, d5, i32, f2u(-45667.24), d2, i32, f2u(-248562.76));
   4680     TESTINSN_bin("vrsqrts.f32 d3, d4, d5", d3, d4, i32, f2u(24), d5, i32, f2u(1346));
   4681     TESTINSN_bin("vrsqrts.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(1089));
   4682     TESTINSN_bin("vrsqrts.f32 d9, d5, d7", d9, d5, i32, f2u(214), d7, i32, f2u(1752065));
   4683     TESTINSN_bin("vrsqrts.f32 d0, d11, d12", d0, d11, i32, f2u(356047.56), d12, i32, f2u(5867.009));
   4684     TESTINSN_bin("vrsqrts.f32 d7, d1, d6", d7, d1, i32, f2u(34.00046), d6, i32, f2u(0.0024575));
   4685     TESTINSN_bin("vrsqrts.f32 d0, d1, d2", d0, d1, i32, f2u(2754), d2, i32, f2u(107));
   4686     TESTINSN_bin("vrsqrts.f32 d3, d4, d5", d3, d4, i32, f2u(874), d5, i32, f2u(1384.6));
   4687     TESTINSN_bin("vrsqrts.f32 d10, d11, d2", d10, d11, i32, f2u(487.587), d2, i32, f2u(109));
   4688     TESTINSN_bin("vrsqrts.f32 d9, d5, d7", d9, d5, i32, f2u(2146), d7, i32, f2u(1752));
   4689     TESTINSN_bin("vrsqrts.f32 d0, d11, d12", d0, d11, i32, f2u(-56.25), d12, i32, f2u(-5786.47));
   4690     TESTINSN_bin("vrsqrts.f32 d7, d1, d6", d7, d1, i32, f2u(456.2489562), d6, i32, f2u(-7.2945676));
   4691     TESTINSN_bin("vrsqrts.f32 d0, d5, d2", d0, d5, i32, f2u(532.987), d2, i32, f2u(-0.0045876));
   4692     TESTINSN_bin("vrsqrts.f32 d10, d13, d15", d10, d13, i32, f2u(-485.2457), d15, i32, f2u(-567.245));
   4693     TESTINSN_bin("vrsqrts.f32 d10, d13, d15", d10, d13, i32, f2u(278456.45), d15, i32, f2u(8756.0076));
   4694     TESTINSN_bin("vrsqrts.f32 d0, d1, d2", d0, d1, i32, f2u(876988654), d2, i32, f2u(1224808797));
   4695     TESTINSN_bin("vrsqrts.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(NAN));
   4696     TESTINSN_bin("vrsqrts.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(1.0));
   4697     TESTINSN_bin("vrsqrts.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(0.0));
   4698     TESTINSN_bin("vrsqrts.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(INFINITY));
   4699     TESTINSN_bin("vrsqrts.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(-INFINITY));
   4700     TESTINSN_bin("vrsqrts.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(NAN));
   4701     TESTINSN_bin("vrsqrts.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(1.0));
   4702     TESTINSN_bin("vrsqrts.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(0.0));
   4703     TESTINSN_bin("vrsqrts.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(INFINITY));
   4704     TESTINSN_bin("vrsqrts.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(-INFINITY));
   4705     TESTINSN_bin("vrsqrts.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(NAN));
   4706     TESTINSN_bin("vrsqrts.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(1.0));
   4707     TESTINSN_bin("vrsqrts.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(0.0));
   4708     TESTINSN_bin("vrsqrts.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY));
   4709     TESTINSN_bin("vrsqrts.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY));
   4710     TESTINSN_bin("vrsqrts.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(NAN));
   4711     TESTINSN_bin("vrsqrts.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(1.0));
   4712     TESTINSN_bin("vrsqrts.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(0.0));
   4713     TESTINSN_bin("vrsqrts.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY));
   4714     TESTINSN_bin("vrsqrts.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY));
   4715 
   4716     fflush(stdout);
   4717     printf("---- VRSQRTE (fp) ----\n");
   4718     TESTINSN_un("vrsqrte.f32 d0, d1", d0, d1, i32, f2u(3.2));
   4719     TESTINSN_un("vrsqrte.f32 d10, d11", d10, d11, i32, f2u(3e22));
   4720     TESTINSN_un("vrsqrte.f32 d15, d4", d15, d4, i32, f2u(3e9));
   4721     TESTINSN_un("vrsqrte.f32 d15, d4", d15, d4, i32, f2u(-0.5));
   4722     TESTINSN_un("vrsqrte.f32 d15, d4", d15, d4, i32, f2u(-7.1));
   4723     TESTINSN_un("vrsqrte.f32 d12, d8", d12, d8, i32, f2u(8.0 - 1.0/1024.0));
   4724     TESTINSN_un("vrsqrte.f32 d12, d8", d12, d8, i32, f2u(-8.0 + 1.0/1024.0));
   4725     TESTINSN_un("vrsqrte.f32 d0, d1", d0, d1, i32, f2u(3.2));
   4726     TESTINSN_un("vrsqrte.f32 d10, d11", d10, d11, i32, f2u(3e22));
   4727     TESTINSN_un("vrsqrte.f32 d15, d4", d15, d4, i32, f2u(3e9));
   4728     TESTINSN_un("vrsqrte.f32 d15, d4", d15, d4, i32, f2u(-0.5));
   4729     TESTINSN_un("vrsqrte.f32 d15, d4", d15, d4, i32, f2u(-7.1));
   4730     TESTINSN_un("vrsqrte.f32 d12, d8", d12, d8, i32, f2u(8.0 - 1.0/1024.0));
   4731     TESTINSN_un("vrsqrte.f32 d12, d8", d12, d8, i32, f2u(-8.0 + 1.0/1024.0));
   4732     TESTINSN_un("vrsqrte.f32 d0, d1", d0, d1, i32, 7);
   4733     TESTINSN_un("vrsqrte.f32 d10, d11", d10, d11, i32, 1 << 31);
   4734     TESTINSN_un("vrsqrte.f32 d0, d1", d0, d1, i32, (1U << 31) + 1);
   4735     TESTINSN_un("vrsqrte.f32 d0, d1", d0, d1, i32, (1U << 31) - 1);
   4736     TESTINSN_un("vrsqrte.f32 d0, d14", d0, d14, i32, 0x30a0bcef);
   4737     TESTINSN_un("vrsqrte.f32 d0, d1", d0, d1, i32, 7);
   4738     TESTINSN_un("vrsqrte.f32 d10, d11", d10, d11, i32, 1 << 31);
   4739     TESTINSN_un("vrsqrte.f32 d0, d1", d0, d1, i32, (1U << 31) + 1);
   4740     TESTINSN_un("vrsqrte.f32 d0, d1", d0, d1, i32, (1U << 31) - 1);
   4741     TESTINSN_un("vrsqrte.f32 d0, d14", d0, d14, i32, 0x30a0bcef);
   4742     TESTINSN_un("vrsqrte.f32 d0, d1", d0, d1, i32, f2u(NAN));
   4743     TESTINSN_un("vrsqrte.f32 d0, d1", d0, d1, i32, f2u(0.0));
   4744     TESTINSN_un("vrsqrte.f32 d0, d1", d0, d1, i32, f2u(INFINITY));
   4745     TESTINSN_un("vrsqrte.f32 d0, d1", d0, d1, i32, f2u(-INFINITY));
   4746 
   4747     return 0;
   4748 }
   4749