Home | History | Annotate | Download | only in arm
      1 
      2 /* How to compile:
      3    gcc -O -g -Wall -mcpu=cortex-a8 -o v6intThumb none/tests/arm/v6intThumb.c
      4 */
      5 
      6 #include <stdio.h>
      7 
      8 static int gen_cvin(int cvin)
      9 {
     10   int r = ((cvin & 2) ? (1<<29) : 0) | ((cvin & 1) ? (1<<28) : 0);
     11   r |= (1 << 31) | (1 << 30);
     12   return r;
     13 }
     14 
     15 /* test macros to generate and output the result of a single instruction */
     16 
     17 
     18 // 1 registers in the insn, zero args: rD = op()
     19 #define TESTINST1(instruction, RD, cvin) \
     20 { \
     21 	unsigned int out; \
     22 	unsigned int cpsr; \
     23 \
     24 	__asm__ volatile( \
     25                 "msr cpsr_fs, %2;" \
     26 		instruction ";" \
     27 		"mov %0," #RD ";" \
     28 		"mrs %1,cpsr;" \
     29 		: "=&r" (out), "=&r" (cpsr) \
     30 		: "r" (gen_cvin(cvin))        \
     31 		: #RD, "cc", "memory" \
     32 	); \
     33 	printf("%s :: rd 0x%08x, c:v-in %d, cpsr 0x%08x %c%c%c%c\n", \
     34 		instruction, out, \
     35 		cvin, \
     36 		cpsr & 0xff0f0000, \
     37 		((1<<31) & cpsr) ? 'N' : ' ', \
     38 		((1<<30) & cpsr) ? 'Z' : ' ', \
     39 		((1<<29) & cpsr) ? 'C' : ' ', \
     40 		((1<<28) & cpsr) ? 'V' : ' ' \
     41 		); \
     42 }
     43 
     44 
     45 
     46 // 1 registers in the insn, one args: rD = op(rD)
     47 #define TESTINST1x(instruction, RDval, RD, cvin)       \
     48 { \
     49 	unsigned int out; \
     50 	unsigned int cpsr; \
     51 \
     52 	__asm__ volatile( \
     53                 "msr cpsr_fs, %2;" \
     54                 "mov " #RD ",%3;" \
     55 		instruction ";" \
     56 		"mov %0," #RD ";" \
     57 		"mrs %1,cpsr;" \
     58 		: "=&r" (out), "=&r" (cpsr) \
     59 		: "r" (gen_cvin(cvin)), "r"(RDval) \
     60 		: #RD, "cc", "memory" \
     61 	); \
     62 	printf("%s :: rd 0x%08x, c:v-in %d, cpsr 0x%08x %c%c%c%c\n", \
     63 		instruction, out, \
     64 		cvin, \
     65 		cpsr & 0xff0f0000, \
     66 		((1<<31) & cpsr) ? 'N' : ' ', \
     67 		((1<<30) & cpsr) ? 'Z' : ' ', \
     68 		((1<<29) & cpsr) ? 'C' : ' ', \
     69 		((1<<28) & cpsr) ? 'V' : ' ' \
     70 		); \
     71 }
     72 
     73 // 2 registers in the insn, one arg: rD = op(rM)
     74 #define TESTINST2(instruction, RMval, RD, RM, cvin) \
     75 { \
     76 	unsigned int out; \
     77 	unsigned int cpsr; \
     78 \
     79 	__asm__ volatile( \
     80                 "msr cpsr_fs, %3;" \
     81 		"mov " #RM ",%2;" \
     82                 /* set #RD to 0x55555555 so we can see which parts get overwritten */ \
     83                 "mov " #RD ", #0x55" "\n\t" \
     84                 "orr " #RD "," #RD "," #RD ", LSL #8" "\n\t" \
     85                 "orr " #RD "," #RD "," #RD ", LSL #16" "\n\t" \
     86 		instruction ";" \
     87 		"mov %0," #RD ";" \
     88 		"mrs %1,cpsr;" \
     89 		: "=&r" (out), "=&r" (cpsr) \
     90 		: "r" (RMval), "r" (gen_cvin(cvin))        \
     91 		: #RD, #RM, "cc", "memory" \
     92 	); \
     93 	printf("%s :: rd 0x%08x rm 0x%08x, c:v-in %d, cpsr 0x%08x %c%c%c%c\n", \
     94 		instruction, out, RMval, \
     95 		cvin, \
     96 		cpsr & 0xff0f0000, \
     97 		((1<<31) & cpsr) ? 'N' : ' ', \
     98 		((1<<30) & cpsr) ? 'Z' : ' ', \
     99 		((1<<29) & cpsr) ? 'C' : ' ', \
    100 		((1<<28) & cpsr) ? 'V' : ' ' \
    101 		); \
    102 }
    103 
    104 
    105 // 2 registers in the insn, two args: rD = op(rD, rM)
    106 #define TESTINST2x(instruction, RDval, RMval, RD, RM, cvin)       \
    107 { \
    108 	unsigned int out; \
    109 	unsigned int cpsr; \
    110 \
    111 	__asm__ volatile( \
    112                 "msr cpsr_fs, %3;" \
    113 		"mov " #RM ",%2;" \
    114                 "mov " #RD ",%4;" \
    115 		instruction ";" \
    116 		"mov %0," #RD ";" \
    117 		"mrs %1,cpsr;" \
    118 		: "=&r" (out), "=&r" (cpsr) \
    119 		: "r" (RMval), "r" (gen_cvin(cvin)), "r"(RDval) \
    120 		: #RD, #RM, "cc", "memory" \
    121 	); \
    122 	printf("%s :: rd 0x%08x rm 0x%08x, c:v-in %d, cpsr 0x%08x %c%c%c%c\n", \
    123 		instruction, out, RMval, \
    124 		cvin, \
    125 		cpsr & 0xff0f0000, \
    126 		((1<<31) & cpsr) ? 'N' : ' ', \
    127 		((1<<30) & cpsr) ? 'Z' : ' ', \
    128 		((1<<29) & cpsr) ? 'C' : ' ', \
    129 		((1<<28) & cpsr) ? 'V' : ' ' \
    130 		); \
    131 }
    132 
    133 
    134 
    135 #define TESTINST3(instruction, RMval, RNval, RD, RM, RN, cvin) \
    136 { \
    137 	unsigned int out; \
    138 	unsigned int cpsr; \
    139 \
    140 	__asm__ volatile( \
    141                 "msr cpsr_fs, %4;" \
    142 		"mov " #RM ",%2;" \
    143 		"mov " #RN ",%3;" \
    144 		instruction ";" \
    145 		"mov %0," #RD ";" \
    146 		"mrs %1,cpsr;" \
    147 		: "=&r" (out), "=&r" (cpsr) \
    148 		: "r" (RMval), "r" (RNval), "r" (gen_cvin(cvin))    \
    149 		: #RD, #RM, #RN, "cc", "memory" \
    150 	); \
    151 	printf("%s :: rd 0x%08x rm 0x%08x, rn 0x%08x, c:v-in %d, cpsr 0x%08x %c%c%c%c\n", \
    152 		instruction, out, RMval, RNval, \
    153 		cvin, \
    154 		cpsr & 0xff0f0000, \
    155 		((1<<31) & cpsr) ? 'N' : ' ', \
    156 		((1<<30) & cpsr) ? 'Z' : ' ', \
    157 		((1<<29) & cpsr) ? 'C' : ' ', \
    158 		((1<<28) & cpsr) ? 'V' : ' ' \
    159 		); \
    160 }
    161 
    162 #define TESTINST4(instruction, RMval, RNval, RSval, RD, RM, RN, RS, cvin) \
    163 { \
    164 	unsigned int out; \
    165 	unsigned int cpsr; \
    166 \
    167 	__asm__ volatile( \
    168                 "msr cpsr_fs, %5;" \
    169 		"mov " #RM ",%2;" \
    170 		"mov " #RN ",%3;" \
    171 		"mov " #RS ",%4;" \
    172 		instruction ";" \
    173 		"mov %0," #RD ";" \
    174 		"mrs %1,cpsr;" \
    175 		: "=&r" (out), "=&r" (cpsr) \
    176 		: "r" (RMval), "r" (RNval), "r" (RSval), "r" (gen_cvin(cvin)) \
    177 		: #RD, #RM, #RN, #RS, "cc", "memory" \
    178 	); \
    179 	printf("%s :: rd 0x%08x rm 0x%08x, rn 0x%08x rs 0x%08x, c:v-in %d, cpsr 0x%08x %c%c%c%c\n", \
    180 		instruction, out, RMval, RNval, RSval, \
    181 		cvin, \
    182 		cpsr & 0xff0f0000, \
    183 		((1<<31) & cpsr) ? 'N' : ' ', \
    184 		((1<<30) & cpsr) ? 'Z' : ' ', \
    185 		((1<<29) & cpsr) ? 'C' : ' ', \
    186 		((1<<28) & cpsr) ? 'V' : ' ' \
    187 		); \
    188 }
    189 
    190 #define TESTINST4_2OUT(instruction, RDval, RD2val, RMval, RSval, RD, RD2, RM, RS, cvin) \
    191 { \
    192 	unsigned int out; \
    193 	unsigned int out2; \
    194 	unsigned int cpsr; \
    195 \
    196 	__asm__ volatile( \
    197                 "msr cpsr_fs, %7;" \
    198 		"mov " #RD ",%3;" \
    199 		"mov " #RD2 ",%4;" \
    200 		"mov " #RM ",%5;" \
    201 		"mov " #RS ",%6;" \
    202 		instruction ";" \
    203 		"mov %0," #RD ";" \
    204 		"mov %1," #RD2 ";" \
    205 		"mrs %2,cpsr;" \
    206 		: "=&r" (out), "=&r" (out2), "=&r" (cpsr) \
    207 		: "r" (RDval), "r" (RD2val), "r" (RMval), "r" (RSval), "r" (gen_cvin(cvin)) \
    208 		: #RD, #RD2, #RM, #RS, "cc", "memory" \
    209 	); \
    210 	printf("%s :: rd 0x%08x rd2 0x%08x, rm 0x%08x rs 0x%08x, c:v-in %d, cpsr 0x%08x %c%c%c%c\n", \
    211 		instruction, out, out2, RMval, RSval, \
    212 		cvin, \
    213 		cpsr & 0xff0f0000, \
    214 		((1<<31) & cpsr) ? 'N' : ' ', \
    215 		((1<<30) & cpsr) ? 'Z' : ' ', \
    216 		((1<<29) & cpsr) ? 'C' : ' ', \
    217 		((1<<28) & cpsr) ? 'V' : ' ' \
    218 		); \
    219 }
    220 
    221 // Tests misaligned access via PC+$#imm
    222 #define TESTINSTPCMISALIGNED(instruction, RD, label, cvin) \
    223 { \
    224     unsigned int out; \
    225     unsigned int cpsr; \
    226     __asm__ volatile(\
    227       ".align 4;" \
    228       "msr cpsr_fs, %2;" \
    229       "mov " #RD ", #0;" \
    230       ".align 2;" \
    231       ".thumb;" \
    232       ".syntax unified;" \
    233       "nop;" \
    234       instruction ";" \
    235       "b .Lend" #label ";" \
    236       ".align 4;" \
    237       #label ": " \
    238       ".word 0x8191881b;" \
    239       ".word 0x18fe9c93;" \
    240       ".word 0x00000000;" \
    241       ".word 0x00000000;" \
    242       ".Lend" #label ":" \
    243       "mov %0, " #RD ";" \
    244       "mrs %1, cpsr;" \
    245       : "=&r" (out), "=&r" (cpsr) \
    246       : "r" (gen_cvin(cvin)) \
    247       : #RD, "cc", "memory" \
    248     ); \
    249     printf("%s :: rd 0x%08x, cpsr 0x%08x %c%c%c%c\n", \
    250           instruction, out, \
    251 		cpsr & 0xff0f0000, \
    252 		((1<<31) & cpsr) ? 'N' : ' ', \
    253 		((1<<30) & cpsr) ? 'Z' : ' ', \
    254 		((1<<29) & cpsr) ? 'C' : ' ', \
    255 		((1<<28) & cpsr) ? 'V' : ' ' \
    256 		); \
    257 }
    258 
    259 // this one uses d0, s0 and s2 (hardcoded)
    260 #define TESTINSTPCMISALIGNED_DWORDOUT(instruction, label, cvin, extratrash) \
    261 { \
    262     unsigned int out; \
    263     unsigned int out2; \
    264     unsigned int cpsr; \
    265     __asm__ volatile(\
    266       ".align 4;" \
    267       "msr cpsr_fs, %3;" \
    268       ".align 2;" \
    269       ".thumb;" \
    270       ".syntax unified;" \
    271       "nop;" \
    272       instruction ";" \
    273       "b .Lend" #label ";" \
    274       ".align 4;" \
    275       #label ": " \
    276       ".word 0x8191881b;" \
    277       ".word 0x18fe9c93;" \
    278       ".word 0x00000000;" \
    279       ".word 0x00000000;" \
    280       ".Lend" #label ":" \
    281       "vmov %0, s0;" \
    282       "vmov %1, s1;" \
    283       "mrs %2, cpsr;" \
    284       : "=&r" (out), "=&r" (out2), "=&r" (cpsr) \
    285       : "r" (gen_cvin(cvin)) \
    286       : "cc", "memory", "s0", "s1", extratrash \
    287     ); \
    288     printf("%s :: s0 0x%08x s1 0x%08x, cpsr 0x%08x %c%c%c%c\n", \
    289         instruction, out, out2, \
    290 		cpsr & 0xff0f0000, \
    291 		((1<<31) & cpsr) ? 'N' : ' ', \
    292 		((1<<30) & cpsr) ? 'Z' : ' ', \
    293 		((1<<29) & cpsr) ? 'C' : ' ', \
    294 		((1<<28) & cpsr) ? 'V' : ' ' \
    295 		); \
    296 }
    297 
    298 #define TESTINSTPCMISALIGNED_2OUT(instruction, RD, RD2, label, cvin) \
    299 { \
    300     unsigned int out; \
    301     unsigned int out2; \
    302     unsigned int cpsr; \
    303     __asm__ volatile(\
    304       ".align 4;" \
    305       "msr cpsr_fs, %3;" \
    306       "mov " #RD ", #0;" \
    307       "mov " #RD2 ", #0;" \
    308       ".align 2;" \
    309       ".thumb;" \
    310       ".syntax unified;" \
    311       "nop;" \
    312       instruction ";" \
    313       "b .Lend" #label ";" \
    314       ".align 4;" \
    315       #label ": " \
    316       ".word 0x8191881b;" \
    317       ".word 0x18fe9c93;" \
    318       ".word 0x00000000;" \
    319       ".word 0x00000000;" \
    320       ".Lend" #label ":" \
    321       "mov %0, " #RD ";" \
    322       "mov %1, " #RD2 ";" \
    323       "mrs %2, cpsr;" \
    324       : "=&r" (out), "=&r" (out2), "=&r" (cpsr) \
    325       : "r" (gen_cvin(cvin)) \
    326       : #RD, #RD2, "cc", "memory" \
    327     ); \
    328     printf("%s :: rd 0x%08x rd2 0x%08x, cpsr 0x%08x %c%c%c%c\n", \
    329         instruction, out, out2, \
    330 		cpsr & 0xff0f0000, \
    331 		((1<<31) & cpsr) ? 'N' : ' ', \
    332 		((1<<30) & cpsr) ? 'Z' : ' ', \
    333 		((1<<29) & cpsr) ? 'C' : ' ', \
    334 		((1<<28) & cpsr) ? 'V' : ' ' \
    335 		); \
    336 }
    337 
    338 /* helpers */
    339 #define NOCARRY { int cv = 0; {
    340 #define TESTCARRY { int cv = 0; for (cv = 0; cv < 4; cv++) {
    341 #define TESTCARRYEND }}
    342 
    343 ////////////////////////////////////////////////////////////
    344 ////////////////////////////////////////////////////////////
    345 ///////////////////////////////////////////////////////////
    346 ///////////////////////////////////////////////////////////
    347 
    348 __attribute__((noinline))
    349 void test_ldr_pc(void) {
    350     // special case of ldr PC, [rN, +imm?]
    351     printf("tests for instructions modifying pc (ldr pc, add pc)\n");
    352     {
    353         unsigned int out;
    354         unsigned int cpsr;
    355         unsigned char tmpbuff[512]; // we use tmpbuff+432
    356         int cvin = 0;
    357 
    358         __asm__ volatile(
    359             ".thumb;\n"
    360             ".syntax unified                  ;\n"
    361             "msr  cpsr_fs, %3                 ;\n"
    362             "mov  r9, %2                      ;\n"
    363             "movw r2, #:lower16:.ldrwpclabel1 ;\n"
    364             "movt r2, #:upper16:.ldrwpclabel1 ;\n"
    365             "mov  r0, #1                      ;\n"
    366             "orr  r2, r0                      ;\n" // set thumb bit to 1
    367             "str  r2, [r9, +#432]             ;\n"
    368             "bl   .ldrwpclabel_continue       ;\n"
    369             ".align 4                         ;\n"
    370             ".ldrwpclabel1:                   \n"
    371             "mov  r1, #42                     ;\n" // expected output value
    372             "bl   .ldrwpclabel_end            ;\n"
    373             ".ldrwpclabel_continue:           \n"
    374             "ldr.w pc, [r9, +#432]            ;\n"
    375             "mov  r1, #0                      ;\n" // should never get here
    376             ".ldrwpclabel_end:                \n"
    377             "mov  %0, r1                      ;\n"
    378             "mrs  %1, cpsr                    ;\n"
    379             : "=r"(out), "=r"(cpsr)
    380             : "r"(tmpbuff), "r"(gen_cvin(cvin))
    381             : "r9", "r2", "r0", "r1", "cc", "memory"
    382         );
    383 
    384         // print
    385         printf("ldr.w pc, [r9, +#432] :: r1 0x%08x c:v-in %d, "
    386                "cpsr 0x%08x %c%c%c%c\n",        \
    387             out, \
    388             cvin, \
    389             cpsr & 0xff0f0000, \
    390             ((1<<31) & cpsr) ? 'N' : ' ', \
    391             ((1<<30) & cpsr) ? 'Z' : ' ', \
    392             ((1<<29) & cpsr) ? 'C' : ' ', \
    393             ((1<<28) & cpsr) ? 'V' : ' ' \
    394             ); \
    395 
    396     }
    397 }
    398 
    399 static int old_main(void)
    400 {
    401 
    402 	printf("MOV\n");
    403 	TESTINST2("mov  r0, r1", 1, r0, r1, 0);
    404 	TESTINST2("cpy  r0, r1", 1, r0, r1, 0);
    405 	TESTINST2("mov  r0, #0", 0, r0, r1, 0);
    406 	TESTINST2("mov  r0, #1", 0, r0, r1, 0);
    407 	TESTCARRY
    408 	TESTINST2("movs r0, r1", 1, r0, r1, cv);
    409 	TESTINST2("movs r0, r1", 0, r0, r1, cv);
    410 	TESTINST2("movs r0, r1", 0x80000000, r0, r1, cv);
    411 	TESTINST2("movs r0, #0", 0, r0, r1, cv);
    412 	TESTINST2("movs r0, #1", 0, r0, r1, cv);
    413 	TESTCARRYEND
    414 
    415 	printf("MVN\n");
    416 	TESTINST2("mvn  r0, r1", 1, r0, r1, 0);
    417 	TESTCARRY
    418 	TESTINST2("mvns r0, r1", 1, r0, r1, cv);
    419 	TESTINST2("mvns r0, r1", 0, r0, r1, cv);
    420 	TESTINST2("mvns r0, r1", 0x80000000, r0, r1, cv);
    421 	TESTCARRYEND
    422 
    423 	printf("ADD\n");
    424 	TESTINST3("adds r0, r1, r2", 0, 0, r0, r1, r2, 0);
    425 	TESTINST3("adds r0, r1, r2", 0, 1, r0, r1, r2, 0);
    426 	TESTINST3("adds r0, r1, r2", 1, 0, r0, r1, r2, 0);
    427 	TESTINST3("adds r0, r1, r2", 1, 1, r0, r1, r2, 0);
    428 	TESTINST3("adds r0, r1, r2", 0, -1, r0, r1, r2, 0);
    429 	TESTINST3("adds r0, r1, r2", 1, -1, r0, r1, r2, 0);
    430 	TESTINST3("adds r0, r1, r2", 0x7fffffff, 1, r0, r1, r2, 0);
    431 	TESTINST3("adds r0, r1, r2", 0x80000000, -1, r0, r1, r2, 0);
    432 	TESTINST3("adds r0, r1, r2", 0x80000000, 0, r0, r1, r2, 0);
    433 
    434 	printf("ADC\n");
    435 	TESTINST3("adcs r0, r1, r2", 0, 0, r0, r1, r2, 0);
    436 	TESTINST3("adcs r0, r1, r2", 0, 0, r0, r1, r2, 1);
    437 
    438 	printf("LSL\n");
    439 	TESTINST3("lsl  r0, r1, r2", 0xffffffff, 0, r0, r1, r2, 0);
    440 	TESTINST3("lsl  r0, r1, r2", 0xffffffff, 1, r0, r1, r2, 0);
    441 	TESTINST3("lsl  r0, r1, r2", 0xffffffff, 2, r0, r1, r2, 0);
    442 	TESTINST3("lsl  r0, r1, r2", 0xffffffff, 31, r0, r1, r2, 0);
    443 	TESTINST3("lsl  r0, r1, r2", 0xffffffff, 32, r0, r1, r2, 0);
    444 	TESTINST3("lsl  r0, r1, r2", 0xffffffff, 33, r0, r1, r2, 0);
    445 	TESTINST3("lsl  r0, r1, r2", 0xffffffff, 63, r0, r1, r2, 0);
    446 	TESTINST3("lsl  r0, r1, r2", 0xffffffff, 64, r0, r1, r2, 0);
    447 	TESTINST3("lsl  r0, r1, r2", 0xffffffff, 255, r0, r1, r2, 0);
    448 	TESTINST3("lsl  r0, r1, r2", 0xffffffff, 256, r0, r1, r2, 0);
    449 
    450 	TESTINST3("lsl  r0, r1, r2", 0x1, 0, r0, r1, r2, 0);
    451 	TESTINST3("lsl  r0, r1, r2", 0x1, 1, r0, r1, r2, 0);
    452 	TESTINST3("lsl  r0, r1, r2", 0x1, 31, r0, r1, r2, 0);
    453 	TESTINST3("lsl  r0, r1, r2", 0x2, 31, r0, r1, r2, 0);
    454 
    455 	printf("LSLS\n");
    456 	TESTCARRY
    457 	TESTINST3("lsls r0, r1, r2", 0xffffffff, 0, r0, r1, r2, cv);
    458 	TESTINST3("lsls r0, r1, r2", 0xffffffff, 1, r0, r1, r2, cv);
    459 	TESTINST3("lsls r0, r1, r2", 0xffffffff, 2, r0, r1, r2, cv);
    460 	TESTINST3("lsls r0, r1, r2", 0xffffffff, 31, r0, r1, r2, cv);
    461 	TESTINST3("lsls r0, r1, r2", 0xffffffff, 32, r0, r1, r2, cv);
    462 	TESTINST3("lsls r0, r1, r2", 0xffffffff, 33, r0, r1, r2, cv);
    463 	TESTINST3("lsls r0, r1, r2", 0xffffffff, 63, r0, r1, r2, cv);
    464 	TESTINST3("lsls r0, r1, r2", 0xffffffff, 64, r0, r1, r2, cv);
    465 	TESTINST3("lsls r0, r1, r2", 0xffffffff, 255, r0, r1, r2, cv);
    466 	TESTINST3("lsls r0, r1, r2", 0xffffffff, 256, r0, r1, r2, cv);
    467 	TESTINST3("lsls r0, r1, r2", 0x1, 0, r0, r1, r2, cv);
    468 	TESTINST3("lsls r0, r1, r2", 0x1, 1, r0, r1, r2, cv);
    469 	TESTINST3("lsls r0, r1, r2", 0x1, 31, r0, r1, r2, cv);
    470 	TESTINST3("lsls r0, r1, r2", 0x2, 31, r0, r1, r2, cv);
    471 	TESTCARRYEND
    472 
    473 	printf("LSL immediate\n");
    474 	TESTCARRY
    475 	TESTINST2("lsl  r0, r1, #0", 0xffffffff, r0, r1, cv);
    476 	TESTINST2("lsl  r0, r1, #1", 0xffffffff, r0, r1, cv);
    477 	TESTINST2("lsl  r0, r1, #31", 0xffffffff, r0, r1, cv);
    478 	TESTINST2("lsl  r0, r1, #0", 0x1, r0, r1, cv);
    479 	TESTINST2("lsl  r0, r1, #1", 0x1, r0, r1, cv);
    480 	TESTINST2("lsl  r0, r1, #31", 0x1, r0, r1, cv);
    481 	TESTINST2("lsl  r0, r1, #31", 0x2, r0, r1, cv);
    482 	TESTCARRYEND
    483 
    484 	printf("LSLS immediate\n");
    485 	TESTCARRY
    486 	TESTINST2("lsls r0, r1, #0", 0xffffffff, r0, r1, cv);
    487 	TESTINST2("lsls r0, r1, #1", 0xffffffff, r0, r1, cv);
    488 	TESTINST2("lsls r0, r1, #31", 0xffffffff, r0, r1, cv);
    489 	TESTINST2("lsls r0, r1, #0", 0x1, r0, r1, cv);
    490 	TESTINST2("lsls r0, r1, #1", 0x1, r0, r1, cv);
    491 	TESTINST2("lsls r0, r1, #31", 0x1, r0, r1, cv);
    492 	TESTINST2("lsls r0, r1, #31", 0x2, r0, r1, cv);
    493 	TESTCARRYEND
    494 
    495 	printf("LSR\n");
    496 	TESTINST3("lsr  r0, r1, r2", 0xffffffff, 0, r0, r1, r2, 0);
    497 	TESTINST3("lsr  r0, r1, r2", 0xffffffff, 1, r0, r1, r2, 0);
    498 	TESTINST3("lsr  r0, r1, r2", 0xffffffff, 2, r0, r1, r2, 0);
    499 	TESTINST3("lsr  r0, r1, r2", 0xffffffff, 31, r0, r1, r2, 0);
    500 	TESTINST3("lsr  r0, r1, r2", 0xffffffff, 32, r0, r1, r2, 0);
    501 	TESTINST3("lsr  r0, r1, r2", 0xffffffff, 33, r0, r1, r2, 0);
    502 	TESTINST3("lsr  r0, r1, r2", 0xffffffff, 63, r0, r1, r2, 0);
    503 	TESTINST3("lsr  r0, r1, r2", 0xffffffff, 64, r0, r1, r2, 0);
    504 	TESTINST3("lsr  r0, r1, r2", 0xffffffff, 255, r0, r1, r2, 0);
    505 	TESTINST3("lsr  r0, r1, r2", 0xffffffff, 256, r0, r1, r2, 0);
    506 
    507 	printf("LSRS\n");
    508 	TESTCARRY
    509 	TESTINST3("lsrs r0, r1, r2", 0xffffffff, 0, r0, r1, r2, cv);
    510 	TESTINST3("lsrs r0, r1, r2", 0xffffffff, 1, r0, r1, r2, cv);
    511 	TESTINST3("lsrs r0, r1, r2", 0xffffffff, 2, r0, r1, r2, cv);
    512 	TESTINST3("lsrs r0, r1, r2", 0xffffffff, 31, r0, r1, r2, cv);
    513 	TESTINST3("lsrs r0, r1, r2", 0xffffffff, 32, r0, r1, r2, cv);
    514 	TESTINST3("lsrs r0, r1, r2", 0xffffffff, 33, r0, r1, r2, cv);
    515 	TESTINST3("lsrs r0, r1, r2", 0xffffffff, 63, r0, r1, r2, cv);
    516 	TESTINST3("lsrs r0, r1, r2", 0xffffffff, 64, r0, r1, r2, cv);
    517 	TESTINST3("lsrs r0, r1, r2", 0xffffffff, 255, r0, r1, r2, cv);
    518 	TESTCARRYEND
    519 
    520 	printf("LSR immediate\n");
    521 	TESTINST2("lsr  r0, r1, #0", 0xffffffff, r0, r1, 0);
    522 	TESTINST2("lsr  r0, r1, #1", 0xffffffff, r0, r1, 0);
    523 	TESTINST2("lsr  r0, r1, #31", 0xffffffff, r0, r1, 0);
    524 	TESTINST2("lsr  r0, r1, #32", 0xffffffff, r0, r1, 0);
    525 	TESTINST2("lsr  r0, r1, #16", 0x00010000, r0, r1, 0);
    526 	TESTINST2("lsr  r0, r1, #17", 0x00010000, r0, r1, 0);
    527 	TESTINST2("lsr  r0, r1, #18", 0x00010000, r0, r1, 0);
    528 
    529 	printf("LSRS immediate\n");
    530 	TESTCARRY
    531 	TESTINST2("lsrs r0, r1, #0", 0xffffffff, r0, r1, cv);
    532 	TESTINST2("lsrs r0, r1, #1", 0xffffffff, r0, r1, cv);
    533 	TESTINST2("lsrs r0, r1, #31", 0xffffffff, r0, r1, cv);
    534 	TESTINST2("lsrs r0, r1, #32", 0xffffffff, r0, r1, cv);
    535 	TESTINST2("lsrs r0, r1, #16", 0x00010000, r0, r1, cv);
    536 	TESTINST2("lsrs r0, r1, #17", 0x00010000, r0, r1, cv);
    537 	TESTINST2("lsrs r0, r1, #18", 0x00010000, r0, r1, cv);
    538 	TESTCARRYEND
    539 
    540 	printf("ASR\n");
    541 	TESTCARRY
    542 	TESTINST3("asr  r0, r1, r2", 0xffffffff, 0, r0, r1, r2, cv);
    543 	TESTINST3("asr  r0, r1, r2", 0xffffffff, 1, r0, r1, r2, cv);
    544 	TESTINST3("asr  r0, r1, r2", 0xffffffff, 2, r0, r1, r2, cv);
    545 	TESTINST3("asr  r0, r1, r2", 0xffffffff, 31, r0, r1, r2, cv);
    546 	TESTINST3("asr  r0, r1, r2", 0xffffffff, 32, r0, r1, r2, cv);
    547 	TESTINST3("asr  r0, r1, r2", 0xffffffff, 33, r0, r1, r2, cv);
    548 	TESTINST3("asr  r0, r1, r2", 0xffffffff, 63, r0, r1, r2, cv);
    549 	TESTINST3("asr  r0, r1, r2", 0xffffffff, 64, r0, r1, r2, cv);
    550 	TESTINST3("asr  r0, r1, r2", 0xffffffff, 255, r0, r1, r2, cv);
    551 	TESTINST3("asr  r0, r1, r2", 0xffffffff, 256, r0, r1, r2, cv);
    552 	TESTINST3("asr  r0, r1, r2", 0x7fffffff, 0, r0, r1, r2, cv);
    553 	TESTINST3("asr  r0, r1, r2", 0x7fffffff, 1, r0, r1, r2, cv);
    554 	TESTINST3("asr  r0, r1, r2", 0x7fffffff, 2, r0, r1, r2, cv);
    555 	TESTINST3("asr  r0, r1, r2", 0x7fffffff, 31, r0, r1, r2, cv);
    556 	TESTINST3("asr  r0, r1, r2", 0x7fffffff, 32, r0, r1, r2, cv);
    557 	TESTINST3("asr  r0, r1, r2", 0x7fffffff, 33, r0, r1, r2, cv);
    558 	TESTINST3("asr  r0, r1, r2", 0x7fffffff, 63, r0, r1, r2, cv);
    559 	TESTINST3("asr  r0, r1, r2", 0x7fffffff, 64, r0, r1, r2, cv);
    560 	TESTINST3("asr  r0, r1, r2", 0x7fffffff, 255, r0, r1, r2, cv);
    561 	TESTINST3("asr  r0, r1, r2", 0x7fffffff, 256, r0, r1, r2, cv);
    562 	TESTCARRYEND
    563 
    564 	printf("ASRS\n");
    565 	TESTCARRY
    566 	TESTINST3("asrs r0, r1, r2", 0xffffffff, 0, r0, r1, r2, cv);
    567 	TESTINST3("asrs r0, r1, r2", 0xffffffff, 1, r0, r1, r2, cv);
    568 	TESTINST3("asrs r0, r1, r2", 0xffffffff, 2, r0, r1, r2, cv);
    569 	TESTINST3("asrs r0, r1, r2", 0xffffffff, 31, r0, r1, r2, cv);
    570 	TESTINST3("asrs r0, r1, r2", 0xffffffff, 32, r0, r1, r2, cv);
    571 	TESTINST3("asrs r0, r1, r2", 0xffffffff, 33, r0, r1, r2, cv);
    572 	TESTINST3("asrs r0, r1, r2", 0xffffffff, 63, r0, r1, r2, cv);
    573 	TESTINST3("asrs r0, r1, r2", 0xffffffff, 64, r0, r1, r2, cv);
    574 	TESTINST3("asrs r0, r1, r2", 0xffffffff, 255, r0, r1, r2, cv);
    575 	TESTINST3("asrs r0, r1, r2", 0xffffffff, 256, r0, r1, r2, cv);
    576 	TESTINST3("asrs r0, r1, r2", 0x7fffffff, 0, r0, r1, r2, cv);
    577 	TESTINST3("asrs r0, r1, r2", 0x7fffffff, 1, r0, r1, r2, cv);
    578 	TESTINST3("asrs r0, r1, r2", 0x7fffffff, 2, r0, r1, r2, cv);
    579 	TESTINST3("asrs r0, r1, r2", 0x7fffffff, 31, r0, r1, r2, cv);
    580 	TESTINST3("asrs r0, r1, r2", 0x7fffffff, 32, r0, r1, r2, cv);
    581 	TESTINST3("asrs r0, r1, r2", 0x7fffffff, 33, r0, r1, r2, cv);
    582 	TESTINST3("asrs r0, r1, r2", 0x7fffffff, 63, r0, r1, r2, cv);
    583 	TESTINST3("asrs r0, r1, r2", 0x7fffffff, 64, r0, r1, r2, cv);
    584 	TESTINST3("asrs r0, r1, r2", 0x7fffffff, 255, r0, r1, r2, cv);
    585 	TESTINST3("asrs r0, r1, r2", 0x7fffffff, 256, r0, r1, r2, cv);
    586 	TESTCARRYEND
    587 
    588 	TESTCARRY
    589 	TESTINST3("asrs r0, r1, r2", 0x8, 0, r0, r1, r2, cv);
    590 	TESTINST3("asrs r0, r1, r2", 0x8, 1, r0, r1, r2, cv);
    591 	TESTINST3("asrs r0, r1, r2", 0x8, 2, r0, r1, r2, cv);
    592 	TESTINST3("asrs r0, r1, r2", 0x8, 3, r0, r1, r2, cv);
    593 	TESTINST3("asrs r0, r1, r2", 0x8, 4, r0, r1, r2, cv);
    594 	TESTINST3("asrs r0, r1, r2", 0x8, 5, r0, r1, r2, cv);
    595 	TESTCARRYEND
    596 
    597 	TESTINST3("asrs r0, r1, r2", 0x80000001, 1, r0, r1, r2, 0);
    598 	TESTINST3("asrs r0, r1, r2", 0x80000001, 2, r0, r1, r2, 0);
    599 
    600 	printf("ASR immediate\n");
    601 	TESTINST2("asr  r0, r1, #0", 0xffffffff, r0, r1, 0);
    602 	TESTINST2("asr  r0, r1, #1", 0xffffffff, r0, r1, 0);
    603 	TESTINST2("asr  r0, r1, #31", 0xffffffff, r0, r1, 0);
    604 	TESTINST2("asr  r0, r1, #32", 0xffffffff, r0, r1, 0);
    605 	TESTINST2("asr  r0, r1, #0", 0x7fffffff, r0, r1, 0);
    606 	TESTINST2("asr  r0, r1, #1", 0x7fffffff, r0, r1, 0);
    607 	TESTINST2("asr  r0, r1, #31", 0x7fffffff, r0, r1, 0);
    608 	TESTINST2("asr  r0, r1, #32", 0x7fffffff, r0, r1, 0);
    609 	TESTINST2("asr  r0, r1, #16", 0x00010000, r0, r1, 0);
    610 	TESTINST2("asr  r0, r1, #17", 0x00010000, r0, r1, 0);
    611 	TESTINST2("asr  r0, r1, #18", 0x00010000, r0, r1, 0);
    612 
    613 	printf("ASRS immediate\n");
    614 	TESTCARRY
    615 	TESTINST2("asrs r0, r1, #0", 0xffffffff, r0, r1, cv);
    616 	TESTINST2("asrs r0, r1, #1", 0xffffffff, r0, r1, cv);
    617 	TESTINST2("asrs r0, r1, #31", 0xffffffff, r0, r1, cv);
    618 	TESTINST2("asrs r0, r1, #32", 0xffffffff, r0, r1, cv);
    619 	TESTINST2("asrs r0, r1, #0", 0x7fffffff, r0, r1, cv);
    620 	TESTINST2("asrs r0, r1, #1", 0x7fffffff, r0, r1, cv);
    621 	TESTINST2("asrs r0, r1, #31", 0x7fffffff, r0, r1, cv);
    622 	TESTINST2("asrs r0, r1, #32", 0x7fffffff, r0, r1, cv);
    623 	TESTINST2("asrs r0, r1, #16", 0x00010000, r0, r1, cv);
    624 	TESTINST2("asrs r0, r1, #17", 0x00010000, r0, r1, cv);
    625 	TESTINST2("asrs r0, r1, #18", 0x00010000, r0, r1, cv);
    626 	TESTCARRYEND
    627 
    628     printf("literal access [PC+#imm]\n");
    629     NOCARRY
    630     // this should result in r1=0
    631     TESTINSTPCMISALIGNED("adr.w r1, label_magic_adrw; and r1, r1, #0x3",
    632                         r1, label_magic_adrw, cv);
    633     // omitting LDC/LDC2
    634     TESTINSTPCMISALIGNED("ldr r1, label_magic_ldr",
    635                          r1, label_magic_ldr, cv);
    636     TESTINSTPCMISALIGNED("ldrb r1, label_magic_ldrb",
    637                          r1, label_magic_ldrb, cv);
    638     TESTINSTPCMISALIGNED_2OUT("ldrd r0, r1, label_magic_ldrd",
    639                               r0, r1, label_magic_ldrd, cv);
    640     TESTINSTPCMISALIGNED("ldrh r1, label_magic_ldrh",
    641                          r1, label_magic_ldrh, cv);
    642     TESTINSTPCMISALIGNED("ldrsb r1, label_magic_ldrsb",
    643                          r1, label_magic_ldrsb, cv);
    644     TESTINSTPCMISALIGNED("ldrsh r1, label_magic_ldrsh",
    645                          r1, label_magic_ldrsh, cv);
    646     // omitting PLD/PLI
    647     TESTINSTPCMISALIGNED_DWORDOUT("vldr d0, label_magic_vldr",
    648                                   label_magic_vldr, cv, "d0");
    649 
    650     TESTCARRYEND
    651 
    652     test_ldr_pc();
    653 #if 0
    654 	printf("ROR\n");
    655 	TESTCARRY
    656 	TESTINST3("ror  r0, r1, r2", 0x00088000, 0, r0, r1, r2, cv);
    657 	TESTINST3("ror  r0, r1, r2", 0x80088000, 1, r0, r1, r2, cv);
    658 	TESTINST3("ror  r0, r1, r2", 0x00088000, 1, r0, r1, r2, cv);
    659 	TESTINST3("ror  r0, r1, r2", 0x00088000, 2, r0, r1, r2, cv);
    660 	TESTINST3("ror  r0, r1, r2", 0x00088000, 31, r0, r1, r2, cv);
    661 	TESTINST3("ror  r0, r1, r2", 0x00088000, 32, r0, r1, r2, cv);
    662 	TESTINST3("ror  r0, r1, r2", 0x00088000, 33, r0, r1, r2, cv);
    663 	TESTINST3("ror  r0, r1, r2", 0x00088000, 63, r0, r1, r2, cv);
    664 	TESTINST3("ror  r0, r1, r2", 0x00088000, 64, r0, r1, r2, cv);
    665 	TESTINST3("ror  r0, r1, r2", 0x00088000, 255, r0, r1, r2, cv);
    666 	TESTINST3("ror  r0, r1, r2", 0x00088000, 256, r0, r1, r2, cv);
    667 	TESTINST3("ror  r0, r1, r2", 0x80088000, 256, r0, r1, r2, cv);
    668 	TESTINST3("ror  r0, r1, r2", 0x00088000, 257, r0, r1, r2, cv);
    669 	TESTCARRYEND
    670 
    671 	printf("RORS\n");
    672 	TESTCARRY
    673 	TESTINST3("rors r0, r1, r2", 0x00088000, 0, r0, r1, r2, cv);
    674 	TESTINST3("rors r0, r1, r2", 0x80088000, 0, r0, r1, r2, cv);
    675 	TESTINST3("rors r0, r1, r2", 0x00088000, 1, r0, r1, r2, cv);
    676 	TESTINST3("rors r0, r1, r2", 0x00088000, 2, r0, r1, r2, cv);
    677 	TESTINST3("rors r0, r1, r2", 0x00088000, 31, r0, r1, r2, cv);
    678 	TESTINST3("rors r0, r1, r2", 0x00088000, 32, r0, r1, r2, cv);
    679 	TESTINST3("rors r0, r1, r2", 0x00088000, 33, r0, r1, r2, cv);
    680 	TESTINST3("rors r0, r1, r2", 0x00088000, 63, r0, r1, r2, cv);
    681 	TESTINST3("rors r0, r1, r2", 0x00088000, 64, r0, r1, r2, cv);
    682 	TESTINST3("rors r0, r1, r2", 0x00088000, 255, r0, r1, r2, cv);
    683 	TESTINST3("rors r0, r1, r2", 0x00088000, 256, r0, r1, r2, cv);
    684 	TESTINST3("rors r0, r1, r2", 0x80088000, 256, r0, r1, r2, cv);
    685 	TESTINST3("rors r0, r1, r2", 0x00088000, 257, r0, r1, r2, cv);
    686 	TESTCARRYEND
    687 
    688 	printf("ROR immediate\n");
    689 	TESTCARRY
    690 	TESTINST2("ror  r0, r1, #0", 0x00088000, r0, r1, cv);
    691 	TESTINST2("ror  r0, r1, #1", 0x00088000, r0, r1, cv);
    692 	TESTINST2("ror  r0, r1, #31", 0x00088000, r0, r1, cv);
    693 	TESTINST2("ror  r0, r1, #16", 0x00010000, r0, r1, cv);
    694 	TESTINST2("ror  r0, r1, #17", 0x00010000, r0, r1, cv);
    695 	TESTINST2("ror  r0, r1, #18", 0x00010000, r0, r1, cv);
    696 	TESTCARRYEND
    697 
    698 	printf("RORS immediate\n");
    699 	TESTCARRY
    700 	TESTINST2("rors r0, r1, #0", 0x00088000, r0, r1, cv);
    701 	TESTINST2("rors r0, r1, #1", 0x00088000, r0, r1, cv);
    702 	TESTINST2("rors r0, r1, #31", 0x00088000, r0, r1, cv);
    703 	TESTINST2("rors r0, r1, #16", 0x00010000, r0, r1, cv);
    704 	TESTINST2("rors r0, r1, #17", 0x00010000, r0, r1, cv);
    705 	TESTINST2("rors r0, r1, #18", 0x00010000, r0, r1, cv);
    706 	TESTCARRYEND
    707 #endif
    708 #if 0
    709 	printf("shift with barrel shifter\n");
    710 	TESTCARRY
    711 	TESTINST4("add  r0, r1, r2, lsl r3", 0, 0xffffffff, 0, r0, r1, r2, r3, cv);
    712 	TESTINST4("add  r0, r1, r2, lsl r3", 0, 0xffffffff, 1, r0, r1, r2, r3, cv);
    713 	TESTINST4("add  r0, r1, r2, lsl r3", 0, 0xffffffff, 31, r0, r1, r2, r3, cv);
    714 	TESTINST4("add  r0, r1, r2, lsl r3", 0, 0xffffffff, 32, r0, r1, r2, r3, cv);
    715 	TESTINST4("add  r0, r1, r2, lsl r3", 0, 0xffffffff, 255, r0, r1, r2, r3, cv);
    716 	TESTINST4("add  r0, r1, r2, lsl r3", 0, 0xffffffff, 256, r0, r1, r2, r3, cv);
    717 	TESTINST4("add  r0, r1, r2, lsr r3", 0, 0xffffffff, 0, r0, r1, r2, r3, cv);
    718 	TESTINST4("add  r0, r1, r2, lsr r3", 0, 0xffffffff, 1, r0, r1, r2, r3, cv);
    719 	TESTINST4("add  r0, r1, r2, lsr r3", 0, 0xffffffff, 31, r0, r1, r2, r3, cv);
    720 	TESTINST4("add  r0, r1, r2, lsr r3", 0, 0xffffffff, 32, r0, r1, r2, r3, cv);
    721 	TESTINST4("add  r0, r1, r2, lsr r3", 0, 0xffffffff, 255, r0, r1, r2, r3, cv);
    722 	TESTINST4("add  r0, r1, r2, lsr r3", 0, 0xffffffff, 256, r0, r1, r2, r3, cv);
    723 	TESTINST4("add  r0, r1, r2, asr r3", 0, 0x7fffffff, 0, r0, r1, r2, r3, cv);
    724 	TESTINST4("add  r0, r1, r2, asr r3", 0, 0x7fffffff, 1, r0, r1, r2, r3, cv);
    725 	TESTINST4("add  r0, r1, r2, asr r3", 0, 0x7fffffff, 31, r0, r1, r2, r3, cv);
    726 	TESTINST4("add  r0, r1, r2, asr r3", 0, 0x7fffffff, 32, r0, r1, r2, r3, cv);
    727 	TESTINST4("add  r0, r1, r2, asr r3", 0, 0x7fffffff, 255, r0, r1, r2, r3, cv);
    728 	TESTINST4("add  r0, r1, r2, asr r3", 0, 0x7fffffff, 256, r0, r1, r2, r3, cv);
    729 	TESTINST4("add  r0, r1, r2, lsr r3", 0, 0xffffffff, 256, r0, r1, r2, r3, cv);
    730 	TESTCARRYEND
    731 
    732 	TESTCARRY
    733 	TESTINST4("add  r0, r1, r2, asr r3", 0, 0x8, 0, r0, r1, r2, r3, cv);
    734 	TESTINST4("add  r0, r1, r2, asr r3", 0, 0x8, 1, r0, r1, r2, r3, cv);
    735 	TESTINST4("add  r0, r1, r2, asr r3", 0, 0x8, 2, r0, r1, r2, r3, cv);
    736 	TESTINST4("add  r0, r1, r2, asr r3", 0, 0x8, 3, r0, r1, r2, r3, cv);
    737 	TESTINST4("add  r0, r1, r2, asr r3", 0, 0x8, 4, r0, r1, r2, r3, cv);
    738 	TESTINST4("add  r0, r1, r2, asr r3", 0, 0x8, 5, r0, r1, r2, r3, cv);
    739 	TESTCARRYEND
    740 
    741 	TESTCARRY
    742 	TESTINST4("add  r0, r1, r2, ror r3", 0, 0x00088000, 0, r0, r1, r2, r3, cv);
    743 	TESTINST4("add  r0, r1, r2, ror r3", 0, 0x80088000, 0, r0, r1, r2, r3, cv);
    744 	TESTINST4("add  r0, r1, r2, ror r3", 0, 0x00088000, 1, r0, r1, r2, r3, cv);
    745 	TESTINST4("add  r0, r1, r2, ror r3", 0, 0x00088000, 31, r0, r1, r2, r3, cv);
    746 	TESTINST4("add  r0, r1, r2, ror r3", 0, 0x00088000, 32, r0, r1, r2, r3, cv);
    747 	TESTINST4("add  r0, r1, r2, ror r3", 0, 0x00088000, 255, r0, r1, r2, r3, cv);
    748 	TESTINST4("add  r0, r1, r2, ror r3", 0, 0x00088000, 256, r0, r1, r2, r3, cv);
    749 	TESTINST4("add  r0, r1, r2, ror r3", 0, 0x80088000, 256, r0, r1, r2, r3, cv);
    750 	TESTINST4("add  r0, r1, r2, ror r3", 0, 0x00088000, 257, r0, r1, r2, r3, cv);
    751 	TESTCARRYEND
    752 #endif
    753 #if 0
    754 	TESTCARRY
    755 	TESTINST4("adds r0, r1, r2, lsl r3", 0, 0xffffffff, 0, r0, r1, r2, r3, cv);
    756 	TESTINST4("adds r0, r1, r2, lsl r3", 0, 0xffffffff, 1, r0, r1, r2, r3, cv);
    757 	TESTINST4("adds r0, r1, r2, lsl r3", 0, 0xffffffff, 31, r0, r1, r2, r3, cv);
    758 	TESTINST4("adds r0, r1, r2, lsl r3", 0, 0xffffffff, 32, r0, r1, r2, r3, cv);
    759 	TESTINST4("adds r0, r1, r2, lsl r3", 0, 0xffffffff, 255, r0, r1, r2, r3, cv);
    760 	TESTINST4("adds r0, r1, r2, lsl r3", 0, 0xffffffff, 256, r0, r1, r2, r3, cv);
    761 	TESTINST4("adds r0, r1, r2, lsr r3", 0, 0xffffffff, 0, r0, r1, r2, r3, cv);
    762 	TESTINST4("adds r0, r1, r2, lsr r3", 0, 0xffffffff, 1, r0, r1, r2, r3, cv);
    763 	TESTINST4("adds r0, r1, r2, lsr r3", 0, 0xffffffff, 31, r0, r1, r2, r3, cv);
    764 	TESTINST4("adds r0, r1, r2, lsr r3", 0, 0xffffffff, 32, r0, r1, r2, r3, cv);
    765 	TESTINST4("adds r0, r1, r2, lsr r3", 0, 0xffffffff, 255, r0, r1, r2, r3, cv);
    766 	TESTINST4("adds r0, r1, r2, lsr r3", 0, 0xffffffff, 256, r0, r1, r2, r3, cv);
    767 
    768 	TESTINST4("adds r0, r1, r2, ror r3", 0, 0x00088000, 0, r0, r1, r2, r3, cv);
    769 	TESTINST4("adds r0, r1, r2, ror r3", 0, 0x80088000, 0, r0, r1, r2, r3, cv);
    770 	TESTINST4("adds r0, r1, r2, ror r3", 0, 0x00088000, 1, r0, r1, r2, r3, cv);
    771 	TESTINST4("adds r0, r1, r2, ror r3", 0, 0x00088000, 31, r0, r1, r2, r3, cv);
    772 	TESTINST4("adds r0, r1, r2, ror r3", 0, 0x00088000, 32, r0, r1, r2, r3, cv);
    773 	TESTINST4("adds r0, r1, r2, ror r3", 0, 0x00088000, 255, r0, r1, r2, r3, cv);
    774 	TESTINST4("adds r0, r1, r2, ror r3", 0, 0x00088000, 256, r0, r1, r2, r3, cv);
    775 	TESTINST4("adds r0, r1, r2, ror r3", 0, 0x80088000, 256, r0, r1, r2, r3, cv);
    776 	TESTINST4("adds r0, r1, r2, ror r3", 0, 0x00088000, 257, r0, r1, r2, r3, cv);
    777 	TESTCARRYEND
    778 #endif
    779 
    780 #if 0
    781 	TESTCARRY
    782 	TESTINST4("adcs r0, r1, r2, lsl r3", 0, 0xffffffff, 0, r0, r1, r2, r3, cv);
    783 	TESTINST4("adcs r0, r1, r2, lsr r3", 0, 0xffffffff, 0, r0, r1, r2, r3, cv);
    784 	TESTINST4("adcs r0, r1, r2, lsl r3", 0, 0xffffffff, 1, r0, r1, r2, r3, cv);
    785 	TESTINST4("adcs r0, r1, r2, lsr r3", 0, 0xffffffff, 1, r0, r1, r2, r3, cv);
    786 	TESTCARRYEND
    787 #endif
    788 
    789 	printf("MUL\n");
    790 	TESTINST3("mul  r0, r1, r2", 0, 0, r0, r1, r2, 0);
    791 	TESTINST3("mul  r0, r1, r2", 0xffffffff, 0, r0, r1, r2, 0);
    792 	TESTINST3("mul  r0, r1, r2", 0, 0xffffffff, r0, r1, r2, 0);
    793 	TESTINST3("mul  r0, r1, r2", 0xffffffff, 0xffffffff, r0, r1, r2, 0);
    794 	TESTINST3("mul  r0, r1, r2", 0x7fffffff, 0x7fffffff, r0, r1, r2, 0);
    795 	TESTINST3("mul  r0, r1, r2", 0x0000ffff, 0x0000ffff, r0, r1, r2, 0);
    796 
    797 #if 0
    798 	printf("MULS\n");
    799 	TESTINST3("muls r0, r1, r2", 0, 0, r0, r1, r2, 0);
    800 	TESTINST3("muls r0, r1, r2", 0xffffffff, 0, r0, r1, r2, 0);
    801 	TESTINST3("muls r0, r1, r2", 0, 0xffffffff, r0, r1, r2, 0);
    802 	TESTINST3("muls r0, r1, r2", 0xffffffff, 0xffffffff, r0, r1, r2, 0);
    803 	TESTINST3("muls r0, r1, r2", 0x7fffffff, 0x7fffffff, r0, r1, r2, 0);
    804 	TESTINST3("muls r0, r1, r2", 0x0000ffff, 0x0000ffff, r0, r1, r2, 0);
    805 #endif
    806 
    807 	printf("MLA\n");
    808 	TESTINST4("mla  r0, r1, r2, r3", 0, 0, 1, r0, r1, r2, r3, 0);
    809 	TESTINST4("mla  r0, r1, r2, r3", 0xffffffff, 0, 1, r0, r1, r2, r3, 0);
    810 	TESTINST4("mla  r0, r1, r2, r3", 0, 0xffffffff, 1, r0, r1, r2, r3, 0);
    811 	TESTINST4("mla  r0, r1, r2, r3", 0xffffffff, 0xffffffff, 1, r0, r1, r2, r3, 0);
    812 	TESTINST4("mla  r0, r1, r2, r3", 0x7fffffff, 0x7fffffff, 1, r0, r1, r2, r3, 0);
    813 	TESTINST4("mla  r0, r1, r2, r3", 0x0000ffff, 0x0000ffff, 1, r0, r1, r2, r3, 0);
    814 
    815 #if 0
    816 	printf("MLAS\n");
    817 	TESTINST4("mlas r0, r1, r2, r3", 0, 0, 1, r0, r1, r2, r3, 0);
    818 	TESTINST4("mlas r0, r1, r2, r3", 0xffffffff, 0, 1, r0, r1, r2, r3, 0);
    819 	TESTINST4("mlas r0, r1, r2, r3", 0, 0xffffffff, 1, r0, r1, r2, r3, 0);
    820 	TESTINST4("mlas r0, r1, r2, r3", 0xffffffff, 0xffffffff, 1, r0, r1, r2, r3, 0);
    821 	TESTINST4("mlas r0, r1, r2, r3", 0x7fffffff, 0x7fffffff, 1, r0, r1, r2, r3, 0);
    822 	TESTINST4("mlas r0, r1, r2, r3", 0x0000ffff, 0x0000ffff, 1, r0, r1, r2, r3, 0);
    823 #endif
    824 
    825 	printf("MLS\n");
    826 	TESTINST4("mls  r0, r1, r2, r3", 0, 0, 1, r0, r1, r2, r3, 0);
    827 	TESTINST4("mls  r0, r1, r2, r3", 0xffffffff, 0, 1, r0, r1, r2, r3, 0);
    828 	TESTINST4("mls  r0, r1, r2, r3", 0, 0xffffffff, 1, r0, r1, r2, r3, 0);
    829 	TESTINST4("mls  r0, r1, r2, r3", 0xffffffff, 0xffffffff, 1, r0, r1, r2, r3, 0);
    830 	TESTINST4("mls  r0, r1, r2, r3", 0x7fffffff, 0x7fffffff, 1, r0, r1, r2, r3, 0);
    831 	TESTINST4("mls  r0, r1, r2, r3", 0x0000ffff, 0x0000ffff, 1, r0, r1, r2, r3, 0);
    832 
    833 	printf("UMULL\n");
    834 	TESTINST4_2OUT("umull  r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
    835 	TESTINST4_2OUT("umull  r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
    836 	TESTINST4_2OUT("umull  r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
    837 	TESTINST4_2OUT("umull  r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
    838 	TESTINST4_2OUT("umull  r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
    839 	TESTINST4_2OUT("umull  r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
    840 #if 0
    841 	TESTINST4_2OUT("umulls r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
    842 	TESTINST4_2OUT("umulls r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
    843 	TESTINST4_2OUT("umulls r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
    844 	TESTINST4_2OUT("umulls r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
    845 	TESTINST4_2OUT("umulls r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
    846 	TESTINST4_2OUT("umulls r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
    847 #endif
    848 	printf("SMULL\n");
    849 	TESTINST4_2OUT("smull  r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
    850 	TESTINST4_2OUT("smull  r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
    851 	TESTINST4_2OUT("smull  r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
    852 	TESTINST4_2OUT("smull  r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
    853 	TESTINST4_2OUT("smull  r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
    854 	TESTINST4_2OUT("smull  r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
    855 #if 0
    856 	TESTINST4_2OUT("smulls r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
    857 	TESTINST4_2OUT("smulls r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
    858 	TESTINST4_2OUT("smulls r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
    859 	TESTINST4_2OUT("smulls r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
    860 	TESTINST4_2OUT("smulls r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
    861 	TESTINST4_2OUT("smulls r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
    862 #endif
    863 
    864 #if 0
    865 	printf("UMLAL\n");
    866 	TESTINST4_2OUT("umlal  r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
    867 	TESTINST4_2OUT("umlal  r0, r1, r2, r3", 0, 1, 0, 0, r0, r1, r2, r3, 0);
    868 	TESTINST4_2OUT("umlal  r0, r1, r2, r3", 1, 1, 0, 0, r0, r1, r2, r3, 0);
    869 	TESTINST4_2OUT("umlal  r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0, r1, r2, r3, 0);
    870 	TESTINST4_2OUT("umlal  r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
    871 	TESTINST4_2OUT("umlal  r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
    872 	TESTINST4_2OUT("umlal  r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
    873 	TESTINST4_2OUT("umlal  r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
    874 	TESTINST4_2OUT("umlal  r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
    875 #endif
    876 #if 0
    877 	TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
    878 	TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 1, 0, 0, r0, r1, r2, r3, 0);
    879 	TESTINST4_2OUT("umlals r0, r1, r2, r3", 1, 1, 0, 0, r0, r1, r2, r3, 0);
    880 	TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0, r1, r2, r3, 0);
    881 	TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
    882 	TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
    883 	TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
    884 	TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
    885 	TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
    886 #endif
    887 #if 0
    888 	printf("SMLAL\n");
    889 	TESTINST4_2OUT("smlal  r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
    890 	TESTINST4_2OUT("smlal  r0, r1, r2, r3", 0, 1, 0, 0, r0, r1, r2, r3, 0);
    891 	TESTINST4_2OUT("smlal  r0, r1, r2, r3", 1, 1, 0, 0, r0, r1, r2, r3, 0);
    892 	TESTINST4_2OUT("smlal  r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0, r1, r2, r3, 0);
    893 	TESTINST4_2OUT("smlal  r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
    894 	TESTINST4_2OUT("smlal  r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
    895 	TESTINST4_2OUT("smlal  r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
    896 	TESTINST4_2OUT("smlal  r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
    897 	TESTINST4_2OUT("smlal  r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
    898 #endif
    899 #if 0
    900 	TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
    901 	TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 1, 0, 0, r0, r1, r2, r3, 0);
    902 	TESTINST4_2OUT("smlals r0, r1, r2, r3", 1, 1, 0, 0, r0, r1, r2, r3, 0);
    903 	TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0, r1, r2, r3, 0);
    904 	TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
    905 	TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
    906 	TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
    907 	TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
    908 	TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
    909 #endif
    910 
    911 	printf("SMLALD\n");
    912 	TESTINST4_2OUT("smlald  r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
    913 	TESTINST4_2OUT("smlald  r0, r1, r2, r3", 0, 1, 0, 0, r0, r1, r2, r3, 0);
    914 	TESTINST4_2OUT("smlald  r0, r1, r2, r3", 1, 1, 0, 0, r0, r1, r2, r3, 0);
    915 	TESTINST4_2OUT("smlald  r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0, r1, r2, r3, 0);
    916 	TESTINST4_2OUT("smlald  r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
    917 	TESTINST4_2OUT("smlald  r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
    918 	TESTINST4_2OUT("smlald  r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
    919 	TESTINST4_2OUT("smlald  r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
    920 	TESTINST4_2OUT("smlald  r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
    921         TESTINST4_2OUT("smlald  r0, r1, r2, r3", 0xfff4ffff, 0xff8fff3f, 0xfffff6ff, 0xfff9ffff, r0, r1, r2, r3, 0);
    922 
    923 	TESTINST4_2OUT("smlaldx r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
    924 	TESTINST4_2OUT("smlaldx r0, r1, r2, r3", 0, 1, 0, 0, r0, r1, r2, r3, 0);
    925 	TESTINST4_2OUT("smlaldx r0, r1, r2, r3", 1, 1, 0, 0, r0, r1, r2, r3, 0);
    926 	TESTINST4_2OUT("smlaldx r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0, r1, r2, r3, 0);
    927 	TESTINST4_2OUT("smlaldx r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
    928 	TESTINST4_2OUT("smlaldx r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
    929 	TESTINST4_2OUT("smlaldx r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
    930 	TESTINST4_2OUT("smlaldx r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
    931 	TESTINST4_2OUT("smlaldx r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
    932        TESTINST4_2OUT("smlaldx r0, r1, r2, r3", 0xfff4ffff, 0xff8fff3f, 0xfffff6ff, 0xfff9ffff, r0, r1, r2, r3, 0);
    933 
    934 	printf("SMLSLD\n");
    935 	TESTINST4_2OUT("smlsld  r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
    936 	TESTINST4_2OUT("smlsld  r0, r1, r2, r3", 0, 1, 0, 0, r0, r1, r2, r3, 0);
    937 	TESTINST4_2OUT("smlsld  r0, r1, r2, r3", 1, 1, 0, 0, r0, r1, r2, r3, 0);
    938 	TESTINST4_2OUT("smlsld  r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0, r1, r2, r3, 0);
    939 	TESTINST4_2OUT("smlsld  r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
    940 	TESTINST4_2OUT("smlsld  r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
    941 	TESTINST4_2OUT("smlsld  r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
    942 	TESTINST4_2OUT("smlsld  r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
    943 	TESTINST4_2OUT("smlsld  r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
    944         TESTINST4_2OUT("smlsld  r0, r1, r2, r3", 0xfff4ffff, 0xff8fff3f, 0xfffff6ff, 0xfff9ffff, r0, r1, r2, r3, 0);
    945 	TESTINST4_2OUT("smlsldx r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
    946 	TESTINST4_2OUT("smlsldx r0, r1, r2, r3", 0, 1, 0, 0, r0, r1, r2, r3, 0);
    947 	TESTINST4_2OUT("smlsldx r0, r1, r2, r3", 1, 1, 0, 0, r0, r1, r2, r3, 0);
    948 	TESTINST4_2OUT("smlsldx r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0, r1, r2, r3, 0);
    949 	TESTINST4_2OUT("smlsldx r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
    950 	TESTINST4_2OUT("smlsldx r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
    951 	TESTINST4_2OUT("smlsldx r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
    952 	TESTINST4_2OUT("smlsldx r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
    953 	TESTINST4_2OUT("smlsldx r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
    954         TESTINST4_2OUT("smlsldx r0, r1, r2, r3", 0xfff4ffff, 0xff8fff3f, 0xfffff6ff, 0xfff9ffff, r0, r1, r2, r3, 0);
    955 
    956 	printf("CLZ\n");
    957 	TESTCARRY
    958 	TESTINST2("clz  r0, r1", 0, r0, r1, cv);
    959 	TESTINST2("clz  r0, r1", 1, r0, r1, cv);
    960 	TESTINST2("clz  r0, r1", 0x10, r0, r1, cv);
    961 	TESTINST2("clz  r0, r1", 0xffffffff, r0, r1, cv);
    962 	TESTCARRYEND
    963 
    964 	printf("extend instructions\n");
    965 	TESTINST2("uxtb r0, r1", 0, r0, r1, 0);
    966 	TESTINST2("uxtb r0, r1", 1, r0, r1, 0);
    967 	TESTINST2("uxtb r0, r1", 0xff, r0, r1, 0);
    968 	TESTINST2("uxtb r0, r1", 0xffffffff, r0, r1, 0);
    969 	TESTINST2("sxtb r0, r1", 0, r0, r1, 0);
    970 	TESTINST2("sxtb r0, r1", 1, r0, r1, 0);
    971 	TESTINST2("sxtb r0, r1", 0xff, r0, r1, 0);
    972 	TESTINST2("sxtb r0, r1", 0xffffffff, r0, r1, 0);
    973 
    974 	TESTINST2("uxth r0, r1", 0, r0, r1, 0);
    975 	TESTINST2("uxth r0, r1", 1, r0, r1, 0);
    976 	TESTINST2("uxth r0, r1", 0xffff, r0, r1, 0);
    977 	TESTINST2("uxth r0, r1", 0xffffffff, r0, r1, 0);
    978 	TESTINST2("sxth r0, r1", 0, r0, r1, 0);
    979 	TESTINST2("sxth r0, r1", 1, r0, r1, 0);
    980 	TESTINST2("sxth r0, r1", 0x7fff, r0, r1, 0);
    981 	TESTINST2("sxth r0, r1", 0xffff, r0, r1, 0);
    982 	TESTINST2("sxth r0, r1", 0x10ffff, r0, r1, 0);
    983 	TESTINST2("sxth r0, r1", 0x107fff, r0, r1, 0);
    984 	TESTINST2("sxth r0, r1", 0xffffffff, r0, r1, 0);
    985 
    986 	TESTINST2("uxtb r0, r1, ror #0", 0x000000ff, r0, r1, 0);
    987 	TESTINST2("uxtb r0, r1, ror #8", 0x000000ff, r0, r1, 0);
    988 	TESTINST2("uxtb r0, r1, ror #8", 0x0000ff00, r0, r1, 0);
    989 	TESTINST2("uxtb r0, r1, ror #16", 0x00ff0000, r0, r1, 0);
    990 	TESTINST2("uxtb r0, r1, ror #24", 0xff000000, r0, r1, 0);
    991 #if 0
    992 	TESTINST2("uxtb16 r0, r1", 0xffffffff, r0, r1, 0);
    993 	TESTINST2("uxtb16 r0, r1, ror #16", 0x0000ffff, r0, r1, 0);
    994 	TESTINST2("sxtb16 r0, r1", 0xffffffff, r0, r1, 0);
    995 	TESTINST2("sxtb16 r0, r1", 0x00ff00ff, r0, r1, 0);
    996 	TESTINST2("sxtb16 r0, r1", 0x007f007f, r0, r1, 0);
    997 #endif
    998 	printf("------------ BFI ------------\n");
    999 
   1000         /* bfi  rDst, rSrc, #lsb-in-dst, #number-of-bits-to-copy */
   1001 	TESTINST2("bfi  r0, r1, #0, #11", 0xAAAAAAAA, r0, r1, 0);
   1002 	TESTINST2("bfi  r0, r1, #1, #11", 0xAAAAAAAA, r0, r1, 0);
   1003 	TESTINST2("bfi  r0, r1, #2, #11", 0xAAAAAAAA, r0, r1, 0);
   1004 
   1005 	TESTINST2("bfi  r0, r1, #19, #11", 0xFFFFFFFF, r0, r1, 0);
   1006 	TESTINST2("bfi  r0, r1, #20, #11", 0xFFFFFFFF, r0, r1, 0);
   1007 	TESTINST2("bfi  r0, r1, #21, #11", 0xFFFFFFFF, r0, r1, 0);
   1008 
   1009 	TESTINST2("bfi  r0, r1, #0, #32", 0xFFFFFFFF, r0, r1, 0);
   1010 	TESTINST2("bfi  r0, r1, #1, #31", 0xFFFFFFFF, r0, r1, 0);
   1011 
   1012 	TESTINST2("bfi  r0, r1, #29, #3", 0xFFFFFFFF, r0, r1, 0);
   1013 	TESTINST2("bfi  r0, r1, #30, #2", 0xFFFFFFFF, r0, r1, 0);
   1014 	TESTINST2("bfi  r0, r1, #31, #1", 0xFFFFFFFF, r0, r1, 0);
   1015 
   1016 	printf("------------ BFC ------------\n");
   1017 
   1018         /* bfi  rDst, #lsb-in-dst, #number-of-bits-to-copy */
   1019 	TESTINST2("bfc  r0, #0, #11", 0xAAAAAAAA, r0, r1, 0);
   1020 	TESTINST2("bfc  r0, #1, #11", 0xAAAAAAAA, r0, r1, 0);
   1021 	TESTINST2("bfc  r0, #2, #11", 0xAAAAAAAA, r0, r1, 0);
   1022 
   1023 	TESTINST2("bfc  r0, #19, #11", 0xFFFFFFFF, r0, r1, 0);
   1024 	TESTINST2("bfc  r0, #20, #11", 0xFFFFFFFF, r0, r1, 0);
   1025 	TESTINST2("bfc  r0, #21, #11", 0xFFFFFFFF, r0, r1, 0);
   1026 
   1027 	TESTINST2("bfc  r0, #0, #32", 0xFFFFFFFF, r0, r1, 0);
   1028 	TESTINST2("bfc  r0, #1, #31", 0xFFFFFFFF, r0, r1, 0);
   1029 
   1030 	TESTINST2("bfc  r0, #29, #3", 0xFFFFFFFF, r0, r1, 0);
   1031 	TESTINST2("bfc  r0, #30, #2", 0xFFFFFFFF, r0, r1, 0);
   1032 	TESTINST2("bfc  r0, #31, #1", 0xFFFFFFFF, r0, r1, 0);
   1033 
   1034 	printf("------------ SBFX ------------\n");
   1035 
   1036         /* sbfx rDst, rSrc, #lsb, #width */
   1037         TESTINST2("sbfx  r0, r1, #0, #1", 0x00000000, r0, r1, 0);
   1038         TESTINST2("sbfx  r0, r1, #0, #1", 0x00000001, r0, r1, 0);
   1039         TESTINST2("sbfx  r0, r1, #1, #1", 0x00000000, r0, r1, 0);
   1040         TESTINST2("sbfx  r0, r1, #1, #1", 0x00000001, r0, r1, 0);
   1041         TESTINST2("sbfx  r0, r1, #1, #1", 0x00000002, r0, r1, 0);
   1042         TESTINST2("sbfx  r0, r1, #1, #1", 0x00000003, r0, r1, 0);
   1043 
   1044         TESTINST2("sbfx  r0, r1, #0, #2", 0x00000000, r0, r1, 0);
   1045         TESTINST2("sbfx  r0, r1, #0, #2", 0x00000001, r0, r1, 0);
   1046         TESTINST2("sbfx  r0, r1, #1, #2", 0x00000000, r0, r1, 0);
   1047         TESTINST2("sbfx  r0, r1, #1, #2", 0x00000001, r0, r1, 0);
   1048         TESTINST2("sbfx  r0, r1, #1, #2", 0x00000002, r0, r1, 0);
   1049         TESTINST2("sbfx  r0, r1, #1, #2", 0x00000003, r0, r1, 0);
   1050 
   1051         TESTINST2("sbfx  r0, r1, #0, #11", 0xAAAAAAAA, r0, r1, 0);
   1052         TESTINST2("sbfx  r0, r1, #1, #11", 0xAAAAAAAA, r0, r1, 0);
   1053         TESTINST2("sbfx  r0, r1, #2, #11", 0xAAAAAAAA, r0, r1, 0);
   1054 
   1055         TESTINST2("sbfx  r0, r1, #2, #11", 0xAAAAAAAA, r0, r1, 0);
   1056 
   1057         TESTINST2("sbfx  r0, r1, #31, #1", 0xAAAAAAAA, r0, r1, 0);
   1058         TESTINST2("sbfx  r0, r1, #30, #2", 0xAAAAAAAA, r0, r1, 0);
   1059 
   1060 	printf("------------ UBFX ------------\n");
   1061 
   1062         /* ubfx rDst, rSrc, #lsb, #width */
   1063         TESTINST2("ubfx  r0, r1, #0, #1", 0x00000000, r0, r1, 0);
   1064         TESTINST2("ubfx  r0, r1, #0, #1", 0x00000001, r0, r1, 0);
   1065         TESTINST2("ubfx  r0, r1, #1, #1", 0x00000000, r0, r1, 0);
   1066         TESTINST2("ubfx  r0, r1, #1, #1", 0x00000001, r0, r1, 0);
   1067         TESTINST2("ubfx  r0, r1, #1, #1", 0x00000002, r0, r1, 0);
   1068         TESTINST2("ubfx  r0, r1, #1, #1", 0x00000003, r0, r1, 0);
   1069 
   1070         TESTINST2("ubfx  r0, r1, #0, #2", 0x00000000, r0, r1, 0);
   1071         TESTINST2("ubfx  r0, r1, #0, #2", 0x00000001, r0, r1, 0);
   1072         TESTINST2("ubfx  r0, r1, #1, #2", 0x00000000, r0, r1, 0);
   1073         TESTINST2("ubfx  r0, r1, #1, #2", 0x00000001, r0, r1, 0);
   1074         TESTINST2("ubfx  r0, r1, #1, #2", 0x00000002, r0, r1, 0);
   1075         TESTINST2("ubfx  r0, r1, #1, #2", 0x00000003, r0, r1, 0);
   1076 
   1077         TESTINST2("ubfx  r0, r1, #0, #11", 0xAAAAAAAA, r0, r1, 0);
   1078         TESTINST2("ubfx  r0, r1, #1, #11", 0xAAAAAAAA, r0, r1, 0);
   1079         TESTINST2("ubfx  r0, r1, #2, #11", 0xAAAAAAAA, r0, r1, 0);
   1080 
   1081         TESTINST2("ubfx  r0, r1, #2, #11", 0xAAAAAAAA, r0, r1, 0);
   1082 
   1083         TESTINST2("ubfx  r0, r1, #31, #1", 0xAAAAAAAA, r0, r1, 0);
   1084         TESTINST2("ubfx  r0, r1, #30, #2", 0xAAAAAAAA, r0, r1, 0);
   1085 
   1086 	printf("------------ SMULL{B,T}{B,T} ------------\n");
   1087         /* SMULxx rD, rN, rM */
   1088 
   1089 	TESTINST3("smulbb r0, r1, r2", 0x00030000, 0x00040000,  r0, r1, r2, 0);
   1090 	TESTINST3("smulbb r0, r1, r2", 0x00030001, 0x00040002,  r0, r1, r2, 0);
   1091 	TESTINST3("smulbb r0, r1, r2", 0x00038001, 0x00047fff,  r0, r1, r2, 0);
   1092 	TESTINST3("smulbb r0, r1, r2", 0x00037fff, 0x00047fff,  r0, r1, r2, 0);
   1093 	TESTINST3("smulbb r0, r1, r2", 0x0003ffff, 0x0004ffff,  r0, r1, r2, 0);
   1094 
   1095 	printf("------------ SXTAB ------------\n");
   1096         TESTINST3("sxtab r0, r1, r2, ROR #24", 0x31415927, 0x27182819,
   1097                   r0, r1, r2, 0);
   1098         TESTINST3("sxtab r0, r1, r2, ROR #16", 0x31415927, 0x27182819,
   1099                   r0, r1, r2, 0);
   1100         TESTINST3("sxtab r0, r1, r2, ROR #8", 0x31415927, 0x27182819,
   1101                   r0, r1, r2, 0);
   1102         TESTINST3("sxtab r0, r1, r2, ROR #0", 0x31415927, 0x27182819,
   1103                   r0, r1, r2, 0);
   1104 
   1105         TESTINST3("sxtab r0, r1, r2, ROR #24", 0x31415927, 0x27182899,
   1106                   r0, r1, r2, 0);
   1107         TESTINST3("sxtab r0, r1, r2, ROR #16", 0x31415927, 0x27182899,
   1108                   r0, r1, r2, 0);
   1109         TESTINST3("sxtab r0, r1, r2, ROR #8", 0x31415927, 0x27182899,
   1110                   r0, r1, r2, 0);
   1111         TESTINST3("sxtab r0, r1, r2, ROR #0", 0x31415927, 0x27182899,
   1112                   r0, r1, r2, 0);
   1113 #if 0
   1114 	printf("------------ SXTAB16 ------------\n");
   1115         TESTINST3("sxtab16 r0, r1, r2, ROR #24", 0x31415927, 0x27182819,
   1116                   r0, r1, r2, 0);
   1117         TESTINST3("sxtab16 r0, r1, r2, ROR #16", 0x31415927, 0x27182819,
   1118                   r0, r1, r2, 0);
   1119         TESTINST3("sxtab16 r0, r1, r2, ROR #8", 0x31415927, 0x27182819,
   1120                   r0, r1, r2, 0);
   1121         TESTINST3("sxtab16 r0, r1, r2, ROR #0", 0x31415927, 0x27182819,
   1122                   r0, r1, r2, 0);
   1123 
   1124         TESTINST3("sxtab16 r0, r1, r2, ROR #24", 0x31415927, 0x27182899,
   1125                   r0, r1, r2, 0);
   1126         TESTINST3("sxtab16 r0, r1, r2, ROR #16", 0x31415927, 0x27182899,
   1127                   r0, r1, r2, 0);
   1128         TESTINST3("sxtab16 r0, r1, r2, ROR #8", 0x31415927, 0x27182899,
   1129                   r0, r1, r2, 0);
   1130         TESTINST3("sxtab16 r0, r1, r2, ROR #0", 0x31415927, 0x27182899,
   1131                   r0, r1, r2, 0);
   1132 #endif
   1133 	printf("------------ UXTAB ------------\n");
   1134         TESTINST3("uxtab r0, r1, r2, ROR #24", 0x31415927, 0x27182819,
   1135                   r0, r1, r2, 0);
   1136         TESTINST3("uxtab r0, r1, r2, ROR #16", 0x31415927, 0x27182819,
   1137                   r0, r1, r2, 0);
   1138         TESTINST3("uxtab r0, r1, r2, ROR #8", 0x31415927, 0x27182819,
   1139                   r0, r1, r2, 0);
   1140         TESTINST3("uxtab r0, r1, r2, ROR #0", 0x31415927, 0x27182819,
   1141                   r0, r1, r2, 0);
   1142 
   1143         TESTINST3("uxtab r0, r1, r2, ROR #24", 0x31415927, 0x27182899,
   1144                   r0, r1, r2, 0);
   1145         TESTINST3("uxtab r0, r1, r2, ROR #16", 0x31415927, 0x27182899,
   1146                   r0, r1, r2, 0);
   1147         TESTINST3("uxtab r0, r1, r2, ROR #8", 0x31415927, 0x27182899,
   1148                   r0, r1, r2, 0);
   1149         TESTINST3("uxtab r0, r1, r2, ROR #0", 0x31415927, 0x27182899,
   1150                   r0, r1, r2, 0);
   1151 #if 0
   1152 	printf("------------ UXTAB16 ------------\n");
   1153         TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0x31415927, 0x27182819,
   1154                   r0, r1, r2, 0);
   1155         TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0x31415927, 0x27182819,
   1156                   r0, r1, r2, 0);
   1157         TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0x31415927, 0x27182819,
   1158                   r0, r1, r2, 0);
   1159         TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0x31415927, 0x27182819,
   1160                   r0, r1, r2, 0);
   1161 
   1162         TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0x31415927, 0x27182899,
   1163                   r0, r1, r2, 0);
   1164         TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0x31415927, 0x27182899,
   1165                   r0, r1, r2, 0);
   1166         TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0x31415927, 0x27182899,
   1167                   r0, r1, r2, 0);
   1168         TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0x31415927, 0x27182899,
   1169                   r0, r1, r2, 0);
   1170 #endif
   1171 	printf("------------ SXTAH ------------\n");
   1172         TESTINST3("sxtah r0, r1, r2, ROR #24", 0x31415927, 0x27182819,
   1173                   r0, r1, r2, 0);
   1174         TESTINST3("sxtah r0, r1, r2, ROR #16", 0x31415927, 0x27182819,
   1175                   r0, r1, r2, 0);
   1176         TESTINST3("sxtah r0, r1, r2, ROR #8 ", 0x31415927, 0x27182819,
   1177                   r0, r1, r2, 0);
   1178         TESTINST3("sxtah r0, r1, r2, ROR #0 ", 0x31415927, 0x27182819,
   1179                   r0, r1, r2, 0);
   1180 
   1181         TESTINST3("sxtah r0, r1, r2, ROR #24", 0x31415927, 0x27189819,
   1182                   r0, r1, r2, 0);
   1183         TESTINST3("sxtah r0, r1, r2, ROR #16", 0x31415927, 0x27189819,
   1184                   r0, r1, r2, 0);
   1185         TESTINST3("sxtah r0, r1, r2, ROR #8 ", 0x31415927, 0x27189819,
   1186                   r0, r1, r2, 0);
   1187         TESTINST3("sxtah r0, r1, r2, ROR #0 ", 0x31415927, 0x27189819,
   1188                   r0, r1, r2, 0);
   1189 
   1190 	printf("------------ UXTAH ------------\n");
   1191         TESTINST3("uxtah r0, r1, r2, ROR #24", 0x31415927, 0x27182819,
   1192                   r0, r1, r2, 0);
   1193         TESTINST3("uxtah r0, r1, r2, ROR #16", 0x31415927, 0x27182819,
   1194                   r0, r1, r2, 0);
   1195         TESTINST3("uxtah r0, r1, r2, ROR #8 ", 0x31415927, 0x27182819,
   1196                   r0, r1, r2, 0);
   1197         TESTINST3("uxtah r0, r1, r2, ROR #0 ", 0x31415927, 0x27182819,
   1198                   r0, r1, r2, 0);
   1199 
   1200         TESTINST3("uxtah r0, r1, r2, ROR #24", 0x31415927, 0x27189819,
   1201                   r0, r1, r2, 0);
   1202         TESTINST3("uxtah r0, r1, r2, ROR #16", 0x31415927, 0x27189819,
   1203                   r0, r1, r2, 0);
   1204         TESTINST3("uxtah r0, r1, r2, ROR #8 ", 0x31415927, 0x27189819,
   1205                   r0, r1, r2, 0);
   1206         TESTINST3("uxtah r0, r1, r2, ROR #0 ", 0x31415927, 0x27189819,
   1207                   r0, r1, r2, 0);
   1208 #if 0
   1209 	printf("------------ PLD/PLDW (begin) ------------\n");
   1210         /* These don't have any effect on the architected state, so,
   1211            uh, there's no result values to check.  Just _do_ some of
   1212            them and check Valgrind's instruction decoder eats them up
   1213            without complaining. */
   1214         { int alocal;
   1215           printf("pld  reg +/- imm12  cases\n");
   1216           __asm__ __volatile__( "pld [%0, #128]" : :/*in*/"r"(&alocal) );
   1217           __asm__ __volatile__( "pld [%0, #-128]" : :/*in*/"r"(&alocal) );
   1218           __asm__ __volatile__( "pld [r15, #-128]" : :/*in*/"r"(&alocal) );
   1219 
   1220           // apparently pldw is v7 only
   1221           //__asm__ __volatile__( "pldw [%0, #128]" : :/*in*/"r"(&alocal) );
   1222           //__asm__ __volatile__( "pldw [%0, #-128]" : :/*in*/"r"(&alocal) );
   1223           //__asm__ __volatile__( "pldw [r15, #128]" : :/*in*/"r"(&alocal) );
   1224 
   1225           printf("pld  reg +/- shifted reg  cases\n");
   1226           __asm__ __volatile__( "pld [%0, %1]" : : /*in*/"r"(&alocal), "r"(0) );
   1227           __asm__ __volatile__( "pld [%0, %1, LSL #1]" : : /*in*/"r"(&alocal), "r"(0) );
   1228 #if 0
   1229           __asm__ __volatile__( "pld [%0, %1, LSR #1]" : : /*in*/"r"(&alocal), "r"(0) );
   1230           __asm__ __volatile__( "pld [%0, %1, ASR #1]" : : /*in*/"r"(&alocal), "r"(0) );
   1231           __asm__ __volatile__( "pld [%0, %1, ROR #1]" : : /*in*/"r"(&alocal), "r"(0) );
   1232           __asm__ __volatile__( "pld [%0, %1, RRX]" : : /*in*/"r"(&alocal), "r"(0) );
   1233 #endif
   1234         }
   1235 	printf("------------ PLD/PLDW (done) ------------\n");
   1236 #endif
   1237 
   1238 	return 0;
   1239 }
   1240 
   1241 
   1242 ////////////////////////////////////////////////////////////
   1243 ////////////////////////////////////////////////////////////
   1244 ///////////////////////////////////////////////////////////
   1245 ///////////////////////////////////////////////////////////
   1246 
   1247 
   1248 int main ( void )
   1249 {
   1250    // 16 bit instructions
   1251 
   1252    printf("CMP-16 0x10a\n");
   1253    TESTCARRY
   1254    TESTINST3("cmp r3, r6", 0,          0,           r6/*fake*/, r3, r6, 0);
   1255    TESTINST3("cmp r3, r6", 1,          0,           r6/*fake*/, r3, r6, 0);
   1256    TESTINST3("cmp r3, r6", 0,          1,           r6/*fake*/, r3, r6, 0);
   1257    TESTINST3("cmp r3, r6", -1,         0,           r6/*fake*/, r3, r6, 0);
   1258    TESTINST3("cmp r3, r6", 0,          -1,          r6/*fake*/, r3, r6, 0);
   1259    TESTINST3("cmp r3, r6", 0,          0x80000000,  r6/*fake*/, r3, r6, 0);
   1260    TESTINST3("cmp r3, r6", 0x80000000, 0,           r6/*fake*/, r3, r6, 0);
   1261    TESTCARRYEND
   1262 
   1263    printf("CMN-16 0x10a\n");
   1264    TESTCARRY
   1265    TESTINST3("cmn r3, r6", 0,          0,           r6/*fake*/, r3, r6, 0);
   1266    TESTINST3("cmn r3, r6", 1,          0,           r6/*fake*/, r3, r6, 0);
   1267    TESTINST3("cmn r3, r6", 0,          1,           r6/*fake*/, r3, r6, 0);
   1268    TESTINST3("cmn r3, r6", -1,         0,           r6/*fake*/, r3, r6, 0);
   1269    TESTINST3("cmn r3, r6", 0,          -1,          r6/*fake*/, r3, r6, 0);
   1270    TESTINST3("cmn r3, r6", 0,          0x80000000,  r6/*fake*/, r3, r6, 0);
   1271    TESTINST3("cmn r3, r6", 0x80000000, 0,           r6/*fake*/, r3, r6, 0);
   1272    TESTCARRYEND
   1273 
   1274    printf("TST-16 0x108\n");
   1275    TESTCARRY
   1276    TESTINST3("tst r3, r6", 0,          0,           r6/*fake*/, r3, r6, cv);
   1277    TESTINST3("tst r3, r6", 1,          0,           r6/*fake*/, r3, r6, cv);
   1278    TESTINST3("tst r3, r6", 0,          1,           r6/*fake*/, r3, r6, cv);
   1279    TESTINST3("tst r3, r6", 1,          1,           r6/*fake*/, r3, r6, cv);
   1280    TESTINST3("tst r3, r6", -1,         0,           r6/*fake*/, r3, r6, cv);
   1281    TESTINST3("tst r3, r6", 0,          -1,          r6/*fake*/, r3, r6, cv);
   1282    TESTINST3("tst r3, r6", -1,         -1,          r6/*fake*/, r3, r6, cv);
   1283    TESTCARRYEND
   1284 
   1285    printf("NEGS-16 0x109\n");
   1286    TESTINST2("negs r0, r1", 1, r0, r1, 0);
   1287    TESTCARRY
   1288    TESTINST2("negs r0, r1", 1, r0, r1, cv);
   1289    TESTINST2("negs r0, r1", 0, r0, r1, cv);
   1290    TESTINST2("negs r0, r1", 0x80000000, r0, r1, cv);
   1291    TESTINST2("negs r0, r1", 0x80000001, r0, r1, cv);
   1292    TESTINST2("negs r0, r1", 0xFFFFFFFF, r0, r1, cv);
   1293    TESTINST2("negs r0, r1", 0x7FFFFFFF, r0, r1, cv);
   1294    TESTCARRYEND
   1295 
   1296    printf("MVNS-16 0x10F\n");
   1297    TESTINST2("mvns r0, r1", 1, r0, r1, 0);
   1298    TESTCARRY
   1299    TESTINST2("mvns r0, r1", 1, r0, r1, cv);
   1300    TESTINST2("mvns r0, r1", 0, r0, r1, cv);
   1301    TESTINST2("mvns r0, r1", 0x80000000, r0, r1, cv);
   1302    TESTINST2("mvns r0, r1", 0x80000001, r0, r1, cv);
   1303    TESTINST2("mvns r0, r1", 0xFFFFFFFF, r0, r1, cv);
   1304    TESTINST2("mvns r0, r1", 0x7FFFFFFF, r0, r1, cv);
   1305    TESTCARRYEND
   1306 
   1307    printf("ORRS-16 0x10C\n");
   1308    TESTCARRY
   1309    TESTINST2x("orrs r1, r2", 0x31415927, 0x27181728, r1, r2, cv);
   1310    TESTINST2x("orrs r1, r2", 0x00000000, 0x00000000, r1, r2, cv);
   1311    TESTINST2x("orrs r1, r2", 0x00000001, 0x00000000, r1, r2, cv);
   1312    TESTINST2x("orrs r1, r2", 0x00000000, 0x00000001, r1, r2, cv);
   1313    TESTINST2x("orrs r1, r2", 0x80000000, 0x00000000, r1, r2, cv);
   1314    TESTINST2x("orrs r1, r2", 0x00000000, 0x80000000, r1, r2, cv);
   1315    TESTINST2x("orrs r1, r2", 0x80000000, 0x80000000, r1, r2, cv);
   1316    TESTCARRYEND
   1317 
   1318    printf("ANDS-16 0x100\n");
   1319    TESTCARRY
   1320    TESTINST2x("ands r1, r2", 0x31415927, 0x27181728, r1, r2, cv);
   1321    TESTINST2x("ands r1, r2", 0x00000000, 0x00000000, r1, r2, cv);
   1322    TESTINST2x("ands r1, r2", 0x00000001, 0x00000000, r1, r2, cv);
   1323    TESTINST2x("ands r1, r2", 0x00000000, 0x00000001, r1, r2, cv);
   1324    TESTINST2x("ands r1, r2", 0x80000000, 0x00000000, r1, r2, cv);
   1325    TESTINST2x("ands r1, r2", 0x00000000, 0x80000000, r1, r2, cv);
   1326    TESTINST2x("ands r1, r2", 0x80000000, 0x80000000, r1, r2, cv);
   1327    TESTCARRYEND
   1328 
   1329    printf("EORS-16 0x101\n");
   1330    TESTCARRY
   1331    TESTINST2x("eors r1, r2", 0x31415927, 0x27181728, r1, r2, cv);
   1332    TESTINST2x("eors r1, r2", 0x00000000, 0x00000000, r1, r2, cv);
   1333    TESTINST2x("eors r1, r2", 0x00000001, 0x00000000, r1, r2, cv);
   1334    TESTINST2x("eors r1, r2", 0x00000000, 0x00000001, r1, r2, cv);
   1335    TESTINST2x("eors r1, r2", 0x80000000, 0x00000000, r1, r2, cv);
   1336    TESTINST2x("eors r1, r2", 0x00000000, 0x80000000, r1, r2, cv);
   1337    TESTINST2x("eors r1, r2", 0x80000000, 0x80000000, r1, r2, cv);
   1338    TESTCARRYEND
   1339 
   1340    printf("MULS-16 0x10d\n");
   1341    TESTCARRY
   1342    TESTINST2x("muls r1, r2", 0x31415927, 0x27181728, r1, r2, cv);
   1343    TESTINST2x("muls r1, r2", 0x00000000, 0x00000000, r1, r2, cv);
   1344    TESTINST2x("muls r1, r2", 0x00000001, 0x00000000, r1, r2, cv);
   1345    TESTINST2x("muls r1, r2", 0x00000000, 0x00000001, r1, r2, cv);
   1346    TESTINST2x("muls r1, r2", 0x80000000, 0x00000000, r1, r2, cv);
   1347    TESTINST2x("muls r1, r2", 0x00000000, 0x80000000, r1, r2, cv);
   1348    TESTINST2x("muls r1, r2", 0x80000000, 0x80000000, r1, r2, cv);
   1349    TESTCARRYEND
   1350 
   1351    printf("BICS-16 0x10E\n");
   1352    TESTCARRY
   1353    TESTINST2x("bics r1, r2", 0x31415927, 0x27181728, r1, r2, cv);
   1354    TESTINST2x("bics r1, r2", 0x00000000, 0x00000000, r1, r2, cv);
   1355    TESTINST2x("bics r1, r2", 0x00000001, 0x00000000, r1, r2, cv);
   1356    TESTINST2x("bics r1, r2", 0x00000000, 0x00000001, r1, r2, cv);
   1357    TESTINST2x("bics r1, r2", 0x80000000, 0x00000000, r1, r2, cv);
   1358    TESTINST2x("bics r1, r2", 0x00000000, 0x80000000, r1, r2, cv);
   1359    TESTINST2x("bics r1, r2", 0x80000000, 0x80000000, r1, r2, cv);
   1360    TESTCARRYEND
   1361 
   1362    printf("ADCS-16 0x105\n");
   1363    TESTCARRY
   1364    TESTINST2x("adcs r1, r2", 0x31415927, 0x27181728, r1, r2, cv);
   1365    TESTINST2x("adcs r1, r2", 0x00000000, 0x00000000, r1, r2, cv);
   1366    TESTINST2x("adcs r1, r2", 0x00000001, 0x00000000, r1, r2, cv);
   1367    TESTINST2x("adcs r1, r2", 0x00000000, 0x00000001, r1, r2, cv);
   1368    TESTINST2x("adcs r1, r2", 0x80000000, 0x00000000, r1, r2, cv);
   1369    TESTINST2x("adcs r1, r2", 0x00000000, 0x80000000, r1, r2, cv);
   1370    TESTINST2x("adcs r1, r2", 0x80000000, 0x80000000, r1, r2, cv);
   1371    TESTCARRYEND
   1372 
   1373    printf("SBCS-16 0x100\n");
   1374    TESTCARRY
   1375    TESTINST2x("sbcs r1, r2", 0x31415927, 0x27181728, r1, r2, cv);
   1376    TESTINST2x("sbcs r1, r2", 0x00000000, 0x00000000, r1, r2, cv);
   1377    TESTINST2x("sbcs r1, r2", 0x00000001, 0x00000000, r1, r2, cv);
   1378    TESTINST2x("sbcs r1, r2", 0x00000000, 0x00000001, r1, r2, cv);
   1379    TESTINST2x("sbcs r1, r2", 0x80000000, 0x00000000, r1, r2, cv);
   1380    TESTINST2x("sbcs r1, r2", 0x00000000, 0x80000000, r1, r2, cv);
   1381    TESTINST2x("sbcs r1, r2", 0x80000000, 0x80000000, r1, r2, cv);
   1382    TESTCARRYEND
   1383 
   1384    printf("UXTB-16 0x2CB\n");
   1385    TESTCARRY
   1386    TESTINST2("uxtb r1, r2", 0x31415927, r1, r2, cv);
   1387    TESTINST2("uxtb r1, r2", 0x31415997, r1, r2, cv);
   1388    TESTCARRYEND
   1389 
   1390    printf("SXTB-16 0x2C9\n");
   1391    TESTCARRY
   1392    TESTINST2("sxtb r1, r2", 0x31415927, r1, r2, cv);
   1393    TESTINST2("sxtb r1, r2", 0x31415997, r1, r2, cv);
   1394    TESTCARRYEND
   1395 
   1396    printf("UXTH-16 0x2CA\n");
   1397    TESTCARRY
   1398    TESTINST2("uxth r1, r2", 0x31415927, r1, r2, cv);
   1399    TESTINST2("uxth r1, r2", 0x31419597, r1, r2, cv);
   1400    TESTCARRYEND
   1401 
   1402    printf("SXTH-16 0x2C8\n");
   1403    TESTCARRY
   1404    TESTINST2("sxth r1, r2", 0x31415927, r1, r2, cv);
   1405    TESTINST2("sxth r1, r2", 0x31419597, r1, r2, cv);
   1406    TESTCARRYEND
   1407 
   1408    printf("LSLS-16 0x102\n");
   1409    TESTCARRY
   1410    TESTINST2x("lsls r1, r2", 0x31415927, 0x00000000, r1, r2, cv);
   1411    TESTINST2x("lsls r1, r2", 0x31415927, 0x00000001, r1, r2, cv);
   1412    TESTINST2x("lsls r1, r2", 0x31415927, 0x00000002, r1, r2, cv);
   1413    TESTINST2x("lsls r1, r2", 0x31415927, 0x0000000F, r1, r2, cv);
   1414    TESTINST2x("lsls r1, r2", 0x31415927, 0x00000010, r1, r2, cv);
   1415    TESTINST2x("lsls r1, r2", 0x31415927, 0x0000001F, r1, r2, cv);
   1416    TESTINST2x("lsls r1, r2", 0x31415927, 0x00000020, r1, r2, cv);
   1417    TESTINST2x("lsls r1, r2", 0x31415927, 0x00000021, r1, r2, cv);
   1418    TESTCARRYEND
   1419 
   1420    printf("LSRS-16 0x103\n");
   1421    TESTCARRY
   1422    TESTINST2x("lsrs r1, r2", 0x31415927, 0x00000000, r1, r2, cv);
   1423    TESTINST2x("lsrs r1, r2", 0x31415927, 0x00000001, r1, r2, cv);
   1424    TESTINST2x("lsrs r1, r2", 0x31415927, 0x00000002, r1, r2, cv);
   1425    TESTINST2x("lsrs r1, r2", 0x31415927, 0x0000000F, r1, r2, cv);
   1426    TESTINST2x("lsrs r1, r2", 0x31415927, 0x00000010, r1, r2, cv);
   1427    TESTINST2x("lsrs r1, r2", 0x31415927, 0x0000001F, r1, r2, cv);
   1428    TESTINST2x("lsrs r1, r2", 0x31415927, 0x00000020, r1, r2, cv);
   1429    TESTINST2x("lsrs r1, r2", 0x31415927, 0x00000021, r1, r2, cv);
   1430    TESTCARRYEND
   1431 
   1432    printf("ASRS-16 0x104\n");
   1433    TESTCARRY
   1434    TESTINST2x("asrs r1, r2", 0x31415927, 0x00000000, r1, r2, cv);
   1435    TESTINST2x("asrs r1, r2", 0x91415927, 0x00000001, r1, r2, cv);
   1436    TESTINST2x("asrs r1, r2", 0x31415927, 0x00000002, r1, r2, cv);
   1437    TESTINST2x("asrs r1, r2", 0x91415927, 0x0000000F, r1, r2, cv);
   1438    TESTINST2x("asrs r1, r2", 0x31415927, 0x00000010, r1, r2, cv);
   1439    TESTINST2x("asrs r1, r2", 0x91415927, 0x0000001F, r1, r2, cv);
   1440    TESTINST2x("asrs r1, r2", 0x31415927, 0x00000020, r1, r2, cv);
   1441    TESTINST2x("asrs r1, r2", 0x91415927, 0x00000021, r1, r2, cv);
   1442    TESTCARRYEND
   1443 
   1444    printf("RORS-16 0x107\n");
   1445    TESTCARRY
   1446    TESTINST2x("rors r1, r2", 0x31415927, 0x00000000, r1, r2, cv);
   1447    TESTINST2x("rors r1, r2", 0x31415927, 0x00000001, r1, r2, cv);
   1448    TESTINST2x("rors r1, r2", 0x31415927, 0x00000002, r1, r2, cv);
   1449    TESTINST2x("rors r1, r2", 0x31415927, 0x0000000F, r1, r2, cv);
   1450    TESTINST2x("rors r1, r2", 0x31415927, 0x00000010, r1, r2, cv);
   1451    TESTINST2x("rors r1, r2", 0x31415927, 0x0000001F, r1, r2, cv);
   1452    TESTINST2x("rors r1, r2", 0x31415927, 0x00000020, r1, r2, cv);
   1453    TESTINST2x("rors r1, r2", 0x31415927, 0x00000021, r1, r2, cv);
   1454    TESTCARRYEND
   1455 
   1456    printf("ADD(HI)-16\n");
   1457    TESTCARRY
   1458    TESTINST2x("add r5, r12", 0x31415927, 0x12345678, r5, r12, cv);
   1459    TESTINST2x("add r4, r9 ", 0x31415927, 0x12345678, r4, r9,  cv);
   1460    TESTCARRYEND
   1461 
   1462    printf("CMP(HI)-16 0x10a\n");
   1463    TESTCARRY
   1464    TESTINST3("cmp r5, r12", 0,          0,           r12/*fake*/, r5, r12, 0);
   1465    TESTINST3("cmp r5, r12", 1,          0,           r12/*fake*/, r5, r12, 0);
   1466    TESTINST3("cmp r5, r12", 0,          1,           r12/*fake*/, r5, r12, 0);
   1467    TESTINST3("cmp r5, r12", -1,         0,           r12/*fake*/, r5, r12, 0);
   1468    TESTINST3("cmp r5, r12", 0,          -1,          r12/*fake*/, r5, r12, 0);
   1469    TESTINST3("cmp r5, r12", 0,          0x80000000,  r12/*fake*/, r5, r12, 0);
   1470    TESTINST3("cmp r5, r12", 0x80000000, 0,           r12/*fake*/, r5, r12, 0);
   1471    TESTCARRYEND
   1472 
   1473    printf("MOV(HI)-16\n");
   1474    TESTCARRY
   1475    TESTINST2x("mov r5, r12", 0x31415927, 0x12345678, r5, r12, cv);
   1476    TESTINST2x("mov r4, r9 ", 0x31415927, 0x12345678, r4, r9,  cv);
   1477    TESTCARRYEND
   1478 
   1479    printf("ADDS-16 Rd, Rn, #imm3\n");
   1480    TESTCARRY
   1481    TESTINST2x("adds r1, r2, #1", 0x31415927, 0x27181728, r1, r2, cv);
   1482    TESTINST2x("adds r1, r2, #7", 0x31415927, 0x97181728, r1, r2, cv);
   1483    TESTCARRYEND
   1484 
   1485    printf("ADDS-16 Rd, Rn, Rm\n");
   1486    TESTCARRY
   1487    TESTINST3("adds r1, r2, r3", 0x31415927, 0x27181728, r1, r2, r3, cv);
   1488    TESTINST3("adds r1, r2, r3", 0x31415927, 0x97181728, r1, r2, r3, cv);
   1489    TESTINST3("adds r1, r2, r3", 0,          0,          r1, r2, r3, cv);
   1490    TESTINST3("adds r1, r2, r3", 1,          0,          r1, r2, r3, cv);
   1491    TESTINST3("adds r1, r2, r3", 0,          1,          r1, r2, r3, cv);
   1492    TESTINST3("adds r1, r2, r3", -1,         0,          r1, r2, r3, cv);
   1493    TESTINST3("adds r1, r2, r3", 0,          -1,         r1, r2, r3, cv);
   1494    TESTINST3("adds r1, r2, r3", 0,          0x80000000, r1, r2, r3, cv);
   1495    TESTINST3("adds r1, r2, r3", 0x80000000, 0,          r1, r2, r3, cv);
   1496    TESTINST3("adds r1, r2, r3", 0x80000000, 0x80000000, r1, r2, r3, cv);
   1497    TESTINST3("adds r1, r2, r3", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   1498    TESTINST3("adds r1, r2, r3", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   1499    TESTINST3("adds r1, r2, r3", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   1500    TESTCARRYEND
   1501 
   1502    printf("SUBS-16 Rd, Rn, Rm\n");
   1503    TESTCARRY
   1504    TESTINST3("subs r1, r2, r3", 0x31415927, 0x27181728, r1, r2, r3, cv);
   1505    TESTINST3("subs r1, r2, r3", 0x31415927, 0x97181728, r1, r2, r3, cv);
   1506    TESTINST3("subs r1, r2, r3", 0,          0,          r1, r2, r3, cv);
   1507    TESTINST3("subs r1, r2, r3", 1,          0,          r1, r2, r3, cv);
   1508    TESTINST3("subs r1, r2, r3", 0,          1,          r1, r2, r3, cv);
   1509    TESTINST3("subs r1, r2, r3", -1,         0,          r1, r2, r3, cv);
   1510    TESTINST3("subs r1, r2, r3", 0,          -1,         r1, r2, r3, cv);
   1511    TESTINST3("subs r1, r2, r3", 0,          0x80000000, r1, r2, r3, cv);
   1512    TESTINST3("subs r1, r2, r3", 0x80000000, 0,          r1, r2, r3, cv);
   1513    TESTINST3("subs r1, r2, r3", 0x80000000, 0x80000000, r1, r2, r3, cv);
   1514    TESTINST3("subs r1, r2, r3", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   1515    TESTINST3("subs r1, r2, r3", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   1516    TESTINST3("subs r1, r2, r3", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   1517    TESTCARRYEND
   1518 
   1519    printf("ADDS-16 Rn, #uimm8\n");
   1520    TESTCARRY
   1521    TESTINST1x("adds r1, #0  ", 0x31415927, r1, cv);
   1522    TESTINST1x("adds r1, #255", 0x31415927, r1, cv);
   1523    TESTINST1x("adds r1, #0  ", 0x91415927, r1, cv);
   1524    TESTINST1x("adds r1, #255", 0x91415927, r1, cv);
   1525    TESTCARRYEND
   1526 
   1527    printf("SUBS-16 Rn, #uimm8\n");
   1528    TESTCARRY
   1529    TESTINST1x("subs r1, #0  ", 0x31415927, r1, cv);
   1530    TESTINST1x("subs r1, #255", 0x31415927, r1, cv);
   1531    TESTINST1x("subs r1, #0  ", 0x91415927, r1, cv);
   1532    TESTINST1x("subs r1, #255", 0x91415927, r1, cv);
   1533    TESTCARRYEND
   1534 
   1535    printf("CMP-16 Rn, #uimm8\n");
   1536    TESTCARRY
   1537    TESTINST1x("cmp r1, #0x80  ", 0x00000080, r1, cv);
   1538    TESTINST1x("cmp r1, #0x7f  ", 0x00000080, r1, cv);
   1539    TESTINST1x("cmp r1, #0x81  ", 0x00000080, r1, cv);
   1540    TESTINST1x("cmp r1, #0x80  ", 0xffffff80, r1, cv);
   1541    TESTINST1x("cmp r1, #0x7f  ", 0xffffff80, r1, cv);
   1542    TESTINST1x("cmp r1, #0x81  ", 0xffffff80, r1, cv);
   1543    TESTINST1x("cmp r1, #0x01  ", 0x80000000, r1, cv);
   1544    TESTCARRYEND
   1545 
   1546    printf("MOVS-16 Rn, #uimm8\n");
   1547    TESTCARRY
   1548    TESTINST1x("movs r1, #0   ", 0x31415927, r1, cv);
   1549    TESTINST1x("movs r1, #0x7f", 0x31415927, r1, cv);
   1550    TESTINST1x("movs r1, #0x80", 0x31415927, r1, cv);
   1551    TESTINST1x("movs r1, #0x81", 0x31415927, r1, cv);
   1552    TESTINST1x("movs r1, #0xff", 0x31415927, r1, cv);
   1553    TESTCARRYEND
   1554 
   1555    printf("LSLS-16 Rd, Rm, imm5\n");
   1556    TESTCARRY
   1557    TESTINST2("lsls r1, r2, #0   ", 0x31415927, r1, r2, cv);
   1558    TESTINST2("lsls r1, r2, #1   ", 0x31415927, r1, r2, cv);
   1559    TESTINST2("lsls r1, r2, #2   ", 0x31415927, r1, r2, cv);
   1560    TESTINST2("lsls r1, r2, #0xF ", 0x31415927, r1, r2, cv);
   1561    TESTINST2("lsls r1, r2, #0x10", 0x31415927, r1, r2, cv);
   1562    TESTINST2("lsls r1, r2, #0x1F", 0x31415927, r1, r2, cv);
   1563    TESTCARRYEND
   1564 
   1565    printf("LSRS-16 Rd, Rm, imm5\n");
   1566    TESTCARRY
   1567    TESTINST2("lsrs r1, r2, #0   ", 0x31415927, r1, r2, cv);
   1568    TESTINST2("lsrs r1, r2, #1   ", 0x31415927, r1, r2, cv);
   1569    TESTINST2("lsrs r1, r2, #2   ", 0x31415927, r1, r2, cv);
   1570    TESTINST2("lsrs r1, r2, #0xF ", 0x31415927, r1, r2, cv);
   1571    TESTINST2("lsrs r1, r2, #0x10", 0x31415927, r1, r2, cv);
   1572    TESTINST2("lsrs r1, r2, #0x1F", 0x31415927, r1, r2, cv);
   1573    TESTCARRYEND
   1574 
   1575    printf("ASRS-16 Rd, Rm, imm5\n");
   1576    TESTCARRY
   1577    TESTINST2("asrs r1, r2, #0   ", 0x31415927, r1, r2, cv);
   1578    TESTINST2("asrs r1, r2, #1   ", 0x91415927, r1, r2, cv);
   1579    TESTINST2("asrs r1, r2, #2   ", 0x31415927, r1, r2, cv);
   1580    TESTINST2("asrs r1, r2, #0xF ", 0x91415927, r1, r2, cv);
   1581    TESTINST2("asrs r1, r2, #0x10", 0x31415927, r1, r2, cv);
   1582    TESTINST2("asrs r1, r2, #0x1F", 0x91415927, r1, r2, cv);
   1583    TESTCARRYEND
   1584 
   1585    // 32 bit instructions
   1586 
   1587    printf("(T3) ADD{S}.W Rd, Rn, #constT [allegedly]\n");
   1588    TESTCARRY
   1589    TESTINST2("adds.w r1, r2, #0xffffffff", 0x31415927, r1, r2, cv);
   1590    TESTINST2("adds.w r1, r2, #0xee00ee00", 0x31415927, r1, r2, cv);
   1591    TESTINST2("adds.w r1, r2, #255       ", 0,          r1, r2, cv);
   1592    TESTINST2("adds.w r1, r2, #0         ", 1,          r1, r2, cv);
   1593    TESTINST2("adds.w r1, r2, #1         ", 0,          r1, r2, cv);
   1594    TESTINST2("adds.w r1, r2, #0         ", -1,         r1, r2, cv);
   1595    TESTINST2("adds.w r1, r2, #-1        ", 0,          r1, r2, cv);
   1596    TESTINST2("adds.w r1, r2, #0x80000000", 0,          r1, r2, cv);
   1597    TESTINST2("adds.w r1, r2, #0         ", 0x80000000, r1, r2, cv);
   1598    TESTINST2("adds.w r1, r2, #0x80000000", 0x80000000, r1, r2, cv);
   1599    TESTINST2("adds.w r1, r2, #0x80000000", 0x7fffffff, r1, r2, cv);
   1600    TESTINST2("adds.w r1, r2, #0xff000000", 0x80000000, r1, r2, cv);
   1601    TESTINST2("adds.w r1, r2, #0x0dd00000", 0x7fffffff, r1, r2, cv);
   1602    TESTINST2("add.w  r1, r2, #0xffffffff", 0x31415927, r1, r2, cv);
   1603    TESTINST2("add.w  r1, r2, #0xee00ee00", 0x31415927, r1, r2, cv);
   1604    TESTINST2("add.w  r1, r2, #255       ", 0,          r1, r2, cv);
   1605    TESTINST2("add.w  r1, r2, #0         ", 1,          r1, r2, cv);
   1606    TESTINST2("add.w  r1, r2, #1         ", 0,          r1, r2, cv);
   1607    TESTINST2("add.w  r1, r2, #0         ", -1,         r1, r2, cv);
   1608    TESTINST2("add.w  r1, r2, #-1        ", 0,          r1, r2, cv);
   1609    TESTINST2("add.w  r1, r2, #0x80000000", 0,          r1, r2, cv);
   1610    TESTINST2("add.w  r1, r2, #0         ", 0x80000000, r1, r2, cv);
   1611    TESTINST2("add.w  r1, r2, #0x80000000", 0x80000000, r1, r2, cv);
   1612    TESTINST2("add.w  r1, r2, #0x80000000", 0x7fffffff, r1, r2, cv);
   1613    TESTINST2("add.w  r1, r2, #0xff000000", 0x80000000, r1, r2, cv);
   1614    TESTINST2("add.w  r1, r2, #0x0dd00000", 0x7fffffff, r1, r2, cv);
   1615    TESTCARRYEND
   1616 
   1617    printf("(T4) ADDW Rd, Rn, #uimm12\n");
   1618    TESTCARRY
   1619    TESTINST2("addw r1, r2, #0x000", 0x31415927, r1, r2, cv);
   1620    TESTINST2("addw r1, r2, #0x000", 0x91415927, r1, r2, cv);
   1621    TESTINST2("addw r1, r2, #0xABC", 0x31415927, r1, r2, cv);
   1622    TESTINST2("addw r1, r2, #0xABC", 0x91415927, r1, r2, cv);
   1623    TESTINST2("addw r1, r2, #0xFFF", 0x31415927, r1, r2, cv);
   1624    TESTINST2("addw r1, r2, #0xFFF", 0x91415927, r1, r2, cv);
   1625    TESTCARRYEND
   1626 
   1627    printf("(T3) CMP.W Rn, #constT [allegedly]\n");
   1628    TESTCARRY
   1629    TESTINST1x("cmp.w r1, #0xffffffff", 0x31415927, r1, cv);
   1630    TESTINST1x("cmp.w r1, #0xee00ee00", 0x31415927, r1, cv);
   1631    TESTINST1x("cmp.w r1, #255       ", 0,          r1, cv);
   1632    TESTINST1x("cmp.w r1, #0         ", 1,          r1, cv);
   1633    TESTINST1x("cmp.w r1, #1         ", 0,          r1, cv);
   1634    TESTINST1x("cmp.w r1, #0         ", -1,         r1, cv);
   1635    TESTINST1x("cmp.w r1, #-1        ", 0,          r1, cv);
   1636    TESTINST1x("cmp.w r1, #0x80000000", 0,          r1, cv);
   1637    TESTINST1x("cmp.w r1, #0         ", 0x80000000, r1, cv);
   1638    TESTINST1x("cmp.w r1, #0x80000000", 0x80000000, r1, cv);
   1639    TESTINST1x("cmp.w r1, #0x80000000", 0x7fffffff, r1, cv);
   1640    TESTINST1x("cmp.w r1, #0xff000000", 0x80000000, r1, cv);
   1641    TESTINST1x("cmp.w r1, #0x0dd00000", 0x7fffffff, r1, cv);
   1642    TESTCARRYEND
   1643 
   1644    printf("(T3) CMN.W Rn, #constT [allegedly]\n");
   1645    TESTCARRY
   1646    TESTINST1x("cmn.w r1, #0xffffffff", 0x31415927, r1, cv);
   1647    TESTINST1x("cmn.w r1, #0xee00ee00", 0x31415927, r1, cv);
   1648    TESTINST1x("cmn.w r1, #255       ", 0,          r1, cv);
   1649    TESTINST1x("cmn.w r1, #0         ", 1,          r1, cv);
   1650    TESTINST1x("cmn.w r1, #1         ", 0,          r1, cv);
   1651    TESTINST1x("cmn.w r1, #0         ", -1,         r1, cv);
   1652    TESTINST1x("cmn.w r1, #-1        ", 0,          r1, cv);
   1653    TESTINST1x("cmn.w r1, #0x80000000", 0,          r1, cv);
   1654    TESTINST1x("cmn.w r1, #0         ", 0x80000000, r1, cv);
   1655    TESTINST1x("cmn.w r1, #0x80000000", 0x80000000, r1, cv);
   1656    TESTINST1x("cmn.w r1, #0x80000000", 0x7fffffff, r1, cv);
   1657    TESTINST1x("cmn.w r1, #0xff000000", 0x80000000, r1, cv);
   1658    TESTINST1x("cmn.w r1, #0x0dd00000", 0x7fffffff, r1, cv);
   1659    TESTCARRYEND
   1660 
   1661    printf("(T3) TST.W Rn, #constT [allegedly]\n");
   1662    TESTCARRY
   1663    TESTINST1x("tst.w r1, #0xffffffff", 0x31415927, r1, cv);
   1664    TESTINST1x("tst.w r1, #0xee00ee00", 0x31415927, r1, cv);
   1665    TESTINST1x("tst.w r1, #255       ", 0,          r1, cv);
   1666    TESTINST1x("tst.w r1, #0         ", 1,          r1, cv);
   1667    TESTINST1x("tst.w r1, #1         ", 0,          r1, cv);
   1668    TESTINST1x("tst.w r1, #0         ", -1,         r1, cv);
   1669    TESTINST1x("tst.w r1, #-1        ", 0,          r1, cv);
   1670    TESTINST1x("tst.w r1, #0x80000000", 0,          r1, cv);
   1671    TESTINST1x("tst.w r1, #0         ", 0x80000000, r1, cv);
   1672    TESTINST1x("tst.w r1, #0x80000000", 0x80000000, r1, cv);
   1673    TESTINST1x("tst.w r1, #0x80000000", 0x7fffffff, r1, cv);
   1674    TESTINST1x("tst.w r1, #0xff000000", 0x80000000, r1, cv);
   1675    TESTINST1x("tst.w r1, #0x0dd00000", 0x7fffffff, r1, cv);
   1676    TESTCARRYEND
   1677 
   1678    printf("(T3) TEQ.W Rn, #constT [allegedly]\n");
   1679    TESTCARRY
   1680    TESTINST1x("teq.w r1, #0xffffffff", 0x31415927, r1, cv);
   1681    TESTINST1x("teq.w r1, #0xee00ee00", 0x31415927, r1, cv);
   1682    TESTINST1x("teq.w r1, #255       ", 0,          r1, cv);
   1683    TESTINST1x("teq.w r1, #0         ", 1,          r1, cv);
   1684    TESTINST1x("teq.w r1, #1         ", 0,          r1, cv);
   1685    TESTINST1x("teq.w r1, #0         ", -1,         r1, cv);
   1686    TESTINST1x("teq.w r1, #-1        ", 0,          r1, cv);
   1687    TESTINST1x("teq.w r1, #0x80000000", 0,          r1, cv);
   1688    TESTINST1x("teq.w r1, #0         ", 0x80000000, r1, cv);
   1689    TESTINST1x("teq.w r1, #0x80000000", 0x80000000, r1, cv);
   1690    TESTINST1x("teq.w r1, #0x80000000", 0x7fffffff, r1, cv);
   1691    TESTINST1x("teq.w r1, #0xff000000", 0x80000000, r1, cv);
   1692    TESTINST1x("teq.w r1, #0x0dd00000", 0x7fffffff, r1, cv);
   1693    TESTCARRYEND
   1694 
   1695    printf("(T3) SUB{S}.W Rd, Rn, #constT [allegedly]\n");
   1696    TESTCARRY
   1697    TESTINST2("subs.w r1, r2, #0xffffffff", 0x31415927, r1, r2, cv);
   1698    TESTINST2("subs.w r1, r2, #0xee00ee00", 0x31415927, r1, r2, cv);
   1699    TESTINST2("subs.w r1, r2, #255       ", 0,          r1, r2, cv);
   1700    TESTINST2("subs.w r1, r2, #0         ", 1,          r1, r2, cv);
   1701    TESTINST2("subs.w r1, r2, #1         ", 0,          r1, r2, cv);
   1702    TESTINST2("subs.w r1, r2, #0         ", -1,         r1, r2, cv);
   1703    TESTINST2("subs.w r1, r2, #-1        ", 0,          r1, r2, cv);
   1704    TESTINST2("subs.w r1, r2, #0x80000000", 0,          r1, r2, cv);
   1705    TESTINST2("subs.w r1, r2, #0         ", 0x80000000, r1, r2, cv);
   1706    TESTINST2("subs.w r1, r2, #0x80000000", 0x80000000, r1, r2, cv);
   1707    TESTINST2("subs.w r1, r2, #0x80000000", 0x7fffffff, r1, r2, cv);
   1708    TESTINST2("subs.w r1, r2, #0xff000000", 0x80000000, r1, r2, cv);
   1709    TESTINST2("subs.w r1, r2, #0x0dd00000", 0x7fffffff, r1, r2, cv);
   1710    TESTINST2("sub.w  r1, r2, #0xffffffff", 0x31415927, r1, r2, cv);
   1711    TESTINST2("sub.w  r1, r2, #0xee00ee00", 0x31415927, r1, r2, cv);
   1712    TESTINST2("sub.w  r1, r2, #255       ", 0,          r1, r2, cv);
   1713    TESTINST2("sub.w  r1, r2, #0         ", 1,          r1, r2, cv);
   1714    TESTINST2("sub.w  r1, r2, #1         ", 0,          r1, r2, cv);
   1715    TESTINST2("sub.w  r1, r2, #0         ", -1,         r1, r2, cv);
   1716    TESTINST2("sub.w  r1, r2, #-1        ", 0,          r1, r2, cv);
   1717    TESTINST2("sub.w  r1, r2, #0x80000000", 0,          r1, r2, cv);
   1718    TESTINST2("sub.w  r1, r2, #0         ", 0x80000000, r1, r2, cv);
   1719    TESTINST2("sub.w  r1, r2, #0x80000000", 0x80000000, r1, r2, cv);
   1720    TESTINST2("sub.w  r1, r2, #0x80000000", 0x7fffffff, r1, r2, cv);
   1721    TESTINST2("sub.w  r1, r2, #0xff000000", 0x80000000, r1, r2, cv);
   1722    TESTINST2("sub.w  r1, r2, #0x0dd00000", 0x7fffffff, r1, r2, cv);
   1723    TESTCARRYEND
   1724 
   1725    printf("(T4) SUBW Rd, Rn, #uimm12\n");
   1726    TESTCARRY
   1727    TESTINST2("subw r1, r2, #0x000", 0x31415927, r1, r2, cv);
   1728    TESTINST2("subw r1, r2, #0x000", 0x91415927, r1, r2, cv);
   1729    TESTINST2("subw r1, r2, #0xABC", 0x31415927, r1, r2, cv);
   1730    TESTINST2("subw r1, r2, #0xABC", 0x91415927, r1, r2, cv);
   1731    TESTINST2("subw r1, r2, #0xFFF", 0x31415927, r1, r2, cv);
   1732    TESTINST2("subw r1, r2, #0xFFF", 0x91415927, r1, r2, cv);
   1733    TESTCARRYEND
   1734 
   1735    printf("(T3) RSB{S}.W Rd, Rn, #constT [allegedly]\n");
   1736    TESTCARRY
   1737    TESTINST2("rsbs.w r1, r2, #0xffffffff", 0x31415927, r1, r2, cv);
   1738    TESTINST2("rsbs.w r1, r2, #0xee00ee00", 0x31415927, r1, r2, cv);
   1739    TESTINST2("rsbs.w r1, r2, #255       ", 0,          r1, r2, cv);
   1740    TESTINST2("rsbs.w r1, r2, #0         ", 1,          r1, r2, cv);
   1741    TESTINST2("rsbs.w r1, r2, #1         ", 0,          r1, r2, cv);
   1742    TESTINST2("rsbs.w r1, r2, #0         ", -1,         r1, r2, cv);
   1743    TESTINST2("rsbs.w r1, r2, #-1        ", 0,          r1, r2, cv);
   1744    TESTINST2("rsbs.w r1, r2, #0x80000000", 0,          r1, r2, cv);
   1745    TESTINST2("rsbs.w r1, r2, #0         ", 0x80000000, r1, r2, cv);
   1746    TESTINST2("rsbs.w r1, r2, #0x80000000", 0x80000000, r1, r2, cv);
   1747    TESTINST2("rsbs.w r1, r2, #0x80000000", 0x7fffffff, r1, r2, cv);
   1748    TESTINST2("rsbs.w r1, r2, #0xff000000", 0x80000000, r1, r2, cv);
   1749    TESTINST2("rsbs.w r1, r2, #0x0dd00000", 0x7fffffff, r1, r2, cv);
   1750    TESTINST2("rsb.w  r1, r2, #0xffffffff", 0x31415927, r1, r2, cv);
   1751    TESTINST2("rsb.w  r1, r2, #0xee00ee00", 0x31415927, r1, r2, cv);
   1752    TESTINST2("rsb.w  r1, r2, #255       ", 0,          r1, r2, cv);
   1753    TESTINST2("rsb.w  r1, r2, #0         ", 1,          r1, r2, cv);
   1754    TESTINST2("rsb.w  r1, r2, #1         ", 0,          r1, r2, cv);
   1755    TESTINST2("rsb.w  r1, r2, #0         ", -1,         r1, r2, cv);
   1756    TESTINST2("rsb.w  r1, r2, #-1        ", 0,          r1, r2, cv);
   1757    TESTINST2("rsb.w  r1, r2, #0x80000000", 0,          r1, r2, cv);
   1758    TESTINST2("rsb.w  r1, r2, #0         ", 0x80000000, r1, r2, cv);
   1759    TESTINST2("rsb.w  r1, r2, #0x80000000", 0x80000000, r1, r2, cv);
   1760    TESTINST2("rsb.w  r1, r2, #0x80000000", 0x7fffffff, r1, r2, cv);
   1761    TESTINST2("rsb.w  r1, r2, #0xff000000", 0x80000000, r1, r2, cv);
   1762    TESTINST2("rsb.w  r1, r2, #0x0dd00000", 0x7fffffff, r1, r2, cv);
   1763    TESTCARRYEND
   1764 
   1765    printf("(T3) ADC{S}.W Rd, Rn, #constT [allegedly]\n");
   1766    TESTCARRY
   1767    TESTINST2("adcs.w r1, r2, #0xffffffff", 0x31415927, r1, r2, cv);
   1768    TESTINST2("adcs.w r1, r2, #0xee00ee00", 0x31415927, r1, r2, cv);
   1769    TESTINST2("adcs.w r1, r2, #255       ", 0,          r1, r2, cv);
   1770    TESTINST2("adcs.w r1, r2, #0         ", 1,          r1, r2, cv);
   1771    TESTINST2("adcs.w r1, r2, #1         ", 0,          r1, r2, cv);
   1772    TESTINST2("adcs.w r1, r2, #0         ", -1,         r1, r2, cv);
   1773    TESTINST2("adcs.w r1, r2, #-1        ", 0,          r1, r2, cv);
   1774    TESTINST2("adcs.w r1, r2, #0x80000000", 0,          r1, r2, cv);
   1775    TESTINST2("adcs.w r1, r2, #0         ", 0x80000000, r1, r2, cv);
   1776    TESTINST2("adcs.w r1, r2, #0x80000000", 0x80000000, r1, r2, cv);
   1777    TESTINST2("adcs.w r1, r2, #0x80000000", 0x7fffffff, r1, r2, cv);
   1778    TESTINST2("adcs.w r1, r2, #0xff000000", 0x80000000, r1, r2, cv);
   1779    TESTINST2("adcs.w r1, r2, #0x0dd00000", 0x7fffffff, r1, r2, cv);
   1780    TESTINST2("adc.w  r1, r2, #0xffffffff", 0x31415927, r1, r2, cv);
   1781    TESTINST2("adc.w  r1, r2, #0xee00ee00", 0x31415927, r1, r2, cv);
   1782    TESTINST2("adc.w  r1, r2, #255       ", 0,          r1, r2, cv);
   1783    TESTINST2("adc.w  r1, r2, #0         ", 1,          r1, r2, cv);
   1784    TESTINST2("adc.w  r1, r2, #1         ", 0,          r1, r2, cv);
   1785    TESTINST2("adc.w  r1, r2, #0         ", -1,         r1, r2, cv);
   1786    TESTINST2("adc.w  r1, r2, #-1        ", 0,          r1, r2, cv);
   1787    TESTINST2("adc.w  r1, r2, #0x80000000", 0,          r1, r2, cv);
   1788    TESTINST2("adc.w  r1, r2, #0         ", 0x80000000, r1, r2, cv);
   1789    TESTINST2("adc.w  r1, r2, #0x80000000", 0x80000000, r1, r2, cv);
   1790    TESTINST2("adc.w  r1, r2, #0x80000000", 0x7fffffff, r1, r2, cv);
   1791    TESTINST2("adc.w  r1, r2, #0xff000000", 0x80000000, r1, r2, cv);
   1792    TESTINST2("adc.w  r1, r2, #0x0dd00000", 0x7fffffff, r1, r2, cv);
   1793    TESTCARRYEND
   1794 
   1795    printf("(T3) SBC{S}.W Rd, Rn, #constT [allegedly]\n");
   1796    TESTCARRY
   1797    TESTINST2("sbcs.w r1, r2, #0xffffffff", 0x31415927, r1, r2, cv);
   1798    TESTINST2("sbcs.w r1, r2, #0xee00ee00", 0x31415927, r1, r2, cv);
   1799    TESTINST2("sbcs.w r1, r2, #255       ", 0,          r1, r2, cv);
   1800    TESTINST2("sbcs.w r1, r2, #0         ", 1,          r1, r2, cv);
   1801    TESTINST2("sbcs.w r1, r2, #1         ", 0,          r1, r2, cv);
   1802    TESTINST2("sbcs.w r1, r2, #0         ", -1,         r1, r2, cv);
   1803    TESTINST2("sbcs.w r1, r2, #-1        ", 0,          r1, r2, cv);
   1804    TESTINST2("sbcs.w r1, r2, #0x80000000", 0,          r1, r2, cv);
   1805    TESTINST2("sbcs.w r1, r2, #0         ", 0x80000000, r1, r2, cv);
   1806    TESTINST2("sbcs.w r1, r2, #0x80000000", 0x80000000, r1, r2, cv);
   1807    TESTINST2("sbcs.w r1, r2, #0x80000000", 0x7fffffff, r1, r2, cv);
   1808    TESTINST2("sbcs.w r1, r2, #0xff000000", 0x80000000, r1, r2, cv);
   1809    TESTINST2("sbcs.w r1, r2, #0x0dd00000", 0x7fffffff, r1, r2, cv);
   1810    TESTINST2("sbc.w  r1, r2, #0xffffffff", 0x31415927, r1, r2, cv);
   1811    TESTINST2("sbc.w  r1, r2, #0xee00ee00", 0x31415927, r1, r2, cv);
   1812    TESTINST2("sbc.w  r1, r2, #255       ", 0,          r1, r2, cv);
   1813    TESTINST2("sbc.w  r1, r2, #0         ", 1,          r1, r2, cv);
   1814    TESTINST2("sbc.w  r1, r2, #1         ", 0,          r1, r2, cv);
   1815    TESTINST2("sbc.w  r1, r2, #0         ", -1,         r1, r2, cv);
   1816    TESTINST2("sbc.w  r1, r2, #-1        ", 0,          r1, r2, cv);
   1817    TESTINST2("sbc.w  r1, r2, #0x80000000", 0,          r1, r2, cv);
   1818    TESTINST2("sbc.w  r1, r2, #0         ", 0x80000000, r1, r2, cv);
   1819    TESTINST2("sbc.w  r1, r2, #0x80000000", 0x80000000, r1, r2, cv);
   1820    TESTINST2("sbc.w  r1, r2, #0x80000000", 0x7fffffff, r1, r2, cv);
   1821    TESTINST2("sbc.w  r1, r2, #0xff000000", 0x80000000, r1, r2, cv);
   1822    TESTINST2("sbc.w  r1, r2, #0x0dd00000", 0x7fffffff, r1, r2, cv);
   1823    TESTCARRYEND
   1824 
   1825    printf("(T3) AND{S}.W Rd, Rn, #constT [allegedly]\n");
   1826    TESTCARRY
   1827    TESTINST2("ands.w r1, r2, #0xffffffff", 0x31415927, r1, r2, cv);
   1828    TESTINST2("ands.w r1, r2, #0xee00ee00", 0x31415927, r1, r2, cv);
   1829    TESTINST2("ands.w r1, r2, #255       ", 0,          r1, r2, cv);
   1830    TESTINST2("ands.w r1, r2, #0         ", 1,          r1, r2, cv);
   1831    TESTINST2("ands.w r1, r2, #1         ", 0,          r1, r2, cv);
   1832    TESTINST2("ands.w r1, r2, #0         ", -1,         r1, r2, cv);
   1833    TESTINST2("ands.w r1, r2, #-1        ", 0,          r1, r2, cv);
   1834    TESTINST2("ands.w r1, r2, #0x80000000", 0,          r1, r2, cv);
   1835    TESTINST2("ands.w r1, r2, #0         ", 0x80000000, r1, r2, cv);
   1836    TESTINST2("ands.w r1, r2, #0x80000000", 0x80000000, r1, r2, cv);
   1837    TESTINST2("ands.w r1, r2, #0x80000000", 0x7fffffff, r1, r2, cv);
   1838    TESTINST2("ands.w r1, r2, #0xff000000", 0x80000000, r1, r2, cv);
   1839    TESTINST2("ands.w r1, r2, #0x0dd00000", 0x7fffffff, r1, r2, cv);
   1840    TESTINST2("and.w  r1, r2, #0xffffffff", 0x31415927, r1, r2, cv);
   1841    TESTINST2("and.w  r1, r2, #0xee00ee00", 0x31415927, r1, r2, cv);
   1842    TESTINST2("and.w  r1, r2, #255       ", 0,          r1, r2, cv);
   1843    TESTINST2("and.w  r1, r2, #0         ", 1,          r1, r2, cv);
   1844    TESTINST2("and.w  r1, r2, #1         ", 0,          r1, r2, cv);
   1845    TESTINST2("and.w  r1, r2, #0         ", -1,         r1, r2, cv);
   1846    TESTINST2("and.w  r1, r2, #-1        ", 0,          r1, r2, cv);
   1847    TESTINST2("and.w  r1, r2, #0x80000000", 0,          r1, r2, cv);
   1848    TESTINST2("and.w  r1, r2, #0         ", 0x80000000, r1, r2, cv);
   1849    TESTINST2("and.w  r1, r2, #0x80000000", 0x80000000, r1, r2, cv);
   1850    TESTINST2("and.w  r1, r2, #0x80000000", 0x7fffffff, r1, r2, cv);
   1851    TESTINST2("and.w  r1, r2, #0xff000000", 0x80000000, r1, r2, cv);
   1852    TESTINST2("and.w  r1, r2, #0x0dd00000", 0x7fffffff, r1, r2, cv);
   1853    TESTCARRYEND
   1854 
   1855    printf("(T3) ORR{S}.W Rd, Rn, #constT [allegedly]\n");
   1856    TESTCARRY
   1857    TESTINST2("orrs.w r1, r2, #0xffffffff", 0x31415927, r1, r2, cv);
   1858    TESTINST2("orrs.w r1, r2, #0xee00ee00", 0x31415927, r1, r2, cv);
   1859    TESTINST2("orrs.w r1, r2, #255       ", 0,          r1, r2, cv);
   1860    TESTINST2("orrs.w r1, r2, #0         ", 1,          r1, r2, cv);
   1861    TESTINST2("orrs.w r1, r2, #1         ", 0,          r1, r2, cv);
   1862    TESTINST2("orrs.w r1, r2, #0         ", -1,         r1, r2, cv);
   1863    TESTINST2("orrs.w r1, r2, #-1        ", 0,          r1, r2, cv);
   1864    TESTINST2("orrs.w r1, r2, #0x80000000", 0,          r1, r2, cv);
   1865    TESTINST2("orrs.w r1, r2, #0         ", 0x80000000, r1, r2, cv);
   1866    TESTINST2("orrs.w r1, r2, #0x80000000", 0x80000000, r1, r2, cv);
   1867    TESTINST2("orrs.w r1, r2, #0x80000000", 0x7fffffff, r1, r2, cv);
   1868    TESTINST2("orrs.w r1, r2, #0xff000000", 0x80000000, r1, r2, cv);
   1869    TESTINST2("orrs.w r1, r2, #0x0dd00000", 0x7fffffff, r1, r2, cv);
   1870    TESTINST2("orr.w  r1, r2, #0xffffffff", 0x31415927, r1, r2, cv);
   1871    TESTINST2("orr.w  r1, r2, #0xee00ee00", 0x31415927, r1, r2, cv);
   1872    TESTINST2("orr.w  r1, r2, #255       ", 0,          r1, r2, cv);
   1873    TESTINST2("orr.w  r1, r2, #0         ", 1,          r1, r2, cv);
   1874    TESTINST2("orr.w  r1, r2, #1         ", 0,          r1, r2, cv);
   1875    TESTINST2("orr.w  r1, r2, #0         ", -1,         r1, r2, cv);
   1876    TESTINST2("orr.w  r1, r2, #-1        ", 0,          r1, r2, cv);
   1877    TESTINST2("orr.w  r1, r2, #0x80000000", 0,          r1, r2, cv);
   1878    TESTINST2("orr.w  r1, r2, #0         ", 0x80000000, r1, r2, cv);
   1879    TESTINST2("orr.w  r1, r2, #0x80000000", 0x80000000, r1, r2, cv);
   1880    TESTINST2("orr.w  r1, r2, #0x80000000", 0x7fffffff, r1, r2, cv);
   1881    TESTINST2("orr.w  r1, r2, #0xff000000", 0x80000000, r1, r2, cv);
   1882    TESTINST2("orr.w  r1, r2, #0x0dd00000", 0x7fffffff, r1, r2, cv);
   1883    TESTCARRYEND
   1884 
   1885    printf("(T3) EOR{S}.W Rd, Rn, #constT [allegedly]\n");
   1886    TESTCARRY
   1887    TESTINST2("eors.w r1, r2, #0xffffffff", 0x31415927, r1, r2, cv);
   1888    TESTINST2("eors.w r1, r2, #0xee00ee00", 0x31415927, r1, r2, cv);
   1889    TESTINST2("eors.w r1, r2, #255       ", 0,          r1, r2, cv);
   1890    TESTINST2("eors.w r1, r2, #0         ", 1,          r1, r2, cv);
   1891    TESTINST2("eors.w r1, r2, #1         ", 0,          r1, r2, cv);
   1892    TESTINST2("eors.w r1, r2, #0         ", -1,         r1, r2, cv);
   1893    TESTINST2("eors.w r1, r2, #-1        ", 0,          r1, r2, cv);
   1894    TESTINST2("eors.w r1, r2, #0x80000000", 0,          r1, r2, cv);
   1895    TESTINST2("eors.w r1, r2, #0         ", 0x80000000, r1, r2, cv);
   1896    TESTINST2("eors.w r1, r2, #0x80000000", 0x80000000, r1, r2, cv);
   1897    TESTINST2("eors.w r1, r2, #0x80000000", 0x7fffffff, r1, r2, cv);
   1898    TESTINST2("eors.w r1, r2, #0xff000000", 0x80000000, r1, r2, cv);
   1899    TESTINST2("eors.w r1, r2, #0x0dd00000", 0x7fffffff, r1, r2, cv);
   1900    TESTINST2("eor.w  r1, r2, #0xffffffff", 0x31415927, r1, r2, cv);
   1901    TESTINST2("eor.w  r1, r2, #0xee00ee00", 0x31415927, r1, r2, cv);
   1902    TESTINST2("eor.w  r1, r2, #255       ", 0,          r1, r2, cv);
   1903    TESTINST2("eor.w  r1, r2, #0         ", 1,          r1, r2, cv);
   1904    TESTINST2("eor.w  r1, r2, #1         ", 0,          r1, r2, cv);
   1905    TESTINST2("eor.w  r1, r2, #0         ", -1,         r1, r2, cv);
   1906    TESTINST2("eor.w  r1, r2, #-1        ", 0,          r1, r2, cv);
   1907    TESTINST2("eor.w  r1, r2, #0x80000000", 0,          r1, r2, cv);
   1908    TESTINST2("eor.w  r1, r2, #0         ", 0x80000000, r1, r2, cv);
   1909    TESTINST2("eor.w  r1, r2, #0x80000000", 0x80000000, r1, r2, cv);
   1910    TESTINST2("eor.w  r1, r2, #0x80000000", 0x7fffffff, r1, r2, cv);
   1911    TESTINST2("eor.w  r1, r2, #0xff000000", 0x80000000, r1, r2, cv);
   1912    TESTINST2("eor.w  r1, r2, #0x0dd00000", 0x7fffffff, r1, r2, cv);
   1913    TESTCARRYEND
   1914 
   1915    printf("(T3) BIC{S}.W Rd, Rn, #constT [allegedly]\n");
   1916    TESTCARRY
   1917    TESTINST2("bics.w r1, r2, #0xffffffff", 0x31415927, r1, r2, cv);
   1918    TESTINST2("bics.w r1, r2, #0xee00ee00", 0x31415927, r1, r2, cv);
   1919    TESTINST2("bics.w r1, r2, #255       ", 0,          r1, r2, cv);
   1920    TESTINST2("bics.w r1, r2, #0         ", 1,          r1, r2, cv);
   1921    TESTINST2("bics.w r1, r2, #1         ", 0,          r1, r2, cv);
   1922    TESTINST2("bics.w r1, r2, #0         ", -1,         r1, r2, cv);
   1923    TESTINST2("bics.w r1, r2, #-1        ", 0,          r1, r2, cv);
   1924    TESTINST2("bics.w r1, r2, #0x80000000", 0,          r1, r2, cv);
   1925    TESTINST2("bics.w r1, r2, #0         ", 0x80000000, r1, r2, cv);
   1926    TESTINST2("bics.w r1, r2, #0x80000000", 0x80000000, r1, r2, cv);
   1927    TESTINST2("bics.w r1, r2, #0x80000000", 0x7fffffff, r1, r2, cv);
   1928    TESTINST2("bics.w r1, r2, #0xff000000", 0x80000000, r1, r2, cv);
   1929    TESTINST2("bics.w r1, r2, #0x0dd00000", 0x7fffffff, r1, r2, cv);
   1930    TESTINST2("bic.w  r1, r2, #0xffffffff", 0x31415927, r1, r2, cv);
   1931    TESTINST2("bic.w  r1, r2, #0xee00ee00", 0x31415927, r1, r2, cv);
   1932    TESTINST2("bic.w  r1, r2, #255       ", 0,          r1, r2, cv);
   1933    TESTINST2("bic.w  r1, r2, #0         ", 1,          r1, r2, cv);
   1934    TESTINST2("bic.w  r1, r2, #1         ", 0,          r1, r2, cv);
   1935    TESTINST2("bic.w  r1, r2, #0         ", -1,         r1, r2, cv);
   1936    TESTINST2("bic.w  r1, r2, #-1        ", 0,          r1, r2, cv);
   1937    TESTINST2("bic.w  r1, r2, #0x80000000", 0,          r1, r2, cv);
   1938    TESTINST2("bic.w  r1, r2, #0         ", 0x80000000, r1, r2, cv);
   1939    TESTINST2("bic.w  r1, r2, #0x80000000", 0x80000000, r1, r2, cv);
   1940    TESTINST2("bic.w  r1, r2, #0x80000000", 0x7fffffff, r1, r2, cv);
   1941    TESTINST2("bic.w  r1, r2, #0xff000000", 0x80000000, r1, r2, cv);
   1942    TESTINST2("bic.w  r1, r2, #0x0dd00000", 0x7fffffff, r1, r2, cv);
   1943    TESTCARRYEND
   1944 
   1945    printf("(T3) ORN{S}.W Rd, Rn, #constT [allegedly]\n");
   1946    TESTCARRY
   1947    TESTINST2("orns.w r1, r2, #0xffffffff", 0x31415927, r1, r2, cv);
   1948    TESTINST2("orns.w r1, r2, #0xee00ee00", 0x31415927, r1, r2, cv);
   1949    TESTINST2("orns.w r1, r2, #255       ", 0,          r1, r2, cv);
   1950    TESTINST2("orns.w r1, r2, #0         ", 1,          r1, r2, cv);
   1951    TESTINST2("orns.w r1, r2, #1         ", 0,          r1, r2, cv);
   1952    TESTINST2("orns.w r1, r2, #0         ", -1,         r1, r2, cv);
   1953    TESTINST2("orns.w r1, r2, #-1        ", 0,          r1, r2, cv);
   1954    TESTINST2("orns.w r1, r2, #0x80000000", 0,          r1, r2, cv);
   1955    TESTINST2("orns.w r1, r2, #0         ", 0x80000000, r1, r2, cv);
   1956    TESTINST2("orns.w r1, r2, #0x80000000", 0x80000000, r1, r2, cv);
   1957    TESTINST2("orns.w r1, r2, #0x80000000", 0x7fffffff, r1, r2, cv);
   1958    TESTINST2("orns.w r1, r2, #0xff000000", 0x80000000, r1, r2, cv);
   1959    TESTINST2("orns.w r1, r2, #0x0dd00000", 0x7fffffff, r1, r2, cv);
   1960    TESTINST2("orn.w  r1, r2, #0xffffffff", 0x31415927, r1, r2, cv);
   1961    TESTINST2("orn.w  r1, r2, #0xee00ee00", 0x31415927, r1, r2, cv);
   1962    TESTINST2("orn.w  r1, r2, #255       ", 0,          r1, r2, cv);
   1963    TESTINST2("orn.w  r1, r2, #0         ", 1,          r1, r2, cv);
   1964    TESTINST2("orn.w  r1, r2, #1         ", 0,          r1, r2, cv);
   1965    TESTINST2("orn.w  r1, r2, #0         ", -1,         r1, r2, cv);
   1966    TESTINST2("orn.w  r1, r2, #-1        ", 0,          r1, r2, cv);
   1967    TESTINST2("orn.w  r1, r2, #0x80000000", 0,          r1, r2, cv);
   1968    TESTINST2("orn.w  r1, r2, #0         ", 0x80000000, r1, r2, cv);
   1969    TESTINST2("orn.w  r1, r2, #0x80000000", 0x80000000, r1, r2, cv);
   1970    TESTINST2("orn.w  r1, r2, #0x80000000", 0x7fffffff, r1, r2, cv);
   1971    TESTINST2("orn.w  r1, r2, #0xff000000", 0x80000000, r1, r2, cv);
   1972    TESTINST2("orn.w  r1, r2, #0x0dd00000", 0x7fffffff, r1, r2, cv);
   1973    TESTCARRYEND
   1974 
   1975    printf("ADD{S}.W Rd, Rn, Rm, {shift}\n");
   1976    TESTCARRY
   1977    TESTINST3("adds.w r1, r2, r3, lsl #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   1978    TESTINST3("adds.w r1, r2, r3, lsl #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   1979    TESTINST3("adds.w r1, r2, r3, lsl #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   1980    TESTINST3("adds.w r1, r2, r3, lsl #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   1981    TESTINST3("adds.w r1, r2, r3, lsr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   1982    TESTINST3("adds.w r1, r2, r3, lsr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   1983    TESTINST3("adds.w r1, r2, r3, lsr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   1984    TESTINST3("adds.w r1, r2, r3, lsr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   1985    TESTINST3("adds.w r1, r2, r3, asr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   1986    TESTINST3("adds.w r1, r2, r3, asr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   1987    TESTINST3("adds.w r1, r2, r3, asr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   1988    TESTINST3("adds.w r1, r2, r3, asr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   1989    TESTINST3("add.w  r1, r2, r3, lsl #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   1990    TESTINST3("add.w  r1, r2, r3, lsl #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   1991    TESTINST3("add.w  r1, r2, r3, lsl #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   1992    TESTINST3("add.w  r1, r2, r3, lsl #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   1993    TESTINST3("add.w  r1, r2, r3, lsr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   1994    TESTINST3("add.w  r1, r2, r3, lsr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   1995    TESTINST3("add.w  r1, r2, r3, lsr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   1996    TESTINST3("add.w  r1, r2, r3, lsr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   1997    TESTINST3("add.w  r1, r2, r3, asr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   1998    TESTINST3("add.w  r1, r2, r3, asr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   1999    TESTINST3("add.w  r1, r2, r3, asr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2000    TESTINST3("add.w  r1, r2, r3, asr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2001    TESTINST3("adds.w r1, r2, r3, lsl #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2002    TESTINST3("adds.w r1, r2, r3, lsl #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2003    TESTINST3("adds.w r1, r2, r3, lsl #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2004    TESTINST3("adds.w r1, r2, r3, lsl #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2005    TESTINST3("adds.w r1, r2, r3, lsr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2006    TESTINST3("adds.w r1, r2, r3, lsr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2007    TESTINST3("adds.w r1, r2, r3, lsr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2008    TESTINST3("adds.w r1, r2, r3, lsr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2009    TESTINST3("adds.w r1, r2, r3, asr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2010    TESTINST3("adds.w r1, r2, r3, asr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2011    TESTINST3("adds.w r1, r2, r3, asr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2012    TESTINST3("adds.w r1, r2, r3, asr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2013    TESTINST3("add.w  r1, r2, r3, lsl #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2014    TESTINST3("add.w  r1, r2, r3, lsl #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2015    TESTINST3("add.w  r1, r2, r3, lsl #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2016    TESTINST3("add.w  r1, r2, r3, lsl #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2017    TESTINST3("add.w  r1, r2, r3, lsr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2018    TESTINST3("add.w  r1, r2, r3, lsr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2019    TESTINST3("add.w  r1, r2, r3, lsr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2020    TESTINST3("add.w  r1, r2, r3, lsr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2021    TESTINST3("add.w  r1, r2, r3, asr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2022    TESTINST3("add.w  r1, r2, r3, asr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2023    TESTINST3("add.w  r1, r2, r3, asr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2024    TESTINST3("add.w  r1, r2, r3, asr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2025    TESTINST3("adds.w r1, r2, r3, lsl #0 ", 0,          0,          r1, r2, r3, cv);
   2026    TESTINST3("adds.w r1, r2, r3, lsl #1 ", 0,          0,          r1, r2, r3, cv);
   2027    TESTINST3("adds.w r1, r2, r3, lsl #15", 0,          0,          r1, r2, r3, cv);
   2028    TESTINST3("adds.w r1, r2, r3, lsl #31", 0,          0,          r1, r2, r3, cv);
   2029    TESTINST3("adds.w r1, r2, r3, lsr #0 ", 0,          0,          r1, r2, r3, cv);
   2030    TESTINST3("adds.w r1, r2, r3, lsr #1 ", 0,          0,          r1, r2, r3, cv);
   2031    TESTINST3("adds.w r1, r2, r3, lsr #15", 0,          0,          r1, r2, r3, cv);
   2032    TESTINST3("adds.w r1, r2, r3, lsr #31", 0,          0,          r1, r2, r3, cv);
   2033    TESTINST3("adds.w r1, r2, r3, asr #0 ", 0,          0,          r1, r2, r3, cv);
   2034    TESTINST3("adds.w r1, r2, r3, asr #1 ", 0,          0,          r1, r2, r3, cv);
   2035    TESTINST3("adds.w r1, r2, r3, asr #15", 0,          0,          r1, r2, r3, cv);
   2036    TESTINST3("adds.w r1, r2, r3, asr #31", 0,          0,          r1, r2, r3, cv);
   2037    TESTINST3("add.w  r1, r2, r3, lsl #0 ", 0,          0,          r1, r2, r3, cv);
   2038    TESTINST3("add.w  r1, r2, r3, lsl #1 ", 0,          0,          r1, r2, r3, cv);
   2039    TESTINST3("add.w  r1, r2, r3, lsl #15", 0,          0,          r1, r2, r3, cv);
   2040    TESTINST3("add.w  r1, r2, r3, lsl #31", 0,          0,          r1, r2, r3, cv);
   2041    TESTINST3("add.w  r1, r2, r3, lsr #0 ", 0,          0,          r1, r2, r3, cv);
   2042    TESTINST3("add.w  r1, r2, r3, lsr #1 ", 0,          0,          r1, r2, r3, cv);
   2043    TESTINST3("add.w  r1, r2, r3, lsr #15", 0,          0,          r1, r2, r3, cv);
   2044    TESTINST3("add.w  r1, r2, r3, lsr #31", 0,          0,          r1, r2, r3, cv);
   2045    TESTINST3("add.w  r1, r2, r3, asr #0 ", 0,          0,          r1, r2, r3, cv);
   2046    TESTINST3("add.w  r1, r2, r3, asr #1 ", 0,          0,          r1, r2, r3, cv);
   2047    TESTINST3("add.w  r1, r2, r3, asr #15", 0,          0,          r1, r2, r3, cv);
   2048    TESTINST3("add.w  r1, r2, r3, asr #31", 0,          0,          r1, r2, r3, cv);
   2049    TESTINST3("adds.w r1, r2, r3, lsl #0 ", 1,          0,          r1, r2, r3, cv);
   2050    TESTINST3("adds.w r1, r2, r3, lsl #1 ", 1,          0,          r1, r2, r3, cv);
   2051    TESTINST3("adds.w r1, r2, r3, lsl #15", 1,          0,          r1, r2, r3, cv);
   2052    TESTINST3("adds.w r1, r2, r3, lsl #31", 1,          0,          r1, r2, r3, cv);
   2053    TESTINST3("adds.w r1, r2, r3, lsr #0 ", 1,          0,          r1, r2, r3, cv);
   2054    TESTINST3("adds.w r1, r2, r3, lsr #1 ", 1,          0,          r1, r2, r3, cv);
   2055    TESTINST3("adds.w r1, r2, r3, lsr #15", 1,          0,          r1, r2, r3, cv);
   2056    TESTINST3("adds.w r1, r2, r3, lsr #31", 1,          0,          r1, r2, r3, cv);
   2057    TESTINST3("adds.w r1, r2, r3, asr #0 ", 1,          0,          r1, r2, r3, cv);
   2058    TESTINST3("adds.w r1, r2, r3, asr #1 ", 1,          0,          r1, r2, r3, cv);
   2059    TESTINST3("adds.w r1, r2, r3, asr #15", 1,          0,          r1, r2, r3, cv);
   2060    TESTINST3("adds.w r1, r2, r3, asr #31", 1,          0,          r1, r2, r3, cv);
   2061    TESTINST3("add.w  r1, r2, r3, lsl #0 ", 1,          0,          r1, r2, r3, cv);
   2062    TESTINST3("add.w  r1, r2, r3, lsl #1 ", 1,          0,          r1, r2, r3, cv);
   2063    TESTINST3("add.w  r1, r2, r3, lsl #15", 1,          0,          r1, r2, r3, cv);
   2064    TESTINST3("add.w  r1, r2, r3, lsl #31", 1,          0,          r1, r2, r3, cv);
   2065    TESTINST3("add.w  r1, r2, r3, lsr #0 ", 1,          0,          r1, r2, r3, cv);
   2066    TESTINST3("add.w  r1, r2, r3, lsr #1 ", 1,          0,          r1, r2, r3, cv);
   2067    TESTINST3("add.w  r1, r2, r3, lsr #15", 1,          0,          r1, r2, r3, cv);
   2068    TESTINST3("add.w  r1, r2, r3, lsr #31", 1,          0,          r1, r2, r3, cv);
   2069    TESTINST3("add.w  r1, r2, r3, asr #0 ", 1,          0,          r1, r2, r3, cv);
   2070    TESTINST3("add.w  r1, r2, r3, asr #1 ", 1,          0,          r1, r2, r3, cv);
   2071    TESTINST3("add.w  r1, r2, r3, asr #15", 1,          0,          r1, r2, r3, cv);
   2072    TESTINST3("add.w  r1, r2, r3, asr #31", 1,          0,          r1, r2, r3, cv);
   2073    TESTINST3("adds.w r1, r2, r3, lsl #0 ", 0,          1,          r1, r2, r3, cv);
   2074    TESTINST3("adds.w r1, r2, r3, lsl #1 ", 0,          1,          r1, r2, r3, cv);
   2075    TESTINST3("adds.w r1, r2, r3, lsl #15", 0,          1,          r1, r2, r3, cv);
   2076    TESTINST3("adds.w r1, r2, r3, lsl #31", 0,          1,          r1, r2, r3, cv);
   2077    TESTINST3("adds.w r1, r2, r3, lsr #0 ", 0,          1,          r1, r2, r3, cv);
   2078    TESTINST3("adds.w r1, r2, r3, lsr #1 ", 0,          1,          r1, r2, r3, cv);
   2079    TESTINST3("adds.w r1, r2, r3, lsr #15", 0,          1,          r1, r2, r3, cv);
   2080    TESTINST3("adds.w r1, r2, r3, lsr #31", 0,          1,          r1, r2, r3, cv);
   2081    TESTINST3("adds.w r1, r2, r3, asr #0 ", 0,          1,          r1, r2, r3, cv);
   2082    TESTINST3("adds.w r1, r2, r3, asr #1 ", 0,          1,          r1, r2, r3, cv);
   2083    TESTINST3("adds.w r1, r2, r3, asr #15", 0,          1,          r1, r2, r3, cv);
   2084    TESTINST3("adds.w r1, r2, r3, asr #31", 0,          1,          r1, r2, r3, cv);
   2085    TESTINST3("add.w  r1, r2, r3, lsl #0 ", 0,          1,          r1, r2, r3, cv);
   2086    TESTINST3("add.w  r1, r2, r3, lsl #1 ", 0,          1,          r1, r2, r3, cv);
   2087    TESTINST3("add.w  r1, r2, r3, lsl #15", 0,          1,          r1, r2, r3, cv);
   2088    TESTINST3("add.w  r1, r2, r3, lsl #31", 0,          1,          r1, r2, r3, cv);
   2089    TESTINST3("add.w  r1, r2, r3, lsr #0 ", 0,          1,          r1, r2, r3, cv);
   2090    TESTINST3("add.w  r1, r2, r3, lsr #1 ", 0,          1,          r1, r2, r3, cv);
   2091    TESTINST3("add.w  r1, r2, r3, lsr #15", 0,          1,          r1, r2, r3, cv);
   2092    TESTINST3("add.w  r1, r2, r3, lsr #31", 0,          1,          r1, r2, r3, cv);
   2093    TESTINST3("add.w  r1, r2, r3, asr #0 ", 0,          1,          r1, r2, r3, cv);
   2094    TESTINST3("add.w  r1, r2, r3, asr #1 ", 0,          1,          r1, r2, r3, cv);
   2095    TESTINST3("add.w  r1, r2, r3, asr #15", 0,          1,          r1, r2, r3, cv);
   2096    TESTINST3("add.w  r1, r2, r3, asr #31", 0,          1,          r1, r2, r3, cv);
   2097    TESTINST3("adds.w r1, r2, r3, lsl #0 ", -1,         0,          r1, r2, r3, cv);
   2098    TESTINST3("adds.w r1, r2, r3, lsl #1 ", -1,         0,          r1, r2, r3, cv);
   2099    TESTINST3("adds.w r1, r2, r3, lsl #15", -1,         0,          r1, r2, r3, cv);
   2100    TESTINST3("adds.w r1, r2, r3, lsl #31", -1,         0,          r1, r2, r3, cv);
   2101    TESTINST3("adds.w r1, r2, r3, lsr #0 ", -1,         0,          r1, r2, r3, cv);
   2102    TESTINST3("adds.w r1, r2, r3, lsr #1 ", -1,         0,          r1, r2, r3, cv);
   2103    TESTINST3("adds.w r1, r2, r3, lsr #15", -1,         0,          r1, r2, r3, cv);
   2104    TESTINST3("adds.w r1, r2, r3, lsr #31", -1,         0,          r1, r2, r3, cv);
   2105    TESTINST3("adds.w r1, r2, r3, asr #0 ", -1,         0,          r1, r2, r3, cv);
   2106    TESTINST3("adds.w r1, r2, r3, asr #1 ", -1,         0,          r1, r2, r3, cv);
   2107    TESTINST3("adds.w r1, r2, r3, asr #15", -1,         0,          r1, r2, r3, cv);
   2108    TESTINST3("adds.w r1, r2, r3, asr #31", -1,         0,          r1, r2, r3, cv);
   2109    TESTINST3("add.w  r1, r2, r3, lsl #0 ", -1,         0,          r1, r2, r3, cv);
   2110    TESTINST3("add.w  r1, r2, r3, lsl #1 ", -1,         0,          r1, r2, r3, cv);
   2111    TESTINST3("add.w  r1, r2, r3, lsl #15", -1,         0,          r1, r2, r3, cv);
   2112    TESTINST3("add.w  r1, r2, r3, lsl #31", -1,         0,          r1, r2, r3, cv);
   2113    TESTINST3("add.w  r1, r2, r3, lsr #0 ", -1,         0,          r1, r2, r3, cv);
   2114    TESTINST3("add.w  r1, r2, r3, lsr #1 ", -1,         0,          r1, r2, r3, cv);
   2115    TESTINST3("add.w  r1, r2, r3, lsr #15", -1,         0,          r1, r2, r3, cv);
   2116    TESTINST3("add.w  r1, r2, r3, lsr #31", -1,         0,          r1, r2, r3, cv);
   2117    TESTINST3("add.w  r1, r2, r3, asr #0 ", -1,         0,          r1, r2, r3, cv);
   2118    TESTINST3("add.w  r1, r2, r3, asr #1 ", -1,         0,          r1, r2, r3, cv);
   2119    TESTINST3("add.w  r1, r2, r3, asr #15", -1,         0,          r1, r2, r3, cv);
   2120    TESTINST3("add.w  r1, r2, r3, asr #31", -1,         0,          r1, r2, r3, cv);
   2121    TESTINST3("adds.w r1, r2, r3, lsl #0 ", 0,          -1,         r1, r2, r3, cv);
   2122    TESTINST3("adds.w r1, r2, r3, lsl #1 ", 0,          -1,         r1, r2, r3, cv);
   2123    TESTINST3("adds.w r1, r2, r3, lsl #15", 0,          -1,         r1, r2, r3, cv);
   2124    TESTINST3("adds.w r1, r2, r3, lsl #31", 0,          -1,         r1, r2, r3, cv);
   2125    TESTINST3("adds.w r1, r2, r3, lsr #0 ", 0,          -1,         r1, r2, r3, cv);
   2126    TESTINST3("adds.w r1, r2, r3, lsr #1 ", 0,          -1,         r1, r2, r3, cv);
   2127    TESTINST3("adds.w r1, r2, r3, lsr #15", 0,          -1,         r1, r2, r3, cv);
   2128    TESTINST3("adds.w r1, r2, r3, lsr #31", 0,          -1,         r1, r2, r3, cv);
   2129    TESTINST3("adds.w r1, r2, r3, asr #0 ", 0,          -1,         r1, r2, r3, cv);
   2130    TESTINST3("adds.w r1, r2, r3, asr #1 ", 0,          -1,         r1, r2, r3, cv);
   2131    TESTINST3("adds.w r1, r2, r3, asr #15", 0,          -1,         r1, r2, r3, cv);
   2132    TESTINST3("adds.w r1, r2, r3, asr #31", 0,          -1,         r1, r2, r3, cv);
   2133    TESTINST3("add.w  r1, r2, r3, lsl #0 ", 0,          -1,         r1, r2, r3, cv);
   2134    TESTINST3("add.w  r1, r2, r3, lsl #1 ", 0,          -1,         r1, r2, r3, cv);
   2135    TESTINST3("add.w  r1, r2, r3, lsl #15", 0,          -1,         r1, r2, r3, cv);
   2136    TESTINST3("add.w  r1, r2, r3, lsl #31", 0,          -1,         r1, r2, r3, cv);
   2137    TESTINST3("add.w  r1, r2, r3, lsr #0 ", 0,          -1,         r1, r2, r3, cv);
   2138    TESTINST3("add.w  r1, r2, r3, lsr #1 ", 0,          -1,         r1, r2, r3, cv);
   2139    TESTINST3("add.w  r1, r2, r3, lsr #15", 0,          -1,         r1, r2, r3, cv);
   2140    TESTINST3("add.w  r1, r2, r3, lsr #31", 0,          -1,         r1, r2, r3, cv);
   2141    TESTINST3("add.w  r1, r2, r3, asr #0 ", 0,          -1,         r1, r2, r3, cv);
   2142    TESTINST3("add.w  r1, r2, r3, asr #1 ", 0,          -1,         r1, r2, r3, cv);
   2143    TESTINST3("add.w  r1, r2, r3, asr #15", 0,          -1,         r1, r2, r3, cv);
   2144    TESTINST3("add.w  r1, r2, r3, asr #31", 0,          -1,         r1, r2, r3, cv);
   2145    TESTINST3("adds.w r1, r2, r3, lsl #0 ", 0,          0x80000000, r1, r2, r3, cv);
   2146    TESTINST3("adds.w r1, r2, r3, lsl #1 ", 0,          0x80000000, r1, r2, r3, cv);
   2147    TESTINST3("adds.w r1, r2, r3, lsl #15", 0,          0x80000000, r1, r2, r3, cv);
   2148    TESTINST3("adds.w r1, r2, r3, lsl #31", 0,          0x80000000, r1, r2, r3, cv);
   2149    TESTINST3("adds.w r1, r2, r3, lsr #0 ", 0,          0x80000000, r1, r2, r3, cv);
   2150    TESTINST3("adds.w r1, r2, r3, lsr #1 ", 0,          0x80000000, r1, r2, r3, cv);
   2151    TESTINST3("adds.w r1, r2, r3, lsr #15", 0,          0x80000000, r1, r2, r3, cv);
   2152    TESTINST3("adds.w r1, r2, r3, lsr #31", 0,          0x80000000, r1, r2, r3, cv);
   2153    TESTINST3("adds.w r1, r2, r3, asr #0 ", 0,          0x80000000, r1, r2, r3, cv);
   2154    TESTINST3("adds.w r1, r2, r3, asr #1 ", 0,          0x80000000, r1, r2, r3, cv);
   2155    TESTINST3("adds.w r1, r2, r3, asr #15", 0,          0x80000000, r1, r2, r3, cv);
   2156    TESTINST3("adds.w r1, r2, r3, asr #31", 0,          0x80000000, r1, r2, r3, cv);
   2157    TESTINST3("add.w  r1, r2, r3, lsl #0 ", 0,          0x80000000, r1, r2, r3, cv);
   2158    TESTINST3("add.w  r1, r2, r3, lsl #1 ", 0,          0x80000000, r1, r2, r3, cv);
   2159    TESTINST3("add.w  r1, r2, r3, lsl #15", 0,          0x80000000, r1, r2, r3, cv);
   2160    TESTINST3("add.w  r1, r2, r3, lsl #31", 0,          0x80000000, r1, r2, r3, cv);
   2161    TESTINST3("add.w  r1, r2, r3, lsr #0 ", 0,          0x80000000, r1, r2, r3, cv);
   2162    TESTINST3("add.w  r1, r2, r3, lsr #1 ", 0,          0x80000000, r1, r2, r3, cv);
   2163    TESTINST3("add.w  r1, r2, r3, lsr #15", 0,          0x80000000, r1, r2, r3, cv);
   2164    TESTINST3("add.w  r1, r2, r3, lsr #31", 0,          0x80000000, r1, r2, r3, cv);
   2165    TESTINST3("add.w  r1, r2, r3, asr #0 ", 0,          0x80000000, r1, r2, r3, cv);
   2166    TESTINST3("add.w  r1, r2, r3, asr #1 ", 0,          0x80000000, r1, r2, r3, cv);
   2167    TESTINST3("add.w  r1, r2, r3, asr #15", 0,          0x80000000, r1, r2, r3, cv);
   2168    TESTINST3("add.w  r1, r2, r3, asr #31", 0,          0x80000000, r1, r2, r3, cv);
   2169    TESTINST3("adds.w r1, r2, r3, lsl #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   2170    TESTINST3("adds.w r1, r2, r3, lsl #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   2171    TESTINST3("adds.w r1, r2, r3, lsl #15", 0x80000000, 0,          r1, r2, r3, cv);
   2172    TESTINST3("adds.w r1, r2, r3, lsl #31", 0x80000000, 0,          r1, r2, r3, cv);
   2173    TESTINST3("adds.w r1, r2, r3, lsr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   2174    TESTINST3("adds.w r1, r2, r3, lsr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   2175    TESTINST3("adds.w r1, r2, r3, lsr #15", 0x80000000, 0,          r1, r2, r3, cv);
   2176    TESTINST3("adds.w r1, r2, r3, lsr #31", 0x80000000, 0,          r1, r2, r3, cv);
   2177    TESTINST3("adds.w r1, r2, r3, asr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   2178    TESTINST3("adds.w r1, r2, r3, asr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   2179    TESTINST3("adds.w r1, r2, r3, asr #15", 0x80000000, 0,          r1, r2, r3, cv);
   2180    TESTINST3("adds.w r1, r2, r3, asr #31", 0x80000000, 0,          r1, r2, r3, cv);
   2181    TESTINST3("add.w  r1, r2, r3, lsl #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   2182    TESTINST3("add.w  r1, r2, r3, lsl #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   2183    TESTINST3("add.w  r1, r2, r3, lsl #15", 0x80000000, 0,          r1, r2, r3, cv);
   2184    TESTINST3("add.w  r1, r2, r3, lsl #31", 0x80000000, 0,          r1, r2, r3, cv);
   2185    TESTINST3("add.w  r1, r2, r3, lsr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   2186    TESTINST3("add.w  r1, r2, r3, lsr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   2187    TESTINST3("add.w  r1, r2, r3, lsr #15", 0x80000000, 0,          r1, r2, r3, cv);
   2188    TESTINST3("add.w  r1, r2, r3, lsr #31", 0x80000000, 0,          r1, r2, r3, cv);
   2189    TESTINST3("add.w  r1, r2, r3, asr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   2190    TESTINST3("add.w  r1, r2, r3, asr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   2191    TESTINST3("add.w  r1, r2, r3, asr #15", 0x80000000, 0,          r1, r2, r3, cv);
   2192    TESTINST3("add.w  r1, r2, r3, asr #31", 0x80000000, 0,          r1, r2, r3, cv);
   2193    TESTINST3("adds.w r1, r2, r3, lsl #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2194    TESTINST3("adds.w r1, r2, r3, lsl #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2195    TESTINST3("adds.w r1, r2, r3, lsl #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2196    TESTINST3("adds.w r1, r2, r3, lsl #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2197    TESTINST3("adds.w r1, r2, r3, lsr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2198    TESTINST3("adds.w r1, r2, r3, lsr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2199    TESTINST3("adds.w r1, r2, r3, lsr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2200    TESTINST3("adds.w r1, r2, r3, lsr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2201    TESTINST3("adds.w r1, r2, r3, asr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2202    TESTINST3("adds.w r1, r2, r3, asr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2203    TESTINST3("adds.w r1, r2, r3, asr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2204    TESTINST3("adds.w r1, r2, r3, asr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2205    TESTINST3("add.w  r1, r2, r3, lsl #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2206    TESTINST3("add.w  r1, r2, r3, lsl #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2207    TESTINST3("add.w  r1, r2, r3, lsl #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2208    TESTINST3("add.w  r1, r2, r3, lsl #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2209    TESTINST3("add.w  r1, r2, r3, lsr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2210    TESTINST3("add.w  r1, r2, r3, lsr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2211    TESTINST3("add.w  r1, r2, r3, lsr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2212    TESTINST3("add.w  r1, r2, r3, lsr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2213    TESTINST3("add.w  r1, r2, r3, asr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2214    TESTINST3("add.w  r1, r2, r3, asr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2215    TESTINST3("add.w  r1, r2, r3, asr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2216    TESTINST3("add.w  r1, r2, r3, asr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2217    TESTINST3("adds.w r1, r2, r3, lsl #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2218    TESTINST3("adds.w r1, r2, r3, lsl #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2219    TESTINST3("adds.w r1, r2, r3, lsl #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2220    TESTINST3("adds.w r1, r2, r3, lsl #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2221    TESTINST3("adds.w r1, r2, r3, lsr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2222    TESTINST3("adds.w r1, r2, r3, lsr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2223    TESTINST3("adds.w r1, r2, r3, lsr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2224    TESTINST3("adds.w r1, r2, r3, lsr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2225    TESTINST3("adds.w r1, r2, r3, asr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2226    TESTINST3("adds.w r1, r2, r3, asr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2227    TESTINST3("adds.w r1, r2, r3, asr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2228    TESTINST3("adds.w r1, r2, r3, asr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2229    TESTINST3("add.w  r1, r2, r3, lsl #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2230    TESTINST3("add.w  r1, r2, r3, lsl #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2231    TESTINST3("add.w  r1, r2, r3, lsl #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2232    TESTINST3("add.w  r1, r2, r3, lsl #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2233    TESTINST3("add.w  r1, r2, r3, lsr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2234    TESTINST3("add.w  r1, r2, r3, lsr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2235    TESTINST3("add.w  r1, r2, r3, lsr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2236    TESTINST3("add.w  r1, r2, r3, lsr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2237    TESTINST3("add.w  r1, r2, r3, asr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2238    TESTINST3("add.w  r1, r2, r3, asr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2239    TESTINST3("add.w  r1, r2, r3, asr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2240    TESTINST3("add.w  r1, r2, r3, asr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2241    TESTINST3("adds.w r1, r2, r3, lsl #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2242    TESTINST3("adds.w r1, r2, r3, lsl #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2243    TESTINST3("adds.w r1, r2, r3, lsl #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2244    TESTINST3("adds.w r1, r2, r3, lsl #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2245    TESTINST3("adds.w r1, r2, r3, lsr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2246    TESTINST3("adds.w r1, r2, r3, lsr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2247    TESTINST3("adds.w r1, r2, r3, lsr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2248    TESTINST3("adds.w r1, r2, r3, lsr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2249    TESTINST3("adds.w r1, r2, r3, asr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2250    TESTINST3("adds.w r1, r2, r3, asr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2251    TESTINST3("adds.w r1, r2, r3, asr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2252    TESTINST3("adds.w r1, r2, r3, asr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2253    TESTINST3("add.w  r1, r2, r3, lsl #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2254    TESTINST3("add.w  r1, r2, r3, lsl #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2255    TESTINST3("add.w  r1, r2, r3, lsl #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2256    TESTINST3("add.w  r1, r2, r3, lsl #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2257    TESTINST3("add.w  r1, r2, r3, lsr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2258    TESTINST3("add.w  r1, r2, r3, lsr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2259    TESTINST3("add.w  r1, r2, r3, lsr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2260    TESTINST3("add.w  r1, r2, r3, lsr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2261    TESTINST3("add.w  r1, r2, r3, asr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2262    TESTINST3("add.w  r1, r2, r3, asr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2263    TESTINST3("add.w  r1, r2, r3, asr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2264    TESTINST3("add.w  r1, r2, r3, asr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2265    TESTINST3("adds.w r1, r2, r3, lsl #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2266    TESTINST3("adds.w r1, r2, r3, lsl #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2267    TESTINST3("adds.w r1, r2, r3, lsl #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2268    TESTINST3("adds.w r1, r2, r3, lsl #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2269    TESTINST3("adds.w r1, r2, r3, lsr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2270    TESTINST3("adds.w r1, r2, r3, lsr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2271    TESTINST3("adds.w r1, r2, r3, lsr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2272    TESTINST3("adds.w r1, r2, r3, lsr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2273    TESTINST3("adds.w r1, r2, r3, asr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2274    TESTINST3("adds.w r1, r2, r3, asr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2275    TESTINST3("adds.w r1, r2, r3, asr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2276    TESTINST3("adds.w r1, r2, r3, asr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2277    TESTINST3("add.w  r1, r2, r3, lsl #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2278    TESTINST3("add.w  r1, r2, r3, lsl #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2279    TESTINST3("add.w  r1, r2, r3, lsl #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2280    TESTINST3("add.w  r1, r2, r3, lsl #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2281    TESTINST3("add.w  r1, r2, r3, lsr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2282    TESTINST3("add.w  r1, r2, r3, lsr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2283    TESTINST3("add.w  r1, r2, r3, lsr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2284    TESTINST3("add.w  r1, r2, r3, lsr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2285    TESTINST3("add.w  r1, r2, r3, asr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2286    TESTINST3("add.w  r1, r2, r3, asr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2287    TESTINST3("add.w  r1, r2, r3, asr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2288    TESTINST3("add.w  r1, r2, r3, asr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2289    TESTCARRYEND
   2290 
   2291    printf("SUBB{S}.W Rd, Rn, Rm, {shift}\n");
   2292    TESTCARRY
   2293    TESTINST3("subs.w r1, r2, r3, lsl #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2294    TESTINST3("subs.w r1, r2, r3, lsl #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2295    TESTINST3("subs.w r1, r2, r3, lsl #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2296    TESTINST3("subs.w r1, r2, r3, lsl #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2297    TESTINST3("subs.w r1, r2, r3, lsr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2298    TESTINST3("subs.w r1, r2, r3, lsr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2299    TESTINST3("subs.w r1, r2, r3, lsr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2300    TESTINST3("subs.w r1, r2, r3, lsr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2301    TESTINST3("subs.w r1, r2, r3, asr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2302    TESTINST3("subs.w r1, r2, r3, asr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2303    TESTINST3("subs.w r1, r2, r3, asr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2304    TESTINST3("subs.w r1, r2, r3, asr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2305    TESTINST3("sub.w  r1, r2, r3, lsl #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2306    TESTINST3("sub.w  r1, r2, r3, lsl #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2307    TESTINST3("sub.w  r1, r2, r3, lsl #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2308    TESTINST3("sub.w  r1, r2, r3, lsl #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2309    TESTINST3("sub.w  r1, r2, r3, lsr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2310    TESTINST3("sub.w  r1, r2, r3, lsr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2311    TESTINST3("sub.w  r1, r2, r3, lsr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2312    TESTINST3("sub.w  r1, r2, r3, lsr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2313    TESTINST3("sub.w  r1, r2, r3, asr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2314    TESTINST3("sub.w  r1, r2, r3, asr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2315    TESTINST3("sub.w  r1, r2, r3, asr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2316    TESTINST3("sub.w  r1, r2, r3, asr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2317    TESTINST3("subs.w r1, r2, r3, lsl #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2318    TESTINST3("subs.w r1, r2, r3, lsl #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2319    TESTINST3("subs.w r1, r2, r3, lsl #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2320    TESTINST3("subs.w r1, r2, r3, lsl #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2321    TESTINST3("subs.w r1, r2, r3, lsr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2322    TESTINST3("subs.w r1, r2, r3, lsr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2323    TESTINST3("subs.w r1, r2, r3, lsr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2324    TESTINST3("subs.w r1, r2, r3, lsr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2325    TESTINST3("subs.w r1, r2, r3, asr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2326    TESTINST3("subs.w r1, r2, r3, asr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2327    TESTINST3("subs.w r1, r2, r3, asr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2328    TESTINST3("subs.w r1, r2, r3, asr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2329    TESTINST3("sub.w  r1, r2, r3, lsl #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2330    TESTINST3("sub.w  r1, r2, r3, lsl #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2331    TESTINST3("sub.w  r1, r2, r3, lsl #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2332    TESTINST3("sub.w  r1, r2, r3, lsl #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2333    TESTINST3("sub.w  r1, r2, r3, lsr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2334    TESTINST3("sub.w  r1, r2, r3, lsr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2335    TESTINST3("sub.w  r1, r2, r3, lsr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2336    TESTINST3("sub.w  r1, r2, r3, lsr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2337    TESTINST3("sub.w  r1, r2, r3, asr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2338    TESTINST3("sub.w  r1, r2, r3, asr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2339    TESTINST3("sub.w  r1, r2, r3, asr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2340    TESTINST3("sub.w  r1, r2, r3, asr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2341    TESTINST3("subs.w r1, r2, r3, lsl #0 ", 0,          0,          r1, r2, r3, cv);
   2342    TESTINST3("subs.w r1, r2, r3, lsl #1 ", 0,          0,          r1, r2, r3, cv);
   2343    TESTINST3("subs.w r1, r2, r3, lsl #15", 0,          0,          r1, r2, r3, cv);
   2344    TESTINST3("subs.w r1, r2, r3, lsl #31", 0,          0,          r1, r2, r3, cv);
   2345    TESTINST3("subs.w r1, r2, r3, lsr #0 ", 0,          0,          r1, r2, r3, cv);
   2346    TESTINST3("subs.w r1, r2, r3, lsr #1 ", 0,          0,          r1, r2, r3, cv);
   2347    TESTINST3("subs.w r1, r2, r3, lsr #15", 0,          0,          r1, r2, r3, cv);
   2348    TESTINST3("subs.w r1, r2, r3, lsr #31", 0,          0,          r1, r2, r3, cv);
   2349    TESTINST3("subs.w r1, r2, r3, asr #0 ", 0,          0,          r1, r2, r3, cv);
   2350    TESTINST3("subs.w r1, r2, r3, asr #1 ", 0,          0,          r1, r2, r3, cv);
   2351    TESTINST3("subs.w r1, r2, r3, asr #15", 0,          0,          r1, r2, r3, cv);
   2352    TESTINST3("subs.w r1, r2, r3, asr #31", 0,          0,          r1, r2, r3, cv);
   2353    TESTINST3("sub.w  r1, r2, r3, lsl #0 ", 0,          0,          r1, r2, r3, cv);
   2354    TESTINST3("sub.w  r1, r2, r3, lsl #1 ", 0,          0,          r1, r2, r3, cv);
   2355    TESTINST3("sub.w  r1, r2, r3, lsl #15", 0,          0,          r1, r2, r3, cv);
   2356    TESTINST3("sub.w  r1, r2, r3, lsl #31", 0,          0,          r1, r2, r3, cv);
   2357    TESTINST3("sub.w  r1, r2, r3, lsr #0 ", 0,          0,          r1, r2, r3, cv);
   2358    TESTINST3("sub.w  r1, r2, r3, lsr #1 ", 0,          0,          r1, r2, r3, cv);
   2359    TESTINST3("sub.w  r1, r2, r3, lsr #15", 0,          0,          r1, r2, r3, cv);
   2360    TESTINST3("sub.w  r1, r2, r3, lsr #31", 0,          0,          r1, r2, r3, cv);
   2361    TESTINST3("sub.w  r1, r2, r3, asr #0 ", 0,          0,          r1, r2, r3, cv);
   2362    TESTINST3("sub.w  r1, r2, r3, asr #1 ", 0,          0,          r1, r2, r3, cv);
   2363    TESTINST3("sub.w  r1, r2, r3, asr #15", 0,          0,          r1, r2, r3, cv);
   2364    TESTINST3("sub.w  r1, r2, r3, asr #31", 0,          0,          r1, r2, r3, cv);
   2365    TESTINST3("subs.w r1, r2, r3, lsl #0 ", 1,          0,          r1, r2, r3, cv);
   2366    TESTINST3("subs.w r1, r2, r3, lsl #1 ", 1,          0,          r1, r2, r3, cv);
   2367    TESTINST3("subs.w r1, r2, r3, lsl #15", 1,          0,          r1, r2, r3, cv);
   2368    TESTINST3("subs.w r1, r2, r3, lsl #31", 1,          0,          r1, r2, r3, cv);
   2369    TESTINST3("subs.w r1, r2, r3, lsr #0 ", 1,          0,          r1, r2, r3, cv);
   2370    TESTINST3("subs.w r1, r2, r3, lsr #1 ", 1,          0,          r1, r2, r3, cv);
   2371    TESTINST3("subs.w r1, r2, r3, lsr #15", 1,          0,          r1, r2, r3, cv);
   2372    TESTINST3("subs.w r1, r2, r3, lsr #31", 1,          0,          r1, r2, r3, cv);
   2373    TESTINST3("subs.w r1, r2, r3, asr #0 ", 1,          0,          r1, r2, r3, cv);
   2374    TESTINST3("subs.w r1, r2, r3, asr #1 ", 1,          0,          r1, r2, r3, cv);
   2375    TESTINST3("subs.w r1, r2, r3, asr #15", 1,          0,          r1, r2, r3, cv);
   2376    TESTINST3("subs.w r1, r2, r3, asr #31", 1,          0,          r1, r2, r3, cv);
   2377    TESTINST3("sub.w  r1, r2, r3, lsl #0 ", 1,          0,          r1, r2, r3, cv);
   2378    TESTINST3("sub.w  r1, r2, r3, lsl #1 ", 1,          0,          r1, r2, r3, cv);
   2379    TESTINST3("sub.w  r1, r2, r3, lsl #15", 1,          0,          r1, r2, r3, cv);
   2380    TESTINST3("sub.w  r1, r2, r3, lsl #31", 1,          0,          r1, r2, r3, cv);
   2381    TESTINST3("sub.w  r1, r2, r3, lsr #0 ", 1,          0,          r1, r2, r3, cv);
   2382    TESTINST3("sub.w  r1, r2, r3, lsr #1 ", 1,          0,          r1, r2, r3, cv);
   2383    TESTINST3("sub.w  r1, r2, r3, lsr #15", 1,          0,          r1, r2, r3, cv);
   2384    TESTINST3("sub.w  r1, r2, r3, lsr #31", 1,          0,          r1, r2, r3, cv);
   2385    TESTINST3("sub.w  r1, r2, r3, asr #0 ", 1,          0,          r1, r2, r3, cv);
   2386    TESTINST3("sub.w  r1, r2, r3, asr #1 ", 1,          0,          r1, r2, r3, cv);
   2387    TESTINST3("sub.w  r1, r2, r3, asr #15", 1,          0,          r1, r2, r3, cv);
   2388    TESTINST3("sub.w  r1, r2, r3, asr #31", 1,          0,          r1, r2, r3, cv);
   2389    TESTINST3("subs.w r1, r2, r3, lsl #0 ", 0,          1,          r1, r2, r3, cv);
   2390    TESTINST3("subs.w r1, r2, r3, lsl #1 ", 0,          1,          r1, r2, r3, cv);
   2391    TESTINST3("subs.w r1, r2, r3, lsl #15", 0,          1,          r1, r2, r3, cv);
   2392    TESTINST3("subs.w r1, r2, r3, lsl #31", 0,          1,          r1, r2, r3, cv);
   2393    TESTINST3("subs.w r1, r2, r3, lsr #0 ", 0,          1,          r1, r2, r3, cv);
   2394    TESTINST3("subs.w r1, r2, r3, lsr #1 ", 0,          1,          r1, r2, r3, cv);
   2395    TESTINST3("subs.w r1, r2, r3, lsr #15", 0,          1,          r1, r2, r3, cv);
   2396    TESTINST3("subs.w r1, r2, r3, lsr #31", 0,          1,          r1, r2, r3, cv);
   2397    TESTINST3("subs.w r1, r2, r3, asr #0 ", 0,          1,          r1, r2, r3, cv);
   2398    TESTINST3("subs.w r1, r2, r3, asr #1 ", 0,          1,          r1, r2, r3, cv);
   2399    TESTINST3("subs.w r1, r2, r3, asr #15", 0,          1,          r1, r2, r3, cv);
   2400    TESTINST3("subs.w r1, r2, r3, asr #31", 0,          1,          r1, r2, r3, cv);
   2401    TESTINST3("sub.w  r1, r2, r3, lsl #0 ", 0,          1,          r1, r2, r3, cv);
   2402    TESTINST3("sub.w  r1, r2, r3, lsl #1 ", 0,          1,          r1, r2, r3, cv);
   2403    TESTINST3("sub.w  r1, r2, r3, lsl #15", 0,          1,          r1, r2, r3, cv);
   2404    TESTINST3("sub.w  r1, r2, r3, lsl #31", 0,          1,          r1, r2, r3, cv);
   2405    TESTINST3("sub.w  r1, r2, r3, lsr #0 ", 0,          1,          r1, r2, r3, cv);
   2406    TESTINST3("sub.w  r1, r2, r3, lsr #1 ", 0,          1,          r1, r2, r3, cv);
   2407    TESTINST3("sub.w  r1, r2, r3, lsr #15", 0,          1,          r1, r2, r3, cv);
   2408    TESTINST3("sub.w  r1, r2, r3, lsr #31", 0,          1,          r1, r2, r3, cv);
   2409    TESTINST3("sub.w  r1, r2, r3, asr #0 ", 0,          1,          r1, r2, r3, cv);
   2410    TESTINST3("sub.w  r1, r2, r3, asr #1 ", 0,          1,          r1, r2, r3, cv);
   2411    TESTINST3("sub.w  r1, r2, r3, asr #15", 0,          1,          r1, r2, r3, cv);
   2412    TESTINST3("sub.w  r1, r2, r3, asr #31", 0,          1,          r1, r2, r3, cv);
   2413    TESTINST3("subs.w r1, r2, r3, lsl #0 ", -1,         0,          r1, r2, r3, cv);
   2414    TESTINST3("subs.w r1, r2, r3, lsl #1 ", -1,         0,          r1, r2, r3, cv);
   2415    TESTINST3("subs.w r1, r2, r3, lsl #15", -1,         0,          r1, r2, r3, cv);
   2416    TESTINST3("subs.w r1, r2, r3, lsl #31", -1,         0,          r1, r2, r3, cv);
   2417    TESTINST3("subs.w r1, r2, r3, lsr #0 ", -1,         0,          r1, r2, r3, cv);
   2418    TESTINST3("subs.w r1, r2, r3, lsr #1 ", -1,         0,          r1, r2, r3, cv);
   2419    TESTINST3("subs.w r1, r2, r3, lsr #15", -1,         0,          r1, r2, r3, cv);
   2420    TESTINST3("subs.w r1, r2, r3, lsr #31", -1,         0,          r1, r2, r3, cv);
   2421    TESTINST3("subs.w r1, r2, r3, asr #0 ", -1,         0,          r1, r2, r3, cv);
   2422    TESTINST3("subs.w r1, r2, r3, asr #1 ", -1,         0,          r1, r2, r3, cv);
   2423    TESTINST3("subs.w r1, r2, r3, asr #15", -1,         0,          r1, r2, r3, cv);
   2424    TESTINST3("subs.w r1, r2, r3, asr #31", -1,         0,          r1, r2, r3, cv);
   2425    TESTINST3("sub.w  r1, r2, r3, lsl #0 ", -1,         0,          r1, r2, r3, cv);
   2426    TESTINST3("sub.w  r1, r2, r3, lsl #1 ", -1,         0,          r1, r2, r3, cv);
   2427    TESTINST3("sub.w  r1, r2, r3, lsl #15", -1,         0,          r1, r2, r3, cv);
   2428    TESTINST3("sub.w  r1, r2, r3, lsl #31", -1,         0,          r1, r2, r3, cv);
   2429    TESTINST3("sub.w  r1, r2, r3, lsr #0 ", -1,         0,          r1, r2, r3, cv);
   2430    TESTINST3("sub.w  r1, r2, r3, lsr #1 ", -1,         0,          r1, r2, r3, cv);
   2431    TESTINST3("sub.w  r1, r2, r3, lsr #15", -1,         0,          r1, r2, r3, cv);
   2432    TESTINST3("sub.w  r1, r2, r3, lsr #31", -1,         0,          r1, r2, r3, cv);
   2433    TESTINST3("sub.w  r1, r2, r3, asr #0 ", -1,         0,          r1, r2, r3, cv);
   2434    TESTINST3("sub.w  r1, r2, r3, asr #1 ", -1,         0,          r1, r2, r3, cv);
   2435    TESTINST3("sub.w  r1, r2, r3, asr #15", -1,         0,          r1, r2, r3, cv);
   2436    TESTINST3("sub.w  r1, r2, r3, asr #31", -1,         0,          r1, r2, r3, cv);
   2437    TESTINST3("subs.w r1, r2, r3, lsl #0 ", 0,          -1,         r1, r2, r3, cv);
   2438    TESTINST3("subs.w r1, r2, r3, lsl #1 ", 0,          -1,         r1, r2, r3, cv);
   2439    TESTINST3("subs.w r1, r2, r3, lsl #15", 0,          -1,         r1, r2, r3, cv);
   2440    TESTINST3("subs.w r1, r2, r3, lsl #31", 0,          -1,         r1, r2, r3, cv);
   2441    TESTINST3("subs.w r1, r2, r3, lsr #0 ", 0,          -1,         r1, r2, r3, cv);
   2442    TESTINST3("subs.w r1, r2, r3, lsr #1 ", 0,          -1,         r1, r2, r3, cv);
   2443    TESTINST3("subs.w r1, r2, r3, lsr #15", 0,          -1,         r1, r2, r3, cv);
   2444    TESTINST3("subs.w r1, r2, r3, lsr #31", 0,          -1,         r1, r2, r3, cv);
   2445    TESTINST3("subs.w r1, r2, r3, asr #0 ", 0,          -1,         r1, r2, r3, cv);
   2446    TESTINST3("subs.w r1, r2, r3, asr #1 ", 0,          -1,         r1, r2, r3, cv);
   2447    TESTINST3("subs.w r1, r2, r3, asr #15", 0,          -1,         r1, r2, r3, cv);
   2448    TESTINST3("subs.w r1, r2, r3, asr #31", 0,          -1,         r1, r2, r3, cv);
   2449    TESTINST3("sub.w  r1, r2, r3, lsl #0 ", 0,          -1,         r1, r2, r3, cv);
   2450    TESTINST3("sub.w  r1, r2, r3, lsl #1 ", 0,          -1,         r1, r2, r3, cv);
   2451    TESTINST3("sub.w  r1, r2, r3, lsl #15", 0,          -1,         r1, r2, r3, cv);
   2452    TESTINST3("sub.w  r1, r2, r3, lsl #31", 0,          -1,         r1, r2, r3, cv);
   2453    TESTINST3("sub.w  r1, r2, r3, lsr #0 ", 0,          -1,         r1, r2, r3, cv);
   2454    TESTINST3("sub.w  r1, r2, r3, lsr #1 ", 0,          -1,         r1, r2, r3, cv);
   2455    TESTINST3("sub.w  r1, r2, r3, lsr #15", 0,          -1,         r1, r2, r3, cv);
   2456    TESTINST3("sub.w  r1, r2, r3, lsr #31", 0,          -1,         r1, r2, r3, cv);
   2457    TESTINST3("sub.w  r1, r2, r3, asr #0 ", 0,          -1,         r1, r2, r3, cv);
   2458    TESTINST3("sub.w  r1, r2, r3, asr #1 ", 0,          -1,         r1, r2, r3, cv);
   2459    TESTINST3("sub.w  r1, r2, r3, asr #15", 0,          -1,         r1, r2, r3, cv);
   2460    TESTINST3("sub.w  r1, r2, r3, asr #31", 0,          -1,         r1, r2, r3, cv);
   2461    TESTINST3("subs.w r1, r2, r3, lsl #0 ", 0,          0x80000000, r1, r2, r3, cv);
   2462    TESTINST3("subs.w r1, r2, r3, lsl #1 ", 0,          0x80000000, r1, r2, r3, cv);
   2463    TESTINST3("subs.w r1, r2, r3, lsl #15", 0,          0x80000000, r1, r2, r3, cv);
   2464    TESTINST3("subs.w r1, r2, r3, lsl #31", 0,          0x80000000, r1, r2, r3, cv);
   2465    TESTINST3("subs.w r1, r2, r3, lsr #0 ", 0,          0x80000000, r1, r2, r3, cv);
   2466    TESTINST3("subs.w r1, r2, r3, lsr #1 ", 0,          0x80000000, r1, r2, r3, cv);
   2467    TESTINST3("subs.w r1, r2, r3, lsr #15", 0,          0x80000000, r1, r2, r3, cv);
   2468    TESTINST3("subs.w r1, r2, r3, lsr #31", 0,          0x80000000, r1, r2, r3, cv);
   2469    TESTINST3("subs.w r1, r2, r3, asr #0 ", 0,          0x80000000, r1, r2, r3, cv);
   2470    TESTINST3("subs.w r1, r2, r3, asr #1 ", 0,          0x80000000, r1, r2, r3, cv);
   2471    TESTINST3("subs.w r1, r2, r3, asr #15", 0,          0x80000000, r1, r2, r3, cv);
   2472    TESTINST3("subs.w r1, r2, r3, asr #31", 0,          0x80000000, r1, r2, r3, cv);
   2473    TESTINST3("sub.w  r1, r2, r3, lsl #0 ", 0,          0x80000000, r1, r2, r3, cv);
   2474    TESTINST3("sub.w  r1, r2, r3, lsl #1 ", 0,          0x80000000, r1, r2, r3, cv);
   2475    TESTINST3("sub.w  r1, r2, r3, lsl #15", 0,          0x80000000, r1, r2, r3, cv);
   2476    TESTINST3("sub.w  r1, r2, r3, lsl #31", 0,          0x80000000, r1, r2, r3, cv);
   2477    TESTINST3("sub.w  r1, r2, r3, lsr #0 ", 0,          0x80000000, r1, r2, r3, cv);
   2478    TESTINST3("sub.w  r1, r2, r3, lsr #1 ", 0,          0x80000000, r1, r2, r3, cv);
   2479    TESTINST3("sub.w  r1, r2, r3, lsr #15", 0,          0x80000000, r1, r2, r3, cv);
   2480    TESTINST3("sub.w  r1, r2, r3, lsr #31", 0,          0x80000000, r1, r2, r3, cv);
   2481    TESTINST3("sub.w  r1, r2, r3, asr #0 ", 0,          0x80000000, r1, r2, r3, cv);
   2482    TESTINST3("sub.w  r1, r2, r3, asr #1 ", 0,          0x80000000, r1, r2, r3, cv);
   2483    TESTINST3("sub.w  r1, r2, r3, asr #15", 0,          0x80000000, r1, r2, r3, cv);
   2484    TESTINST3("sub.w  r1, r2, r3, asr #31", 0,          0x80000000, r1, r2, r3, cv);
   2485    TESTINST3("subs.w r1, r2, r3, lsl #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   2486    TESTINST3("subs.w r1, r2, r3, lsl #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   2487    TESTINST3("subs.w r1, r2, r3, lsl #15", 0x80000000, 0,          r1, r2, r3, cv);
   2488    TESTINST3("subs.w r1, r2, r3, lsl #31", 0x80000000, 0,          r1, r2, r3, cv);
   2489    TESTINST3("subs.w r1, r2, r3, lsr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   2490    TESTINST3("subs.w r1, r2, r3, lsr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   2491    TESTINST3("subs.w r1, r2, r3, lsr #15", 0x80000000, 0,          r1, r2, r3, cv);
   2492    TESTINST3("subs.w r1, r2, r3, lsr #31", 0x80000000, 0,          r1, r2, r3, cv);
   2493    TESTINST3("subs.w r1, r2, r3, asr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   2494    TESTINST3("subs.w r1, r2, r3, asr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   2495    TESTINST3("subs.w r1, r2, r3, asr #15", 0x80000000, 0,          r1, r2, r3, cv);
   2496    TESTINST3("subs.w r1, r2, r3, asr #31", 0x80000000, 0,          r1, r2, r3, cv);
   2497    TESTINST3("sub.w  r1, r2, r3, lsl #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   2498    TESTINST3("sub.w  r1, r2, r3, lsl #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   2499    TESTINST3("sub.w  r1, r2, r3, lsl #15", 0x80000000, 0,          r1, r2, r3, cv);
   2500    TESTINST3("sub.w  r1, r2, r3, lsl #31", 0x80000000, 0,          r1, r2, r3, cv);
   2501    TESTINST3("sub.w  r1, r2, r3, lsr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   2502    TESTINST3("sub.w  r1, r2, r3, lsr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   2503    TESTINST3("sub.w  r1, r2, r3, lsr #15", 0x80000000, 0,          r1, r2, r3, cv);
   2504    TESTINST3("sub.w  r1, r2, r3, lsr #31", 0x80000000, 0,          r1, r2, r3, cv);
   2505    TESTINST3("sub.w  r1, r2, r3, asr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   2506    TESTINST3("sub.w  r1, r2, r3, asr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   2507    TESTINST3("sub.w  r1, r2, r3, asr #15", 0x80000000, 0,          r1, r2, r3, cv);
   2508    TESTINST3("sub.w  r1, r2, r3, asr #31", 0x80000000, 0,          r1, r2, r3, cv);
   2509    TESTINST3("subs.w r1, r2, r3, lsl #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2510    TESTINST3("subs.w r1, r2, r3, lsl #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2511    TESTINST3("subs.w r1, r2, r3, lsl #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2512    TESTINST3("subs.w r1, r2, r3, lsl #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2513    TESTINST3("subs.w r1, r2, r3, lsr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2514    TESTINST3("subs.w r1, r2, r3, lsr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2515    TESTINST3("subs.w r1, r2, r3, lsr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2516    TESTINST3("subs.w r1, r2, r3, lsr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2517    TESTINST3("subs.w r1, r2, r3, asr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2518    TESTINST3("subs.w r1, r2, r3, asr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2519    TESTINST3("subs.w r1, r2, r3, asr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2520    TESTINST3("subs.w r1, r2, r3, asr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2521    TESTINST3("sub.w  r1, r2, r3, lsl #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2522    TESTINST3("sub.w  r1, r2, r3, lsl #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2523    TESTINST3("sub.w  r1, r2, r3, lsl #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2524    TESTINST3("sub.w  r1, r2, r3, lsl #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2525    TESTINST3("sub.w  r1, r2, r3, lsr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2526    TESTINST3("sub.w  r1, r2, r3, lsr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2527    TESTINST3("sub.w  r1, r2, r3, lsr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2528    TESTINST3("sub.w  r1, r2, r3, lsr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2529    TESTINST3("sub.w  r1, r2, r3, asr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2530    TESTINST3("sub.w  r1, r2, r3, asr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2531    TESTINST3("sub.w  r1, r2, r3, asr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2532    TESTINST3("sub.w  r1, r2, r3, asr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2533    TESTINST3("subs.w r1, r2, r3, lsl #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2534    TESTINST3("subs.w r1, r2, r3, lsl #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2535    TESTINST3("subs.w r1, r2, r3, lsl #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2536    TESTINST3("subs.w r1, r2, r3, lsl #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2537    TESTINST3("subs.w r1, r2, r3, lsr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2538    TESTINST3("subs.w r1, r2, r3, lsr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2539    TESTINST3("subs.w r1, r2, r3, lsr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2540    TESTINST3("subs.w r1, r2, r3, lsr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2541    TESTINST3("subs.w r1, r2, r3, asr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2542    TESTINST3("subs.w r1, r2, r3, asr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2543    TESTINST3("subs.w r1, r2, r3, asr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2544    TESTINST3("subs.w r1, r2, r3, asr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2545    TESTINST3("sub.w  r1, r2, r3, lsl #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2546    TESTINST3("sub.w  r1, r2, r3, lsl #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2547    TESTINST3("sub.w  r1, r2, r3, lsl #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2548    TESTINST3("sub.w  r1, r2, r3, lsl #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2549    TESTINST3("sub.w  r1, r2, r3, lsr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2550    TESTINST3("sub.w  r1, r2, r3, lsr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2551    TESTINST3("sub.w  r1, r2, r3, lsr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2552    TESTINST3("sub.w  r1, r2, r3, lsr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2553    TESTINST3("sub.w  r1, r2, r3, asr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2554    TESTINST3("sub.w  r1, r2, r3, asr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2555    TESTINST3("sub.w  r1, r2, r3, asr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2556    TESTINST3("sub.w  r1, r2, r3, asr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2557    TESTINST3("subs.w r1, r2, r3, lsl #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2558    TESTINST3("subs.w r1, r2, r3, lsl #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2559    TESTINST3("subs.w r1, r2, r3, lsl #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2560    TESTINST3("subs.w r1, r2, r3, lsl #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2561    TESTINST3("subs.w r1, r2, r3, lsr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2562    TESTINST3("subs.w r1, r2, r3, lsr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2563    TESTINST3("subs.w r1, r2, r3, lsr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2564    TESTINST3("subs.w r1, r2, r3, lsr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2565    TESTINST3("subs.w r1, r2, r3, asr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2566    TESTINST3("subs.w r1, r2, r3, asr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2567    TESTINST3("subs.w r1, r2, r3, asr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2568    TESTINST3("subs.w r1, r2, r3, asr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2569    TESTINST3("sub.w  r1, r2, r3, lsl #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2570    TESTINST3("sub.w  r1, r2, r3, lsl #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2571    TESTINST3("sub.w  r1, r2, r3, lsl #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2572    TESTINST3("sub.w  r1, r2, r3, lsl #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2573    TESTINST3("sub.w  r1, r2, r3, lsr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2574    TESTINST3("sub.w  r1, r2, r3, lsr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2575    TESTINST3("sub.w  r1, r2, r3, lsr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2576    TESTINST3("sub.w  r1, r2, r3, lsr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2577    TESTINST3("sub.w  r1, r2, r3, asr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2578    TESTINST3("sub.w  r1, r2, r3, asr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2579    TESTINST3("sub.w  r1, r2, r3, asr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2580    TESTINST3("sub.w  r1, r2, r3, asr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2581    TESTINST3("subs.w r1, r2, r3, lsl #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2582    TESTINST3("subs.w r1, r2, r3, lsl #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2583    TESTINST3("subs.w r1, r2, r3, lsl #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2584    TESTINST3("subs.w r1, r2, r3, lsl #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2585    TESTINST3("subs.w r1, r2, r3, lsr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2586    TESTINST3("subs.w r1, r2, r3, lsr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2587    TESTINST3("subs.w r1, r2, r3, lsr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2588    TESTINST3("subs.w r1, r2, r3, lsr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2589    TESTINST3("subs.w r1, r2, r3, asr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2590    TESTINST3("subs.w r1, r2, r3, asr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2591    TESTINST3("subs.w r1, r2, r3, asr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2592    TESTINST3("subs.w r1, r2, r3, asr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2593    TESTINST3("sub.w  r1, r2, r3, lsl #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2594    TESTINST3("sub.w  r1, r2, r3, lsl #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2595    TESTINST3("sub.w  r1, r2, r3, lsl #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2596    TESTINST3("sub.w  r1, r2, r3, lsl #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2597    TESTINST3("sub.w  r1, r2, r3, lsr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2598    TESTINST3("sub.w  r1, r2, r3, lsr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2599    TESTINST3("sub.w  r1, r2, r3, lsr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2600    TESTINST3("sub.w  r1, r2, r3, lsr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2601    TESTINST3("sub.w  r1, r2, r3, asr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2602    TESTINST3("sub.w  r1, r2, r3, asr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2603    TESTINST3("sub.w  r1, r2, r3, asr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2604    TESTINST3("sub.w  r1, r2, r3, asr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2605    TESTCARRYEND
   2606 
   2607    printf("RSB{S}.W Rd, Rn, Rm, {shift}\n");
   2608    TESTCARRY
   2609    TESTINST3("rsbs.w r1, r2, r3, lsl #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2610    TESTINST3("rsbs.w r1, r2, r3, lsl #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2611    TESTINST3("rsbs.w r1, r2, r3, lsl #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2612    TESTINST3("rsbs.w r1, r2, r3, lsl #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2613    TESTINST3("rsbs.w r1, r2, r3, lsr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2614    TESTINST3("rsbs.w r1, r2, r3, lsr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2615    TESTINST3("rsbs.w r1, r2, r3, lsr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2616    TESTINST3("rsbs.w r1, r2, r3, lsr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2617    TESTINST3("rsbs.w r1, r2, r3, asr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2618    TESTINST3("rsbs.w r1, r2, r3, asr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2619    TESTINST3("rsbs.w r1, r2, r3, asr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2620    TESTINST3("rsbs.w r1, r2, r3, asr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2621    TESTINST3("rsb.w  r1, r2, r3, lsl #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2622    TESTINST3("rsb.w  r1, r2, r3, lsl #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2623    TESTINST3("rsb.w  r1, r2, r3, lsl #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2624    TESTINST3("rsb.w  r1, r2, r3, lsl #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2625    TESTINST3("rsb.w  r1, r2, r3, lsr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2626    TESTINST3("rsb.w  r1, r2, r3, lsr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2627    TESTINST3("rsb.w  r1, r2, r3, lsr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2628    TESTINST3("rsb.w  r1, r2, r3, lsr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2629    TESTINST3("rsb.w  r1, r2, r3, asr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2630    TESTINST3("rsb.w  r1, r2, r3, asr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2631    TESTINST3("rsb.w  r1, r2, r3, asr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2632    TESTINST3("rsb.w  r1, r2, r3, asr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2633    TESTINST3("rsbs.w r1, r2, r3, lsl #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2634    TESTINST3("rsbs.w r1, r2, r3, lsl #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2635    TESTINST3("rsbs.w r1, r2, r3, lsl #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2636    TESTINST3("rsbs.w r1, r2, r3, lsl #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2637    TESTINST3("rsbs.w r1, r2, r3, lsr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2638    TESTINST3("rsbs.w r1, r2, r3, lsr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2639    TESTINST3("rsbs.w r1, r2, r3, lsr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2640    TESTINST3("rsbs.w r1, r2, r3, lsr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2641    TESTINST3("rsbs.w r1, r2, r3, asr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2642    TESTINST3("rsbs.w r1, r2, r3, asr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2643    TESTINST3("rsbs.w r1, r2, r3, asr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2644    TESTINST3("rsbs.w r1, r2, r3, asr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2645    TESTINST3("rsb.w  r1, r2, r3, lsl #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2646    TESTINST3("rsb.w  r1, r2, r3, lsl #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2647    TESTINST3("rsb.w  r1, r2, r3, lsl #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2648    TESTINST3("rsb.w  r1, r2, r3, lsl #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2649    TESTINST3("rsb.w  r1, r2, r3, lsr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2650    TESTINST3("rsb.w  r1, r2, r3, lsr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2651    TESTINST3("rsb.w  r1, r2, r3, lsr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2652    TESTINST3("rsb.w  r1, r2, r3, lsr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2653    TESTINST3("rsb.w  r1, r2, r3, asr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2654    TESTINST3("rsb.w  r1, r2, r3, asr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2655    TESTINST3("rsb.w  r1, r2, r3, asr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2656    TESTINST3("rsb.w  r1, r2, r3, asr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2657    TESTINST3("rsbs.w r1, r2, r3, lsl #0 ", 0,          0,          r1, r2, r3, cv);
   2658    TESTINST3("rsbs.w r1, r2, r3, lsl #1 ", 0,          0,          r1, r2, r3, cv);
   2659    TESTINST3("rsbs.w r1, r2, r3, lsl #15", 0,          0,          r1, r2, r3, cv);
   2660    TESTINST3("rsbs.w r1, r2, r3, lsl #31", 0,          0,          r1, r2, r3, cv);
   2661    TESTINST3("rsbs.w r1, r2, r3, lsr #0 ", 0,          0,          r1, r2, r3, cv);
   2662    TESTINST3("rsbs.w r1, r2, r3, lsr #1 ", 0,          0,          r1, r2, r3, cv);
   2663    TESTINST3("rsbs.w r1, r2, r3, lsr #15", 0,          0,          r1, r2, r3, cv);
   2664    TESTINST3("rsbs.w r1, r2, r3, lsr #31", 0,          0,          r1, r2, r3, cv);
   2665    TESTINST3("rsbs.w r1, r2, r3, asr #0 ", 0,          0,          r1, r2, r3, cv);
   2666    TESTINST3("rsbs.w r1, r2, r3, asr #1 ", 0,          0,          r1, r2, r3, cv);
   2667    TESTINST3("rsbs.w r1, r2, r3, asr #15", 0,          0,          r1, r2, r3, cv);
   2668    TESTINST3("rsbs.w r1, r2, r3, asr #31", 0,          0,          r1, r2, r3, cv);
   2669    TESTINST3("rsb.w  r1, r2, r3, lsl #0 ", 0,          0,          r1, r2, r3, cv);
   2670    TESTINST3("rsb.w  r1, r2, r3, lsl #1 ", 0,          0,          r1, r2, r3, cv);
   2671    TESTINST3("rsb.w  r1, r2, r3, lsl #15", 0,          0,          r1, r2, r3, cv);
   2672    TESTINST3("rsb.w  r1, r2, r3, lsl #31", 0,          0,          r1, r2, r3, cv);
   2673    TESTINST3("rsb.w  r1, r2, r3, lsr #0 ", 0,          0,          r1, r2, r3, cv);
   2674    TESTINST3("rsb.w  r1, r2, r3, lsr #1 ", 0,          0,          r1, r2, r3, cv);
   2675    TESTINST3("rsb.w  r1, r2, r3, lsr #15", 0,          0,          r1, r2, r3, cv);
   2676    TESTINST3("rsb.w  r1, r2, r3, lsr #31", 0,          0,          r1, r2, r3, cv);
   2677    TESTINST3("rsb.w  r1, r2, r3, asr #0 ", 0,          0,          r1, r2, r3, cv);
   2678    TESTINST3("rsb.w  r1, r2, r3, asr #1 ", 0,          0,          r1, r2, r3, cv);
   2679    TESTINST3("rsb.w  r1, r2, r3, asr #15", 0,          0,          r1, r2, r3, cv);
   2680    TESTINST3("rsb.w  r1, r2, r3, asr #31", 0,          0,          r1, r2, r3, cv);
   2681    TESTINST3("rsbs.w r1, r2, r3, lsl #0 ", 1,          0,          r1, r2, r3, cv);
   2682    TESTINST3("rsbs.w r1, r2, r3, lsl #1 ", 1,          0,          r1, r2, r3, cv);
   2683    TESTINST3("rsbs.w r1, r2, r3, lsl #15", 1,          0,          r1, r2, r3, cv);
   2684    TESTINST3("rsbs.w r1, r2, r3, lsl #31", 1,          0,          r1, r2, r3, cv);
   2685    TESTINST3("rsbs.w r1, r2, r3, lsr #0 ", 1,          0,          r1, r2, r3, cv);
   2686    TESTINST3("rsbs.w r1, r2, r3, lsr #1 ", 1,          0,          r1, r2, r3, cv);
   2687    TESTINST3("rsbs.w r1, r2, r3, lsr #15", 1,          0,          r1, r2, r3, cv);
   2688    TESTINST3("rsbs.w r1, r2, r3, lsr #31", 1,          0,          r1, r2, r3, cv);
   2689    TESTINST3("rsbs.w r1, r2, r3, asr #0 ", 1,          0,          r1, r2, r3, cv);
   2690    TESTINST3("rsbs.w r1, r2, r3, asr #1 ", 1,          0,          r1, r2, r3, cv);
   2691    TESTINST3("rsbs.w r1, r2, r3, asr #15", 1,          0,          r1, r2, r3, cv);
   2692    TESTINST3("rsbs.w r1, r2, r3, asr #31", 1,          0,          r1, r2, r3, cv);
   2693    TESTINST3("rsb.w  r1, r2, r3, lsl #0 ", 1,          0,          r1, r2, r3, cv);
   2694    TESTINST3("rsb.w  r1, r2, r3, lsl #1 ", 1,          0,          r1, r2, r3, cv);
   2695    TESTINST3("rsb.w  r1, r2, r3, lsl #15", 1,          0,          r1, r2, r3, cv);
   2696    TESTINST3("rsb.w  r1, r2, r3, lsl #31", 1,          0,          r1, r2, r3, cv);
   2697    TESTINST3("rsb.w  r1, r2, r3, lsr #0 ", 1,          0,          r1, r2, r3, cv);
   2698    TESTINST3("rsb.w  r1, r2, r3, lsr #1 ", 1,          0,          r1, r2, r3, cv);
   2699    TESTINST3("rsb.w  r1, r2, r3, lsr #15", 1,          0,          r1, r2, r3, cv);
   2700    TESTINST3("rsb.w  r1, r2, r3, lsr #31", 1,          0,          r1, r2, r3, cv);
   2701    TESTINST3("rsb.w  r1, r2, r3, asr #0 ", 1,          0,          r1, r2, r3, cv);
   2702    TESTINST3("rsb.w  r1, r2, r3, asr #1 ", 1,          0,          r1, r2, r3, cv);
   2703    TESTINST3("rsb.w  r1, r2, r3, asr #15", 1,          0,          r1, r2, r3, cv);
   2704    TESTINST3("rsb.w  r1, r2, r3, asr #31", 1,          0,          r1, r2, r3, cv);
   2705    TESTINST3("rsbs.w r1, r2, r3, lsl #0 ", 0,          1,          r1, r2, r3, cv);
   2706    TESTINST3("rsbs.w r1, r2, r3, lsl #1 ", 0,          1,          r1, r2, r3, cv);
   2707    TESTINST3("rsbs.w r1, r2, r3, lsl #15", 0,          1,          r1, r2, r3, cv);
   2708    TESTINST3("rsbs.w r1, r2, r3, lsl #31", 0,          1,          r1, r2, r3, cv);
   2709    TESTINST3("rsbs.w r1, r2, r3, lsr #0 ", 0,          1,          r1, r2, r3, cv);
   2710    TESTINST3("rsbs.w r1, r2, r3, lsr #1 ", 0,          1,          r1, r2, r3, cv);
   2711    TESTINST3("rsbs.w r1, r2, r3, lsr #15", 0,          1,          r1, r2, r3, cv);
   2712    TESTINST3("rsbs.w r1, r2, r3, lsr #31", 0,          1,          r1, r2, r3, cv);
   2713    TESTINST3("rsbs.w r1, r2, r3, asr #0 ", 0,          1,          r1, r2, r3, cv);
   2714    TESTINST3("rsbs.w r1, r2, r3, asr #1 ", 0,          1,          r1, r2, r3, cv);
   2715    TESTINST3("rsbs.w r1, r2, r3, asr #15", 0,          1,          r1, r2, r3, cv);
   2716    TESTINST3("rsbs.w r1, r2, r3, asr #31", 0,          1,          r1, r2, r3, cv);
   2717    TESTINST3("rsb.w  r1, r2, r3, lsl #0 ", 0,          1,          r1, r2, r3, cv);
   2718    TESTINST3("rsb.w  r1, r2, r3, lsl #1 ", 0,          1,          r1, r2, r3, cv);
   2719    TESTINST3("rsb.w  r1, r2, r3, lsl #15", 0,          1,          r1, r2, r3, cv);
   2720    TESTINST3("rsb.w  r1, r2, r3, lsl #31", 0,          1,          r1, r2, r3, cv);
   2721    TESTINST3("rsb.w  r1, r2, r3, lsr #0 ", 0,          1,          r1, r2, r3, cv);
   2722    TESTINST3("rsb.w  r1, r2, r3, lsr #1 ", 0,          1,          r1, r2, r3, cv);
   2723    TESTINST3("rsb.w  r1, r2, r3, lsr #15", 0,          1,          r1, r2, r3, cv);
   2724    TESTINST3("rsb.w  r1, r2, r3, lsr #31", 0,          1,          r1, r2, r3, cv);
   2725    TESTINST3("rsb.w  r1, r2, r3, asr #0 ", 0,          1,          r1, r2, r3, cv);
   2726    TESTINST3("rsb.w  r1, r2, r3, asr #1 ", 0,          1,          r1, r2, r3, cv);
   2727    TESTINST3("rsb.w  r1, r2, r3, asr #15", 0,          1,          r1, r2, r3, cv);
   2728    TESTINST3("rsb.w  r1, r2, r3, asr #31", 0,          1,          r1, r2, r3, cv);
   2729    TESTINST3("rsbs.w r1, r2, r3, lsl #0 ", -1,         0,          r1, r2, r3, cv);
   2730    TESTINST3("rsbs.w r1, r2, r3, lsl #1 ", -1,         0,          r1, r2, r3, cv);
   2731    TESTINST3("rsbs.w r1, r2, r3, lsl #15", -1,         0,          r1, r2, r3, cv);
   2732    TESTINST3("rsbs.w r1, r2, r3, lsl #31", -1,         0,          r1, r2, r3, cv);
   2733    TESTINST3("rsbs.w r1, r2, r3, lsr #0 ", -1,         0,          r1, r2, r3, cv);
   2734    TESTINST3("rsbs.w r1, r2, r3, lsr #1 ", -1,         0,          r1, r2, r3, cv);
   2735    TESTINST3("rsbs.w r1, r2, r3, lsr #15", -1,         0,          r1, r2, r3, cv);
   2736    TESTINST3("rsbs.w r1, r2, r3, lsr #31", -1,         0,          r1, r2, r3, cv);
   2737    TESTINST3("rsbs.w r1, r2, r3, asr #0 ", -1,         0,          r1, r2, r3, cv);
   2738    TESTINST3("rsbs.w r1, r2, r3, asr #1 ", -1,         0,          r1, r2, r3, cv);
   2739    TESTINST3("rsbs.w r1, r2, r3, asr #15", -1,         0,          r1, r2, r3, cv);
   2740    TESTINST3("rsbs.w r1, r2, r3, asr #31", -1,         0,          r1, r2, r3, cv);
   2741    TESTINST3("rsb.w  r1, r2, r3, lsl #0 ", -1,         0,          r1, r2, r3, cv);
   2742    TESTINST3("rsb.w  r1, r2, r3, lsl #1 ", -1,         0,          r1, r2, r3, cv);
   2743    TESTINST3("rsb.w  r1, r2, r3, lsl #15", -1,         0,          r1, r2, r3, cv);
   2744    TESTINST3("rsb.w  r1, r2, r3, lsl #31", -1,         0,          r1, r2, r3, cv);
   2745    TESTINST3("rsb.w  r1, r2, r3, lsr #0 ", -1,         0,          r1, r2, r3, cv);
   2746    TESTINST3("rsb.w  r1, r2, r3, lsr #1 ", -1,         0,          r1, r2, r3, cv);
   2747    TESTINST3("rsb.w  r1, r2, r3, lsr #15", -1,         0,          r1, r2, r3, cv);
   2748    TESTINST3("rsb.w  r1, r2, r3, lsr #31", -1,         0,          r1, r2, r3, cv);
   2749    TESTINST3("rsb.w  r1, r2, r3, asr #0 ", -1,         0,          r1, r2, r3, cv);
   2750    TESTINST3("rsb.w  r1, r2, r3, asr #1 ", -1,         0,          r1, r2, r3, cv);
   2751    TESTINST3("rsb.w  r1, r2, r3, asr #15", -1,         0,          r1, r2, r3, cv);
   2752    TESTINST3("rsb.w  r1, r2, r3, asr #31", -1,         0,          r1, r2, r3, cv);
   2753    TESTINST3("rsbs.w r1, r2, r3, lsl #0 ", 0,          -1,         r1, r2, r3, cv);
   2754    TESTINST3("rsbs.w r1, r2, r3, lsl #1 ", 0,          -1,         r1, r2, r3, cv);
   2755    TESTINST3("rsbs.w r1, r2, r3, lsl #15", 0,          -1,         r1, r2, r3, cv);
   2756    TESTINST3("rsbs.w r1, r2, r3, lsl #31", 0,          -1,         r1, r2, r3, cv);
   2757    TESTINST3("rsbs.w r1, r2, r3, lsr #0 ", 0,          -1,         r1, r2, r3, cv);
   2758    TESTINST3("rsbs.w r1, r2, r3, lsr #1 ", 0,          -1,         r1, r2, r3, cv);
   2759    TESTINST3("rsbs.w r1, r2, r3, lsr #15", 0,          -1,         r1, r2, r3, cv);
   2760    TESTINST3("rsbs.w r1, r2, r3, lsr #31", 0,          -1,         r1, r2, r3, cv);
   2761    TESTINST3("rsbs.w r1, r2, r3, asr #0 ", 0,          -1,         r1, r2, r3, cv);
   2762    TESTINST3("rsbs.w r1, r2, r3, asr #1 ", 0,          -1,         r1, r2, r3, cv);
   2763    TESTINST3("rsbs.w r1, r2, r3, asr #15", 0,          -1,         r1, r2, r3, cv);
   2764    TESTINST3("rsbs.w r1, r2, r3, asr #31", 0,          -1,         r1, r2, r3, cv);
   2765    TESTINST3("rsb.w  r1, r2, r3, lsl #0 ", 0,          -1,         r1, r2, r3, cv);
   2766    TESTINST3("rsb.w  r1, r2, r3, lsl #1 ", 0,          -1,         r1, r2, r3, cv);
   2767    TESTINST3("rsb.w  r1, r2, r3, lsl #15", 0,          -1,         r1, r2, r3, cv);
   2768    TESTINST3("rsb.w  r1, r2, r3, lsl #31", 0,          -1,         r1, r2, r3, cv);
   2769    TESTINST3("rsb.w  r1, r2, r3, lsr #0 ", 0,          -1,         r1, r2, r3, cv);
   2770    TESTINST3("rsb.w  r1, r2, r3, lsr #1 ", 0,          -1,         r1, r2, r3, cv);
   2771    TESTINST3("rsb.w  r1, r2, r3, lsr #15", 0,          -1,         r1, r2, r3, cv);
   2772    TESTINST3("rsb.w  r1, r2, r3, lsr #31", 0,          -1,         r1, r2, r3, cv);
   2773    TESTINST3("rsb.w  r1, r2, r3, asr #0 ", 0,          -1,         r1, r2, r3, cv);
   2774    TESTINST3("rsb.w  r1, r2, r3, asr #1 ", 0,          -1,         r1, r2, r3, cv);
   2775    TESTINST3("rsb.w  r1, r2, r3, asr #15", 0,          -1,         r1, r2, r3, cv);
   2776    TESTINST3("rsb.w  r1, r2, r3, asr #31", 0,          -1,         r1, r2, r3, cv);
   2777    TESTINST3("rsbs.w r1, r2, r3, lsl #0 ", 0,          0x80000000, r1, r2, r3, cv);
   2778    TESTINST3("rsbs.w r1, r2, r3, lsl #1 ", 0,          0x80000000, r1, r2, r3, cv);
   2779    TESTINST3("rsbs.w r1, r2, r3, lsl #15", 0,          0x80000000, r1, r2, r3, cv);
   2780    TESTINST3("rsbs.w r1, r2, r3, lsl #31", 0,          0x80000000, r1, r2, r3, cv);
   2781    TESTINST3("rsbs.w r1, r2, r3, lsr #0 ", 0,          0x80000000, r1, r2, r3, cv);
   2782    TESTINST3("rsbs.w r1, r2, r3, lsr #1 ", 0,          0x80000000, r1, r2, r3, cv);
   2783    TESTINST3("rsbs.w r1, r2, r3, lsr #15", 0,          0x80000000, r1, r2, r3, cv);
   2784    TESTINST3("rsbs.w r1, r2, r3, lsr #31", 0,          0x80000000, r1, r2, r3, cv);
   2785    TESTINST3("rsbs.w r1, r2, r3, asr #0 ", 0,          0x80000000, r1, r2, r3, cv);
   2786    TESTINST3("rsbs.w r1, r2, r3, asr #1 ", 0,          0x80000000, r1, r2, r3, cv);
   2787    TESTINST3("rsbs.w r1, r2, r3, asr #15", 0,          0x80000000, r1, r2, r3, cv);
   2788    TESTINST3("rsbs.w r1, r2, r3, asr #31", 0,          0x80000000, r1, r2, r3, cv);
   2789    TESTINST3("rsb.w  r1, r2, r3, lsl #0 ", 0,          0x80000000, r1, r2, r3, cv);
   2790    TESTINST3("rsb.w  r1, r2, r3, lsl #1 ", 0,          0x80000000, r1, r2, r3, cv);
   2791    TESTINST3("rsb.w  r1, r2, r3, lsl #15", 0,          0x80000000, r1, r2, r3, cv);
   2792    TESTINST3("rsb.w  r1, r2, r3, lsl #31", 0,          0x80000000, r1, r2, r3, cv);
   2793    TESTINST3("rsb.w  r1, r2, r3, lsr #0 ", 0,          0x80000000, r1, r2, r3, cv);
   2794    TESTINST3("rsb.w  r1, r2, r3, lsr #1 ", 0,          0x80000000, r1, r2, r3, cv);
   2795    TESTINST3("rsb.w  r1, r2, r3, lsr #15", 0,          0x80000000, r1, r2, r3, cv);
   2796    TESTINST3("rsb.w  r1, r2, r3, lsr #31", 0,          0x80000000, r1, r2, r3, cv);
   2797    TESTINST3("rsb.w  r1, r2, r3, asr #0 ", 0,          0x80000000, r1, r2, r3, cv);
   2798    TESTINST3("rsb.w  r1, r2, r3, asr #1 ", 0,          0x80000000, r1, r2, r3, cv);
   2799    TESTINST3("rsb.w  r1, r2, r3, asr #15", 0,          0x80000000, r1, r2, r3, cv);
   2800    TESTINST3("rsb.w  r1, r2, r3, asr #31", 0,          0x80000000, r1, r2, r3, cv);
   2801    TESTINST3("rsbs.w r1, r2, r3, lsl #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   2802    TESTINST3("rsbs.w r1, r2, r3, lsl #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   2803    TESTINST3("rsbs.w r1, r2, r3, lsl #15", 0x80000000, 0,          r1, r2, r3, cv);
   2804    TESTINST3("rsbs.w r1, r2, r3, lsl #31", 0x80000000, 0,          r1, r2, r3, cv);
   2805    TESTINST3("rsbs.w r1, r2, r3, lsr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   2806    TESTINST3("rsbs.w r1, r2, r3, lsr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   2807    TESTINST3("rsbs.w r1, r2, r3, lsr #15", 0x80000000, 0,          r1, r2, r3, cv);
   2808    TESTINST3("rsbs.w r1, r2, r3, lsr #31", 0x80000000, 0,          r1, r2, r3, cv);
   2809    TESTINST3("rsbs.w r1, r2, r3, asr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   2810    TESTINST3("rsbs.w r1, r2, r3, asr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   2811    TESTINST3("rsbs.w r1, r2, r3, asr #15", 0x80000000, 0,          r1, r2, r3, cv);
   2812    TESTINST3("rsbs.w r1, r2, r3, asr #31", 0x80000000, 0,          r1, r2, r3, cv);
   2813    TESTINST3("rsb.w  r1, r2, r3, lsl #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   2814    TESTINST3("rsb.w  r1, r2, r3, lsl #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   2815    TESTINST3("rsb.w  r1, r2, r3, lsl #15", 0x80000000, 0,          r1, r2, r3, cv);
   2816    TESTINST3("rsb.w  r1, r2, r3, lsl #31", 0x80000000, 0,          r1, r2, r3, cv);
   2817    TESTINST3("rsb.w  r1, r2, r3, lsr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   2818    TESTINST3("rsb.w  r1, r2, r3, lsr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   2819    TESTINST3("rsb.w  r1, r2, r3, lsr #15", 0x80000000, 0,          r1, r2, r3, cv);
   2820    TESTINST3("rsb.w  r1, r2, r3, lsr #31", 0x80000000, 0,          r1, r2, r3, cv);
   2821    TESTINST3("rsb.w  r1, r2, r3, asr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   2822    TESTINST3("rsb.w  r1, r2, r3, asr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   2823    TESTINST3("rsb.w  r1, r2, r3, asr #15", 0x80000000, 0,          r1, r2, r3, cv);
   2824    TESTINST3("rsb.w  r1, r2, r3, asr #31", 0x80000000, 0,          r1, r2, r3, cv);
   2825    TESTINST3("rsbs.w r1, r2, r3, lsl #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2826    TESTINST3("rsbs.w r1, r2, r3, lsl #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2827    TESTINST3("rsbs.w r1, r2, r3, lsl #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2828    TESTINST3("rsbs.w r1, r2, r3, lsl #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2829    TESTINST3("rsbs.w r1, r2, r3, lsr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2830    TESTINST3("rsbs.w r1, r2, r3, lsr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2831    TESTINST3("rsbs.w r1, r2, r3, lsr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2832    TESTINST3("rsbs.w r1, r2, r3, lsr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2833    TESTINST3("rsbs.w r1, r2, r3, asr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2834    TESTINST3("rsbs.w r1, r2, r3, asr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2835    TESTINST3("rsbs.w r1, r2, r3, asr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2836    TESTINST3("rsbs.w r1, r2, r3, asr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2837    TESTINST3("rsb.w  r1, r2, r3, lsl #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2838    TESTINST3("rsb.w  r1, r2, r3, lsl #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2839    TESTINST3("rsb.w  r1, r2, r3, lsl #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2840    TESTINST3("rsb.w  r1, r2, r3, lsl #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2841    TESTINST3("rsb.w  r1, r2, r3, lsr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2842    TESTINST3("rsb.w  r1, r2, r3, lsr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2843    TESTINST3("rsb.w  r1, r2, r3, lsr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2844    TESTINST3("rsb.w  r1, r2, r3, lsr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2845    TESTINST3("rsb.w  r1, r2, r3, asr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2846    TESTINST3("rsb.w  r1, r2, r3, asr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2847    TESTINST3("rsb.w  r1, r2, r3, asr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2848    TESTINST3("rsb.w  r1, r2, r3, asr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   2849    TESTINST3("rsbs.w r1, r2, r3, lsl #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2850    TESTINST3("rsbs.w r1, r2, r3, lsl #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2851    TESTINST3("rsbs.w r1, r2, r3, lsl #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2852    TESTINST3("rsbs.w r1, r2, r3, lsl #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2853    TESTINST3("rsbs.w r1, r2, r3, lsr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2854    TESTINST3("rsbs.w r1, r2, r3, lsr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2855    TESTINST3("rsbs.w r1, r2, r3, lsr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2856    TESTINST3("rsbs.w r1, r2, r3, lsr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2857    TESTINST3("rsbs.w r1, r2, r3, asr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2858    TESTINST3("rsbs.w r1, r2, r3, asr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2859    TESTINST3("rsbs.w r1, r2, r3, asr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2860    TESTINST3("rsbs.w r1, r2, r3, asr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2861    TESTINST3("rsb.w  r1, r2, r3, lsl #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2862    TESTINST3("rsb.w  r1, r2, r3, lsl #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2863    TESTINST3("rsb.w  r1, r2, r3, lsl #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2864    TESTINST3("rsb.w  r1, r2, r3, lsl #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2865    TESTINST3("rsb.w  r1, r2, r3, lsr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2866    TESTINST3("rsb.w  r1, r2, r3, lsr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2867    TESTINST3("rsb.w  r1, r2, r3, lsr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2868    TESTINST3("rsb.w  r1, r2, r3, lsr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2869    TESTINST3("rsb.w  r1, r2, r3, asr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2870    TESTINST3("rsb.w  r1, r2, r3, asr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2871    TESTINST3("rsb.w  r1, r2, r3, asr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2872    TESTINST3("rsb.w  r1, r2, r3, asr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   2873    TESTINST3("rsbs.w r1, r2, r3, lsl #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2874    TESTINST3("rsbs.w r1, r2, r3, lsl #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2875    TESTINST3("rsbs.w r1, r2, r3, lsl #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2876    TESTINST3("rsbs.w r1, r2, r3, lsl #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2877    TESTINST3("rsbs.w r1, r2, r3, lsr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2878    TESTINST3("rsbs.w r1, r2, r3, lsr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2879    TESTINST3("rsbs.w r1, r2, r3, lsr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2880    TESTINST3("rsbs.w r1, r2, r3, lsr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2881    TESTINST3("rsbs.w r1, r2, r3, asr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2882    TESTINST3("rsbs.w r1, r2, r3, asr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2883    TESTINST3("rsbs.w r1, r2, r3, asr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2884    TESTINST3("rsbs.w r1, r2, r3, asr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2885    TESTINST3("rsb.w  r1, r2, r3, lsl #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2886    TESTINST3("rsb.w  r1, r2, r3, lsl #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2887    TESTINST3("rsb.w  r1, r2, r3, lsl #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2888    TESTINST3("rsb.w  r1, r2, r3, lsl #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2889    TESTINST3("rsb.w  r1, r2, r3, lsr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2890    TESTINST3("rsb.w  r1, r2, r3, lsr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2891    TESTINST3("rsb.w  r1, r2, r3, lsr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2892    TESTINST3("rsb.w  r1, r2, r3, lsr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2893    TESTINST3("rsb.w  r1, r2, r3, asr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2894    TESTINST3("rsb.w  r1, r2, r3, asr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2895    TESTINST3("rsb.w  r1, r2, r3, asr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2896    TESTINST3("rsb.w  r1, r2, r3, asr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   2897    TESTINST3("rsbs.w r1, r2, r3, lsl #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2898    TESTINST3("rsbs.w r1, r2, r3, lsl #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2899    TESTINST3("rsbs.w r1, r2, r3, lsl #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2900    TESTINST3("rsbs.w r1, r2, r3, lsl #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2901    TESTINST3("rsbs.w r1, r2, r3, lsr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2902    TESTINST3("rsbs.w r1, r2, r3, lsr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2903    TESTINST3("rsbs.w r1, r2, r3, lsr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2904    TESTINST3("rsbs.w r1, r2, r3, lsr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2905    TESTINST3("rsbs.w r1, r2, r3, asr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2906    TESTINST3("rsbs.w r1, r2, r3, asr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2907    TESTINST3("rsbs.w r1, r2, r3, asr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2908    TESTINST3("rsbs.w r1, r2, r3, asr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2909    TESTINST3("rsb.w  r1, r2, r3, lsl #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2910    TESTINST3("rsb.w  r1, r2, r3, lsl #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2911    TESTINST3("rsb.w  r1, r2, r3, lsl #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2912    TESTINST3("rsb.w  r1, r2, r3, lsl #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2913    TESTINST3("rsb.w  r1, r2, r3, lsr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2914    TESTINST3("rsb.w  r1, r2, r3, lsr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2915    TESTINST3("rsb.w  r1, r2, r3, lsr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2916    TESTINST3("rsb.w  r1, r2, r3, lsr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2917    TESTINST3("rsb.w  r1, r2, r3, asr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2918    TESTINST3("rsb.w  r1, r2, r3, asr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2919    TESTINST3("rsb.w  r1, r2, r3, asr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2920    TESTINST3("rsb.w  r1, r2, r3, asr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   2921    TESTCARRYEND
   2922 
   2923    printf("ADC{S}.W Rd, Rn, Rm, {shift}\n");
   2924    TESTCARRY
   2925    TESTINST3("adcs.w r1, r2, r3, lsl #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2926    TESTINST3("adcs.w r1, r2, r3, lsl #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2927    TESTINST3("adcs.w r1, r2, r3, lsl #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2928    TESTINST3("adcs.w r1, r2, r3, lsl #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2929    TESTINST3("adcs.w r1, r2, r3, lsr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2930    TESTINST3("adcs.w r1, r2, r3, lsr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2931    TESTINST3("adcs.w r1, r2, r3, lsr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2932    TESTINST3("adcs.w r1, r2, r3, lsr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2933    TESTINST3("adcs.w r1, r2, r3, asr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2934    TESTINST3("adcs.w r1, r2, r3, asr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2935    TESTINST3("adcs.w r1, r2, r3, asr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2936    TESTINST3("adcs.w r1, r2, r3, asr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2937    TESTINST3("adc.w  r1, r2, r3, lsl #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2938    TESTINST3("adc.w  r1, r2, r3, lsl #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2939    TESTINST3("adc.w  r1, r2, r3, lsl #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2940    TESTINST3("adc.w  r1, r2, r3, lsl #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2941    TESTINST3("adc.w  r1, r2, r3, lsr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2942    TESTINST3("adc.w  r1, r2, r3, lsr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2943    TESTINST3("adc.w  r1, r2, r3, lsr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2944    TESTINST3("adc.w  r1, r2, r3, lsr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2945    TESTINST3("adc.w  r1, r2, r3, asr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2946    TESTINST3("adc.w  r1, r2, r3, asr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2947    TESTINST3("adc.w  r1, r2, r3, asr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2948    TESTINST3("adc.w  r1, r2, r3, asr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   2949    TESTINST3("adcs.w r1, r2, r3, lsl #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2950    TESTINST3("adcs.w r1, r2, r3, lsl #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2951    TESTINST3("adcs.w r1, r2, r3, lsl #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2952    TESTINST3("adcs.w r1, r2, r3, lsl #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2953    TESTINST3("adcs.w r1, r2, r3, lsr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2954    TESTINST3("adcs.w r1, r2, r3, lsr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2955    TESTINST3("adcs.w r1, r2, r3, lsr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2956    TESTINST3("adcs.w r1, r2, r3, lsr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2957    TESTINST3("adcs.w r1, r2, r3, asr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2958    TESTINST3("adcs.w r1, r2, r3, asr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2959    TESTINST3("adcs.w r1, r2, r3, asr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2960    TESTINST3("adcs.w r1, r2, r3, asr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2961    TESTINST3("adc.w  r1, r2, r3, lsl #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2962    TESTINST3("adc.w  r1, r2, r3, lsl #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2963    TESTINST3("adc.w  r1, r2, r3, lsl #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2964    TESTINST3("adc.w  r1, r2, r3, lsl #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2965    TESTINST3("adc.w  r1, r2, r3, lsr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2966    TESTINST3("adc.w  r1, r2, r3, lsr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2967    TESTINST3("adc.w  r1, r2, r3, lsr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2968    TESTINST3("adc.w  r1, r2, r3, lsr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2969    TESTINST3("adc.w  r1, r2, r3, asr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2970    TESTINST3("adc.w  r1, r2, r3, asr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2971    TESTINST3("adc.w  r1, r2, r3, asr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2972    TESTINST3("adc.w  r1, r2, r3, asr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   2973    TESTINST3("adcs.w r1, r2, r3, lsl #0 ", 0,          0,          r1, r2, r3, cv);
   2974    TESTINST3("adcs.w r1, r2, r3, lsl #1 ", 0,          0,          r1, r2, r3, cv);
   2975    TESTINST3("adcs.w r1, r2, r3, lsl #15", 0,          0,          r1, r2, r3, cv);
   2976    TESTINST3("adcs.w r1, r2, r3, lsl #31", 0,          0,          r1, r2, r3, cv);
   2977    TESTINST3("adcs.w r1, r2, r3, lsr #0 ", 0,          0,          r1, r2, r3, cv);
   2978    TESTINST3("adcs.w r1, r2, r3, lsr #1 ", 0,          0,          r1, r2, r3, cv);
   2979    TESTINST3("adcs.w r1, r2, r3, lsr #15", 0,          0,          r1, r2, r3, cv);
   2980    TESTINST3("adcs.w r1, r2, r3, lsr #31", 0,          0,          r1, r2, r3, cv);
   2981    TESTINST3("adcs.w r1, r2, r3, asr #0 ", 0,          0,          r1, r2, r3, cv);
   2982    TESTINST3("adcs.w r1, r2, r3, asr #1 ", 0,          0,          r1, r2, r3, cv);
   2983    TESTINST3("adcs.w r1, r2, r3, asr #15", 0,          0,          r1, r2, r3, cv);
   2984    TESTINST3("adcs.w r1, r2, r3, asr #31", 0,          0,          r1, r2, r3, cv);
   2985    TESTINST3("adc.w  r1, r2, r3, lsl #0 ", 0,          0,          r1, r2, r3, cv);
   2986    TESTINST3("adc.w  r1, r2, r3, lsl #1 ", 0,          0,          r1, r2, r3, cv);
   2987    TESTINST3("adc.w  r1, r2, r3, lsl #15", 0,          0,          r1, r2, r3, cv);
   2988    TESTINST3("adc.w  r1, r2, r3, lsl #31", 0,          0,          r1, r2, r3, cv);
   2989    TESTINST3("adc.w  r1, r2, r3, lsr #0 ", 0,          0,          r1, r2, r3, cv);
   2990    TESTINST3("adc.w  r1, r2, r3, lsr #1 ", 0,          0,          r1, r2, r3, cv);
   2991    TESTINST3("adc.w  r1, r2, r3, lsr #15", 0,          0,          r1, r2, r3, cv);
   2992    TESTINST3("adc.w  r1, r2, r3, lsr #31", 0,          0,          r1, r2, r3, cv);
   2993    TESTINST3("adc.w  r1, r2, r3, asr #0 ", 0,          0,          r1, r2, r3, cv);
   2994    TESTINST3("adc.w  r1, r2, r3, asr #1 ", 0,          0,          r1, r2, r3, cv);
   2995    TESTINST3("adc.w  r1, r2, r3, asr #15", 0,          0,          r1, r2, r3, cv);
   2996    TESTINST3("adc.w  r1, r2, r3, asr #31", 0,          0,          r1, r2, r3, cv);
   2997    TESTINST3("adcs.w r1, r2, r3, lsl #0 ", 1,          0,          r1, r2, r3, cv);
   2998    TESTINST3("adcs.w r1, r2, r3, lsl #1 ", 1,          0,          r1, r2, r3, cv);
   2999    TESTINST3("adcs.w r1, r2, r3, lsl #15", 1,          0,          r1, r2, r3, cv);
   3000    TESTINST3("adcs.w r1, r2, r3, lsl #31", 1,          0,          r1, r2, r3, cv);
   3001    TESTINST3("adcs.w r1, r2, r3, lsr #0 ", 1,          0,          r1, r2, r3, cv);
   3002    TESTINST3("adcs.w r1, r2, r3, lsr #1 ", 1,          0,          r1, r2, r3, cv);
   3003    TESTINST3("adcs.w r1, r2, r3, lsr #15", 1,          0,          r1, r2, r3, cv);
   3004    TESTINST3("adcs.w r1, r2, r3, lsr #31", 1,          0,          r1, r2, r3, cv);
   3005    TESTINST3("adcs.w r1, r2, r3, asr #0 ", 1,          0,          r1, r2, r3, cv);
   3006    TESTINST3("adcs.w r1, r2, r3, asr #1 ", 1,          0,          r1, r2, r3, cv);
   3007    TESTINST3("adcs.w r1, r2, r3, asr #15", 1,          0,          r1, r2, r3, cv);
   3008    TESTINST3("adcs.w r1, r2, r3, asr #31", 1,          0,          r1, r2, r3, cv);
   3009    TESTINST3("adc.w  r1, r2, r3, lsl #0 ", 1,          0,          r1, r2, r3, cv);
   3010    TESTINST3("adc.w  r1, r2, r3, lsl #1 ", 1,          0,          r1, r2, r3, cv);
   3011    TESTINST3("adc.w  r1, r2, r3, lsl #15", 1,          0,          r1, r2, r3, cv);
   3012    TESTINST3("adc.w  r1, r2, r3, lsl #31", 1,          0,          r1, r2, r3, cv);
   3013    TESTINST3("adc.w  r1, r2, r3, lsr #0 ", 1,          0,          r1, r2, r3, cv);
   3014    TESTINST3("adc.w  r1, r2, r3, lsr #1 ", 1,          0,          r1, r2, r3, cv);
   3015    TESTINST3("adc.w  r1, r2, r3, lsr #15", 1,          0,          r1, r2, r3, cv);
   3016    TESTINST3("adc.w  r1, r2, r3, lsr #31", 1,          0,          r1, r2, r3, cv);
   3017    TESTINST3("adc.w  r1, r2, r3, asr #0 ", 1,          0,          r1, r2, r3, cv);
   3018    TESTINST3("adc.w  r1, r2, r3, asr #1 ", 1,          0,          r1, r2, r3, cv);
   3019    TESTINST3("adc.w  r1, r2, r3, asr #15", 1,          0,          r1, r2, r3, cv);
   3020    TESTINST3("adc.w  r1, r2, r3, asr #31", 1,          0,          r1, r2, r3, cv);
   3021    TESTINST3("adcs.w r1, r2, r3, lsl #0 ", 0,          1,          r1, r2, r3, cv);
   3022    TESTINST3("adcs.w r1, r2, r3, lsl #1 ", 0,          1,          r1, r2, r3, cv);
   3023    TESTINST3("adcs.w r1, r2, r3, lsl #15", 0,          1,          r1, r2, r3, cv);
   3024    TESTINST3("adcs.w r1, r2, r3, lsl #31", 0,          1,          r1, r2, r3, cv);
   3025    TESTINST3("adcs.w r1, r2, r3, lsr #0 ", 0,          1,          r1, r2, r3, cv);
   3026    TESTINST3("adcs.w r1, r2, r3, lsr #1 ", 0,          1,          r1, r2, r3, cv);
   3027    TESTINST3("adcs.w r1, r2, r3, lsr #15", 0,          1,          r1, r2, r3, cv);
   3028    TESTINST3("adcs.w r1, r2, r3, lsr #31", 0,          1,          r1, r2, r3, cv);
   3029    TESTINST3("adcs.w r1, r2, r3, asr #0 ", 0,          1,          r1, r2, r3, cv);
   3030    TESTINST3("adcs.w r1, r2, r3, asr #1 ", 0,          1,          r1, r2, r3, cv);
   3031    TESTINST3("adcs.w r1, r2, r3, asr #15", 0,          1,          r1, r2, r3, cv);
   3032    TESTINST3("adcs.w r1, r2, r3, asr #31", 0,          1,          r1, r2, r3, cv);
   3033    TESTINST3("adc.w  r1, r2, r3, lsl #0 ", 0,          1,          r1, r2, r3, cv);
   3034    TESTINST3("adc.w  r1, r2, r3, lsl #1 ", 0,          1,          r1, r2, r3, cv);
   3035    TESTINST3("adc.w  r1, r2, r3, lsl #15", 0,          1,          r1, r2, r3, cv);
   3036    TESTINST3("adc.w  r1, r2, r3, lsl #31", 0,          1,          r1, r2, r3, cv);
   3037    TESTINST3("adc.w  r1, r2, r3, lsr #0 ", 0,          1,          r1, r2, r3, cv);
   3038    TESTINST3("adc.w  r1, r2, r3, lsr #1 ", 0,          1,          r1, r2, r3, cv);
   3039    TESTINST3("adc.w  r1, r2, r3, lsr #15", 0,          1,          r1, r2, r3, cv);
   3040    TESTINST3("adc.w  r1, r2, r3, lsr #31", 0,          1,          r1, r2, r3, cv);
   3041    TESTINST3("adc.w  r1, r2, r3, asr #0 ", 0,          1,          r1, r2, r3, cv);
   3042    TESTINST3("adc.w  r1, r2, r3, asr #1 ", 0,          1,          r1, r2, r3, cv);
   3043    TESTINST3("adc.w  r1, r2, r3, asr #15", 0,          1,          r1, r2, r3, cv);
   3044    TESTINST3("adc.w  r1, r2, r3, asr #31", 0,          1,          r1, r2, r3, cv);
   3045    TESTINST3("adcs.w r1, r2, r3, lsl #0 ", -1,         0,          r1, r2, r3, cv);
   3046    TESTINST3("adcs.w r1, r2, r3, lsl #1 ", -1,         0,          r1, r2, r3, cv);
   3047    TESTINST3("adcs.w r1, r2, r3, lsl #15", -1,         0,          r1, r2, r3, cv);
   3048    TESTINST3("adcs.w r1, r2, r3, lsl #31", -1,         0,          r1, r2, r3, cv);
   3049    TESTINST3("adcs.w r1, r2, r3, lsr #0 ", -1,         0,          r1, r2, r3, cv);
   3050    TESTINST3("adcs.w r1, r2, r3, lsr #1 ", -1,         0,          r1, r2, r3, cv);
   3051    TESTINST3("adcs.w r1, r2, r3, lsr #15", -1,         0,          r1, r2, r3, cv);
   3052    TESTINST3("adcs.w r1, r2, r3, lsr #31", -1,         0,          r1, r2, r3, cv);
   3053    TESTINST3("adcs.w r1, r2, r3, asr #0 ", -1,         0,          r1, r2, r3, cv);
   3054    TESTINST3("adcs.w r1, r2, r3, asr #1 ", -1,         0,          r1, r2, r3, cv);
   3055    TESTINST3("adcs.w r1, r2, r3, asr #15", -1,         0,          r1, r2, r3, cv);
   3056    TESTINST3("adcs.w r1, r2, r3, asr #31", -1,         0,          r1, r2, r3, cv);
   3057    TESTINST3("adc.w  r1, r2, r3, lsl #0 ", -1,         0,          r1, r2, r3, cv);
   3058    TESTINST3("adc.w  r1, r2, r3, lsl #1 ", -1,         0,          r1, r2, r3, cv);
   3059    TESTINST3("adc.w  r1, r2, r3, lsl #15", -1,         0,          r1, r2, r3, cv);
   3060    TESTINST3("adc.w  r1, r2, r3, lsl #31", -1,         0,          r1, r2, r3, cv);
   3061    TESTINST3("adc.w  r1, r2, r3, lsr #0 ", -1,         0,          r1, r2, r3, cv);
   3062    TESTINST3("adc.w  r1, r2, r3, lsr #1 ", -1,         0,          r1, r2, r3, cv);
   3063    TESTINST3("adc.w  r1, r2, r3, lsr #15", -1,         0,          r1, r2, r3, cv);
   3064    TESTINST3("adc.w  r1, r2, r3, lsr #31", -1,         0,          r1, r2, r3, cv);
   3065    TESTINST3("adc.w  r1, r2, r3, asr #0 ", -1,         0,          r1, r2, r3, cv);
   3066    TESTINST3("adc.w  r1, r2, r3, asr #1 ", -1,         0,          r1, r2, r3, cv);
   3067    TESTINST3("adc.w  r1, r2, r3, asr #15", -1,         0,          r1, r2, r3, cv);
   3068    TESTINST3("adc.w  r1, r2, r3, asr #31", -1,         0,          r1, r2, r3, cv);
   3069    TESTINST3("adcs.w r1, r2, r3, lsl #0 ", 0,          -1,         r1, r2, r3, cv);
   3070    TESTINST3("adcs.w r1, r2, r3, lsl #1 ", 0,          -1,         r1, r2, r3, cv);
   3071    TESTINST3("adcs.w r1, r2, r3, lsl #15", 0,          -1,         r1, r2, r3, cv);
   3072    TESTINST3("adcs.w r1, r2, r3, lsl #31", 0,          -1,         r1, r2, r3, cv);
   3073    TESTINST3("adcs.w r1, r2, r3, lsr #0 ", 0,          -1,         r1, r2, r3, cv);
   3074    TESTINST3("adcs.w r1, r2, r3, lsr #1 ", 0,          -1,         r1, r2, r3, cv);
   3075    TESTINST3("adcs.w r1, r2, r3, lsr #15", 0,          -1,         r1, r2, r3, cv);
   3076    TESTINST3("adcs.w r1, r2, r3, lsr #31", 0,          -1,         r1, r2, r3, cv);
   3077    TESTINST3("adcs.w r1, r2, r3, asr #0 ", 0,          -1,         r1, r2, r3, cv);
   3078    TESTINST3("adcs.w r1, r2, r3, asr #1 ", 0,          -1,         r1, r2, r3, cv);
   3079    TESTINST3("adcs.w r1, r2, r3, asr #15", 0,          -1,         r1, r2, r3, cv);
   3080    TESTINST3("adcs.w r1, r2, r3, asr #31", 0,          -1,         r1, r2, r3, cv);
   3081    TESTINST3("adc.w  r1, r2, r3, lsl #0 ", 0,          -1,         r1, r2, r3, cv);
   3082    TESTINST3("adc.w  r1, r2, r3, lsl #1 ", 0,          -1,         r1, r2, r3, cv);
   3083    TESTINST3("adc.w  r1, r2, r3, lsl #15", 0,          -1,         r1, r2, r3, cv);
   3084    TESTINST3("adc.w  r1, r2, r3, lsl #31", 0,          -1,         r1, r2, r3, cv);
   3085    TESTINST3("adc.w  r1, r2, r3, lsr #0 ", 0,          -1,         r1, r2, r3, cv);
   3086    TESTINST3("adc.w  r1, r2, r3, lsr #1 ", 0,          -1,         r1, r2, r3, cv);
   3087    TESTINST3("adc.w  r1, r2, r3, lsr #15", 0,          -1,         r1, r2, r3, cv);
   3088    TESTINST3("adc.w  r1, r2, r3, lsr #31", 0,          -1,         r1, r2, r3, cv);
   3089    TESTINST3("adc.w  r1, r2, r3, asr #0 ", 0,          -1,         r1, r2, r3, cv);
   3090    TESTINST3("adc.w  r1, r2, r3, asr #1 ", 0,          -1,         r1, r2, r3, cv);
   3091    TESTINST3("adc.w  r1, r2, r3, asr #15", 0,          -1,         r1, r2, r3, cv);
   3092    TESTINST3("adc.w  r1, r2, r3, asr #31", 0,          -1,         r1, r2, r3, cv);
   3093    TESTINST3("adcs.w r1, r2, r3, lsl #0 ", 0,          0x80000000, r1, r2, r3, cv);
   3094    TESTINST3("adcs.w r1, r2, r3, lsl #1 ", 0,          0x80000000, r1, r2, r3, cv);
   3095    TESTINST3("adcs.w r1, r2, r3, lsl #15", 0,          0x80000000, r1, r2, r3, cv);
   3096    TESTINST3("adcs.w r1, r2, r3, lsl #31", 0,          0x80000000, r1, r2, r3, cv);
   3097    TESTINST3("adcs.w r1, r2, r3, lsr #0 ", 0,          0x80000000, r1, r2, r3, cv);
   3098    TESTINST3("adcs.w r1, r2, r3, lsr #1 ", 0,          0x80000000, r1, r2, r3, cv);
   3099    TESTINST3("adcs.w r1, r2, r3, lsr #15", 0,          0x80000000, r1, r2, r3, cv);
   3100    TESTINST3("adcs.w r1, r2, r3, lsr #31", 0,          0x80000000, r1, r2, r3, cv);
   3101    TESTINST3("adcs.w r1, r2, r3, asr #0 ", 0,          0x80000000, r1, r2, r3, cv);
   3102    TESTINST3("adcs.w r1, r2, r3, asr #1 ", 0,          0x80000000, r1, r2, r3, cv);
   3103    TESTINST3("adcs.w r1, r2, r3, asr #15", 0,          0x80000000, r1, r2, r3, cv);
   3104    TESTINST3("adcs.w r1, r2, r3, asr #31", 0,          0x80000000, r1, r2, r3, cv);
   3105    TESTINST3("adc.w  r1, r2, r3, lsl #0 ", 0,          0x80000000, r1, r2, r3, cv);
   3106    TESTINST3("adc.w  r1, r2, r3, lsl #1 ", 0,          0x80000000, r1, r2, r3, cv);
   3107    TESTINST3("adc.w  r1, r2, r3, lsl #15", 0,          0x80000000, r1, r2, r3, cv);
   3108    TESTINST3("adc.w  r1, r2, r3, lsl #31", 0,          0x80000000, r1, r2, r3, cv);
   3109    TESTINST3("adc.w  r1, r2, r3, lsr #0 ", 0,          0x80000000, r1, r2, r3, cv);
   3110    TESTINST3("adc.w  r1, r2, r3, lsr #1 ", 0,          0x80000000, r1, r2, r3, cv);
   3111    TESTINST3("adc.w  r1, r2, r3, lsr #15", 0,          0x80000000, r1, r2, r3, cv);
   3112    TESTINST3("adc.w  r1, r2, r3, lsr #31", 0,          0x80000000, r1, r2, r3, cv);
   3113    TESTINST3("adc.w  r1, r2, r3, asr #0 ", 0,          0x80000000, r1, r2, r3, cv);
   3114    TESTINST3("adc.w  r1, r2, r3, asr #1 ", 0,          0x80000000, r1, r2, r3, cv);
   3115    TESTINST3("adc.w  r1, r2, r3, asr #15", 0,          0x80000000, r1, r2, r3, cv);
   3116    TESTINST3("adc.w  r1, r2, r3, asr #31", 0,          0x80000000, r1, r2, r3, cv);
   3117    TESTINST3("adcs.w r1, r2, r3, lsl #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   3118    TESTINST3("adcs.w r1, r2, r3, lsl #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   3119    TESTINST3("adcs.w r1, r2, r3, lsl #15", 0x80000000, 0,          r1, r2, r3, cv);
   3120    TESTINST3("adcs.w r1, r2, r3, lsl #31", 0x80000000, 0,          r1, r2, r3, cv);
   3121    TESTINST3("adcs.w r1, r2, r3, lsr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   3122    TESTINST3("adcs.w r1, r2, r3, lsr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   3123    TESTINST3("adcs.w r1, r2, r3, lsr #15", 0x80000000, 0,          r1, r2, r3, cv);
   3124    TESTINST3("adcs.w r1, r2, r3, lsr #31", 0x80000000, 0,          r1, r2, r3, cv);
   3125    TESTINST3("adcs.w r1, r2, r3, asr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   3126    TESTINST3("adcs.w r1, r2, r3, asr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   3127    TESTINST3("adcs.w r1, r2, r3, asr #15", 0x80000000, 0,          r1, r2, r3, cv);
   3128    TESTINST3("adcs.w r1, r2, r3, asr #31", 0x80000000, 0,          r1, r2, r3, cv);
   3129    TESTINST3("adc.w  r1, r2, r3, lsl #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   3130    TESTINST3("adc.w  r1, r2, r3, lsl #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   3131    TESTINST3("adc.w  r1, r2, r3, lsl #15", 0x80000000, 0,          r1, r2, r3, cv);
   3132    TESTINST3("adc.w  r1, r2, r3, lsl #31", 0x80000000, 0,          r1, r2, r3, cv);
   3133    TESTINST3("adc.w  r1, r2, r3, lsr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   3134    TESTINST3("adc.w  r1, r2, r3, lsr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   3135    TESTINST3("adc.w  r1, r2, r3, lsr #15", 0x80000000, 0,          r1, r2, r3, cv);
   3136    TESTINST3("adc.w  r1, r2, r3, lsr #31", 0x80000000, 0,          r1, r2, r3, cv);
   3137    TESTINST3("adc.w  r1, r2, r3, asr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   3138    TESTINST3("adc.w  r1, r2, r3, asr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   3139    TESTINST3("adc.w  r1, r2, r3, asr #15", 0x80000000, 0,          r1, r2, r3, cv);
   3140    TESTINST3("adc.w  r1, r2, r3, asr #31", 0x80000000, 0,          r1, r2, r3, cv);
   3141    TESTINST3("adcs.w r1, r2, r3, lsl #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3142    TESTINST3("adcs.w r1, r2, r3, lsl #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3143    TESTINST3("adcs.w r1, r2, r3, lsl #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3144    TESTINST3("adcs.w r1, r2, r3, lsl #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3145    TESTINST3("adcs.w r1, r2, r3, lsr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3146    TESTINST3("adcs.w r1, r2, r3, lsr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3147    TESTINST3("adcs.w r1, r2, r3, lsr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3148    TESTINST3("adcs.w r1, r2, r3, lsr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3149    TESTINST3("adcs.w r1, r2, r3, asr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3150    TESTINST3("adcs.w r1, r2, r3, asr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3151    TESTINST3("adcs.w r1, r2, r3, asr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3152    TESTINST3("adcs.w r1, r2, r3, asr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3153    TESTINST3("adc.w  r1, r2, r3, lsl #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3154    TESTINST3("adc.w  r1, r2, r3, lsl #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3155    TESTINST3("adc.w  r1, r2, r3, lsl #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3156    TESTINST3("adc.w  r1, r2, r3, lsl #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3157    TESTINST3("adc.w  r1, r2, r3, lsr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3158    TESTINST3("adc.w  r1, r2, r3, lsr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3159    TESTINST3("adc.w  r1, r2, r3, lsr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3160    TESTINST3("adc.w  r1, r2, r3, lsr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3161    TESTINST3("adc.w  r1, r2, r3, asr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3162    TESTINST3("adc.w  r1, r2, r3, asr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3163    TESTINST3("adc.w  r1, r2, r3, asr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3164    TESTINST3("adc.w  r1, r2, r3, asr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3165    TESTINST3("adcs.w r1, r2, r3, lsl #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3166    TESTINST3("adcs.w r1, r2, r3, lsl #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3167    TESTINST3("adcs.w r1, r2, r3, lsl #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3168    TESTINST3("adcs.w r1, r2, r3, lsl #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3169    TESTINST3("adcs.w r1, r2, r3, lsr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3170    TESTINST3("adcs.w r1, r2, r3, lsr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3171    TESTINST3("adcs.w r1, r2, r3, lsr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3172    TESTINST3("adcs.w r1, r2, r3, lsr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3173    TESTINST3("adcs.w r1, r2, r3, asr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3174    TESTINST3("adcs.w r1, r2, r3, asr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3175    TESTINST3("adcs.w r1, r2, r3, asr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3176    TESTINST3("adcs.w r1, r2, r3, asr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3177    TESTINST3("adc.w  r1, r2, r3, lsl #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3178    TESTINST3("adc.w  r1, r2, r3, lsl #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3179    TESTINST3("adc.w  r1, r2, r3, lsl #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3180    TESTINST3("adc.w  r1, r2, r3, lsl #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3181    TESTINST3("adc.w  r1, r2, r3, lsr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3182    TESTINST3("adc.w  r1, r2, r3, lsr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3183    TESTINST3("adc.w  r1, r2, r3, lsr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3184    TESTINST3("adc.w  r1, r2, r3, lsr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3185    TESTINST3("adc.w  r1, r2, r3, asr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3186    TESTINST3("adc.w  r1, r2, r3, asr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3187    TESTINST3("adc.w  r1, r2, r3, asr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3188    TESTINST3("adc.w  r1, r2, r3, asr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3189    TESTINST3("adcs.w r1, r2, r3, lsl #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3190    TESTINST3("adcs.w r1, r2, r3, lsl #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3191    TESTINST3("adcs.w r1, r2, r3, lsl #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3192    TESTINST3("adcs.w r1, r2, r3, lsl #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3193    TESTINST3("adcs.w r1, r2, r3, lsr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3194    TESTINST3("adcs.w r1, r2, r3, lsr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3195    TESTINST3("adcs.w r1, r2, r3, lsr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3196    TESTINST3("adcs.w r1, r2, r3, lsr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3197    TESTINST3("adcs.w r1, r2, r3, asr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3198    TESTINST3("adcs.w r1, r2, r3, asr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3199    TESTINST3("adcs.w r1, r2, r3, asr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3200    TESTINST3("adcs.w r1, r2, r3, asr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3201    TESTINST3("adc.w  r1, r2, r3, lsl #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3202    TESTINST3("adc.w  r1, r2, r3, lsl #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3203    TESTINST3("adc.w  r1, r2, r3, lsl #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3204    TESTINST3("adc.w  r1, r2, r3, lsl #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3205    TESTINST3("adc.w  r1, r2, r3, lsr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3206    TESTINST3("adc.w  r1, r2, r3, lsr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3207    TESTINST3("adc.w  r1, r2, r3, lsr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3208    TESTINST3("adc.w  r1, r2, r3, lsr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3209    TESTINST3("adc.w  r1, r2, r3, asr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3210    TESTINST3("adc.w  r1, r2, r3, asr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3211    TESTINST3("adc.w  r1, r2, r3, asr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3212    TESTINST3("adc.w  r1, r2, r3, asr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3213    TESTINST3("adcs.w r1, r2, r3, lsl #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3214    TESTINST3("adcs.w r1, r2, r3, lsl #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3215    TESTINST3("adcs.w r1, r2, r3, lsl #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3216    TESTINST3("adcs.w r1, r2, r3, lsl #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3217    TESTINST3("adcs.w r1, r2, r3, lsr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3218    TESTINST3("adcs.w r1, r2, r3, lsr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3219    TESTINST3("adcs.w r1, r2, r3, lsr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3220    TESTINST3("adcs.w r1, r2, r3, lsr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3221    TESTINST3("adcs.w r1, r2, r3, asr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3222    TESTINST3("adcs.w r1, r2, r3, asr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3223    TESTINST3("adcs.w r1, r2, r3, asr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3224    TESTINST3("adcs.w r1, r2, r3, asr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3225    TESTINST3("adc.w  r1, r2, r3, lsl #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3226    TESTINST3("adc.w  r1, r2, r3, lsl #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3227    TESTINST3("adc.w  r1, r2, r3, lsl #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3228    TESTINST3("adc.w  r1, r2, r3, lsl #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3229    TESTINST3("adc.w  r1, r2, r3, lsr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3230    TESTINST3("adc.w  r1, r2, r3, lsr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3231    TESTINST3("adc.w  r1, r2, r3, lsr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3232    TESTINST3("adc.w  r1, r2, r3, lsr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3233    TESTINST3("adc.w  r1, r2, r3, asr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3234    TESTINST3("adc.w  r1, r2, r3, asr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3235    TESTINST3("adc.w  r1, r2, r3, asr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3236    TESTINST3("adc.w  r1, r2, r3, asr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3237    TESTCARRYEND
   3238 
   3239    printf("SBC{S}.W Rd, Rn, Rm, {shift}\n");
   3240    TESTCARRY
   3241    TESTINST3("sbcs.w r1, r2, r3, lsl #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3242    TESTINST3("sbcs.w r1, r2, r3, lsl #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3243    TESTINST3("sbcs.w r1, r2, r3, lsl #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3244    TESTINST3("sbcs.w r1, r2, r3, lsl #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3245    TESTINST3("sbcs.w r1, r2, r3, lsr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3246    TESTINST3("sbcs.w r1, r2, r3, lsr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3247    TESTINST3("sbcs.w r1, r2, r3, lsr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3248    TESTINST3("sbcs.w r1, r2, r3, lsr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3249    TESTINST3("sbcs.w r1, r2, r3, asr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3250    TESTINST3("sbcs.w r1, r2, r3, asr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3251    TESTINST3("sbcs.w r1, r2, r3, asr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3252    TESTINST3("sbcs.w r1, r2, r3, asr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3253    TESTINST3("sbc.w  r1, r2, r3, lsl #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3254    TESTINST3("sbc.w  r1, r2, r3, lsl #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3255    TESTINST3("sbc.w  r1, r2, r3, lsl #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3256    TESTINST3("sbc.w  r1, r2, r3, lsl #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3257    TESTINST3("sbc.w  r1, r2, r3, lsr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3258    TESTINST3("sbc.w  r1, r2, r3, lsr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3259    TESTINST3("sbc.w  r1, r2, r3, lsr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3260    TESTINST3("sbc.w  r1, r2, r3, lsr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3261    TESTINST3("sbc.w  r1, r2, r3, asr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3262    TESTINST3("sbc.w  r1, r2, r3, asr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3263    TESTINST3("sbc.w  r1, r2, r3, asr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3264    TESTINST3("sbc.w  r1, r2, r3, asr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3265    TESTINST3("sbcs.w r1, r2, r3, lsl #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3266    TESTINST3("sbcs.w r1, r2, r3, lsl #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3267    TESTINST3("sbcs.w r1, r2, r3, lsl #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3268    TESTINST3("sbcs.w r1, r2, r3, lsl #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3269    TESTINST3("sbcs.w r1, r2, r3, lsr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3270    TESTINST3("sbcs.w r1, r2, r3, lsr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3271    TESTINST3("sbcs.w r1, r2, r3, lsr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3272    TESTINST3("sbcs.w r1, r2, r3, lsr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3273    TESTINST3("sbcs.w r1, r2, r3, asr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3274    TESTINST3("sbcs.w r1, r2, r3, asr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3275    TESTINST3("sbcs.w r1, r2, r3, asr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3276    TESTINST3("sbcs.w r1, r2, r3, asr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3277    TESTINST3("sbc.w  r1, r2, r3, lsl #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3278    TESTINST3("sbc.w  r1, r2, r3, lsl #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3279    TESTINST3("sbc.w  r1, r2, r3, lsl #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3280    TESTINST3("sbc.w  r1, r2, r3, lsl #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3281    TESTINST3("sbc.w  r1, r2, r3, lsr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3282    TESTINST3("sbc.w  r1, r2, r3, lsr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3283    TESTINST3("sbc.w  r1, r2, r3, lsr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3284    TESTINST3("sbc.w  r1, r2, r3, lsr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3285    TESTINST3("sbc.w  r1, r2, r3, asr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3286    TESTINST3("sbc.w  r1, r2, r3, asr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3287    TESTINST3("sbc.w  r1, r2, r3, asr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3288    TESTINST3("sbc.w  r1, r2, r3, asr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3289    TESTINST3("sbcs.w r1, r2, r3, lsl #0 ", 0,          0,          r1, r2, r3, cv);
   3290    TESTINST3("sbcs.w r1, r2, r3, lsl #1 ", 0,          0,          r1, r2, r3, cv);
   3291    TESTINST3("sbcs.w r1, r2, r3, lsl #15", 0,          0,          r1, r2, r3, cv);
   3292    TESTINST3("sbcs.w r1, r2, r3, lsl #31", 0,          0,          r1, r2, r3, cv);
   3293    TESTINST3("sbcs.w r1, r2, r3, lsr #0 ", 0,          0,          r1, r2, r3, cv);
   3294    TESTINST3("sbcs.w r1, r2, r3, lsr #1 ", 0,          0,          r1, r2, r3, cv);
   3295    TESTINST3("sbcs.w r1, r2, r3, lsr #15", 0,          0,          r1, r2, r3, cv);
   3296    TESTINST3("sbcs.w r1, r2, r3, lsr #31", 0,          0,          r1, r2, r3, cv);
   3297    TESTINST3("sbcs.w r1, r2, r3, asr #0 ", 0,          0,          r1, r2, r3, cv);
   3298    TESTINST3("sbcs.w r1, r2, r3, asr #1 ", 0,          0,          r1, r2, r3, cv);
   3299    TESTINST3("sbcs.w r1, r2, r3, asr #15", 0,          0,          r1, r2, r3, cv);
   3300    TESTINST3("sbcs.w r1, r2, r3, asr #31", 0,          0,          r1, r2, r3, cv);
   3301    TESTINST3("sbc.w  r1, r2, r3, lsl #0 ", 0,          0,          r1, r2, r3, cv);
   3302    TESTINST3("sbc.w  r1, r2, r3, lsl #1 ", 0,          0,          r1, r2, r3, cv);
   3303    TESTINST3("sbc.w  r1, r2, r3, lsl #15", 0,          0,          r1, r2, r3, cv);
   3304    TESTINST3("sbc.w  r1, r2, r3, lsl #31", 0,          0,          r1, r2, r3, cv);
   3305    TESTINST3("sbc.w  r1, r2, r3, lsr #0 ", 0,          0,          r1, r2, r3, cv);
   3306    TESTINST3("sbc.w  r1, r2, r3, lsr #1 ", 0,          0,          r1, r2, r3, cv);
   3307    TESTINST3("sbc.w  r1, r2, r3, lsr #15", 0,          0,          r1, r2, r3, cv);
   3308    TESTINST3("sbc.w  r1, r2, r3, lsr #31", 0,          0,          r1, r2, r3, cv);
   3309    TESTINST3("sbc.w  r1, r2, r3, asr #0 ", 0,          0,          r1, r2, r3, cv);
   3310    TESTINST3("sbc.w  r1, r2, r3, asr #1 ", 0,          0,          r1, r2, r3, cv);
   3311    TESTINST3("sbc.w  r1, r2, r3, asr #15", 0,          0,          r1, r2, r3, cv);
   3312    TESTINST3("sbc.w  r1, r2, r3, asr #31", 0,          0,          r1, r2, r3, cv);
   3313    TESTINST3("sbcs.w r1, r2, r3, lsl #0 ", 1,          0,          r1, r2, r3, cv);
   3314    TESTINST3("sbcs.w r1, r2, r3, lsl #1 ", 1,          0,          r1, r2, r3, cv);
   3315    TESTINST3("sbcs.w r1, r2, r3, lsl #15", 1,          0,          r1, r2, r3, cv);
   3316    TESTINST3("sbcs.w r1, r2, r3, lsl #31", 1,          0,          r1, r2, r3, cv);
   3317    TESTINST3("sbcs.w r1, r2, r3, lsr #0 ", 1,          0,          r1, r2, r3, cv);
   3318    TESTINST3("sbcs.w r1, r2, r3, lsr #1 ", 1,          0,          r1, r2, r3, cv);
   3319    TESTINST3("sbcs.w r1, r2, r3, lsr #15", 1,          0,          r1, r2, r3, cv);
   3320    TESTINST3("sbcs.w r1, r2, r3, lsr #31", 1,          0,          r1, r2, r3, cv);
   3321    TESTINST3("sbcs.w r1, r2, r3, asr #0 ", 1,          0,          r1, r2, r3, cv);
   3322    TESTINST3("sbcs.w r1, r2, r3, asr #1 ", 1,          0,          r1, r2, r3, cv);
   3323    TESTINST3("sbcs.w r1, r2, r3, asr #15", 1,          0,          r1, r2, r3, cv);
   3324    TESTINST3("sbcs.w r1, r2, r3, asr #31", 1,          0,          r1, r2, r3, cv);
   3325    TESTINST3("sbc.w  r1, r2, r3, lsl #0 ", 1,          0,          r1, r2, r3, cv);
   3326    TESTINST3("sbc.w  r1, r2, r3, lsl #1 ", 1,          0,          r1, r2, r3, cv);
   3327    TESTINST3("sbc.w  r1, r2, r3, lsl #15", 1,          0,          r1, r2, r3, cv);
   3328    TESTINST3("sbc.w  r1, r2, r3, lsl #31", 1,          0,          r1, r2, r3, cv);
   3329    TESTINST3("sbc.w  r1, r2, r3, lsr #0 ", 1,          0,          r1, r2, r3, cv);
   3330    TESTINST3("sbc.w  r1, r2, r3, lsr #1 ", 1,          0,          r1, r2, r3, cv);
   3331    TESTINST3("sbc.w  r1, r2, r3, lsr #15", 1,          0,          r1, r2, r3, cv);
   3332    TESTINST3("sbc.w  r1, r2, r3, lsr #31", 1,          0,          r1, r2, r3, cv);
   3333    TESTINST3("sbc.w  r1, r2, r3, asr #0 ", 1,          0,          r1, r2, r3, cv);
   3334    TESTINST3("sbc.w  r1, r2, r3, asr #1 ", 1,          0,          r1, r2, r3, cv);
   3335    TESTINST3("sbc.w  r1, r2, r3, asr #15", 1,          0,          r1, r2, r3, cv);
   3336    TESTINST3("sbc.w  r1, r2, r3, asr #31", 1,          0,          r1, r2, r3, cv);
   3337    TESTINST3("sbcs.w r1, r2, r3, lsl #0 ", 0,          1,          r1, r2, r3, cv);
   3338    TESTINST3("sbcs.w r1, r2, r3, lsl #1 ", 0,          1,          r1, r2, r3, cv);
   3339    TESTINST3("sbcs.w r1, r2, r3, lsl #15", 0,          1,          r1, r2, r3, cv);
   3340    TESTINST3("sbcs.w r1, r2, r3, lsl #31", 0,          1,          r1, r2, r3, cv);
   3341    TESTINST3("sbcs.w r1, r2, r3, lsr #0 ", 0,          1,          r1, r2, r3, cv);
   3342    TESTINST3("sbcs.w r1, r2, r3, lsr #1 ", 0,          1,          r1, r2, r3, cv);
   3343    TESTINST3("sbcs.w r1, r2, r3, lsr #15", 0,          1,          r1, r2, r3, cv);
   3344    TESTINST3("sbcs.w r1, r2, r3, lsr #31", 0,          1,          r1, r2, r3, cv);
   3345    TESTINST3("sbcs.w r1, r2, r3, asr #0 ", 0,          1,          r1, r2, r3, cv);
   3346    TESTINST3("sbcs.w r1, r2, r3, asr #1 ", 0,          1,          r1, r2, r3, cv);
   3347    TESTINST3("sbcs.w r1, r2, r3, asr #15", 0,          1,          r1, r2, r3, cv);
   3348    TESTINST3("sbcs.w r1, r2, r3, asr #31", 0,          1,          r1, r2, r3, cv);
   3349    TESTINST3("sbc.w  r1, r2, r3, lsl #0 ", 0,          1,          r1, r2, r3, cv);
   3350    TESTINST3("sbc.w  r1, r2, r3, lsl #1 ", 0,          1,          r1, r2, r3, cv);
   3351    TESTINST3("sbc.w  r1, r2, r3, lsl #15", 0,          1,          r1, r2, r3, cv);
   3352    TESTINST3("sbc.w  r1, r2, r3, lsl #31", 0,          1,          r1, r2, r3, cv);
   3353    TESTINST3("sbc.w  r1, r2, r3, lsr #0 ", 0,          1,          r1, r2, r3, cv);
   3354    TESTINST3("sbc.w  r1, r2, r3, lsr #1 ", 0,          1,          r1, r2, r3, cv);
   3355    TESTINST3("sbc.w  r1, r2, r3, lsr #15", 0,          1,          r1, r2, r3, cv);
   3356    TESTINST3("sbc.w  r1, r2, r3, lsr #31", 0,          1,          r1, r2, r3, cv);
   3357    TESTINST3("sbc.w  r1, r2, r3, asr #0 ", 0,          1,          r1, r2, r3, cv);
   3358    TESTINST3("sbc.w  r1, r2, r3, asr #1 ", 0,          1,          r1, r2, r3, cv);
   3359    TESTINST3("sbc.w  r1, r2, r3, asr #15", 0,          1,          r1, r2, r3, cv);
   3360    TESTINST3("sbc.w  r1, r2, r3, asr #31", 0,          1,          r1, r2, r3, cv);
   3361    TESTINST3("sbcs.w r1, r2, r3, lsl #0 ", -1,         0,          r1, r2, r3, cv);
   3362    TESTINST3("sbcs.w r1, r2, r3, lsl #1 ", -1,         0,          r1, r2, r3, cv);
   3363    TESTINST3("sbcs.w r1, r2, r3, lsl #15", -1,         0,          r1, r2, r3, cv);
   3364    TESTINST3("sbcs.w r1, r2, r3, lsl #31", -1,         0,          r1, r2, r3, cv);
   3365    TESTINST3("sbcs.w r1, r2, r3, lsr #0 ", -1,         0,          r1, r2, r3, cv);
   3366    TESTINST3("sbcs.w r1, r2, r3, lsr #1 ", -1,         0,          r1, r2, r3, cv);
   3367    TESTINST3("sbcs.w r1, r2, r3, lsr #15", -1,         0,          r1, r2, r3, cv);
   3368    TESTINST3("sbcs.w r1, r2, r3, lsr #31", -1,         0,          r1, r2, r3, cv);
   3369    TESTINST3("sbcs.w r1, r2, r3, asr #0 ", -1,         0,          r1, r2, r3, cv);
   3370    TESTINST3("sbcs.w r1, r2, r3, asr #1 ", -1,         0,          r1, r2, r3, cv);
   3371    TESTINST3("sbcs.w r1, r2, r3, asr #15", -1,         0,          r1, r2, r3, cv);
   3372    TESTINST3("sbcs.w r1, r2, r3, asr #31", -1,         0,          r1, r2, r3, cv);
   3373    TESTINST3("sbc.w  r1, r2, r3, lsl #0 ", -1,         0,          r1, r2, r3, cv);
   3374    TESTINST3("sbc.w  r1, r2, r3, lsl #1 ", -1,         0,          r1, r2, r3, cv);
   3375    TESTINST3("sbc.w  r1, r2, r3, lsl #15", -1,         0,          r1, r2, r3, cv);
   3376    TESTINST3("sbc.w  r1, r2, r3, lsl #31", -1,         0,          r1, r2, r3, cv);
   3377    TESTINST3("sbc.w  r1, r2, r3, lsr #0 ", -1,         0,          r1, r2, r3, cv);
   3378    TESTINST3("sbc.w  r1, r2, r3, lsr #1 ", -1,         0,          r1, r2, r3, cv);
   3379    TESTINST3("sbc.w  r1, r2, r3, lsr #15", -1,         0,          r1, r2, r3, cv);
   3380    TESTINST3("sbc.w  r1, r2, r3, lsr #31", -1,         0,          r1, r2, r3, cv);
   3381    TESTINST3("sbc.w  r1, r2, r3, asr #0 ", -1,         0,          r1, r2, r3, cv);
   3382    TESTINST3("sbc.w  r1, r2, r3, asr #1 ", -1,         0,          r1, r2, r3, cv);
   3383    TESTINST3("sbc.w  r1, r2, r3, asr #15", -1,         0,          r1, r2, r3, cv);
   3384    TESTINST3("sbc.w  r1, r2, r3, asr #31", -1,         0,          r1, r2, r3, cv);
   3385    TESTINST3("sbcs.w r1, r2, r3, lsl #0 ", 0,          -1,         r1, r2, r3, cv);
   3386    TESTINST3("sbcs.w r1, r2, r3, lsl #1 ", 0,          -1,         r1, r2, r3, cv);
   3387    TESTINST3("sbcs.w r1, r2, r3, lsl #15", 0,          -1,         r1, r2, r3, cv);
   3388    TESTINST3("sbcs.w r1, r2, r3, lsl #31", 0,          -1,         r1, r2, r3, cv);
   3389    TESTINST3("sbcs.w r1, r2, r3, lsr #0 ", 0,          -1,         r1, r2, r3, cv);
   3390    TESTINST3("sbcs.w r1, r2, r3, lsr #1 ", 0,          -1,         r1, r2, r3, cv);
   3391    TESTINST3("sbcs.w r1, r2, r3, lsr #15", 0,          -1,         r1, r2, r3, cv);
   3392    TESTINST3("sbcs.w r1, r2, r3, lsr #31", 0,          -1,         r1, r2, r3, cv);
   3393    TESTINST3("sbcs.w r1, r2, r3, asr #0 ", 0,          -1,         r1, r2, r3, cv);
   3394    TESTINST3("sbcs.w r1, r2, r3, asr #1 ", 0,          -1,         r1, r2, r3, cv);
   3395    TESTINST3("sbcs.w r1, r2, r3, asr #15", 0,          -1,         r1, r2, r3, cv);
   3396    TESTINST3("sbcs.w r1, r2, r3, asr #31", 0,          -1,         r1, r2, r3, cv);
   3397    TESTINST3("sbc.w  r1, r2, r3, lsl #0 ", 0,          -1,         r1, r2, r3, cv);
   3398    TESTINST3("sbc.w  r1, r2, r3, lsl #1 ", 0,          -1,         r1, r2, r3, cv);
   3399    TESTINST3("sbc.w  r1, r2, r3, lsl #15", 0,          -1,         r1, r2, r3, cv);
   3400    TESTINST3("sbc.w  r1, r2, r3, lsl #31", 0,          -1,         r1, r2, r3, cv);
   3401    TESTINST3("sbc.w  r1, r2, r3, lsr #0 ", 0,          -1,         r1, r2, r3, cv);
   3402    TESTINST3("sbc.w  r1, r2, r3, lsr #1 ", 0,          -1,         r1, r2, r3, cv);
   3403    TESTINST3("sbc.w  r1, r2, r3, lsr #15", 0,          -1,         r1, r2, r3, cv);
   3404    TESTINST3("sbc.w  r1, r2, r3, lsr #31", 0,          -1,         r1, r2, r3, cv);
   3405    TESTINST3("sbc.w  r1, r2, r3, asr #0 ", 0,          -1,         r1, r2, r3, cv);
   3406    TESTINST3("sbc.w  r1, r2, r3, asr #1 ", 0,          -1,         r1, r2, r3, cv);
   3407    TESTINST3("sbc.w  r1, r2, r3, asr #15", 0,          -1,         r1, r2, r3, cv);
   3408    TESTINST3("sbc.w  r1, r2, r3, asr #31", 0,          -1,         r1, r2, r3, cv);
   3409    TESTINST3("sbcs.w r1, r2, r3, lsl #0 ", 0,          0x80000000, r1, r2, r3, cv);
   3410    TESTINST3("sbcs.w r1, r2, r3, lsl #1 ", 0,          0x80000000, r1, r2, r3, cv);
   3411    TESTINST3("sbcs.w r1, r2, r3, lsl #15", 0,          0x80000000, r1, r2, r3, cv);
   3412    TESTINST3("sbcs.w r1, r2, r3, lsl #31", 0,          0x80000000, r1, r2, r3, cv);
   3413    TESTINST3("sbcs.w r1, r2, r3, lsr #0 ", 0,          0x80000000, r1, r2, r3, cv);
   3414    TESTINST3("sbcs.w r1, r2, r3, lsr #1 ", 0,          0x80000000, r1, r2, r3, cv);
   3415    TESTINST3("sbcs.w r1, r2, r3, lsr #15", 0,          0x80000000, r1, r2, r3, cv);
   3416    TESTINST3("sbcs.w r1, r2, r3, lsr #31", 0,          0x80000000, r1, r2, r3, cv);
   3417    TESTINST3("sbcs.w r1, r2, r3, asr #0 ", 0,          0x80000000, r1, r2, r3, cv);
   3418    TESTINST3("sbcs.w r1, r2, r3, asr #1 ", 0,          0x80000000, r1, r2, r3, cv);
   3419    TESTINST3("sbcs.w r1, r2, r3, asr #15", 0,          0x80000000, r1, r2, r3, cv);
   3420    TESTINST3("sbcs.w r1, r2, r3, asr #31", 0,          0x80000000, r1, r2, r3, cv);
   3421    TESTINST3("sbc.w  r1, r2, r3, lsl #0 ", 0,          0x80000000, r1, r2, r3, cv);
   3422    TESTINST3("sbc.w  r1, r2, r3, lsl #1 ", 0,          0x80000000, r1, r2, r3, cv);
   3423    TESTINST3("sbc.w  r1, r2, r3, lsl #15", 0,          0x80000000, r1, r2, r3, cv);
   3424    TESTINST3("sbc.w  r1, r2, r3, lsl #31", 0,          0x80000000, r1, r2, r3, cv);
   3425    TESTINST3("sbc.w  r1, r2, r3, lsr #0 ", 0,          0x80000000, r1, r2, r3, cv);
   3426    TESTINST3("sbc.w  r1, r2, r3, lsr #1 ", 0,          0x80000000, r1, r2, r3, cv);
   3427    TESTINST3("sbc.w  r1, r2, r3, lsr #15", 0,          0x80000000, r1, r2, r3, cv);
   3428    TESTINST3("sbc.w  r1, r2, r3, lsr #31", 0,          0x80000000, r1, r2, r3, cv);
   3429    TESTINST3("sbc.w  r1, r2, r3, asr #0 ", 0,          0x80000000, r1, r2, r3, cv);
   3430    TESTINST3("sbc.w  r1, r2, r3, asr #1 ", 0,          0x80000000, r1, r2, r3, cv);
   3431    TESTINST3("sbc.w  r1, r2, r3, asr #15", 0,          0x80000000, r1, r2, r3, cv);
   3432    TESTINST3("sbc.w  r1, r2, r3, asr #31", 0,          0x80000000, r1, r2, r3, cv);
   3433    TESTINST3("sbcs.w r1, r2, r3, lsl #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   3434    TESTINST3("sbcs.w r1, r2, r3, lsl #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   3435    TESTINST3("sbcs.w r1, r2, r3, lsl #15", 0x80000000, 0,          r1, r2, r3, cv);
   3436    TESTINST3("sbcs.w r1, r2, r3, lsl #31", 0x80000000, 0,          r1, r2, r3, cv);
   3437    TESTINST3("sbcs.w r1, r2, r3, lsr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   3438    TESTINST3("sbcs.w r1, r2, r3, lsr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   3439    TESTINST3("sbcs.w r1, r2, r3, lsr #15", 0x80000000, 0,          r1, r2, r3, cv);
   3440    TESTINST3("sbcs.w r1, r2, r3, lsr #31", 0x80000000, 0,          r1, r2, r3, cv);
   3441    TESTINST3("sbcs.w r1, r2, r3, asr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   3442    TESTINST3("sbcs.w r1, r2, r3, asr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   3443    TESTINST3("sbcs.w r1, r2, r3, asr #15", 0x80000000, 0,          r1, r2, r3, cv);
   3444    TESTINST3("sbcs.w r1, r2, r3, asr #31", 0x80000000, 0,          r1, r2, r3, cv);
   3445    TESTINST3("sbc.w  r1, r2, r3, lsl #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   3446    TESTINST3("sbc.w  r1, r2, r3, lsl #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   3447    TESTINST3("sbc.w  r1, r2, r3, lsl #15", 0x80000000, 0,          r1, r2, r3, cv);
   3448    TESTINST3("sbc.w  r1, r2, r3, lsl #31", 0x80000000, 0,          r1, r2, r3, cv);
   3449    TESTINST3("sbc.w  r1, r2, r3, lsr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   3450    TESTINST3("sbc.w  r1, r2, r3, lsr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   3451    TESTINST3("sbc.w  r1, r2, r3, lsr #15", 0x80000000, 0,          r1, r2, r3, cv);
   3452    TESTINST3("sbc.w  r1, r2, r3, lsr #31", 0x80000000, 0,          r1, r2, r3, cv);
   3453    TESTINST3("sbc.w  r1, r2, r3, asr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   3454    TESTINST3("sbc.w  r1, r2, r3, asr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   3455    TESTINST3("sbc.w  r1, r2, r3, asr #15", 0x80000000, 0,          r1, r2, r3, cv);
   3456    TESTINST3("sbc.w  r1, r2, r3, asr #31", 0x80000000, 0,          r1, r2, r3, cv);
   3457    TESTINST3("sbcs.w r1, r2, r3, lsl #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3458    TESTINST3("sbcs.w r1, r2, r3, lsl #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3459    TESTINST3("sbcs.w r1, r2, r3, lsl #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3460    TESTINST3("sbcs.w r1, r2, r3, lsl #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3461    TESTINST3("sbcs.w r1, r2, r3, lsr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3462    TESTINST3("sbcs.w r1, r2, r3, lsr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3463    TESTINST3("sbcs.w r1, r2, r3, lsr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3464    TESTINST3("sbcs.w r1, r2, r3, lsr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3465    TESTINST3("sbcs.w r1, r2, r3, asr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3466    TESTINST3("sbcs.w r1, r2, r3, asr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3467    TESTINST3("sbcs.w r1, r2, r3, asr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3468    TESTINST3("sbcs.w r1, r2, r3, asr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3469    TESTINST3("sbc.w  r1, r2, r3, lsl #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3470    TESTINST3("sbc.w  r1, r2, r3, lsl #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3471    TESTINST3("sbc.w  r1, r2, r3, lsl #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3472    TESTINST3("sbc.w  r1, r2, r3, lsl #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3473    TESTINST3("sbc.w  r1, r2, r3, lsr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3474    TESTINST3("sbc.w  r1, r2, r3, lsr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3475    TESTINST3("sbc.w  r1, r2, r3, lsr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3476    TESTINST3("sbc.w  r1, r2, r3, lsr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3477    TESTINST3("sbc.w  r1, r2, r3, asr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3478    TESTINST3("sbc.w  r1, r2, r3, asr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3479    TESTINST3("sbc.w  r1, r2, r3, asr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3480    TESTINST3("sbc.w  r1, r2, r3, asr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3481    TESTINST3("sbcs.w r1, r2, r3, lsl #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3482    TESTINST3("sbcs.w r1, r2, r3, lsl #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3483    TESTINST3("sbcs.w r1, r2, r3, lsl #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3484    TESTINST3("sbcs.w r1, r2, r3, lsl #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3485    TESTINST3("sbcs.w r1, r2, r3, lsr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3486    TESTINST3("sbcs.w r1, r2, r3, lsr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3487    TESTINST3("sbcs.w r1, r2, r3, lsr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3488    TESTINST3("sbcs.w r1, r2, r3, lsr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3489    TESTINST3("sbcs.w r1, r2, r3, asr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3490    TESTINST3("sbcs.w r1, r2, r3, asr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3491    TESTINST3("sbcs.w r1, r2, r3, asr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3492    TESTINST3("sbcs.w r1, r2, r3, asr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3493    TESTINST3("sbc.w  r1, r2, r3, lsl #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3494    TESTINST3("sbc.w  r1, r2, r3, lsl #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3495    TESTINST3("sbc.w  r1, r2, r3, lsl #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3496    TESTINST3("sbc.w  r1, r2, r3, lsl #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3497    TESTINST3("sbc.w  r1, r2, r3, lsr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3498    TESTINST3("sbc.w  r1, r2, r3, lsr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3499    TESTINST3("sbc.w  r1, r2, r3, lsr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3500    TESTINST3("sbc.w  r1, r2, r3, lsr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3501    TESTINST3("sbc.w  r1, r2, r3, asr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3502    TESTINST3("sbc.w  r1, r2, r3, asr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3503    TESTINST3("sbc.w  r1, r2, r3, asr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3504    TESTINST3("sbc.w  r1, r2, r3, asr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3505    TESTINST3("sbcs.w r1, r2, r3, lsl #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3506    TESTINST3("sbcs.w r1, r2, r3, lsl #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3507    TESTINST3("sbcs.w r1, r2, r3, lsl #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3508    TESTINST3("sbcs.w r1, r2, r3, lsl #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3509    TESTINST3("sbcs.w r1, r2, r3, lsr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3510    TESTINST3("sbcs.w r1, r2, r3, lsr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3511    TESTINST3("sbcs.w r1, r2, r3, lsr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3512    TESTINST3("sbcs.w r1, r2, r3, lsr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3513    TESTINST3("sbcs.w r1, r2, r3, asr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3514    TESTINST3("sbcs.w r1, r2, r3, asr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3515    TESTINST3("sbcs.w r1, r2, r3, asr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3516    TESTINST3("sbcs.w r1, r2, r3, asr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3517    TESTINST3("sbc.w  r1, r2, r3, lsl #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3518    TESTINST3("sbc.w  r1, r2, r3, lsl #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3519    TESTINST3("sbc.w  r1, r2, r3, lsl #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3520    TESTINST3("sbc.w  r1, r2, r3, lsl #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3521    TESTINST3("sbc.w  r1, r2, r3, lsr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3522    TESTINST3("sbc.w  r1, r2, r3, lsr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3523    TESTINST3("sbc.w  r1, r2, r3, lsr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3524    TESTINST3("sbc.w  r1, r2, r3, lsr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3525    TESTINST3("sbc.w  r1, r2, r3, asr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3526    TESTINST3("sbc.w  r1, r2, r3, asr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3527    TESTINST3("sbc.w  r1, r2, r3, asr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3528    TESTINST3("sbc.w  r1, r2, r3, asr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3529    TESTINST3("sbcs.w r1, r2, r3, lsl #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3530    TESTINST3("sbcs.w r1, r2, r3, lsl #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3531    TESTINST3("sbcs.w r1, r2, r3, lsl #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3532    TESTINST3("sbcs.w r1, r2, r3, lsl #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3533    TESTINST3("sbcs.w r1, r2, r3, lsr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3534    TESTINST3("sbcs.w r1, r2, r3, lsr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3535    TESTINST3("sbcs.w r1, r2, r3, lsr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3536    TESTINST3("sbcs.w r1, r2, r3, lsr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3537    TESTINST3("sbcs.w r1, r2, r3, asr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3538    TESTINST3("sbcs.w r1, r2, r3, asr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3539    TESTINST3("sbcs.w r1, r2, r3, asr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3540    TESTINST3("sbcs.w r1, r2, r3, asr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3541    TESTINST3("sbc.w  r1, r2, r3, lsl #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3542    TESTINST3("sbc.w  r1, r2, r3, lsl #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3543    TESTINST3("sbc.w  r1, r2, r3, lsl #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3544    TESTINST3("sbc.w  r1, r2, r3, lsl #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3545    TESTINST3("sbc.w  r1, r2, r3, lsr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3546    TESTINST3("sbc.w  r1, r2, r3, lsr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3547    TESTINST3("sbc.w  r1, r2, r3, lsr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3548    TESTINST3("sbc.w  r1, r2, r3, lsr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3549    TESTINST3("sbc.w  r1, r2, r3, asr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3550    TESTINST3("sbc.w  r1, r2, r3, asr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3551    TESTINST3("sbc.w  r1, r2, r3, asr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3552    TESTINST3("sbc.w  r1, r2, r3, asr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3553    TESTCARRYEND
   3554 
   3555 #if 0
   3556    printf("XXX{S}.W Rd, Rn, Rm, {shift}\n");
   3557    TESTCARRY
   3558    TESTINST3("xxxs.w r1, r2, r3, lsl #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3559    TESTINST3("xxxs.w r1, r2, r3, lsl #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3560    TESTINST3("xxxs.w r1, r2, r3, lsl #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3561    TESTINST3("xxxs.w r1, r2, r3, lsl #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3562    TESTINST3("xxxs.w r1, r2, r3, lsr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3563    TESTINST3("xxxs.w r1, r2, r3, lsr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3564    TESTINST3("xxxs.w r1, r2, r3, lsr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3565    TESTINST3("xxxs.w r1, r2, r3, lsr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3566    TESTINST3("xxxs.w r1, r2, r3, asr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3567    TESTINST3("xxxs.w r1, r2, r3, asr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3568    TESTINST3("xxxs.w r1, r2, r3, asr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3569    TESTINST3("xxxs.w r1, r2, r3, asr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3570    TESTINST3("xxx.w  r1, r2, r3, lsl #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3571    TESTINST3("xxx.w  r1, r2, r3, lsl #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3572    TESTINST3("xxx.w  r1, r2, r3, lsl #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3573    TESTINST3("xxx.w  r1, r2, r3, lsl #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3574    TESTINST3("xxx.w  r1, r2, r3, lsr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3575    TESTINST3("xxx.w  r1, r2, r3, lsr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3576    TESTINST3("xxx.w  r1, r2, r3, lsr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3577    TESTINST3("xxx.w  r1, r2, r3, lsr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3578    TESTINST3("xxx.w  r1, r2, r3, asr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3579    TESTINST3("xxx.w  r1, r2, r3, asr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3580    TESTINST3("xxx.w  r1, r2, r3, asr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3581    TESTINST3("xxx.w  r1, r2, r3, asr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3582    TESTINST3("xxxs.w r1, r2, r3, lsl #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3583    TESTINST3("xxxs.w r1, r2, r3, lsl #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3584    TESTINST3("xxxs.w r1, r2, r3, lsl #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3585    TESTINST3("xxxs.w r1, r2, r3, lsl #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3586    TESTINST3("xxxs.w r1, r2, r3, lsr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3587    TESTINST3("xxxs.w r1, r2, r3, lsr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3588    TESTINST3("xxxs.w r1, r2, r3, lsr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3589    TESTINST3("xxxs.w r1, r2, r3, lsr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3590    TESTINST3("xxxs.w r1, r2, r3, asr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3591    TESTINST3("xxxs.w r1, r2, r3, asr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3592    TESTINST3("xxxs.w r1, r2, r3, asr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3593    TESTINST3("xxxs.w r1, r2, r3, asr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3594    TESTINST3("xxx.w  r1, r2, r3, lsl #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3595    TESTINST3("xxx.w  r1, r2, r3, lsl #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3596    TESTINST3("xxx.w  r1, r2, r3, lsl #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3597    TESTINST3("xxx.w  r1, r2, r3, lsl #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3598    TESTINST3("xxx.w  r1, r2, r3, lsr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3599    TESTINST3("xxx.w  r1, r2, r3, lsr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3600    TESTINST3("xxx.w  r1, r2, r3, lsr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3601    TESTINST3("xxx.w  r1, r2, r3, lsr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3602    TESTINST3("xxx.w  r1, r2, r3, asr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3603    TESTINST3("xxx.w  r1, r2, r3, asr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3604    TESTINST3("xxx.w  r1, r2, r3, asr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3605    TESTINST3("xxx.w  r1, r2, r3, asr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3606    TESTINST3("xxxs.w r1, r2, r3, lsl #0 ", 0,          0,          r1, r2, r3, cv);
   3607    TESTINST3("xxxs.w r1, r2, r3, lsl #1 ", 0,          0,          r1, r2, r3, cv);
   3608    TESTINST3("xxxs.w r1, r2, r3, lsl #15", 0,          0,          r1, r2, r3, cv);
   3609    TESTINST3("xxxs.w r1, r2, r3, lsl #31", 0,          0,          r1, r2, r3, cv);
   3610    TESTINST3("xxxs.w r1, r2, r3, lsr #0 ", 0,          0,          r1, r2, r3, cv);
   3611    TESTINST3("xxxs.w r1, r2, r3, lsr #1 ", 0,          0,          r1, r2, r3, cv);
   3612    TESTINST3("xxxs.w r1, r2, r3, lsr #15", 0,          0,          r1, r2, r3, cv);
   3613    TESTINST3("xxxs.w r1, r2, r3, lsr #31", 0,          0,          r1, r2, r3, cv);
   3614    TESTINST3("xxxs.w r1, r2, r3, asr #0 ", 0,          0,          r1, r2, r3, cv);
   3615    TESTINST3("xxxs.w r1, r2, r3, asr #1 ", 0,          0,          r1, r2, r3, cv);
   3616    TESTINST3("xxxs.w r1, r2, r3, asr #15", 0,          0,          r1, r2, r3, cv);
   3617    TESTINST3("xxxs.w r1, r2, r3, asr #31", 0,          0,          r1, r2, r3, cv);
   3618    TESTINST3("xxx.w  r1, r2, r3, lsl #0 ", 0,          0,          r1, r2, r3, cv);
   3619    TESTINST3("xxx.w  r1, r2, r3, lsl #1 ", 0,          0,          r1, r2, r3, cv);
   3620    TESTINST3("xxx.w  r1, r2, r3, lsl #15", 0,          0,          r1, r2, r3, cv);
   3621    TESTINST3("xxx.w  r1, r2, r3, lsl #31", 0,          0,          r1, r2, r3, cv);
   3622    TESTINST3("xxx.w  r1, r2, r3, lsr #0 ", 0,          0,          r1, r2, r3, cv);
   3623    TESTINST3("xxx.w  r1, r2, r3, lsr #1 ", 0,          0,          r1, r2, r3, cv);
   3624    TESTINST3("xxx.w  r1, r2, r3, lsr #15", 0,          0,          r1, r2, r3, cv);
   3625    TESTINST3("xxx.w  r1, r2, r3, lsr #31", 0,          0,          r1, r2, r3, cv);
   3626    TESTINST3("xxx.w  r1, r2, r3, asr #0 ", 0,          0,          r1, r2, r3, cv);
   3627    TESTINST3("xxx.w  r1, r2, r3, asr #1 ", 0,          0,          r1, r2, r3, cv);
   3628    TESTINST3("xxx.w  r1, r2, r3, asr #15", 0,          0,          r1, r2, r3, cv);
   3629    TESTINST3("xxx.w  r1, r2, r3, asr #31", 0,          0,          r1, r2, r3, cv);
   3630    TESTINST3("xxxs.w r1, r2, r3, lsl #0 ", 1,          0,          r1, r2, r3, cv);
   3631    TESTINST3("xxxs.w r1, r2, r3, lsl #1 ", 1,          0,          r1, r2, r3, cv);
   3632    TESTINST3("xxxs.w r1, r2, r3, lsl #15", 1,          0,          r1, r2, r3, cv);
   3633    TESTINST3("xxxs.w r1, r2, r3, lsl #31", 1,          0,          r1, r2, r3, cv);
   3634    TESTINST3("xxxs.w r1, r2, r3, lsr #0 ", 1,          0,          r1, r2, r3, cv);
   3635    TESTINST3("xxxs.w r1, r2, r3, lsr #1 ", 1,          0,          r1, r2, r3, cv);
   3636    TESTINST3("xxxs.w r1, r2, r3, lsr #15", 1,          0,          r1, r2, r3, cv);
   3637    TESTINST3("xxxs.w r1, r2, r3, lsr #31", 1,          0,          r1, r2, r3, cv);
   3638    TESTINST3("xxxs.w r1, r2, r3, asr #0 ", 1,          0,          r1, r2, r3, cv);
   3639    TESTINST3("xxxs.w r1, r2, r3, asr #1 ", 1,          0,          r1, r2, r3, cv);
   3640    TESTINST3("xxxs.w r1, r2, r3, asr #15", 1,          0,          r1, r2, r3, cv);
   3641    TESTINST3("xxxs.w r1, r2, r3, asr #31", 1,          0,          r1, r2, r3, cv);
   3642    TESTINST3("xxx.w  r1, r2, r3, lsl #0 ", 1,          0,          r1, r2, r3, cv);
   3643    TESTINST3("xxx.w  r1, r2, r3, lsl #1 ", 1,          0,          r1, r2, r3, cv);
   3644    TESTINST3("xxx.w  r1, r2, r3, lsl #15", 1,          0,          r1, r2, r3, cv);
   3645    TESTINST3("xxx.w  r1, r2, r3, lsl #31", 1,          0,          r1, r2, r3, cv);
   3646    TESTINST3("xxx.w  r1, r2, r3, lsr #0 ", 1,          0,          r1, r2, r3, cv);
   3647    TESTINST3("xxx.w  r1, r2, r3, lsr #1 ", 1,          0,          r1, r2, r3, cv);
   3648    TESTINST3("xxx.w  r1, r2, r3, lsr #15", 1,          0,          r1, r2, r3, cv);
   3649    TESTINST3("xxx.w  r1, r2, r3, lsr #31", 1,          0,          r1, r2, r3, cv);
   3650    TESTINST3("xxx.w  r1, r2, r3, asr #0 ", 1,          0,          r1, r2, r3, cv);
   3651    TESTINST3("xxx.w  r1, r2, r3, asr #1 ", 1,          0,          r1, r2, r3, cv);
   3652    TESTINST3("xxx.w  r1, r2, r3, asr #15", 1,          0,          r1, r2, r3, cv);
   3653    TESTINST3("xxx.w  r1, r2, r3, asr #31", 1,          0,          r1, r2, r3, cv);
   3654    TESTINST3("xxxs.w r1, r2, r3, lsl #0 ", 0,          1,          r1, r2, r3, cv);
   3655    TESTINST3("xxxs.w r1, r2, r3, lsl #1 ", 0,          1,          r1, r2, r3, cv);
   3656    TESTINST3("xxxs.w r1, r2, r3, lsl #15", 0,          1,          r1, r2, r3, cv);
   3657    TESTINST3("xxxs.w r1, r2, r3, lsl #31", 0,          1,          r1, r2, r3, cv);
   3658    TESTINST3("xxxs.w r1, r2, r3, lsr #0 ", 0,          1,          r1, r2, r3, cv);
   3659    TESTINST3("xxxs.w r1, r2, r3, lsr #1 ", 0,          1,          r1, r2, r3, cv);
   3660    TESTINST3("xxxs.w r1, r2, r3, lsr #15", 0,          1,          r1, r2, r3, cv);
   3661    TESTINST3("xxxs.w r1, r2, r3, lsr #31", 0,          1,          r1, r2, r3, cv);
   3662    TESTINST3("xxxs.w r1, r2, r3, asr #0 ", 0,          1,          r1, r2, r3, cv);
   3663    TESTINST3("xxxs.w r1, r2, r3, asr #1 ", 0,          1,          r1, r2, r3, cv);
   3664    TESTINST3("xxxs.w r1, r2, r3, asr #15", 0,          1,          r1, r2, r3, cv);
   3665    TESTINST3("xxxs.w r1, r2, r3, asr #31", 0,          1,          r1, r2, r3, cv);
   3666    TESTINST3("xxx.w  r1, r2, r3, lsl #0 ", 0,          1,          r1, r2, r3, cv);
   3667    TESTINST3("xxx.w  r1, r2, r3, lsl #1 ", 0,          1,          r1, r2, r3, cv);
   3668    TESTINST3("xxx.w  r1, r2, r3, lsl #15", 0,          1,          r1, r2, r3, cv);
   3669    TESTINST3("xxx.w  r1, r2, r3, lsl #31", 0,          1,          r1, r2, r3, cv);
   3670    TESTINST3("xxx.w  r1, r2, r3, lsr #0 ", 0,          1,          r1, r2, r3, cv);
   3671    TESTINST3("xxx.w  r1, r2, r3, lsr #1 ", 0,          1,          r1, r2, r3, cv);
   3672    TESTINST3("xxx.w  r1, r2, r3, lsr #15", 0,          1,          r1, r2, r3, cv);
   3673    TESTINST3("xxx.w  r1, r2, r3, lsr #31", 0,          1,          r1, r2, r3, cv);
   3674    TESTINST3("xxx.w  r1, r2, r3, asr #0 ", 0,          1,          r1, r2, r3, cv);
   3675    TESTINST3("xxx.w  r1, r2, r3, asr #1 ", 0,          1,          r1, r2, r3, cv);
   3676    TESTINST3("xxx.w  r1, r2, r3, asr #15", 0,          1,          r1, r2, r3, cv);
   3677    TESTINST3("xxx.w  r1, r2, r3, asr #31", 0,          1,          r1, r2, r3, cv);
   3678    TESTINST3("xxxs.w r1, r2, r3, lsl #0 ", -1,         0,          r1, r2, r3, cv);
   3679    TESTINST3("xxxs.w r1, r2, r3, lsl #1 ", -1,         0,          r1, r2, r3, cv);
   3680    TESTINST3("xxxs.w r1, r2, r3, lsl #15", -1,         0,          r1, r2, r3, cv);
   3681    TESTINST3("xxxs.w r1, r2, r3, lsl #31", -1,         0,          r1, r2, r3, cv);
   3682    TESTINST3("xxxs.w r1, r2, r3, lsr #0 ", -1,         0,          r1, r2, r3, cv);
   3683    TESTINST3("xxxs.w r1, r2, r3, lsr #1 ", -1,         0,          r1, r2, r3, cv);
   3684    TESTINST3("xxxs.w r1, r2, r3, lsr #15", -1,         0,          r1, r2, r3, cv);
   3685    TESTINST3("xxxs.w r1, r2, r3, lsr #31", -1,         0,          r1, r2, r3, cv);
   3686    TESTINST3("xxxs.w r1, r2, r3, asr #0 ", -1,         0,          r1, r2, r3, cv);
   3687    TESTINST3("xxxs.w r1, r2, r3, asr #1 ", -1,         0,          r1, r2, r3, cv);
   3688    TESTINST3("xxxs.w r1, r2, r3, asr #15", -1,         0,          r1, r2, r3, cv);
   3689    TESTINST3("xxxs.w r1, r2, r3, asr #31", -1,         0,          r1, r2, r3, cv);
   3690    TESTINST3("xxx.w  r1, r2, r3, lsl #0 ", -1,         0,          r1, r2, r3, cv);
   3691    TESTINST3("xxx.w  r1, r2, r3, lsl #1 ", -1,         0,          r1, r2, r3, cv);
   3692    TESTINST3("xxx.w  r1, r2, r3, lsl #15", -1,         0,          r1, r2, r3, cv);
   3693    TESTINST3("xxx.w  r1, r2, r3, lsl #31", -1,         0,          r1, r2, r3, cv);
   3694    TESTINST3("xxx.w  r1, r2, r3, lsr #0 ", -1,         0,          r1, r2, r3, cv);
   3695    TESTINST3("xxx.w  r1, r2, r3, lsr #1 ", -1,         0,          r1, r2, r3, cv);
   3696    TESTINST3("xxx.w  r1, r2, r3, lsr #15", -1,         0,          r1, r2, r3, cv);
   3697    TESTINST3("xxx.w  r1, r2, r3, lsr #31", -1,         0,          r1, r2, r3, cv);
   3698    TESTINST3("xxx.w  r1, r2, r3, asr #0 ", -1,         0,          r1, r2, r3, cv);
   3699    TESTINST3("xxx.w  r1, r2, r3, asr #1 ", -1,         0,          r1, r2, r3, cv);
   3700    TESTINST3("xxx.w  r1, r2, r3, asr #15", -1,         0,          r1, r2, r3, cv);
   3701    TESTINST3("xxx.w  r1, r2, r3, asr #31", -1,         0,          r1, r2, r3, cv);
   3702    TESTINST3("xxxs.w r1, r2, r3, lsl #0 ", 0,          -1,         r1, r2, r3, cv);
   3703    TESTINST3("xxxs.w r1, r2, r3, lsl #1 ", 0,          -1,         r1, r2, r3, cv);
   3704    TESTINST3("xxxs.w r1, r2, r3, lsl #15", 0,          -1,         r1, r2, r3, cv);
   3705    TESTINST3("xxxs.w r1, r2, r3, lsl #31", 0,          -1,         r1, r2, r3, cv);
   3706    TESTINST3("xxxs.w r1, r2, r3, lsr #0 ", 0,          -1,         r1, r2, r3, cv);
   3707    TESTINST3("xxxs.w r1, r2, r3, lsr #1 ", 0,          -1,         r1, r2, r3, cv);
   3708    TESTINST3("xxxs.w r1, r2, r3, lsr #15", 0,          -1,         r1, r2, r3, cv);
   3709    TESTINST3("xxxs.w r1, r2, r3, lsr #31", 0,          -1,         r1, r2, r3, cv);
   3710    TESTINST3("xxxs.w r1, r2, r3, asr #0 ", 0,          -1,         r1, r2, r3, cv);
   3711    TESTINST3("xxxs.w r1, r2, r3, asr #1 ", 0,          -1,         r1, r2, r3, cv);
   3712    TESTINST3("xxxs.w r1, r2, r3, asr #15", 0,          -1,         r1, r2, r3, cv);
   3713    TESTINST3("xxxs.w r1, r2, r3, asr #31", 0,          -1,         r1, r2, r3, cv);
   3714    TESTINST3("xxx.w  r1, r2, r3, lsl #0 ", 0,          -1,         r1, r2, r3, cv);
   3715    TESTINST3("xxx.w  r1, r2, r3, lsl #1 ", 0,          -1,         r1, r2, r3, cv);
   3716    TESTINST3("xxx.w  r1, r2, r3, lsl #15", 0,          -1,         r1, r2, r3, cv);
   3717    TESTINST3("xxx.w  r1, r2, r3, lsl #31", 0,          -1,         r1, r2, r3, cv);
   3718    TESTINST3("xxx.w  r1, r2, r3, lsr #0 ", 0,          -1,         r1, r2, r3, cv);
   3719    TESTINST3("xxx.w  r1, r2, r3, lsr #1 ", 0,          -1,         r1, r2, r3, cv);
   3720    TESTINST3("xxx.w  r1, r2, r3, lsr #15", 0,          -1,         r1, r2, r3, cv);
   3721    TESTINST3("xxx.w  r1, r2, r3, lsr #31", 0,          -1,         r1, r2, r3, cv);
   3722    TESTINST3("xxx.w  r1, r2, r3, asr #0 ", 0,          -1,         r1, r2, r3, cv);
   3723    TESTINST3("xxx.w  r1, r2, r3, asr #1 ", 0,          -1,         r1, r2, r3, cv);
   3724    TESTINST3("xxx.w  r1, r2, r3, asr #15", 0,          -1,         r1, r2, r3, cv);
   3725    TESTINST3("xxx.w  r1, r2, r3, asr #31", 0,          -1,         r1, r2, r3, cv);
   3726    TESTINST3("xxxs.w r1, r2, r3, lsl #0 ", 0,          0x80000000, r1, r2, r3, cv);
   3727    TESTINST3("xxxs.w r1, r2, r3, lsl #1 ", 0,          0x80000000, r1, r2, r3, cv);
   3728    TESTINST3("xxxs.w r1, r2, r3, lsl #15", 0,          0x80000000, r1, r2, r3, cv);
   3729    TESTINST3("xxxs.w r1, r2, r3, lsl #31", 0,          0x80000000, r1, r2, r3, cv);
   3730    TESTINST3("xxxs.w r1, r2, r3, lsr #0 ", 0,          0x80000000, r1, r2, r3, cv);
   3731    TESTINST3("xxxs.w r1, r2, r3, lsr #1 ", 0,          0x80000000, r1, r2, r3, cv);
   3732    TESTINST3("xxxs.w r1, r2, r3, lsr #15", 0,          0x80000000, r1, r2, r3, cv);
   3733    TESTINST3("xxxs.w r1, r2, r3, lsr #31", 0,          0x80000000, r1, r2, r3, cv);
   3734    TESTINST3("xxxs.w r1, r2, r3, asr #0 ", 0,          0x80000000, r1, r2, r3, cv);
   3735    TESTINST3("xxxs.w r1, r2, r3, asr #1 ", 0,          0x80000000, r1, r2, r3, cv);
   3736    TESTINST3("xxxs.w r1, r2, r3, asr #15", 0,          0x80000000, r1, r2, r3, cv);
   3737    TESTINST3("xxxs.w r1, r2, r3, asr #31", 0,          0x80000000, r1, r2, r3, cv);
   3738    TESTINST3("xxx.w  r1, r2, r3, lsl #0 ", 0,          0x80000000, r1, r2, r3, cv);
   3739    TESTINST3("xxx.w  r1, r2, r3, lsl #1 ", 0,          0x80000000, r1, r2, r3, cv);
   3740    TESTINST3("xxx.w  r1, r2, r3, lsl #15", 0,          0x80000000, r1, r2, r3, cv);
   3741    TESTINST3("xxx.w  r1, r2, r3, lsl #31", 0,          0x80000000, r1, r2, r3, cv);
   3742    TESTINST3("xxx.w  r1, r2, r3, lsr #0 ", 0,          0x80000000, r1, r2, r3, cv);
   3743    TESTINST3("xxx.w  r1, r2, r3, lsr #1 ", 0,          0x80000000, r1, r2, r3, cv);
   3744    TESTINST3("xxx.w  r1, r2, r3, lsr #15", 0,          0x80000000, r1, r2, r3, cv);
   3745    TESTINST3("xxx.w  r1, r2, r3, lsr #31", 0,          0x80000000, r1, r2, r3, cv);
   3746    TESTINST3("xxx.w  r1, r2, r3, asr #0 ", 0,          0x80000000, r1, r2, r3, cv);
   3747    TESTINST3("xxx.w  r1, r2, r3, asr #1 ", 0,          0x80000000, r1, r2, r3, cv);
   3748    TESTINST3("xxx.w  r1, r2, r3, asr #15", 0,          0x80000000, r1, r2, r3, cv);
   3749    TESTINST3("xxx.w  r1, r2, r3, asr #31", 0,          0x80000000, r1, r2, r3, cv);
   3750    TESTINST3("xxxs.w r1, r2, r3, lsl #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   3751    TESTINST3("xxxs.w r1, r2, r3, lsl #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   3752    TESTINST3("xxxs.w r1, r2, r3, lsl #15", 0x80000000, 0,          r1, r2, r3, cv);
   3753    TESTINST3("xxxs.w r1, r2, r3, lsl #31", 0x80000000, 0,          r1, r2, r3, cv);
   3754    TESTINST3("xxxs.w r1, r2, r3, lsr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   3755    TESTINST3("xxxs.w r1, r2, r3, lsr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   3756    TESTINST3("xxxs.w r1, r2, r3, lsr #15", 0x80000000, 0,          r1, r2, r3, cv);
   3757    TESTINST3("xxxs.w r1, r2, r3, lsr #31", 0x80000000, 0,          r1, r2, r3, cv);
   3758    TESTINST3("xxxs.w r1, r2, r3, asr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   3759    TESTINST3("xxxs.w r1, r2, r3, asr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   3760    TESTINST3("xxxs.w r1, r2, r3, asr #15", 0x80000000, 0,          r1, r2, r3, cv);
   3761    TESTINST3("xxxs.w r1, r2, r3, asr #31", 0x80000000, 0,          r1, r2, r3, cv);
   3762    TESTINST3("xxx.w  r1, r2, r3, lsl #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   3763    TESTINST3("xxx.w  r1, r2, r3, lsl #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   3764    TESTINST3("xxx.w  r1, r2, r3, lsl #15", 0x80000000, 0,          r1, r2, r3, cv);
   3765    TESTINST3("xxx.w  r1, r2, r3, lsl #31", 0x80000000, 0,          r1, r2, r3, cv);
   3766    TESTINST3("xxx.w  r1, r2, r3, lsr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   3767    TESTINST3("xxx.w  r1, r2, r3, lsr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   3768    TESTINST3("xxx.w  r1, r2, r3, lsr #15", 0x80000000, 0,          r1, r2, r3, cv);
   3769    TESTINST3("xxx.w  r1, r2, r3, lsr #31", 0x80000000, 0,          r1, r2, r3, cv);
   3770    TESTINST3("xxx.w  r1, r2, r3, asr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   3771    TESTINST3("xxx.w  r1, r2, r3, asr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   3772    TESTINST3("xxx.w  r1, r2, r3, asr #15", 0x80000000, 0,          r1, r2, r3, cv);
   3773    TESTINST3("xxx.w  r1, r2, r3, asr #31", 0x80000000, 0,          r1, r2, r3, cv);
   3774    TESTINST3("xxxs.w r1, r2, r3, lsl #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3775    TESTINST3("xxxs.w r1, r2, r3, lsl #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3776    TESTINST3("xxxs.w r1, r2, r3, lsl #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3777    TESTINST3("xxxs.w r1, r2, r3, lsl #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3778    TESTINST3("xxxs.w r1, r2, r3, lsr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3779    TESTINST3("xxxs.w r1, r2, r3, lsr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3780    TESTINST3("xxxs.w r1, r2, r3, lsr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3781    TESTINST3("xxxs.w r1, r2, r3, lsr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3782    TESTINST3("xxxs.w r1, r2, r3, asr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3783    TESTINST3("xxxs.w r1, r2, r3, asr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3784    TESTINST3("xxxs.w r1, r2, r3, asr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3785    TESTINST3("xxxs.w r1, r2, r3, asr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3786    TESTINST3("xxx.w  r1, r2, r3, lsl #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3787    TESTINST3("xxx.w  r1, r2, r3, lsl #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3788    TESTINST3("xxx.w  r1, r2, r3, lsl #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3789    TESTINST3("xxx.w  r1, r2, r3, lsl #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3790    TESTINST3("xxx.w  r1, r2, r3, lsr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3791    TESTINST3("xxx.w  r1, r2, r3, lsr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3792    TESTINST3("xxx.w  r1, r2, r3, lsr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3793    TESTINST3("xxx.w  r1, r2, r3, lsr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3794    TESTINST3("xxx.w  r1, r2, r3, asr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3795    TESTINST3("xxx.w  r1, r2, r3, asr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3796    TESTINST3("xxx.w  r1, r2, r3, asr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3797    TESTINST3("xxx.w  r1, r2, r3, asr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   3798    TESTINST3("xxxs.w r1, r2, r3, lsl #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3799    TESTINST3("xxxs.w r1, r2, r3, lsl #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3800    TESTINST3("xxxs.w r1, r2, r3, lsl #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3801    TESTINST3("xxxs.w r1, r2, r3, lsl #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3802    TESTINST3("xxxs.w r1, r2, r3, lsr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3803    TESTINST3("xxxs.w r1, r2, r3, lsr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3804    TESTINST3("xxxs.w r1, r2, r3, lsr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3805    TESTINST3("xxxs.w r1, r2, r3, lsr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3806    TESTINST3("xxxs.w r1, r2, r3, asr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3807    TESTINST3("xxxs.w r1, r2, r3, asr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3808    TESTINST3("xxxs.w r1, r2, r3, asr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3809    TESTINST3("xxxs.w r1, r2, r3, asr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3810    TESTINST3("xxx.w  r1, r2, r3, lsl #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3811    TESTINST3("xxx.w  r1, r2, r3, lsl #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3812    TESTINST3("xxx.w  r1, r2, r3, lsl #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3813    TESTINST3("xxx.w  r1, r2, r3, lsl #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3814    TESTINST3("xxx.w  r1, r2, r3, lsr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3815    TESTINST3("xxx.w  r1, r2, r3, lsr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3816    TESTINST3("xxx.w  r1, r2, r3, lsr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3817    TESTINST3("xxx.w  r1, r2, r3, lsr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3818    TESTINST3("xxx.w  r1, r2, r3, asr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3819    TESTINST3("xxx.w  r1, r2, r3, asr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3820    TESTINST3("xxx.w  r1, r2, r3, asr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3821    TESTINST3("xxx.w  r1, r2, r3, asr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   3822    TESTINST3("xxxs.w r1, r2, r3, lsl #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3823    TESTINST3("xxxs.w r1, r2, r3, lsl #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3824    TESTINST3("xxxs.w r1, r2, r3, lsl #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3825    TESTINST3("xxxs.w r1, r2, r3, lsl #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3826    TESTINST3("xxxs.w r1, r2, r3, lsr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3827    TESTINST3("xxxs.w r1, r2, r3, lsr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3828    TESTINST3("xxxs.w r1, r2, r3, lsr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3829    TESTINST3("xxxs.w r1, r2, r3, lsr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3830    TESTINST3("xxxs.w r1, r2, r3, asr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3831    TESTINST3("xxxs.w r1, r2, r3, asr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3832    TESTINST3("xxxs.w r1, r2, r3, asr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3833    TESTINST3("xxxs.w r1, r2, r3, asr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3834    TESTINST3("xxx.w  r1, r2, r3, lsl #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3835    TESTINST3("xxx.w  r1, r2, r3, lsl #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3836    TESTINST3("xxx.w  r1, r2, r3, lsl #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3837    TESTINST3("xxx.w  r1, r2, r3, lsl #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3838    TESTINST3("xxx.w  r1, r2, r3, lsr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3839    TESTINST3("xxx.w  r1, r2, r3, lsr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3840    TESTINST3("xxx.w  r1, r2, r3, lsr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3841    TESTINST3("xxx.w  r1, r2, r3, lsr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3842    TESTINST3("xxx.w  r1, r2, r3, asr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3843    TESTINST3("xxx.w  r1, r2, r3, asr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3844    TESTINST3("xxx.w  r1, r2, r3, asr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3845    TESTINST3("xxx.w  r1, r2, r3, asr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   3846    TESTINST3("xxxs.w r1, r2, r3, lsl #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3847    TESTINST3("xxxs.w r1, r2, r3, lsl #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3848    TESTINST3("xxxs.w r1, r2, r3, lsl #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3849    TESTINST3("xxxs.w r1, r2, r3, lsl #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3850    TESTINST3("xxxs.w r1, r2, r3, lsr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3851    TESTINST3("xxxs.w r1, r2, r3, lsr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3852    TESTINST3("xxxs.w r1, r2, r3, lsr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3853    TESTINST3("xxxs.w r1, r2, r3, lsr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3854    TESTINST3("xxxs.w r1, r2, r3, asr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3855    TESTINST3("xxxs.w r1, r2, r3, asr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3856    TESTINST3("xxxs.w r1, r2, r3, asr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3857    TESTINST3("xxxs.w r1, r2, r3, asr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3858    TESTINST3("xxx.w  r1, r2, r3, lsl #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3859    TESTINST3("xxx.w  r1, r2, r3, lsl #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3860    TESTINST3("xxx.w  r1, r2, r3, lsl #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3861    TESTINST3("xxx.w  r1, r2, r3, lsl #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3862    TESTINST3("xxx.w  r1, r2, r3, lsr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3863    TESTINST3("xxx.w  r1, r2, r3, lsr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3864    TESTINST3("xxx.w  r1, r2, r3, lsr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3865    TESTINST3("xxx.w  r1, r2, r3, lsr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3866    TESTINST3("xxx.w  r1, r2, r3, asr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3867    TESTINST3("xxx.w  r1, r2, r3, asr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3868    TESTINST3("xxx.w  r1, r2, r3, asr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3869    TESTINST3("xxx.w  r1, r2, r3, asr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   3870    TESTCARRYEND
   3871 #endif
   3872 
   3873    printf("AND{S}.W Rd, Rn, Rm, {shift}\n");
   3874    TESTCARRY
   3875    TESTINST3("ands.w r1, r2, r3, lsl #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3876    TESTINST3("ands.w r1, r2, r3, lsl #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3877    TESTINST3("ands.w r1, r2, r3, lsl #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3878    TESTINST3("ands.w r1, r2, r3, lsl #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3879    TESTINST3("ands.w r1, r2, r3, lsr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3880    TESTINST3("ands.w r1, r2, r3, lsr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3881    TESTINST3("ands.w r1, r2, r3, lsr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3882    TESTINST3("ands.w r1, r2, r3, lsr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3883    TESTINST3("ands.w r1, r2, r3, asr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3884    TESTINST3("ands.w r1, r2, r3, asr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3885    TESTINST3("ands.w r1, r2, r3, asr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3886    TESTINST3("ands.w r1, r2, r3, asr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3887    TESTINST3("and.w  r1, r2, r3, lsl #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3888    TESTINST3("and.w  r1, r2, r3, lsl #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3889    TESTINST3("and.w  r1, r2, r3, lsl #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3890    TESTINST3("and.w  r1, r2, r3, lsl #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3891    TESTINST3("and.w  r1, r2, r3, lsr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3892    TESTINST3("and.w  r1, r2, r3, lsr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3893    TESTINST3("and.w  r1, r2, r3, lsr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3894    TESTINST3("and.w  r1, r2, r3, lsr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3895    TESTINST3("and.w  r1, r2, r3, asr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3896    TESTINST3("and.w  r1, r2, r3, asr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3897    TESTINST3("and.w  r1, r2, r3, asr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3898    TESTINST3("and.w  r1, r2, r3, asr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   3899    TESTINST3("ands.w r1, r2, r3, lsl #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3900    TESTINST3("ands.w r1, r2, r3, lsl #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3901    TESTINST3("ands.w r1, r2, r3, lsl #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3902    TESTINST3("ands.w r1, r2, r3, lsl #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3903    TESTINST3("ands.w r1, r2, r3, lsr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3904    TESTINST3("ands.w r1, r2, r3, lsr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3905    TESTINST3("ands.w r1, r2, r3, lsr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3906    TESTINST3("ands.w r1, r2, r3, lsr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3907    TESTINST3("ands.w r1, r2, r3, asr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3908    TESTINST3("ands.w r1, r2, r3, asr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3909    TESTINST3("ands.w r1, r2, r3, asr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3910    TESTINST3("ands.w r1, r2, r3, asr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3911    TESTINST3("and.w  r1, r2, r3, lsl #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3912    TESTINST3("and.w  r1, r2, r3, lsl #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3913    TESTINST3("and.w  r1, r2, r3, lsl #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3914    TESTINST3("and.w  r1, r2, r3, lsl #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3915    TESTINST3("and.w  r1, r2, r3, lsr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3916    TESTINST3("and.w  r1, r2, r3, lsr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3917    TESTINST3("and.w  r1, r2, r3, lsr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3918    TESTINST3("and.w  r1, r2, r3, lsr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3919    TESTINST3("and.w  r1, r2, r3, asr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3920    TESTINST3("and.w  r1, r2, r3, asr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3921    TESTINST3("and.w  r1, r2, r3, asr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3922    TESTINST3("and.w  r1, r2, r3, asr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   3923    TESTINST3("ands.w r1, r2, r3, lsl #0 ", 0,          0,          r1, r2, r3, cv);
   3924    TESTINST3("ands.w r1, r2, r3, lsl #1 ", 0,          0,          r1, r2, r3, cv);
   3925    TESTINST3("ands.w r1, r2, r3, lsl #15", 0,          0,          r1, r2, r3, cv);
   3926    TESTINST3("ands.w r1, r2, r3, lsl #31", 0,          0,          r1, r2, r3, cv);
   3927    TESTINST3("ands.w r1, r2, r3, lsr #0 ", 0,          0,          r1, r2, r3, cv);
   3928    TESTINST3("ands.w r1, r2, r3, lsr #1 ", 0,          0,          r1, r2, r3, cv);
   3929    TESTINST3("ands.w r1, r2, r3, lsr #15", 0,          0,          r1, r2, r3, cv);
   3930    TESTINST3("ands.w r1, r2, r3, lsr #31", 0,          0,          r1, r2, r3, cv);
   3931    TESTINST3("ands.w r1, r2, r3, asr #0 ", 0,          0,          r1, r2, r3, cv);
   3932    TESTINST3("ands.w r1, r2, r3, asr #1 ", 0,          0,          r1, r2, r3, cv);
   3933    TESTINST3("ands.w r1, r2, r3, asr #15", 0,          0,          r1, r2, r3, cv);
   3934    TESTINST3("ands.w r1, r2, r3, asr #31", 0,          0,          r1, r2, r3, cv);
   3935    TESTINST3("and.w  r1, r2, r3, lsl #0 ", 0,          0,          r1, r2, r3, cv);
   3936    TESTINST3("and.w  r1, r2, r3, lsl #1 ", 0,          0,          r1, r2, r3, cv);
   3937    TESTINST3("and.w  r1, r2, r3, lsl #15", 0,          0,          r1, r2, r3, cv);
   3938    TESTINST3("and.w  r1, r2, r3, lsl #31", 0,          0,          r1, r2, r3, cv);
   3939    TESTINST3("and.w  r1, r2, r3, lsr #0 ", 0,          0,          r1, r2, r3, cv);
   3940    TESTINST3("and.w  r1, r2, r3, lsr #1 ", 0,          0,          r1, r2, r3, cv);
   3941    TESTINST3("and.w  r1, r2, r3, lsr #15", 0,          0,          r1, r2, r3, cv);
   3942    TESTINST3("and.w  r1, r2, r3, lsr #31", 0,          0,          r1, r2, r3, cv);
   3943    TESTINST3("and.w  r1, r2, r3, asr #0 ", 0,          0,          r1, r2, r3, cv);
   3944    TESTINST3("and.w  r1, r2, r3, asr #1 ", 0,          0,          r1, r2, r3, cv);
   3945    TESTINST3("and.w  r1, r2, r3, asr #15", 0,          0,          r1, r2, r3, cv);
   3946    TESTINST3("and.w  r1, r2, r3, asr #31", 0,          0,          r1, r2, r3, cv);
   3947    TESTINST3("ands.w r1, r2, r3, lsl #0 ", 1,          0,          r1, r2, r3, cv);
   3948    TESTINST3("ands.w r1, r2, r3, lsl #1 ", 1,          0,          r1, r2, r3, cv);
   3949    TESTINST3("ands.w r1, r2, r3, lsl #15", 1,          0,          r1, r2, r3, cv);
   3950    TESTINST3("ands.w r1, r2, r3, lsl #31", 1,          0,          r1, r2, r3, cv);
   3951    TESTINST3("ands.w r1, r2, r3, lsr #0 ", 1,          0,          r1, r2, r3, cv);
   3952    TESTINST3("ands.w r1, r2, r3, lsr #1 ", 1,          0,          r1, r2, r3, cv);
   3953    TESTINST3("ands.w r1, r2, r3, lsr #15", 1,          0,          r1, r2, r3, cv);
   3954    TESTINST3("ands.w r1, r2, r3, lsr #31", 1,          0,          r1, r2, r3, cv);
   3955    TESTINST3("ands.w r1, r2, r3, asr #0 ", 1,          0,          r1, r2, r3, cv);
   3956    TESTINST3("ands.w r1, r2, r3, asr #1 ", 1,          0,          r1, r2, r3, cv);
   3957    TESTINST3("ands.w r1, r2, r3, asr #15", 1,          0,          r1, r2, r3, cv);
   3958    TESTINST3("ands.w r1, r2, r3, asr #31", 1,          0,          r1, r2, r3, cv);
   3959    TESTINST3("and.w  r1, r2, r3, lsl #0 ", 1,          0,          r1, r2, r3, cv);
   3960    TESTINST3("and.w  r1, r2, r3, lsl #1 ", 1,          0,          r1, r2, r3, cv);
   3961    TESTINST3("and.w  r1, r2, r3, lsl #15", 1,          0,          r1, r2, r3, cv);
   3962    TESTINST3("and.w  r1, r2, r3, lsl #31", 1,          0,          r1, r2, r3, cv);
   3963    TESTINST3("and.w  r1, r2, r3, lsr #0 ", 1,          0,          r1, r2, r3, cv);
   3964    TESTINST3("and.w  r1, r2, r3, lsr #1 ", 1,          0,          r1, r2, r3, cv);
   3965    TESTINST3("and.w  r1, r2, r3, lsr #15", 1,          0,          r1, r2, r3, cv);
   3966    TESTINST3("and.w  r1, r2, r3, lsr #31", 1,          0,          r1, r2, r3, cv);
   3967    TESTINST3("and.w  r1, r2, r3, asr #0 ", 1,          0,          r1, r2, r3, cv);
   3968    TESTINST3("and.w  r1, r2, r3, asr #1 ", 1,          0,          r1, r2, r3, cv);
   3969    TESTINST3("and.w  r1, r2, r3, asr #15", 1,          0,          r1, r2, r3, cv);
   3970    TESTINST3("and.w  r1, r2, r3, asr #31", 1,          0,          r1, r2, r3, cv);
   3971    TESTINST3("ands.w r1, r2, r3, lsl #0 ", 0,          1,          r1, r2, r3, cv);
   3972    TESTINST3("ands.w r1, r2, r3, lsl #1 ", 0,          1,          r1, r2, r3, cv);
   3973    TESTINST3("ands.w r1, r2, r3, lsl #15", 0,          1,          r1, r2, r3, cv);
   3974    TESTINST3("ands.w r1, r2, r3, lsl #31", 0,          1,          r1, r2, r3, cv);
   3975    TESTINST3("ands.w r1, r2, r3, lsr #0 ", 0,          1,          r1, r2, r3, cv);
   3976    TESTINST3("ands.w r1, r2, r3, lsr #1 ", 0,          1,          r1, r2, r3, cv);
   3977    TESTINST3("ands.w r1, r2, r3, lsr #15", 0,          1,          r1, r2, r3, cv);
   3978    TESTINST3("ands.w r1, r2, r3, lsr #31", 0,          1,          r1, r2, r3, cv);
   3979    TESTINST3("ands.w r1, r2, r3, asr #0 ", 0,          1,          r1, r2, r3, cv);
   3980    TESTINST3("ands.w r1, r2, r3, asr #1 ", 0,          1,          r1, r2, r3, cv);
   3981    TESTINST3("ands.w r1, r2, r3, asr #15", 0,          1,          r1, r2, r3, cv);
   3982    TESTINST3("ands.w r1, r2, r3, asr #31", 0,          1,          r1, r2, r3, cv);
   3983    TESTINST3("and.w  r1, r2, r3, lsl #0 ", 0,          1,          r1, r2, r3, cv);
   3984    TESTINST3("and.w  r1, r2, r3, lsl #1 ", 0,          1,          r1, r2, r3, cv);
   3985    TESTINST3("and.w  r1, r2, r3, lsl #15", 0,          1,          r1, r2, r3, cv);
   3986    TESTINST3("and.w  r1, r2, r3, lsl #31", 0,          1,          r1, r2, r3, cv);
   3987    TESTINST3("and.w  r1, r2, r3, lsr #0 ", 0,          1,          r1, r2, r3, cv);
   3988    TESTINST3("and.w  r1, r2, r3, lsr #1 ", 0,          1,          r1, r2, r3, cv);
   3989    TESTINST3("and.w  r1, r2, r3, lsr #15", 0,          1,          r1, r2, r3, cv);
   3990    TESTINST3("and.w  r1, r2, r3, lsr #31", 0,          1,          r1, r2, r3, cv);
   3991    TESTINST3("and.w  r1, r2, r3, asr #0 ", 0,          1,          r1, r2, r3, cv);
   3992    TESTINST3("and.w  r1, r2, r3, asr #1 ", 0,          1,          r1, r2, r3, cv);
   3993    TESTINST3("and.w  r1, r2, r3, asr #15", 0,          1,          r1, r2, r3, cv);
   3994    TESTINST3("and.w  r1, r2, r3, asr #31", 0,          1,          r1, r2, r3, cv);
   3995    TESTINST3("ands.w r1, r2, r3, lsl #0 ", -1,         0,          r1, r2, r3, cv);
   3996    TESTINST3("ands.w r1, r2, r3, lsl #1 ", -1,         0,          r1, r2, r3, cv);
   3997    TESTINST3("ands.w r1, r2, r3, lsl #15", -1,         0,          r1, r2, r3, cv);
   3998    TESTINST3("ands.w r1, r2, r3, lsl #31", -1,         0,          r1, r2, r3, cv);
   3999    TESTINST3("ands.w r1, r2, r3, lsr #0 ", -1,         0,          r1, r2, r3, cv);
   4000    TESTINST3("ands.w r1, r2, r3, lsr #1 ", -1,         0,          r1, r2, r3, cv);
   4001    TESTINST3("ands.w r1, r2, r3, lsr #15", -1,         0,          r1, r2, r3, cv);
   4002    TESTINST3("ands.w r1, r2, r3, lsr #31", -1,         0,          r1, r2, r3, cv);
   4003    TESTINST3("ands.w r1, r2, r3, asr #0 ", -1,         0,          r1, r2, r3, cv);
   4004    TESTINST3("ands.w r1, r2, r3, asr #1 ", -1,         0,          r1, r2, r3, cv);
   4005    TESTINST3("ands.w r1, r2, r3, asr #15", -1,         0,          r1, r2, r3, cv);
   4006    TESTINST3("ands.w r1, r2, r3, asr #31", -1,         0,          r1, r2, r3, cv);
   4007    TESTINST3("and.w  r1, r2, r3, lsl #0 ", -1,         0,          r1, r2, r3, cv);
   4008    TESTINST3("and.w  r1, r2, r3, lsl #1 ", -1,         0,          r1, r2, r3, cv);
   4009    TESTINST3("and.w  r1, r2, r3, lsl #15", -1,         0,          r1, r2, r3, cv);
   4010    TESTINST3("and.w  r1, r2, r3, lsl #31", -1,         0,          r1, r2, r3, cv);
   4011    TESTINST3("and.w  r1, r2, r3, lsr #0 ", -1,         0,          r1, r2, r3, cv);
   4012    TESTINST3("and.w  r1, r2, r3, lsr #1 ", -1,         0,          r1, r2, r3, cv);
   4013    TESTINST3("and.w  r1, r2, r3, lsr #15", -1,         0,          r1, r2, r3, cv);
   4014    TESTINST3("and.w  r1, r2, r3, lsr #31", -1,         0,          r1, r2, r3, cv);
   4015    TESTINST3("and.w  r1, r2, r3, asr #0 ", -1,         0,          r1, r2, r3, cv);
   4016    TESTINST3("and.w  r1, r2, r3, asr #1 ", -1,         0,          r1, r2, r3, cv);
   4017    TESTINST3("and.w  r1, r2, r3, asr #15", -1,         0,          r1, r2, r3, cv);
   4018    TESTINST3("and.w  r1, r2, r3, asr #31", -1,         0,          r1, r2, r3, cv);
   4019    TESTINST3("ands.w r1, r2, r3, lsl #0 ", 0,          -1,         r1, r2, r3, cv);
   4020    TESTINST3("ands.w r1, r2, r3, lsl #1 ", 0,          -1,         r1, r2, r3, cv);
   4021    TESTINST3("ands.w r1, r2, r3, lsl #15", 0,          -1,         r1, r2, r3, cv);
   4022    TESTINST3("ands.w r1, r2, r3, lsl #31", 0,          -1,         r1, r2, r3, cv);
   4023    TESTINST3("ands.w r1, r2, r3, lsr #0 ", 0,          -1,         r1, r2, r3, cv);
   4024    TESTINST3("ands.w r1, r2, r3, lsr #1 ", 0,          -1,         r1, r2, r3, cv);
   4025    TESTINST3("ands.w r1, r2, r3, lsr #15", 0,          -1,         r1, r2, r3, cv);
   4026    TESTINST3("ands.w r1, r2, r3, lsr #31", 0,          -1,         r1, r2, r3, cv);
   4027    TESTINST3("ands.w r1, r2, r3, asr #0 ", 0,          -1,         r1, r2, r3, cv);
   4028    TESTINST3("ands.w r1, r2, r3, asr #1 ", 0,          -1,         r1, r2, r3, cv);
   4029    TESTINST3("ands.w r1, r2, r3, asr #15", 0,          -1,         r1, r2, r3, cv);
   4030    TESTINST3("ands.w r1, r2, r3, asr #31", 0,          -1,         r1, r2, r3, cv);
   4031    TESTINST3("and.w  r1, r2, r3, lsl #0 ", 0,          -1,         r1, r2, r3, cv);
   4032    TESTINST3("and.w  r1, r2, r3, lsl #1 ", 0,          -1,         r1, r2, r3, cv);
   4033    TESTINST3("and.w  r1, r2, r3, lsl #15", 0,          -1,         r1, r2, r3, cv);
   4034    TESTINST3("and.w  r1, r2, r3, lsl #31", 0,          -1,         r1, r2, r3, cv);
   4035    TESTINST3("and.w  r1, r2, r3, lsr #0 ", 0,          -1,         r1, r2, r3, cv);
   4036    TESTINST3("and.w  r1, r2, r3, lsr #1 ", 0,          -1,         r1, r2, r3, cv);
   4037    TESTINST3("and.w  r1, r2, r3, lsr #15", 0,          -1,         r1, r2, r3, cv);
   4038    TESTINST3("and.w  r1, r2, r3, lsr #31", 0,          -1,         r1, r2, r3, cv);
   4039    TESTINST3("and.w  r1, r2, r3, asr #0 ", 0,          -1,         r1, r2, r3, cv);
   4040    TESTINST3("and.w  r1, r2, r3, asr #1 ", 0,          -1,         r1, r2, r3, cv);
   4041    TESTINST3("and.w  r1, r2, r3, asr #15", 0,          -1,         r1, r2, r3, cv);
   4042    TESTINST3("and.w  r1, r2, r3, asr #31", 0,          -1,         r1, r2, r3, cv);
   4043    TESTINST3("ands.w r1, r2, r3, lsl #0 ", 0,          0x80000000, r1, r2, r3, cv);
   4044    TESTINST3("ands.w r1, r2, r3, lsl #1 ", 0,          0x80000000, r1, r2, r3, cv);
   4045    TESTINST3("ands.w r1, r2, r3, lsl #15", 0,          0x80000000, r1, r2, r3, cv);
   4046    TESTINST3("ands.w r1, r2, r3, lsl #31", 0,          0x80000000, r1, r2, r3, cv);
   4047    TESTINST3("ands.w r1, r2, r3, lsr #0 ", 0,          0x80000000, r1, r2, r3, cv);
   4048    TESTINST3("ands.w r1, r2, r3, lsr #1 ", 0,          0x80000000, r1, r2, r3, cv);
   4049    TESTINST3("ands.w r1, r2, r3, lsr #15", 0,          0x80000000, r1, r2, r3, cv);
   4050    TESTINST3("ands.w r1, r2, r3, lsr #31", 0,          0x80000000, r1, r2, r3, cv);
   4051    TESTINST3("ands.w r1, r2, r3, asr #0 ", 0,          0x80000000, r1, r2, r3, cv);
   4052    TESTINST3("ands.w r1, r2, r3, asr #1 ", 0,          0x80000000, r1, r2, r3, cv);
   4053    TESTINST3("ands.w r1, r2, r3, asr #15", 0,          0x80000000, r1, r2, r3, cv);
   4054    TESTINST3("ands.w r1, r2, r3, asr #31", 0,          0x80000000, r1, r2, r3, cv);
   4055    TESTINST3("and.w  r1, r2, r3, lsl #0 ", 0,          0x80000000, r1, r2, r3, cv);
   4056    TESTINST3("and.w  r1, r2, r3, lsl #1 ", 0,          0x80000000, r1, r2, r3, cv);
   4057    TESTINST3("and.w  r1, r2, r3, lsl #15", 0,          0x80000000, r1, r2, r3, cv);
   4058    TESTINST3("and.w  r1, r2, r3, lsl #31", 0,          0x80000000, r1, r2, r3, cv);
   4059    TESTINST3("and.w  r1, r2, r3, lsr #0 ", 0,          0x80000000, r1, r2, r3, cv);
   4060    TESTINST3("and.w  r1, r2, r3, lsr #1 ", 0,          0x80000000, r1, r2, r3, cv);
   4061    TESTINST3("and.w  r1, r2, r3, lsr #15", 0,          0x80000000, r1, r2, r3, cv);
   4062    TESTINST3("and.w  r1, r2, r3, lsr #31", 0,          0x80000000, r1, r2, r3, cv);
   4063    TESTINST3("and.w  r1, r2, r3, asr #0 ", 0,          0x80000000, r1, r2, r3, cv);
   4064    TESTINST3("and.w  r1, r2, r3, asr #1 ", 0,          0x80000000, r1, r2, r3, cv);
   4065    TESTINST3("and.w  r1, r2, r3, asr #15", 0,          0x80000000, r1, r2, r3, cv);
   4066    TESTINST3("and.w  r1, r2, r3, asr #31", 0,          0x80000000, r1, r2, r3, cv);
   4067    TESTINST3("ands.w r1, r2, r3, lsl #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   4068    TESTINST3("ands.w r1, r2, r3, lsl #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   4069    TESTINST3("ands.w r1, r2, r3, lsl #15", 0x80000000, 0,          r1, r2, r3, cv);
   4070    TESTINST3("ands.w r1, r2, r3, lsl #31", 0x80000000, 0,          r1, r2, r3, cv);
   4071    TESTINST3("ands.w r1, r2, r3, lsr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   4072    TESTINST3("ands.w r1, r2, r3, lsr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   4073    TESTINST3("ands.w r1, r2, r3, lsr #15", 0x80000000, 0,          r1, r2, r3, cv);
   4074    TESTINST3("ands.w r1, r2, r3, lsr #31", 0x80000000, 0,          r1, r2, r3, cv);
   4075    TESTINST3("ands.w r1, r2, r3, asr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   4076    TESTINST3("ands.w r1, r2, r3, asr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   4077    TESTINST3("ands.w r1, r2, r3, asr #15", 0x80000000, 0,          r1, r2, r3, cv);
   4078    TESTINST3("ands.w r1, r2, r3, asr #31", 0x80000000, 0,          r1, r2, r3, cv);
   4079    TESTINST3("and.w  r1, r2, r3, lsl #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   4080    TESTINST3("and.w  r1, r2, r3, lsl #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   4081    TESTINST3("and.w  r1, r2, r3, lsl #15", 0x80000000, 0,          r1, r2, r3, cv);
   4082    TESTINST3("and.w  r1, r2, r3, lsl #31", 0x80000000, 0,          r1, r2, r3, cv);
   4083    TESTINST3("and.w  r1, r2, r3, lsr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   4084    TESTINST3("and.w  r1, r2, r3, lsr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   4085    TESTINST3("and.w  r1, r2, r3, lsr #15", 0x80000000, 0,          r1, r2, r3, cv);
   4086    TESTINST3("and.w  r1, r2, r3, lsr #31", 0x80000000, 0,          r1, r2, r3, cv);
   4087    TESTINST3("and.w  r1, r2, r3, asr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   4088    TESTINST3("and.w  r1, r2, r3, asr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   4089    TESTINST3("and.w  r1, r2, r3, asr #15", 0x80000000, 0,          r1, r2, r3, cv);
   4090    TESTINST3("and.w  r1, r2, r3, asr #31", 0x80000000, 0,          r1, r2, r3, cv);
   4091    TESTINST3("ands.w r1, r2, r3, lsl #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4092    TESTINST3("ands.w r1, r2, r3, lsl #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4093    TESTINST3("ands.w r1, r2, r3, lsl #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4094    TESTINST3("ands.w r1, r2, r3, lsl #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4095    TESTINST3("ands.w r1, r2, r3, lsr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4096    TESTINST3("ands.w r1, r2, r3, lsr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4097    TESTINST3("ands.w r1, r2, r3, lsr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4098    TESTINST3("ands.w r1, r2, r3, lsr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4099    TESTINST3("ands.w r1, r2, r3, asr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4100    TESTINST3("ands.w r1, r2, r3, asr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4101    TESTINST3("ands.w r1, r2, r3, asr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4102    TESTINST3("ands.w r1, r2, r3, asr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4103    TESTINST3("and.w  r1, r2, r3, lsl #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4104    TESTINST3("and.w  r1, r2, r3, lsl #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4105    TESTINST3("and.w  r1, r2, r3, lsl #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4106    TESTINST3("and.w  r1, r2, r3, lsl #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4107    TESTINST3("and.w  r1, r2, r3, lsr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4108    TESTINST3("and.w  r1, r2, r3, lsr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4109    TESTINST3("and.w  r1, r2, r3, lsr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4110    TESTINST3("and.w  r1, r2, r3, lsr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4111    TESTINST3("and.w  r1, r2, r3, asr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4112    TESTINST3("and.w  r1, r2, r3, asr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4113    TESTINST3("and.w  r1, r2, r3, asr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4114    TESTINST3("and.w  r1, r2, r3, asr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4115    TESTINST3("ands.w r1, r2, r3, lsl #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4116    TESTINST3("ands.w r1, r2, r3, lsl #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4117    TESTINST3("ands.w r1, r2, r3, lsl #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4118    TESTINST3("ands.w r1, r2, r3, lsl #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4119    TESTINST3("ands.w r1, r2, r3, lsr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4120    TESTINST3("ands.w r1, r2, r3, lsr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4121    TESTINST3("ands.w r1, r2, r3, lsr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4122    TESTINST3("ands.w r1, r2, r3, lsr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4123    TESTINST3("ands.w r1, r2, r3, asr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4124    TESTINST3("ands.w r1, r2, r3, asr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4125    TESTINST3("ands.w r1, r2, r3, asr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4126    TESTINST3("ands.w r1, r2, r3, asr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4127    TESTINST3("and.w  r1, r2, r3, lsl #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4128    TESTINST3("and.w  r1, r2, r3, lsl #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4129    TESTINST3("and.w  r1, r2, r3, lsl #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4130    TESTINST3("and.w  r1, r2, r3, lsl #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4131    TESTINST3("and.w  r1, r2, r3, lsr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4132    TESTINST3("and.w  r1, r2, r3, lsr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4133    TESTINST3("and.w  r1, r2, r3, lsr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4134    TESTINST3("and.w  r1, r2, r3, lsr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4135    TESTINST3("and.w  r1, r2, r3, asr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4136    TESTINST3("and.w  r1, r2, r3, asr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4137    TESTINST3("and.w  r1, r2, r3, asr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4138    TESTINST3("and.w  r1, r2, r3, asr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4139    TESTINST3("ands.w r1, r2, r3, lsl #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4140    TESTINST3("ands.w r1, r2, r3, lsl #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4141    TESTINST3("ands.w r1, r2, r3, lsl #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4142    TESTINST3("ands.w r1, r2, r3, lsl #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4143    TESTINST3("ands.w r1, r2, r3, lsr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4144    TESTINST3("ands.w r1, r2, r3, lsr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4145    TESTINST3("ands.w r1, r2, r3, lsr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4146    TESTINST3("ands.w r1, r2, r3, lsr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4147    TESTINST3("ands.w r1, r2, r3, asr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4148    TESTINST3("ands.w r1, r2, r3, asr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4149    TESTINST3("ands.w r1, r2, r3, asr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4150    TESTINST3("ands.w r1, r2, r3, asr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4151    TESTINST3("and.w  r1, r2, r3, lsl #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4152    TESTINST3("and.w  r1, r2, r3, lsl #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4153    TESTINST3("and.w  r1, r2, r3, lsl #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4154    TESTINST3("and.w  r1, r2, r3, lsl #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4155    TESTINST3("and.w  r1, r2, r3, lsr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4156    TESTINST3("and.w  r1, r2, r3, lsr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4157    TESTINST3("and.w  r1, r2, r3, lsr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4158    TESTINST3("and.w  r1, r2, r3, lsr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4159    TESTINST3("and.w  r1, r2, r3, asr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4160    TESTINST3("and.w  r1, r2, r3, asr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4161    TESTINST3("and.w  r1, r2, r3, asr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4162    TESTINST3("and.w  r1, r2, r3, asr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4163    TESTINST3("ands.w r1, r2, r3, lsl #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4164    TESTINST3("ands.w r1, r2, r3, lsl #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4165    TESTINST3("ands.w r1, r2, r3, lsl #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4166    TESTINST3("ands.w r1, r2, r3, lsl #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4167    TESTINST3("ands.w r1, r2, r3, lsr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4168    TESTINST3("ands.w r1, r2, r3, lsr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4169    TESTINST3("ands.w r1, r2, r3, lsr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4170    TESTINST3("ands.w r1, r2, r3, lsr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4171    TESTINST3("ands.w r1, r2, r3, asr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4172    TESTINST3("ands.w r1, r2, r3, asr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4173    TESTINST3("ands.w r1, r2, r3, asr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4174    TESTINST3("ands.w r1, r2, r3, asr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4175    TESTINST3("and.w  r1, r2, r3, lsl #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4176    TESTINST3("and.w  r1, r2, r3, lsl #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4177    TESTINST3("and.w  r1, r2, r3, lsl #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4178    TESTINST3("and.w  r1, r2, r3, lsl #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4179    TESTINST3("and.w  r1, r2, r3, lsr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4180    TESTINST3("and.w  r1, r2, r3, lsr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4181    TESTINST3("and.w  r1, r2, r3, lsr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4182    TESTINST3("and.w  r1, r2, r3, lsr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4183    TESTINST3("and.w  r1, r2, r3, asr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4184    TESTINST3("and.w  r1, r2, r3, asr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4185    TESTINST3("and.w  r1, r2, r3, asr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4186    TESTINST3("and.w  r1, r2, r3, asr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4187    TESTCARRYEND
   4188 
   4189    printf("ORR{S}.W Rd, Rn, Rm, {shift}\n");
   4190    TESTCARRY
   4191    TESTINST3("orrs.w r1, r2, r3, lsl #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4192    TESTINST3("orrs.w r1, r2, r3, lsl #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4193    TESTINST3("orrs.w r1, r2, r3, lsl #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4194    TESTINST3("orrs.w r1, r2, r3, lsl #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4195    TESTINST3("orrs.w r1, r2, r3, lsr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4196    TESTINST3("orrs.w r1, r2, r3, lsr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4197    TESTINST3("orrs.w r1, r2, r3, lsr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4198    TESTINST3("orrs.w r1, r2, r3, lsr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4199    TESTINST3("orrs.w r1, r2, r3, asr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4200    TESTINST3("orrs.w r1, r2, r3, asr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4201    TESTINST3("orrs.w r1, r2, r3, asr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4202    TESTINST3("orrs.w r1, r2, r3, asr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4203    TESTINST3("orr.w  r1, r2, r3, lsl #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4204    TESTINST3("orr.w  r1, r2, r3, lsl #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4205    TESTINST3("orr.w  r1, r2, r3, lsl #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4206    TESTINST3("orr.w  r1, r2, r3, lsl #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4207    TESTINST3("orr.w  r1, r2, r3, lsr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4208    TESTINST3("orr.w  r1, r2, r3, lsr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4209    TESTINST3("orr.w  r1, r2, r3, lsr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4210    TESTINST3("orr.w  r1, r2, r3, lsr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4211    TESTINST3("orr.w  r1, r2, r3, asr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4212    TESTINST3("orr.w  r1, r2, r3, asr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4213    TESTINST3("orr.w  r1, r2, r3, asr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4214    TESTINST3("orr.w  r1, r2, r3, asr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4215    TESTINST3("orrs.w r1, r2, r3, lsl #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4216    TESTINST3("orrs.w r1, r2, r3, lsl #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4217    TESTINST3("orrs.w r1, r2, r3, lsl #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4218    TESTINST3("orrs.w r1, r2, r3, lsl #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4219    TESTINST3("orrs.w r1, r2, r3, lsr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4220    TESTINST3("orrs.w r1, r2, r3, lsr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4221    TESTINST3("orrs.w r1, r2, r3, lsr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4222    TESTINST3("orrs.w r1, r2, r3, lsr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4223    TESTINST3("orrs.w r1, r2, r3, asr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4224    TESTINST3("orrs.w r1, r2, r3, asr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4225    TESTINST3("orrs.w r1, r2, r3, asr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4226    TESTINST3("orrs.w r1, r2, r3, asr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4227    TESTINST3("orr.w  r1, r2, r3, lsl #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4228    TESTINST3("orr.w  r1, r2, r3, lsl #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4229    TESTINST3("orr.w  r1, r2, r3, lsl #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4230    TESTINST3("orr.w  r1, r2, r3, lsl #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4231    TESTINST3("orr.w  r1, r2, r3, lsr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4232    TESTINST3("orr.w  r1, r2, r3, lsr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4233    TESTINST3("orr.w  r1, r2, r3, lsr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4234    TESTINST3("orr.w  r1, r2, r3, lsr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4235    TESTINST3("orr.w  r1, r2, r3, asr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4236    TESTINST3("orr.w  r1, r2, r3, asr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4237    TESTINST3("orr.w  r1, r2, r3, asr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4238    TESTINST3("orr.w  r1, r2, r3, asr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4239    TESTINST3("orrs.w r1, r2, r3, lsl #0 ", 0,          0,          r1, r2, r3, cv);
   4240    TESTINST3("orrs.w r1, r2, r3, lsl #1 ", 0,          0,          r1, r2, r3, cv);
   4241    TESTINST3("orrs.w r1, r2, r3, lsl #15", 0,          0,          r1, r2, r3, cv);
   4242    TESTINST3("orrs.w r1, r2, r3, lsl #31", 0,          0,          r1, r2, r3, cv);
   4243    TESTINST3("orrs.w r1, r2, r3, lsr #0 ", 0,          0,          r1, r2, r3, cv);
   4244    TESTINST3("orrs.w r1, r2, r3, lsr #1 ", 0,          0,          r1, r2, r3, cv);
   4245    TESTINST3("orrs.w r1, r2, r3, lsr #15", 0,          0,          r1, r2, r3, cv);
   4246    TESTINST3("orrs.w r1, r2, r3, lsr #31", 0,          0,          r1, r2, r3, cv);
   4247    TESTINST3("orrs.w r1, r2, r3, asr #0 ", 0,          0,          r1, r2, r3, cv);
   4248    TESTINST3("orrs.w r1, r2, r3, asr #1 ", 0,          0,          r1, r2, r3, cv);
   4249    TESTINST3("orrs.w r1, r2, r3, asr #15", 0,          0,          r1, r2, r3, cv);
   4250    TESTINST3("orrs.w r1, r2, r3, asr #31", 0,          0,          r1, r2, r3, cv);
   4251    TESTINST3("orr.w  r1, r2, r3, lsl #0 ", 0,          0,          r1, r2, r3, cv);
   4252    TESTINST3("orr.w  r1, r2, r3, lsl #1 ", 0,          0,          r1, r2, r3, cv);
   4253    TESTINST3("orr.w  r1, r2, r3, lsl #15", 0,          0,          r1, r2, r3, cv);
   4254    TESTINST3("orr.w  r1, r2, r3, lsl #31", 0,          0,          r1, r2, r3, cv);
   4255    TESTINST3("orr.w  r1, r2, r3, lsr #0 ", 0,          0,          r1, r2, r3, cv);
   4256    TESTINST3("orr.w  r1, r2, r3, lsr #1 ", 0,          0,          r1, r2, r3, cv);
   4257    TESTINST3("orr.w  r1, r2, r3, lsr #15", 0,          0,          r1, r2, r3, cv);
   4258    TESTINST3("orr.w  r1, r2, r3, lsr #31", 0,          0,          r1, r2, r3, cv);
   4259    TESTINST3("orr.w  r1, r2, r3, asr #0 ", 0,          0,          r1, r2, r3, cv);
   4260    TESTINST3("orr.w  r1, r2, r3, asr #1 ", 0,          0,          r1, r2, r3, cv);
   4261    TESTINST3("orr.w  r1, r2, r3, asr #15", 0,          0,          r1, r2, r3, cv);
   4262    TESTINST3("orr.w  r1, r2, r3, asr #31", 0,          0,          r1, r2, r3, cv);
   4263    TESTINST3("orrs.w r1, r2, r3, lsl #0 ", 1,          0,          r1, r2, r3, cv);
   4264    TESTINST3("orrs.w r1, r2, r3, lsl #1 ", 1,          0,          r1, r2, r3, cv);
   4265    TESTINST3("orrs.w r1, r2, r3, lsl #15", 1,          0,          r1, r2, r3, cv);
   4266    TESTINST3("orrs.w r1, r2, r3, lsl #31", 1,          0,          r1, r2, r3, cv);
   4267    TESTINST3("orrs.w r1, r2, r3, lsr #0 ", 1,          0,          r1, r2, r3, cv);
   4268    TESTINST3("orrs.w r1, r2, r3, lsr #1 ", 1,          0,          r1, r2, r3, cv);
   4269    TESTINST3("orrs.w r1, r2, r3, lsr #15", 1,          0,          r1, r2, r3, cv);
   4270    TESTINST3("orrs.w r1, r2, r3, lsr #31", 1,          0,          r1, r2, r3, cv);
   4271    TESTINST3("orrs.w r1, r2, r3, asr #0 ", 1,          0,          r1, r2, r3, cv);
   4272    TESTINST3("orrs.w r1, r2, r3, asr #1 ", 1,          0,          r1, r2, r3, cv);
   4273    TESTINST3("orrs.w r1, r2, r3, asr #15", 1,          0,          r1, r2, r3, cv);
   4274    TESTINST3("orrs.w r1, r2, r3, asr #31", 1,          0,          r1, r2, r3, cv);
   4275    TESTINST3("orr.w  r1, r2, r3, lsl #0 ", 1,          0,          r1, r2, r3, cv);
   4276    TESTINST3("orr.w  r1, r2, r3, lsl #1 ", 1,          0,          r1, r2, r3, cv);
   4277    TESTINST3("orr.w  r1, r2, r3, lsl #15", 1,          0,          r1, r2, r3, cv);
   4278    TESTINST3("orr.w  r1, r2, r3, lsl #31", 1,          0,          r1, r2, r3, cv);
   4279    TESTINST3("orr.w  r1, r2, r3, lsr #0 ", 1,          0,          r1, r2, r3, cv);
   4280    TESTINST3("orr.w  r1, r2, r3, lsr #1 ", 1,          0,          r1, r2, r3, cv);
   4281    TESTINST3("orr.w  r1, r2, r3, lsr #15", 1,          0,          r1, r2, r3, cv);
   4282    TESTINST3("orr.w  r1, r2, r3, lsr #31", 1,          0,          r1, r2, r3, cv);
   4283    TESTINST3("orr.w  r1, r2, r3, asr #0 ", 1,          0,          r1, r2, r3, cv);
   4284    TESTINST3("orr.w  r1, r2, r3, asr #1 ", 1,          0,          r1, r2, r3, cv);
   4285    TESTINST3("orr.w  r1, r2, r3, asr #15", 1,          0,          r1, r2, r3, cv);
   4286    TESTINST3("orr.w  r1, r2, r3, asr #31", 1,          0,          r1, r2, r3, cv);
   4287    TESTINST3("orrs.w r1, r2, r3, lsl #0 ", 0,          1,          r1, r2, r3, cv);
   4288    TESTINST3("orrs.w r1, r2, r3, lsl #1 ", 0,          1,          r1, r2, r3, cv);
   4289    TESTINST3("orrs.w r1, r2, r3, lsl #15", 0,          1,          r1, r2, r3, cv);
   4290    TESTINST3("orrs.w r1, r2, r3, lsl #31", 0,          1,          r1, r2, r3, cv);
   4291    TESTINST3("orrs.w r1, r2, r3, lsr #0 ", 0,          1,          r1, r2, r3, cv);
   4292    TESTINST3("orrs.w r1, r2, r3, lsr #1 ", 0,          1,          r1, r2, r3, cv);
   4293    TESTINST3("orrs.w r1, r2, r3, lsr #15", 0,          1,          r1, r2, r3, cv);
   4294    TESTINST3("orrs.w r1, r2, r3, lsr #31", 0,          1,          r1, r2, r3, cv);
   4295    TESTINST3("orrs.w r1, r2, r3, asr #0 ", 0,          1,          r1, r2, r3, cv);
   4296    TESTINST3("orrs.w r1, r2, r3, asr #1 ", 0,          1,          r1, r2, r3, cv);
   4297    TESTINST3("orrs.w r1, r2, r3, asr #15", 0,          1,          r1, r2, r3, cv);
   4298    TESTINST3("orrs.w r1, r2, r3, asr #31", 0,          1,          r1, r2, r3, cv);
   4299    TESTINST3("orr.w  r1, r2, r3, lsl #0 ", 0,          1,          r1, r2, r3, cv);
   4300    TESTINST3("orr.w  r1, r2, r3, lsl #1 ", 0,          1,          r1, r2, r3, cv);
   4301    TESTINST3("orr.w  r1, r2, r3, lsl #15", 0,          1,          r1, r2, r3, cv);
   4302    TESTINST3("orr.w  r1, r2, r3, lsl #31", 0,          1,          r1, r2, r3, cv);
   4303    TESTINST3("orr.w  r1, r2, r3, lsr #0 ", 0,          1,          r1, r2, r3, cv);
   4304    TESTINST3("orr.w  r1, r2, r3, lsr #1 ", 0,          1,          r1, r2, r3, cv);
   4305    TESTINST3("orr.w  r1, r2, r3, lsr #15", 0,          1,          r1, r2, r3, cv);
   4306    TESTINST3("orr.w  r1, r2, r3, lsr #31", 0,          1,          r1, r2, r3, cv);
   4307    TESTINST3("orr.w  r1, r2, r3, asr #0 ", 0,          1,          r1, r2, r3, cv);
   4308    TESTINST3("orr.w  r1, r2, r3, asr #1 ", 0,          1,          r1, r2, r3, cv);
   4309    TESTINST3("orr.w  r1, r2, r3, asr #15", 0,          1,          r1, r2, r3, cv);
   4310    TESTINST3("orr.w  r1, r2, r3, asr #31", 0,          1,          r1, r2, r3, cv);
   4311    TESTINST3("orrs.w r1, r2, r3, lsl #0 ", -1,         0,          r1, r2, r3, cv);
   4312    TESTINST3("orrs.w r1, r2, r3, lsl #1 ", -1,         0,          r1, r2, r3, cv);
   4313    TESTINST3("orrs.w r1, r2, r3, lsl #15", -1,         0,          r1, r2, r3, cv);
   4314    TESTINST3("orrs.w r1, r2, r3, lsl #31", -1,         0,          r1, r2, r3, cv);
   4315    TESTINST3("orrs.w r1, r2, r3, lsr #0 ", -1,         0,          r1, r2, r3, cv);
   4316    TESTINST3("orrs.w r1, r2, r3, lsr #1 ", -1,         0,          r1, r2, r3, cv);
   4317    TESTINST3("orrs.w r1, r2, r3, lsr #15", -1,         0,          r1, r2, r3, cv);
   4318    TESTINST3("orrs.w r1, r2, r3, lsr #31", -1,         0,          r1, r2, r3, cv);
   4319    TESTINST3("orrs.w r1, r2, r3, asr #0 ", -1,         0,          r1, r2, r3, cv);
   4320    TESTINST3("orrs.w r1, r2, r3, asr #1 ", -1,         0,          r1, r2, r3, cv);
   4321    TESTINST3("orrs.w r1, r2, r3, asr #15", -1,         0,          r1, r2, r3, cv);
   4322    TESTINST3("orrs.w r1, r2, r3, asr #31", -1,         0,          r1, r2, r3, cv);
   4323    TESTINST3("orr.w  r1, r2, r3, lsl #0 ", -1,         0,          r1, r2, r3, cv);
   4324    TESTINST3("orr.w  r1, r2, r3, lsl #1 ", -1,         0,          r1, r2, r3, cv);
   4325    TESTINST3("orr.w  r1, r2, r3, lsl #15", -1,         0,          r1, r2, r3, cv);
   4326    TESTINST3("orr.w  r1, r2, r3, lsl #31", -1,         0,          r1, r2, r3, cv);
   4327    TESTINST3("orr.w  r1, r2, r3, lsr #0 ", -1,         0,          r1, r2, r3, cv);
   4328    TESTINST3("orr.w  r1, r2, r3, lsr #1 ", -1,         0,          r1, r2, r3, cv);
   4329    TESTINST3("orr.w  r1, r2, r3, lsr #15", -1,         0,          r1, r2, r3, cv);
   4330    TESTINST3("orr.w  r1, r2, r3, lsr #31", -1,         0,          r1, r2, r3, cv);
   4331    TESTINST3("orr.w  r1, r2, r3, asr #0 ", -1,         0,          r1, r2, r3, cv);
   4332    TESTINST3("orr.w  r1, r2, r3, asr #1 ", -1,         0,          r1, r2, r3, cv);
   4333    TESTINST3("orr.w  r1, r2, r3, asr #15", -1,         0,          r1, r2, r3, cv);
   4334    TESTINST3("orr.w  r1, r2, r3, asr #31", -1,         0,          r1, r2, r3, cv);
   4335    TESTINST3("orrs.w r1, r2, r3, lsl #0 ", 0,          -1,         r1, r2, r3, cv);
   4336    TESTINST3("orrs.w r1, r2, r3, lsl #1 ", 0,          -1,         r1, r2, r3, cv);
   4337    TESTINST3("orrs.w r1, r2, r3, lsl #15", 0,          -1,         r1, r2, r3, cv);
   4338    TESTINST3("orrs.w r1, r2, r3, lsl #31", 0,          -1,         r1, r2, r3, cv);
   4339    TESTINST3("orrs.w r1, r2, r3, lsr #0 ", 0,          -1,         r1, r2, r3, cv);
   4340    TESTINST3("orrs.w r1, r2, r3, lsr #1 ", 0,          -1,         r1, r2, r3, cv);
   4341    TESTINST3("orrs.w r1, r2, r3, lsr #15", 0,          -1,         r1, r2, r3, cv);
   4342    TESTINST3("orrs.w r1, r2, r3, lsr #31", 0,          -1,         r1, r2, r3, cv);
   4343    TESTINST3("orrs.w r1, r2, r3, asr #0 ", 0,          -1,         r1, r2, r3, cv);
   4344    TESTINST3("orrs.w r1, r2, r3, asr #1 ", 0,          -1,         r1, r2, r3, cv);
   4345    TESTINST3("orrs.w r1, r2, r3, asr #15", 0,          -1,         r1, r2, r3, cv);
   4346    TESTINST3("orrs.w r1, r2, r3, asr #31", 0,          -1,         r1, r2, r3, cv);
   4347    TESTINST3("orr.w  r1, r2, r3, lsl #0 ", 0,          -1,         r1, r2, r3, cv);
   4348    TESTINST3("orr.w  r1, r2, r3, lsl #1 ", 0,          -1,         r1, r2, r3, cv);
   4349    TESTINST3("orr.w  r1, r2, r3, lsl #15", 0,          -1,         r1, r2, r3, cv);
   4350    TESTINST3("orr.w  r1, r2, r3, lsl #31", 0,          -1,         r1, r2, r3, cv);
   4351    TESTINST3("orr.w  r1, r2, r3, lsr #0 ", 0,          -1,         r1, r2, r3, cv);
   4352    TESTINST3("orr.w  r1, r2, r3, lsr #1 ", 0,          -1,         r1, r2, r3, cv);
   4353    TESTINST3("orr.w  r1, r2, r3, lsr #15", 0,          -1,         r1, r2, r3, cv);
   4354    TESTINST3("orr.w  r1, r2, r3, lsr #31", 0,          -1,         r1, r2, r3, cv);
   4355    TESTINST3("orr.w  r1, r2, r3, asr #0 ", 0,          -1,         r1, r2, r3, cv);
   4356    TESTINST3("orr.w  r1, r2, r3, asr #1 ", 0,          -1,         r1, r2, r3, cv);
   4357    TESTINST3("orr.w  r1, r2, r3, asr #15", 0,          -1,         r1, r2, r3, cv);
   4358    TESTINST3("orr.w  r1, r2, r3, asr #31", 0,          -1,         r1, r2, r3, cv);
   4359    TESTINST3("orrs.w r1, r2, r3, lsl #0 ", 0,          0x80000000, r1, r2, r3, cv);
   4360    TESTINST3("orrs.w r1, r2, r3, lsl #1 ", 0,          0x80000000, r1, r2, r3, cv);
   4361    TESTINST3("orrs.w r1, r2, r3, lsl #15", 0,          0x80000000, r1, r2, r3, cv);
   4362    TESTINST3("orrs.w r1, r2, r3, lsl #31", 0,          0x80000000, r1, r2, r3, cv);
   4363    TESTINST3("orrs.w r1, r2, r3, lsr #0 ", 0,          0x80000000, r1, r2, r3, cv);
   4364    TESTINST3("orrs.w r1, r2, r3, lsr #1 ", 0,          0x80000000, r1, r2, r3, cv);
   4365    TESTINST3("orrs.w r1, r2, r3, lsr #15", 0,          0x80000000, r1, r2, r3, cv);
   4366    TESTINST3("orrs.w r1, r2, r3, lsr #31", 0,          0x80000000, r1, r2, r3, cv);
   4367    TESTINST3("orrs.w r1, r2, r3, asr #0 ", 0,          0x80000000, r1, r2, r3, cv);
   4368    TESTINST3("orrs.w r1, r2, r3, asr #1 ", 0,          0x80000000, r1, r2, r3, cv);
   4369    TESTINST3("orrs.w r1, r2, r3, asr #15", 0,          0x80000000, r1, r2, r3, cv);
   4370    TESTINST3("orrs.w r1, r2, r3, asr #31", 0,          0x80000000, r1, r2, r3, cv);
   4371    TESTINST3("orr.w  r1, r2, r3, lsl #0 ", 0,          0x80000000, r1, r2, r3, cv);
   4372    TESTINST3("orr.w  r1, r2, r3, lsl #1 ", 0,          0x80000000, r1, r2, r3, cv);
   4373    TESTINST3("orr.w  r1, r2, r3, lsl #15", 0,          0x80000000, r1, r2, r3, cv);
   4374    TESTINST3("orr.w  r1, r2, r3, lsl #31", 0,          0x80000000, r1, r2, r3, cv);
   4375    TESTINST3("orr.w  r1, r2, r3, lsr #0 ", 0,          0x80000000, r1, r2, r3, cv);
   4376    TESTINST3("orr.w  r1, r2, r3, lsr #1 ", 0,          0x80000000, r1, r2, r3, cv);
   4377    TESTINST3("orr.w  r1, r2, r3, lsr #15", 0,          0x80000000, r1, r2, r3, cv);
   4378    TESTINST3("orr.w  r1, r2, r3, lsr #31", 0,          0x80000000, r1, r2, r3, cv);
   4379    TESTINST3("orr.w  r1, r2, r3, asr #0 ", 0,          0x80000000, r1, r2, r3, cv);
   4380    TESTINST3("orr.w  r1, r2, r3, asr #1 ", 0,          0x80000000, r1, r2, r3, cv);
   4381    TESTINST3("orr.w  r1, r2, r3, asr #15", 0,          0x80000000, r1, r2, r3, cv);
   4382    TESTINST3("orr.w  r1, r2, r3, asr #31", 0,          0x80000000, r1, r2, r3, cv);
   4383    TESTINST3("orrs.w r1, r2, r3, lsl #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   4384    TESTINST3("orrs.w r1, r2, r3, lsl #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   4385    TESTINST3("orrs.w r1, r2, r3, lsl #15", 0x80000000, 0,          r1, r2, r3, cv);
   4386    TESTINST3("orrs.w r1, r2, r3, lsl #31", 0x80000000, 0,          r1, r2, r3, cv);
   4387    TESTINST3("orrs.w r1, r2, r3, lsr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   4388    TESTINST3("orrs.w r1, r2, r3, lsr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   4389    TESTINST3("orrs.w r1, r2, r3, lsr #15", 0x80000000, 0,          r1, r2, r3, cv);
   4390    TESTINST3("orrs.w r1, r2, r3, lsr #31", 0x80000000, 0,          r1, r2, r3, cv);
   4391    TESTINST3("orrs.w r1, r2, r3, asr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   4392    TESTINST3("orrs.w r1, r2, r3, asr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   4393    TESTINST3("orrs.w r1, r2, r3, asr #15", 0x80000000, 0,          r1, r2, r3, cv);
   4394    TESTINST3("orrs.w r1, r2, r3, asr #31", 0x80000000, 0,          r1, r2, r3, cv);
   4395    TESTINST3("orr.w  r1, r2, r3, lsl #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   4396    TESTINST3("orr.w  r1, r2, r3, lsl #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   4397    TESTINST3("orr.w  r1, r2, r3, lsl #15", 0x80000000, 0,          r1, r2, r3, cv);
   4398    TESTINST3("orr.w  r1, r2, r3, lsl #31", 0x80000000, 0,          r1, r2, r3, cv);
   4399    TESTINST3("orr.w  r1, r2, r3, lsr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   4400    TESTINST3("orr.w  r1, r2, r3, lsr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   4401    TESTINST3("orr.w  r1, r2, r3, lsr #15", 0x80000000, 0,          r1, r2, r3, cv);
   4402    TESTINST3("orr.w  r1, r2, r3, lsr #31", 0x80000000, 0,          r1, r2, r3, cv);
   4403    TESTINST3("orr.w  r1, r2, r3, asr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   4404    TESTINST3("orr.w  r1, r2, r3, asr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   4405    TESTINST3("orr.w  r1, r2, r3, asr #15", 0x80000000, 0,          r1, r2, r3, cv);
   4406    TESTINST3("orr.w  r1, r2, r3, asr #31", 0x80000000, 0,          r1, r2, r3, cv);
   4407    TESTINST3("orrs.w r1, r2, r3, lsl #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4408    TESTINST3("orrs.w r1, r2, r3, lsl #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4409    TESTINST3("orrs.w r1, r2, r3, lsl #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4410    TESTINST3("orrs.w r1, r2, r3, lsl #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4411    TESTINST3("orrs.w r1, r2, r3, lsr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4412    TESTINST3("orrs.w r1, r2, r3, lsr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4413    TESTINST3("orrs.w r1, r2, r3, lsr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4414    TESTINST3("orrs.w r1, r2, r3, lsr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4415    TESTINST3("orrs.w r1, r2, r3, asr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4416    TESTINST3("orrs.w r1, r2, r3, asr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4417    TESTINST3("orrs.w r1, r2, r3, asr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4418    TESTINST3("orrs.w r1, r2, r3, asr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4419    TESTINST3("orr.w  r1, r2, r3, lsl #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4420    TESTINST3("orr.w  r1, r2, r3, lsl #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4421    TESTINST3("orr.w  r1, r2, r3, lsl #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4422    TESTINST3("orr.w  r1, r2, r3, lsl #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4423    TESTINST3("orr.w  r1, r2, r3, lsr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4424    TESTINST3("orr.w  r1, r2, r3, lsr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4425    TESTINST3("orr.w  r1, r2, r3, lsr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4426    TESTINST3("orr.w  r1, r2, r3, lsr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4427    TESTINST3("orr.w  r1, r2, r3, asr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4428    TESTINST3("orr.w  r1, r2, r3, asr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4429    TESTINST3("orr.w  r1, r2, r3, asr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4430    TESTINST3("orr.w  r1, r2, r3, asr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4431    TESTINST3("orrs.w r1, r2, r3, lsl #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4432    TESTINST3("orrs.w r1, r2, r3, lsl #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4433    TESTINST3("orrs.w r1, r2, r3, lsl #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4434    TESTINST3("orrs.w r1, r2, r3, lsl #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4435    TESTINST3("orrs.w r1, r2, r3, lsr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4436    TESTINST3("orrs.w r1, r2, r3, lsr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4437    TESTINST3("orrs.w r1, r2, r3, lsr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4438    TESTINST3("orrs.w r1, r2, r3, lsr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4439    TESTINST3("orrs.w r1, r2, r3, asr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4440    TESTINST3("orrs.w r1, r2, r3, asr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4441    TESTINST3("orrs.w r1, r2, r3, asr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4442    TESTINST3("orrs.w r1, r2, r3, asr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4443    TESTINST3("orr.w  r1, r2, r3, lsl #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4444    TESTINST3("orr.w  r1, r2, r3, lsl #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4445    TESTINST3("orr.w  r1, r2, r3, lsl #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4446    TESTINST3("orr.w  r1, r2, r3, lsl #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4447    TESTINST3("orr.w  r1, r2, r3, lsr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4448    TESTINST3("orr.w  r1, r2, r3, lsr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4449    TESTINST3("orr.w  r1, r2, r3, lsr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4450    TESTINST3("orr.w  r1, r2, r3, lsr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4451    TESTINST3("orr.w  r1, r2, r3, asr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4452    TESTINST3("orr.w  r1, r2, r3, asr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4453    TESTINST3("orr.w  r1, r2, r3, asr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4454    TESTINST3("orr.w  r1, r2, r3, asr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4455    TESTINST3("orrs.w r1, r2, r3, lsl #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4456    TESTINST3("orrs.w r1, r2, r3, lsl #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4457    TESTINST3("orrs.w r1, r2, r3, lsl #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4458    TESTINST3("orrs.w r1, r2, r3, lsl #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4459    TESTINST3("orrs.w r1, r2, r3, lsr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4460    TESTINST3("orrs.w r1, r2, r3, lsr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4461    TESTINST3("orrs.w r1, r2, r3, lsr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4462    TESTINST3("orrs.w r1, r2, r3, lsr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4463    TESTINST3("orrs.w r1, r2, r3, asr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4464    TESTINST3("orrs.w r1, r2, r3, asr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4465    TESTINST3("orrs.w r1, r2, r3, asr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4466    TESTINST3("orrs.w r1, r2, r3, asr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4467    TESTINST3("orr.w  r1, r2, r3, lsl #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4468    TESTINST3("orr.w  r1, r2, r3, lsl #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4469    TESTINST3("orr.w  r1, r2, r3, lsl #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4470    TESTINST3("orr.w  r1, r2, r3, lsl #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4471    TESTINST3("orr.w  r1, r2, r3, lsr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4472    TESTINST3("orr.w  r1, r2, r3, lsr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4473    TESTINST3("orr.w  r1, r2, r3, lsr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4474    TESTINST3("orr.w  r1, r2, r3, lsr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4475    TESTINST3("orr.w  r1, r2, r3, asr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4476    TESTINST3("orr.w  r1, r2, r3, asr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4477    TESTINST3("orr.w  r1, r2, r3, asr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4478    TESTINST3("orr.w  r1, r2, r3, asr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4479    TESTINST3("orrs.w r1, r2, r3, lsl #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4480    TESTINST3("orrs.w r1, r2, r3, lsl #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4481    TESTINST3("orrs.w r1, r2, r3, lsl #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4482    TESTINST3("orrs.w r1, r2, r3, lsl #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4483    TESTINST3("orrs.w r1, r2, r3, lsr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4484    TESTINST3("orrs.w r1, r2, r3, lsr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4485    TESTINST3("orrs.w r1, r2, r3, lsr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4486    TESTINST3("orrs.w r1, r2, r3, lsr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4487    TESTINST3("orrs.w r1, r2, r3, asr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4488    TESTINST3("orrs.w r1, r2, r3, asr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4489    TESTINST3("orrs.w r1, r2, r3, asr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4490    TESTINST3("orrs.w r1, r2, r3, asr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4491    TESTINST3("orr.w  r1, r2, r3, lsl #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4492    TESTINST3("orr.w  r1, r2, r3, lsl #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4493    TESTINST3("orr.w  r1, r2, r3, lsl #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4494    TESTINST3("orr.w  r1, r2, r3, lsl #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4495    TESTINST3("orr.w  r1, r2, r3, lsr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4496    TESTINST3("orr.w  r1, r2, r3, lsr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4497    TESTINST3("orr.w  r1, r2, r3, lsr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4498    TESTINST3("orr.w  r1, r2, r3, lsr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4499    TESTINST3("orr.w  r1, r2, r3, asr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4500    TESTINST3("orr.w  r1, r2, r3, asr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4501    TESTINST3("orr.w  r1, r2, r3, asr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4502    TESTINST3("orr.w  r1, r2, r3, asr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4503    TESTCARRYEND
   4504 
   4505    printf("EOR{S}.W Rd, Rn, Rm, {shift}\n");
   4506    TESTCARRY
   4507    TESTINST3("eors.w r1, r2, r3, lsl #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4508    TESTINST3("eors.w r1, r2, r3, lsl #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4509    TESTINST3("eors.w r1, r2, r3, lsl #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4510    TESTINST3("eors.w r1, r2, r3, lsl #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4511    TESTINST3("eors.w r1, r2, r3, lsr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4512    TESTINST3("eors.w r1, r2, r3, lsr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4513    TESTINST3("eors.w r1, r2, r3, lsr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4514    TESTINST3("eors.w r1, r2, r3, lsr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4515    TESTINST3("eors.w r1, r2, r3, asr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4516    TESTINST3("eors.w r1, r2, r3, asr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4517    TESTINST3("eors.w r1, r2, r3, asr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4518    TESTINST3("eors.w r1, r2, r3, asr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4519    TESTINST3("eor.w  r1, r2, r3, lsl #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4520    TESTINST3("eor.w  r1, r2, r3, lsl #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4521    TESTINST3("eor.w  r1, r2, r3, lsl #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4522    TESTINST3("eor.w  r1, r2, r3, lsl #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4523    TESTINST3("eor.w  r1, r2, r3, lsr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4524    TESTINST3("eor.w  r1, r2, r3, lsr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4525    TESTINST3("eor.w  r1, r2, r3, lsr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4526    TESTINST3("eor.w  r1, r2, r3, lsr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4527    TESTINST3("eor.w  r1, r2, r3, asr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4528    TESTINST3("eor.w  r1, r2, r3, asr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4529    TESTINST3("eor.w  r1, r2, r3, asr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4530    TESTINST3("eor.w  r1, r2, r3, asr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4531    TESTINST3("eors.w r1, r2, r3, lsl #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4532    TESTINST3("eors.w r1, r2, r3, lsl #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4533    TESTINST3("eors.w r1, r2, r3, lsl #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4534    TESTINST3("eors.w r1, r2, r3, lsl #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4535    TESTINST3("eors.w r1, r2, r3, lsr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4536    TESTINST3("eors.w r1, r2, r3, lsr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4537    TESTINST3("eors.w r1, r2, r3, lsr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4538    TESTINST3("eors.w r1, r2, r3, lsr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4539    TESTINST3("eors.w r1, r2, r3, asr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4540    TESTINST3("eors.w r1, r2, r3, asr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4541    TESTINST3("eors.w r1, r2, r3, asr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4542    TESTINST3("eors.w r1, r2, r3, asr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4543    TESTINST3("eor.w  r1, r2, r3, lsl #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4544    TESTINST3("eor.w  r1, r2, r3, lsl #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4545    TESTINST3("eor.w  r1, r2, r3, lsl #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4546    TESTINST3("eor.w  r1, r2, r3, lsl #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4547    TESTINST3("eor.w  r1, r2, r3, lsr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4548    TESTINST3("eor.w  r1, r2, r3, lsr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4549    TESTINST3("eor.w  r1, r2, r3, lsr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4550    TESTINST3("eor.w  r1, r2, r3, lsr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4551    TESTINST3("eor.w  r1, r2, r3, asr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4552    TESTINST3("eor.w  r1, r2, r3, asr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4553    TESTINST3("eor.w  r1, r2, r3, asr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4554    TESTINST3("eor.w  r1, r2, r3, asr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4555    TESTINST3("eors.w r1, r2, r3, lsl #0 ", 0,          0,          r1, r2, r3, cv);
   4556    TESTINST3("eors.w r1, r2, r3, lsl #1 ", 0,          0,          r1, r2, r3, cv);
   4557    TESTINST3("eors.w r1, r2, r3, lsl #15", 0,          0,          r1, r2, r3, cv);
   4558    TESTINST3("eors.w r1, r2, r3, lsl #31", 0,          0,          r1, r2, r3, cv);
   4559    TESTINST3("eors.w r1, r2, r3, lsr #0 ", 0,          0,          r1, r2, r3, cv);
   4560    TESTINST3("eors.w r1, r2, r3, lsr #1 ", 0,          0,          r1, r2, r3, cv);
   4561    TESTINST3("eors.w r1, r2, r3, lsr #15", 0,          0,          r1, r2, r3, cv);
   4562    TESTINST3("eors.w r1, r2, r3, lsr #31", 0,          0,          r1, r2, r3, cv);
   4563    TESTINST3("eors.w r1, r2, r3, asr #0 ", 0,          0,          r1, r2, r3, cv);
   4564    TESTINST3("eors.w r1, r2, r3, asr #1 ", 0,          0,          r1, r2, r3, cv);
   4565    TESTINST3("eors.w r1, r2, r3, asr #15", 0,          0,          r1, r2, r3, cv);
   4566    TESTINST3("eors.w r1, r2, r3, asr #31", 0,          0,          r1, r2, r3, cv);
   4567    TESTINST3("eor.w  r1, r2, r3, lsl #0 ", 0,          0,          r1, r2, r3, cv);
   4568    TESTINST3("eor.w  r1, r2, r3, lsl #1 ", 0,          0,          r1, r2, r3, cv);
   4569    TESTINST3("eor.w  r1, r2, r3, lsl #15", 0,          0,          r1, r2, r3, cv);
   4570    TESTINST3("eor.w  r1, r2, r3, lsl #31", 0,          0,          r1, r2, r3, cv);
   4571    TESTINST3("eor.w  r1, r2, r3, lsr #0 ", 0,          0,          r1, r2, r3, cv);
   4572    TESTINST3("eor.w  r1, r2, r3, lsr #1 ", 0,          0,          r1, r2, r3, cv);
   4573    TESTINST3("eor.w  r1, r2, r3, lsr #15", 0,          0,          r1, r2, r3, cv);
   4574    TESTINST3("eor.w  r1, r2, r3, lsr #31", 0,          0,          r1, r2, r3, cv);
   4575    TESTINST3("eor.w  r1, r2, r3, asr #0 ", 0,          0,          r1, r2, r3, cv);
   4576    TESTINST3("eor.w  r1, r2, r3, asr #1 ", 0,          0,          r1, r2, r3, cv);
   4577    TESTINST3("eor.w  r1, r2, r3, asr #15", 0,          0,          r1, r2, r3, cv);
   4578    TESTINST3("eor.w  r1, r2, r3, asr #31", 0,          0,          r1, r2, r3, cv);
   4579    TESTINST3("eors.w r1, r2, r3, lsl #0 ", 1,          0,          r1, r2, r3, cv);
   4580    TESTINST3("eors.w r1, r2, r3, lsl #1 ", 1,          0,          r1, r2, r3, cv);
   4581    TESTINST3("eors.w r1, r2, r3, lsl #15", 1,          0,          r1, r2, r3, cv);
   4582    TESTINST3("eors.w r1, r2, r3, lsl #31", 1,          0,          r1, r2, r3, cv);
   4583    TESTINST3("eors.w r1, r2, r3, lsr #0 ", 1,          0,          r1, r2, r3, cv);
   4584    TESTINST3("eors.w r1, r2, r3, lsr #1 ", 1,          0,          r1, r2, r3, cv);
   4585    TESTINST3("eors.w r1, r2, r3, lsr #15", 1,          0,          r1, r2, r3, cv);
   4586    TESTINST3("eors.w r1, r2, r3, lsr #31", 1,          0,          r1, r2, r3, cv);
   4587    TESTINST3("eors.w r1, r2, r3, asr #0 ", 1,          0,          r1, r2, r3, cv);
   4588    TESTINST3("eors.w r1, r2, r3, asr #1 ", 1,          0,          r1, r2, r3, cv);
   4589    TESTINST3("eors.w r1, r2, r3, asr #15", 1,          0,          r1, r2, r3, cv);
   4590    TESTINST3("eors.w r1, r2, r3, asr #31", 1,          0,          r1, r2, r3, cv);
   4591    TESTINST3("eor.w  r1, r2, r3, lsl #0 ", 1,          0,          r1, r2, r3, cv);
   4592    TESTINST3("eor.w  r1, r2, r3, lsl #1 ", 1,          0,          r1, r2, r3, cv);
   4593    TESTINST3("eor.w  r1, r2, r3, lsl #15", 1,          0,          r1, r2, r3, cv);
   4594    TESTINST3("eor.w  r1, r2, r3, lsl #31", 1,          0,          r1, r2, r3, cv);
   4595    TESTINST3("eor.w  r1, r2, r3, lsr #0 ", 1,          0,          r1, r2, r3, cv);
   4596    TESTINST3("eor.w  r1, r2, r3, lsr #1 ", 1,          0,          r1, r2, r3, cv);
   4597    TESTINST3("eor.w  r1, r2, r3, lsr #15", 1,          0,          r1, r2, r3, cv);
   4598    TESTINST3("eor.w  r1, r2, r3, lsr #31", 1,          0,          r1, r2, r3, cv);
   4599    TESTINST3("eor.w  r1, r2, r3, asr #0 ", 1,          0,          r1, r2, r3, cv);
   4600    TESTINST3("eor.w  r1, r2, r3, asr #1 ", 1,          0,          r1, r2, r3, cv);
   4601    TESTINST3("eor.w  r1, r2, r3, asr #15", 1,          0,          r1, r2, r3, cv);
   4602    TESTINST3("eor.w  r1, r2, r3, asr #31", 1,          0,          r1, r2, r3, cv);
   4603    TESTINST3("eors.w r1, r2, r3, lsl #0 ", 0,          1,          r1, r2, r3, cv);
   4604    TESTINST3("eors.w r1, r2, r3, lsl #1 ", 0,          1,          r1, r2, r3, cv);
   4605    TESTINST3("eors.w r1, r2, r3, lsl #15", 0,          1,          r1, r2, r3, cv);
   4606    TESTINST3("eors.w r1, r2, r3, lsl #31", 0,          1,          r1, r2, r3, cv);
   4607    TESTINST3("eors.w r1, r2, r3, lsr #0 ", 0,          1,          r1, r2, r3, cv);
   4608    TESTINST3("eors.w r1, r2, r3, lsr #1 ", 0,          1,          r1, r2, r3, cv);
   4609    TESTINST3("eors.w r1, r2, r3, lsr #15", 0,          1,          r1, r2, r3, cv);
   4610    TESTINST3("eors.w r1, r2, r3, lsr #31", 0,          1,          r1, r2, r3, cv);
   4611    TESTINST3("eors.w r1, r2, r3, asr #0 ", 0,          1,          r1, r2, r3, cv);
   4612    TESTINST3("eors.w r1, r2, r3, asr #1 ", 0,          1,          r1, r2, r3, cv);
   4613    TESTINST3("eors.w r1, r2, r3, asr #15", 0,          1,          r1, r2, r3, cv);
   4614    TESTINST3("eors.w r1, r2, r3, asr #31", 0,          1,          r1, r2, r3, cv);
   4615    TESTINST3("eor.w  r1, r2, r3, lsl #0 ", 0,          1,          r1, r2, r3, cv);
   4616    TESTINST3("eor.w  r1, r2, r3, lsl #1 ", 0,          1,          r1, r2, r3, cv);
   4617    TESTINST3("eor.w  r1, r2, r3, lsl #15", 0,          1,          r1, r2, r3, cv);
   4618    TESTINST3("eor.w  r1, r2, r3, lsl #31", 0,          1,          r1, r2, r3, cv);
   4619    TESTINST3("eor.w  r1, r2, r3, lsr #0 ", 0,          1,          r1, r2, r3, cv);
   4620    TESTINST3("eor.w  r1, r2, r3, lsr #1 ", 0,          1,          r1, r2, r3, cv);
   4621    TESTINST3("eor.w  r1, r2, r3, lsr #15", 0,          1,          r1, r2, r3, cv);
   4622    TESTINST3("eor.w  r1, r2, r3, lsr #31", 0,          1,          r1, r2, r3, cv);
   4623    TESTINST3("eor.w  r1, r2, r3, asr #0 ", 0,          1,          r1, r2, r3, cv);
   4624    TESTINST3("eor.w  r1, r2, r3, asr #1 ", 0,          1,          r1, r2, r3, cv);
   4625    TESTINST3("eor.w  r1, r2, r3, asr #15", 0,          1,          r1, r2, r3, cv);
   4626    TESTINST3("eor.w  r1, r2, r3, asr #31", 0,          1,          r1, r2, r3, cv);
   4627    TESTINST3("eors.w r1, r2, r3, lsl #0 ", -1,         0,          r1, r2, r3, cv);
   4628    TESTINST3("eors.w r1, r2, r3, lsl #1 ", -1,         0,          r1, r2, r3, cv);
   4629    TESTINST3("eors.w r1, r2, r3, lsl #15", -1,         0,          r1, r2, r3, cv);
   4630    TESTINST3("eors.w r1, r2, r3, lsl #31", -1,         0,          r1, r2, r3, cv);
   4631    TESTINST3("eors.w r1, r2, r3, lsr #0 ", -1,         0,          r1, r2, r3, cv);
   4632    TESTINST3("eors.w r1, r2, r3, lsr #1 ", -1,         0,          r1, r2, r3, cv);
   4633    TESTINST3("eors.w r1, r2, r3, lsr #15", -1,         0,          r1, r2, r3, cv);
   4634    TESTINST3("eors.w r1, r2, r3, lsr #31", -1,         0,          r1, r2, r3, cv);
   4635    TESTINST3("eors.w r1, r2, r3, asr #0 ", -1,         0,          r1, r2, r3, cv);
   4636    TESTINST3("eors.w r1, r2, r3, asr #1 ", -1,         0,          r1, r2, r3, cv);
   4637    TESTINST3("eors.w r1, r2, r3, asr #15", -1,         0,          r1, r2, r3, cv);
   4638    TESTINST3("eors.w r1, r2, r3, asr #31", -1,         0,          r1, r2, r3, cv);
   4639    TESTINST3("eor.w  r1, r2, r3, lsl #0 ", -1,         0,          r1, r2, r3, cv);
   4640    TESTINST3("eor.w  r1, r2, r3, lsl #1 ", -1,         0,          r1, r2, r3, cv);
   4641    TESTINST3("eor.w  r1, r2, r3, lsl #15", -1,         0,          r1, r2, r3, cv);
   4642    TESTINST3("eor.w  r1, r2, r3, lsl #31", -1,         0,          r1, r2, r3, cv);
   4643    TESTINST3("eor.w  r1, r2, r3, lsr #0 ", -1,         0,          r1, r2, r3, cv);
   4644    TESTINST3("eor.w  r1, r2, r3, lsr #1 ", -1,         0,          r1, r2, r3, cv);
   4645    TESTINST3("eor.w  r1, r2, r3, lsr #15", -1,         0,          r1, r2, r3, cv);
   4646    TESTINST3("eor.w  r1, r2, r3, lsr #31", -1,         0,          r1, r2, r3, cv);
   4647    TESTINST3("eor.w  r1, r2, r3, asr #0 ", -1,         0,          r1, r2, r3, cv);
   4648    TESTINST3("eor.w  r1, r2, r3, asr #1 ", -1,         0,          r1, r2, r3, cv);
   4649    TESTINST3("eor.w  r1, r2, r3, asr #15", -1,         0,          r1, r2, r3, cv);
   4650    TESTINST3("eor.w  r1, r2, r3, asr #31", -1,         0,          r1, r2, r3, cv);
   4651    TESTINST3("eors.w r1, r2, r3, lsl #0 ", 0,          -1,         r1, r2, r3, cv);
   4652    TESTINST3("eors.w r1, r2, r3, lsl #1 ", 0,          -1,         r1, r2, r3, cv);
   4653    TESTINST3("eors.w r1, r2, r3, lsl #15", 0,          -1,         r1, r2, r3, cv);
   4654    TESTINST3("eors.w r1, r2, r3, lsl #31", 0,          -1,         r1, r2, r3, cv);
   4655    TESTINST3("eors.w r1, r2, r3, lsr #0 ", 0,          -1,         r1, r2, r3, cv);
   4656    TESTINST3("eors.w r1, r2, r3, lsr #1 ", 0,          -1,         r1, r2, r3, cv);
   4657    TESTINST3("eors.w r1, r2, r3, lsr #15", 0,          -1,         r1, r2, r3, cv);
   4658    TESTINST3("eors.w r1, r2, r3, lsr #31", 0,          -1,         r1, r2, r3, cv);
   4659    TESTINST3("eors.w r1, r2, r3, asr #0 ", 0,          -1,         r1, r2, r3, cv);
   4660    TESTINST3("eors.w r1, r2, r3, asr #1 ", 0,          -1,         r1, r2, r3, cv);
   4661    TESTINST3("eors.w r1, r2, r3, asr #15", 0,          -1,         r1, r2, r3, cv);
   4662    TESTINST3("eors.w r1, r2, r3, asr #31", 0,          -1,         r1, r2, r3, cv);
   4663    TESTINST3("eor.w  r1, r2, r3, lsl #0 ", 0,          -1,         r1, r2, r3, cv);
   4664    TESTINST3("eor.w  r1, r2, r3, lsl #1 ", 0,          -1,         r1, r2, r3, cv);
   4665    TESTINST3("eor.w  r1, r2, r3, lsl #15", 0,          -1,         r1, r2, r3, cv);
   4666    TESTINST3("eor.w  r1, r2, r3, lsl #31", 0,          -1,         r1, r2, r3, cv);
   4667    TESTINST3("eor.w  r1, r2, r3, lsr #0 ", 0,          -1,         r1, r2, r3, cv);
   4668    TESTINST3("eor.w  r1, r2, r3, lsr #1 ", 0,          -1,         r1, r2, r3, cv);
   4669    TESTINST3("eor.w  r1, r2, r3, lsr #15", 0,          -1,         r1, r2, r3, cv);
   4670    TESTINST3("eor.w  r1, r2, r3, lsr #31", 0,          -1,         r1, r2, r3, cv);
   4671    TESTINST3("eor.w  r1, r2, r3, asr #0 ", 0,          -1,         r1, r2, r3, cv);
   4672    TESTINST3("eor.w  r1, r2, r3, asr #1 ", 0,          -1,         r1, r2, r3, cv);
   4673    TESTINST3("eor.w  r1, r2, r3, asr #15", 0,          -1,         r1, r2, r3, cv);
   4674    TESTINST3("eor.w  r1, r2, r3, asr #31", 0,          -1,         r1, r2, r3, cv);
   4675    TESTINST3("eors.w r1, r2, r3, lsl #0 ", 0,          0x80000000, r1, r2, r3, cv);
   4676    TESTINST3("eors.w r1, r2, r3, lsl #1 ", 0,          0x80000000, r1, r2, r3, cv);
   4677    TESTINST3("eors.w r1, r2, r3, lsl #15", 0,          0x80000000, r1, r2, r3, cv);
   4678    TESTINST3("eors.w r1, r2, r3, lsl #31", 0,          0x80000000, r1, r2, r3, cv);
   4679    TESTINST3("eors.w r1, r2, r3, lsr #0 ", 0,          0x80000000, r1, r2, r3, cv);
   4680    TESTINST3("eors.w r1, r2, r3, lsr #1 ", 0,          0x80000000, r1, r2, r3, cv);
   4681    TESTINST3("eors.w r1, r2, r3, lsr #15", 0,          0x80000000, r1, r2, r3, cv);
   4682    TESTINST3("eors.w r1, r2, r3, lsr #31", 0,          0x80000000, r1, r2, r3, cv);
   4683    TESTINST3("eors.w r1, r2, r3, asr #0 ", 0,          0x80000000, r1, r2, r3, cv);
   4684    TESTINST3("eors.w r1, r2, r3, asr #1 ", 0,          0x80000000, r1, r2, r3, cv);
   4685    TESTINST3("eors.w r1, r2, r3, asr #15", 0,          0x80000000, r1, r2, r3, cv);
   4686    TESTINST3("eors.w r1, r2, r3, asr #31", 0,          0x80000000, r1, r2, r3, cv);
   4687    TESTINST3("eor.w  r1, r2, r3, lsl #0 ", 0,          0x80000000, r1, r2, r3, cv);
   4688    TESTINST3("eor.w  r1, r2, r3, lsl #1 ", 0,          0x80000000, r1, r2, r3, cv);
   4689    TESTINST3("eor.w  r1, r2, r3, lsl #15", 0,          0x80000000, r1, r2, r3, cv);
   4690    TESTINST3("eor.w  r1, r2, r3, lsl #31", 0,          0x80000000, r1, r2, r3, cv);
   4691    TESTINST3("eor.w  r1, r2, r3, lsr #0 ", 0,          0x80000000, r1, r2, r3, cv);
   4692    TESTINST3("eor.w  r1, r2, r3, lsr #1 ", 0,          0x80000000, r1, r2, r3, cv);
   4693    TESTINST3("eor.w  r1, r2, r3, lsr #15", 0,          0x80000000, r1, r2, r3, cv);
   4694    TESTINST3("eor.w  r1, r2, r3, lsr #31", 0,          0x80000000, r1, r2, r3, cv);
   4695    TESTINST3("eor.w  r1, r2, r3, asr #0 ", 0,          0x80000000, r1, r2, r3, cv);
   4696    TESTINST3("eor.w  r1, r2, r3, asr #1 ", 0,          0x80000000, r1, r2, r3, cv);
   4697    TESTINST3("eor.w  r1, r2, r3, asr #15", 0,          0x80000000, r1, r2, r3, cv);
   4698    TESTINST3("eor.w  r1, r2, r3, asr #31", 0,          0x80000000, r1, r2, r3, cv);
   4699    TESTINST3("eors.w r1, r2, r3, lsl #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   4700    TESTINST3("eors.w r1, r2, r3, lsl #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   4701    TESTINST3("eors.w r1, r2, r3, lsl #15", 0x80000000, 0,          r1, r2, r3, cv);
   4702    TESTINST3("eors.w r1, r2, r3, lsl #31", 0x80000000, 0,          r1, r2, r3, cv);
   4703    TESTINST3("eors.w r1, r2, r3, lsr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   4704    TESTINST3("eors.w r1, r2, r3, lsr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   4705    TESTINST3("eors.w r1, r2, r3, lsr #15", 0x80000000, 0,          r1, r2, r3, cv);
   4706    TESTINST3("eors.w r1, r2, r3, lsr #31", 0x80000000, 0,          r1, r2, r3, cv);
   4707    TESTINST3("eors.w r1, r2, r3, asr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   4708    TESTINST3("eors.w r1, r2, r3, asr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   4709    TESTINST3("eors.w r1, r2, r3, asr #15", 0x80000000, 0,          r1, r2, r3, cv);
   4710    TESTINST3("eors.w r1, r2, r3, asr #31", 0x80000000, 0,          r1, r2, r3, cv);
   4711    TESTINST3("eor.w  r1, r2, r3, lsl #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   4712    TESTINST3("eor.w  r1, r2, r3, lsl #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   4713    TESTINST3("eor.w  r1, r2, r3, lsl #15", 0x80000000, 0,          r1, r2, r3, cv);
   4714    TESTINST3("eor.w  r1, r2, r3, lsl #31", 0x80000000, 0,          r1, r2, r3, cv);
   4715    TESTINST3("eor.w  r1, r2, r3, lsr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   4716    TESTINST3("eor.w  r1, r2, r3, lsr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   4717    TESTINST3("eor.w  r1, r2, r3, lsr #15", 0x80000000, 0,          r1, r2, r3, cv);
   4718    TESTINST3("eor.w  r1, r2, r3, lsr #31", 0x80000000, 0,          r1, r2, r3, cv);
   4719    TESTINST3("eor.w  r1, r2, r3, asr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   4720    TESTINST3("eor.w  r1, r2, r3, asr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   4721    TESTINST3("eor.w  r1, r2, r3, asr #15", 0x80000000, 0,          r1, r2, r3, cv);
   4722    TESTINST3("eor.w  r1, r2, r3, asr #31", 0x80000000, 0,          r1, r2, r3, cv);
   4723    TESTINST3("eors.w r1, r2, r3, lsl #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4724    TESTINST3("eors.w r1, r2, r3, lsl #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4725    TESTINST3("eors.w r1, r2, r3, lsl #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4726    TESTINST3("eors.w r1, r2, r3, lsl #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4727    TESTINST3("eors.w r1, r2, r3, lsr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4728    TESTINST3("eors.w r1, r2, r3, lsr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4729    TESTINST3("eors.w r1, r2, r3, lsr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4730    TESTINST3("eors.w r1, r2, r3, lsr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4731    TESTINST3("eors.w r1, r2, r3, asr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4732    TESTINST3("eors.w r1, r2, r3, asr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4733    TESTINST3("eors.w r1, r2, r3, asr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4734    TESTINST3("eors.w r1, r2, r3, asr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4735    TESTINST3("eor.w  r1, r2, r3, lsl #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4736    TESTINST3("eor.w  r1, r2, r3, lsl #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4737    TESTINST3("eor.w  r1, r2, r3, lsl #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4738    TESTINST3("eor.w  r1, r2, r3, lsl #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4739    TESTINST3("eor.w  r1, r2, r3, lsr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4740    TESTINST3("eor.w  r1, r2, r3, lsr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4741    TESTINST3("eor.w  r1, r2, r3, lsr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4742    TESTINST3("eor.w  r1, r2, r3, lsr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4743    TESTINST3("eor.w  r1, r2, r3, asr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4744    TESTINST3("eor.w  r1, r2, r3, asr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4745    TESTINST3("eor.w  r1, r2, r3, asr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4746    TESTINST3("eor.w  r1, r2, r3, asr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   4747    TESTINST3("eors.w r1, r2, r3, lsl #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4748    TESTINST3("eors.w r1, r2, r3, lsl #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4749    TESTINST3("eors.w r1, r2, r3, lsl #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4750    TESTINST3("eors.w r1, r2, r3, lsl #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4751    TESTINST3("eors.w r1, r2, r3, lsr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4752    TESTINST3("eors.w r1, r2, r3, lsr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4753    TESTINST3("eors.w r1, r2, r3, lsr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4754    TESTINST3("eors.w r1, r2, r3, lsr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4755    TESTINST3("eors.w r1, r2, r3, asr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4756    TESTINST3("eors.w r1, r2, r3, asr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4757    TESTINST3("eors.w r1, r2, r3, asr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4758    TESTINST3("eors.w r1, r2, r3, asr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4759    TESTINST3("eor.w  r1, r2, r3, lsl #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4760    TESTINST3("eor.w  r1, r2, r3, lsl #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4761    TESTINST3("eor.w  r1, r2, r3, lsl #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4762    TESTINST3("eor.w  r1, r2, r3, lsl #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4763    TESTINST3("eor.w  r1, r2, r3, lsr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4764    TESTINST3("eor.w  r1, r2, r3, lsr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4765    TESTINST3("eor.w  r1, r2, r3, lsr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4766    TESTINST3("eor.w  r1, r2, r3, lsr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4767    TESTINST3("eor.w  r1, r2, r3, asr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4768    TESTINST3("eor.w  r1, r2, r3, asr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4769    TESTINST3("eor.w  r1, r2, r3, asr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4770    TESTINST3("eor.w  r1, r2, r3, asr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   4771    TESTINST3("eors.w r1, r2, r3, lsl #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4772    TESTINST3("eors.w r1, r2, r3, lsl #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4773    TESTINST3("eors.w r1, r2, r3, lsl #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4774    TESTINST3("eors.w r1, r2, r3, lsl #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4775    TESTINST3("eors.w r1, r2, r3, lsr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4776    TESTINST3("eors.w r1, r2, r3, lsr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4777    TESTINST3("eors.w r1, r2, r3, lsr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4778    TESTINST3("eors.w r1, r2, r3, lsr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4779    TESTINST3("eors.w r1, r2, r3, asr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4780    TESTINST3("eors.w r1, r2, r3, asr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4781    TESTINST3("eors.w r1, r2, r3, asr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4782    TESTINST3("eors.w r1, r2, r3, asr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4783    TESTINST3("eor.w  r1, r2, r3, lsl #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4784    TESTINST3("eor.w  r1, r2, r3, lsl #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4785    TESTINST3("eor.w  r1, r2, r3, lsl #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4786    TESTINST3("eor.w  r1, r2, r3, lsl #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4787    TESTINST3("eor.w  r1, r2, r3, lsr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4788    TESTINST3("eor.w  r1, r2, r3, lsr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4789    TESTINST3("eor.w  r1, r2, r3, lsr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4790    TESTINST3("eor.w  r1, r2, r3, lsr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4791    TESTINST3("eor.w  r1, r2, r3, asr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4792    TESTINST3("eor.w  r1, r2, r3, asr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4793    TESTINST3("eor.w  r1, r2, r3, asr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4794    TESTINST3("eor.w  r1, r2, r3, asr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   4795    TESTINST3("eors.w r1, r2, r3, lsl #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4796    TESTINST3("eors.w r1, r2, r3, lsl #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4797    TESTINST3("eors.w r1, r2, r3, lsl #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4798    TESTINST3("eors.w r1, r2, r3, lsl #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4799    TESTINST3("eors.w r1, r2, r3, lsr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4800    TESTINST3("eors.w r1, r2, r3, lsr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4801    TESTINST3("eors.w r1, r2, r3, lsr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4802    TESTINST3("eors.w r1, r2, r3, lsr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4803    TESTINST3("eors.w r1, r2, r3, asr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4804    TESTINST3("eors.w r1, r2, r3, asr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4805    TESTINST3("eors.w r1, r2, r3, asr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4806    TESTINST3("eors.w r1, r2, r3, asr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4807    TESTINST3("eor.w  r1, r2, r3, lsl #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4808    TESTINST3("eor.w  r1, r2, r3, lsl #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4809    TESTINST3("eor.w  r1, r2, r3, lsl #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4810    TESTINST3("eor.w  r1, r2, r3, lsl #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4811    TESTINST3("eor.w  r1, r2, r3, lsr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4812    TESTINST3("eor.w  r1, r2, r3, lsr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4813    TESTINST3("eor.w  r1, r2, r3, lsr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4814    TESTINST3("eor.w  r1, r2, r3, lsr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4815    TESTINST3("eor.w  r1, r2, r3, asr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4816    TESTINST3("eor.w  r1, r2, r3, asr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4817    TESTINST3("eor.w  r1, r2, r3, asr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4818    TESTINST3("eor.w  r1, r2, r3, asr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   4819    TESTCARRYEND
   4820 
   4821    printf("BIC{S}.W Rd, Rn, Rm, {shift}\n");
   4822    TESTCARRY
   4823    TESTINST3("bics.w r1, r2, r3, lsl #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4824    TESTINST3("bics.w r1, r2, r3, lsl #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4825    TESTINST3("bics.w r1, r2, r3, lsl #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4826    TESTINST3("bics.w r1, r2, r3, lsl #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4827    TESTINST3("bics.w r1, r2, r3, lsr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4828    TESTINST3("bics.w r1, r2, r3, lsr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4829    TESTINST3("bics.w r1, r2, r3, lsr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4830    TESTINST3("bics.w r1, r2, r3, lsr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4831    TESTINST3("bics.w r1, r2, r3, asr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4832    TESTINST3("bics.w r1, r2, r3, asr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4833    TESTINST3("bics.w r1, r2, r3, asr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4834    TESTINST3("bics.w r1, r2, r3, asr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4835    TESTINST3("bic.w  r1, r2, r3, lsl #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4836    TESTINST3("bic.w  r1, r2, r3, lsl #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4837    TESTINST3("bic.w  r1, r2, r3, lsl #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4838    TESTINST3("bic.w  r1, r2, r3, lsl #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4839    TESTINST3("bic.w  r1, r2, r3, lsr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4840    TESTINST3("bic.w  r1, r2, r3, lsr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4841    TESTINST3("bic.w  r1, r2, r3, lsr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4842    TESTINST3("bic.w  r1, r2, r3, lsr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4843    TESTINST3("bic.w  r1, r2, r3, asr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4844    TESTINST3("bic.w  r1, r2, r3, asr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4845    TESTINST3("bic.w  r1, r2, r3, asr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4846    TESTINST3("bic.w  r1, r2, r3, asr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   4847    TESTINST3("bics.w r1, r2, r3, lsl #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4848    TESTINST3("bics.w r1, r2, r3, lsl #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4849    TESTINST3("bics.w r1, r2, r3, lsl #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4850    TESTINST3("bics.w r1, r2, r3, lsl #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4851    TESTINST3("bics.w r1, r2, r3, lsr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4852    TESTINST3("bics.w r1, r2, r3, lsr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4853    TESTINST3("bics.w r1, r2, r3, lsr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4854    TESTINST3("bics.w r1, r2, r3, lsr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4855    TESTINST3("bics.w r1, r2, r3, asr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4856    TESTINST3("bics.w r1, r2, r3, asr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4857    TESTINST3("bics.w r1, r2, r3, asr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4858    TESTINST3("bics.w r1, r2, r3, asr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4859    TESTINST3("bic.w  r1, r2, r3, lsl #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4860    TESTINST3("bic.w  r1, r2, r3, lsl #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4861    TESTINST3("bic.w  r1, r2, r3, lsl #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4862    TESTINST3("bic.w  r1, r2, r3, lsl #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4863    TESTINST3("bic.w  r1, r2, r3, lsr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4864    TESTINST3("bic.w  r1, r2, r3, lsr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4865    TESTINST3("bic.w  r1, r2, r3, lsr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4866    TESTINST3("bic.w  r1, r2, r3, lsr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4867    TESTINST3("bic.w  r1, r2, r3, asr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4868    TESTINST3("bic.w  r1, r2, r3, asr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4869    TESTINST3("bic.w  r1, r2, r3, asr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4870    TESTINST3("bic.w  r1, r2, r3, asr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   4871    TESTINST3("bics.w r1, r2, r3, lsl #0 ", 0,          0,          r1, r2, r3, cv);
   4872    TESTINST3("bics.w r1, r2, r3, lsl #1 ", 0,          0,          r1, r2, r3, cv);
   4873    TESTINST3("bics.w r1, r2, r3, lsl #15", 0,          0,          r1, r2, r3, cv);
   4874    TESTINST3("bics.w r1, r2, r3, lsl #31", 0,          0,          r1, r2, r3, cv);
   4875    TESTINST3("bics.w r1, r2, r3, lsr #0 ", 0,          0,          r1, r2, r3, cv);
   4876    TESTINST3("bics.w r1, r2, r3, lsr #1 ", 0,          0,          r1, r2, r3, cv);
   4877    TESTINST3("bics.w r1, r2, r3, lsr #15", 0,          0,          r1, r2, r3, cv);
   4878    TESTINST3("bics.w r1, r2, r3, lsr #31", 0,          0,          r1, r2, r3, cv);
   4879    TESTINST3("bics.w r1, r2, r3, asr #0 ", 0,          0,          r1, r2, r3, cv);
   4880    TESTINST3("bics.w r1, r2, r3, asr #1 ", 0,          0,          r1, r2, r3, cv);
   4881    TESTINST3("bics.w r1, r2, r3, asr #15", 0,          0,          r1, r2, r3, cv);
   4882    TESTINST3("bics.w r1, r2, r3, asr #31", 0,          0,          r1, r2, r3, cv);
   4883    TESTINST3("bic.w  r1, r2, r3, lsl #0 ", 0,          0,          r1, r2, r3, cv);
   4884    TESTINST3("bic.w  r1, r2, r3, lsl #1 ", 0,          0,          r1, r2, r3, cv);
   4885    TESTINST3("bic.w  r1, r2, r3, lsl #15", 0,          0,          r1, r2, r3, cv);
   4886    TESTINST3("bic.w  r1, r2, r3, lsl #31", 0,          0,          r1, r2, r3, cv);
   4887    TESTINST3("bic.w  r1, r2, r3, lsr #0 ", 0,          0,          r1, r2, r3, cv);
   4888    TESTINST3("bic.w  r1, r2, r3, lsr #1 ", 0,          0,          r1, r2, r3, cv);
   4889    TESTINST3("bic.w  r1, r2, r3, lsr #15", 0,          0,          r1, r2, r3, cv);
   4890    TESTINST3("bic.w  r1, r2, r3, lsr #31", 0,          0,          r1, r2, r3, cv);
   4891    TESTINST3("bic.w  r1, r2, r3, asr #0 ", 0,          0,          r1, r2, r3, cv);
   4892    TESTINST3("bic.w  r1, r2, r3, asr #1 ", 0,          0,          r1, r2, r3, cv);
   4893    TESTINST3("bic.w  r1, r2, r3, asr #15", 0,          0,          r1, r2, r3, cv);
   4894    TESTINST3("bic.w  r1, r2, r3, asr #31", 0,          0,          r1, r2, r3, cv);
   4895    TESTINST3("bics.w r1, r2, r3, lsl #0 ", 1,          0,          r1, r2, r3, cv);
   4896    TESTINST3("bics.w r1, r2, r3, lsl #1 ", 1,          0,          r1, r2, r3, cv);
   4897    TESTINST3("bics.w r1, r2, r3, lsl #15", 1,          0,          r1, r2, r3, cv);
   4898    TESTINST3("bics.w r1, r2, r3, lsl #31", 1,          0,          r1, r2, r3, cv);
   4899    TESTINST3("bics.w r1, r2, r3, lsr #0 ", 1,          0,          r1, r2, r3, cv);
   4900    TESTINST3("bics.w r1, r2, r3, lsr #1 ", 1,          0,          r1, r2, r3, cv);
   4901    TESTINST3("bics.w r1, r2, r3, lsr #15", 1,          0,          r1, r2, r3, cv);
   4902    TESTINST3("bics.w r1, r2, r3, lsr #31", 1,          0,          r1, r2, r3, cv);
   4903    TESTINST3("bics.w r1, r2, r3, asr #0 ", 1,          0,          r1, r2, r3, cv);
   4904    TESTINST3("bics.w r1, r2, r3, asr #1 ", 1,          0,          r1, r2, r3, cv);
   4905    TESTINST3("bics.w r1, r2, r3, asr #15", 1,          0,          r1, r2, r3, cv);
   4906    TESTINST3("bics.w r1, r2, r3, asr #31", 1,          0,          r1, r2, r3, cv);
   4907    TESTINST3("bic.w  r1, r2, r3, lsl #0 ", 1,          0,          r1, r2, r3, cv);
   4908    TESTINST3("bic.w  r1, r2, r3, lsl #1 ", 1,          0,          r1, r2, r3, cv);
   4909    TESTINST3("bic.w  r1, r2, r3, lsl #15", 1,          0,          r1, r2, r3, cv);
   4910    TESTINST3("bic.w  r1, r2, r3, lsl #31", 1,          0,          r1, r2, r3, cv);
   4911    TESTINST3("bic.w  r1, r2, r3, lsr #0 ", 1,          0,          r1, r2, r3, cv);
   4912    TESTINST3("bic.w  r1, r2, r3, lsr #1 ", 1,          0,          r1, r2, r3, cv);
   4913    TESTINST3("bic.w  r1, r2, r3, lsr #15", 1,          0,          r1, r2, r3, cv);
   4914    TESTINST3("bic.w  r1, r2, r3, lsr #31", 1,          0,          r1, r2, r3, cv);
   4915    TESTINST3("bic.w  r1, r2, r3, asr #0 ", 1,          0,          r1, r2, r3, cv);
   4916    TESTINST3("bic.w  r1, r2, r3, asr #1 ", 1,          0,          r1, r2, r3, cv);
   4917    TESTINST3("bic.w  r1, r2, r3, asr #15", 1,          0,          r1, r2, r3, cv);
   4918    TESTINST3("bic.w  r1, r2, r3, asr #31", 1,          0,          r1, r2, r3, cv);
   4919    TESTINST3("bics.w r1, r2, r3, lsl #0 ", 0,          1,          r1, r2, r3, cv);
   4920    TESTINST3("bics.w r1, r2, r3, lsl #1 ", 0,          1,          r1, r2, r3, cv);
   4921    TESTINST3("bics.w r1, r2, r3, lsl #15", 0,          1,          r1, r2, r3, cv);
   4922    TESTINST3("bics.w r1, r2, r3, lsl #31", 0,          1,          r1, r2, r3, cv);
   4923    TESTINST3("bics.w r1, r2, r3, lsr #0 ", 0,          1,          r1, r2, r3, cv);
   4924    TESTINST3("bics.w r1, r2, r3, lsr #1 ", 0,          1,          r1, r2, r3, cv);
   4925    TESTINST3("bics.w r1, r2, r3, lsr #15", 0,          1,          r1, r2, r3, cv);
   4926    TESTINST3("bics.w r1, r2, r3, lsr #31", 0,          1,          r1, r2, r3, cv);
   4927    TESTINST3("bics.w r1, r2, r3, asr #0 ", 0,          1,          r1, r2, r3, cv);
   4928    TESTINST3("bics.w r1, r2, r3, asr #1 ", 0,          1,          r1, r2, r3, cv);
   4929    TESTINST3("bics.w r1, r2, r3, asr #15", 0,          1,          r1, r2, r3, cv);
   4930    TESTINST3("bics.w r1, r2, r3, asr #31", 0,          1,          r1, r2, r3, cv);
   4931    TESTINST3("bic.w  r1, r2, r3, lsl #0 ", 0,          1,          r1, r2, r3, cv);
   4932    TESTINST3("bic.w  r1, r2, r3, lsl #1 ", 0,          1,          r1, r2, r3, cv);
   4933    TESTINST3("bic.w  r1, r2, r3, lsl #15", 0,          1,          r1, r2, r3, cv);
   4934    TESTINST3("bic.w  r1, r2, r3, lsl #31", 0,          1,          r1, r2, r3, cv);
   4935    TESTINST3("bic.w  r1, r2, r3, lsr #0 ", 0,          1,          r1, r2, r3, cv);
   4936    TESTINST3("bic.w  r1, r2, r3, lsr #1 ", 0,          1,          r1, r2, r3, cv);
   4937    TESTINST3("bic.w  r1, r2, r3, lsr #15", 0,          1,          r1, r2, r3, cv);
   4938    TESTINST3("bic.w  r1, r2, r3, lsr #31", 0,          1,          r1, r2, r3, cv);
   4939    TESTINST3("bic.w  r1, r2, r3, asr #0 ", 0,          1,          r1, r2, r3, cv);
   4940    TESTINST3("bic.w  r1, r2, r3, asr #1 ", 0,          1,          r1, r2, r3, cv);
   4941    TESTINST3("bic.w  r1, r2, r3, asr #15", 0,          1,          r1, r2, r3, cv);
   4942    TESTINST3("bic.w  r1, r2, r3, asr #31", 0,          1,          r1, r2, r3, cv);
   4943    TESTINST3("bics.w r1, r2, r3, lsl #0 ", -1,         0,          r1, r2, r3, cv);
   4944    TESTINST3("bics.w r1, r2, r3, lsl #1 ", -1,         0,          r1, r2, r3, cv);
   4945    TESTINST3("bics.w r1, r2, r3, lsl #15", -1,         0,          r1, r2, r3, cv);
   4946    TESTINST3("bics.w r1, r2, r3, lsl #31", -1,         0,          r1, r2, r3, cv);
   4947    TESTINST3("bics.w r1, r2, r3, lsr #0 ", -1,         0,          r1, r2, r3, cv);
   4948    TESTINST3("bics.w r1, r2, r3, lsr #1 ", -1,         0,          r1, r2, r3, cv);
   4949    TESTINST3("bics.w r1, r2, r3, lsr #15", -1,         0,          r1, r2, r3, cv);
   4950    TESTINST3("bics.w r1, r2, r3, lsr #31", -1,         0,          r1, r2, r3, cv);
   4951    TESTINST3("bics.w r1, r2, r3, asr #0 ", -1,         0,          r1, r2, r3, cv);
   4952    TESTINST3("bics.w r1, r2, r3, asr #1 ", -1,         0,          r1, r2, r3, cv);
   4953    TESTINST3("bics.w r1, r2, r3, asr #15", -1,         0,          r1, r2, r3, cv);
   4954    TESTINST3("bics.w r1, r2, r3, asr #31", -1,         0,          r1, r2, r3, cv);
   4955    TESTINST3("bic.w  r1, r2, r3, lsl #0 ", -1,         0,          r1, r2, r3, cv);
   4956    TESTINST3("bic.w  r1, r2, r3, lsl #1 ", -1,         0,          r1, r2, r3, cv);
   4957    TESTINST3("bic.w  r1, r2, r3, lsl #15", -1,         0,          r1, r2, r3, cv);
   4958    TESTINST3("bic.w  r1, r2, r3, lsl #31", -1,         0,          r1, r2, r3, cv);
   4959    TESTINST3("bic.w  r1, r2, r3, lsr #0 ", -1,         0,          r1, r2, r3, cv);
   4960    TESTINST3("bic.w  r1, r2, r3, lsr #1 ", -1,         0,          r1, r2, r3, cv);
   4961    TESTINST3("bic.w  r1, r2, r3, lsr #15", -1,         0,          r1, r2, r3, cv);
   4962    TESTINST3("bic.w  r1, r2, r3, lsr #31", -1,         0,          r1, r2, r3, cv);
   4963    TESTINST3("bic.w  r1, r2, r3, asr #0 ", -1,         0,          r1, r2, r3, cv);
   4964    TESTINST3("bic.w  r1, r2, r3, asr #1 ", -1,         0,          r1, r2, r3, cv);
   4965    TESTINST3("bic.w  r1, r2, r3, asr #15", -1,         0,          r1, r2, r3, cv);
   4966    TESTINST3("bic.w  r1, r2, r3, asr #31", -1,         0,          r1, r2, r3, cv);
   4967    TESTINST3("bics.w r1, r2, r3, lsl #0 ", 0,          -1,         r1, r2, r3, cv);
   4968    TESTINST3("bics.w r1, r2, r3, lsl #1 ", 0,          -1,         r1, r2, r3, cv);
   4969    TESTINST3("bics.w r1, r2, r3, lsl #15", 0,          -1,         r1, r2, r3, cv);
   4970    TESTINST3("bics.w r1, r2, r3, lsl #31", 0,          -1,         r1, r2, r3, cv);
   4971    TESTINST3("bics.w r1, r2, r3, lsr #0 ", 0,          -1,         r1, r2, r3, cv);
   4972    TESTINST3("bics.w r1, r2, r3, lsr #1 ", 0,          -1,         r1, r2, r3, cv);
   4973    TESTINST3("bics.w r1, r2, r3, lsr #15", 0,          -1,         r1, r2, r3, cv);
   4974    TESTINST3("bics.w r1, r2, r3, lsr #31", 0,          -1,         r1, r2, r3, cv);
   4975    TESTINST3("bics.w r1, r2, r3, asr #0 ", 0,          -1,         r1, r2, r3, cv);
   4976    TESTINST3("bics.w r1, r2, r3, asr #1 ", 0,          -1,         r1, r2, r3, cv);
   4977    TESTINST3("bics.w r1, r2, r3, asr #15", 0,          -1,         r1, r2, r3, cv);
   4978    TESTINST3("bics.w r1, r2, r3, asr #31", 0,          -1,         r1, r2, r3, cv);
   4979    TESTINST3("bic.w  r1, r2, r3, lsl #0 ", 0,          -1,         r1, r2, r3, cv);
   4980    TESTINST3("bic.w  r1, r2, r3, lsl #1 ", 0,          -1,         r1, r2, r3, cv);
   4981    TESTINST3("bic.w  r1, r2, r3, lsl #15", 0,          -1,         r1, r2, r3, cv);
   4982    TESTINST3("bic.w  r1, r2, r3, lsl #31", 0,          -1,         r1, r2, r3, cv);
   4983    TESTINST3("bic.w  r1, r2, r3, lsr #0 ", 0,          -1,         r1, r2, r3, cv);
   4984    TESTINST3("bic.w  r1, r2, r3, lsr #1 ", 0,          -1,         r1, r2, r3, cv);
   4985    TESTINST3("bic.w  r1, r2, r3, lsr #15", 0,          -1,         r1, r2, r3, cv);
   4986    TESTINST3("bic.w  r1, r2, r3, lsr #31", 0,          -1,         r1, r2, r3, cv);
   4987    TESTINST3("bic.w  r1, r2, r3, asr #0 ", 0,          -1,         r1, r2, r3, cv);
   4988    TESTINST3("bic.w  r1, r2, r3, asr #1 ", 0,          -1,         r1, r2, r3, cv);
   4989    TESTINST3("bic.w  r1, r2, r3, asr #15", 0,          -1,         r1, r2, r3, cv);
   4990    TESTINST3("bic.w  r1, r2, r3, asr #31", 0,          -1,         r1, r2, r3, cv);
   4991    TESTINST3("bics.w r1, r2, r3, lsl #0 ", 0,          0x80000000, r1, r2, r3, cv);
   4992    TESTINST3("bics.w r1, r2, r3, lsl #1 ", 0,          0x80000000, r1, r2, r3, cv);
   4993    TESTINST3("bics.w r1, r2, r3, lsl #15", 0,          0x80000000, r1, r2, r3, cv);
   4994    TESTINST3("bics.w r1, r2, r3, lsl #31", 0,          0x80000000, r1, r2, r3, cv);
   4995    TESTINST3("bics.w r1, r2, r3, lsr #0 ", 0,          0x80000000, r1, r2, r3, cv);
   4996    TESTINST3("bics.w r1, r2, r3, lsr #1 ", 0,          0x80000000, r1, r2, r3, cv);
   4997    TESTINST3("bics.w r1, r2, r3, lsr #15", 0,          0x80000000, r1, r2, r3, cv);
   4998    TESTINST3("bics.w r1, r2, r3, lsr #31", 0,          0x80000000, r1, r2, r3, cv);
   4999    TESTINST3("bics.w r1, r2, r3, asr #0 ", 0,          0x80000000, r1, r2, r3, cv);
   5000    TESTINST3("bics.w r1, r2, r3, asr #1 ", 0,          0x80000000, r1, r2, r3, cv);
   5001    TESTINST3("bics.w r1, r2, r3, asr #15", 0,          0x80000000, r1, r2, r3, cv);
   5002    TESTINST3("bics.w r1, r2, r3, asr #31", 0,          0x80000000, r1, r2, r3, cv);
   5003    TESTINST3("bic.w  r1, r2, r3, lsl #0 ", 0,          0x80000000, r1, r2, r3, cv);
   5004    TESTINST3("bic.w  r1, r2, r3, lsl #1 ", 0,          0x80000000, r1, r2, r3, cv);
   5005    TESTINST3("bic.w  r1, r2, r3, lsl #15", 0,          0x80000000, r1, r2, r3, cv);
   5006    TESTINST3("bic.w  r1, r2, r3, lsl #31", 0,          0x80000000, r1, r2, r3, cv);
   5007    TESTINST3("bic.w  r1, r2, r3, lsr #0 ", 0,          0x80000000, r1, r2, r3, cv);
   5008    TESTINST3("bic.w  r1, r2, r3, lsr #1 ", 0,          0x80000000, r1, r2, r3, cv);
   5009    TESTINST3("bic.w  r1, r2, r3, lsr #15", 0,          0x80000000, r1, r2, r3, cv);
   5010    TESTINST3("bic.w  r1, r2, r3, lsr #31", 0,          0x80000000, r1, r2, r3, cv);
   5011    TESTINST3("bic.w  r1, r2, r3, asr #0 ", 0,          0x80000000, r1, r2, r3, cv);
   5012    TESTINST3("bic.w  r1, r2, r3, asr #1 ", 0,          0x80000000, r1, r2, r3, cv);
   5013    TESTINST3("bic.w  r1, r2, r3, asr #15", 0,          0x80000000, r1, r2, r3, cv);
   5014    TESTINST3("bic.w  r1, r2, r3, asr #31", 0,          0x80000000, r1, r2, r3, cv);
   5015    TESTINST3("bics.w r1, r2, r3, lsl #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   5016    TESTINST3("bics.w r1, r2, r3, lsl #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   5017    TESTINST3("bics.w r1, r2, r3, lsl #15", 0x80000000, 0,          r1, r2, r3, cv);
   5018    TESTINST3("bics.w r1, r2, r3, lsl #31", 0x80000000, 0,          r1, r2, r3, cv);
   5019    TESTINST3("bics.w r1, r2, r3, lsr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   5020    TESTINST3("bics.w r1, r2, r3, lsr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   5021    TESTINST3("bics.w r1, r2, r3, lsr #15", 0x80000000, 0,          r1, r2, r3, cv);
   5022    TESTINST3("bics.w r1, r2, r3, lsr #31", 0x80000000, 0,          r1, r2, r3, cv);
   5023    TESTINST3("bics.w r1, r2, r3, asr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   5024    TESTINST3("bics.w r1, r2, r3, asr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   5025    TESTINST3("bics.w r1, r2, r3, asr #15", 0x80000000, 0,          r1, r2, r3, cv);
   5026    TESTINST3("bics.w r1, r2, r3, asr #31", 0x80000000, 0,          r1, r2, r3, cv);
   5027    TESTINST3("bic.w  r1, r2, r3, lsl #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   5028    TESTINST3("bic.w  r1, r2, r3, lsl #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   5029    TESTINST3("bic.w  r1, r2, r3, lsl #15", 0x80000000, 0,          r1, r2, r3, cv);
   5030    TESTINST3("bic.w  r1, r2, r3, lsl #31", 0x80000000, 0,          r1, r2, r3, cv);
   5031    TESTINST3("bic.w  r1, r2, r3, lsr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   5032    TESTINST3("bic.w  r1, r2, r3, lsr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   5033    TESTINST3("bic.w  r1, r2, r3, lsr #15", 0x80000000, 0,          r1, r2, r3, cv);
   5034    TESTINST3("bic.w  r1, r2, r3, lsr #31", 0x80000000, 0,          r1, r2, r3, cv);
   5035    TESTINST3("bic.w  r1, r2, r3, asr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   5036    TESTINST3("bic.w  r1, r2, r3, asr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   5037    TESTINST3("bic.w  r1, r2, r3, asr #15", 0x80000000, 0,          r1, r2, r3, cv);
   5038    TESTINST3("bic.w  r1, r2, r3, asr #31", 0x80000000, 0,          r1, r2, r3, cv);
   5039    TESTINST3("bics.w r1, r2, r3, lsl #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5040    TESTINST3("bics.w r1, r2, r3, lsl #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5041    TESTINST3("bics.w r1, r2, r3, lsl #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5042    TESTINST3("bics.w r1, r2, r3, lsl #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5043    TESTINST3("bics.w r1, r2, r3, lsr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5044    TESTINST3("bics.w r1, r2, r3, lsr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5045    TESTINST3("bics.w r1, r2, r3, lsr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5046    TESTINST3("bics.w r1, r2, r3, lsr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5047    TESTINST3("bics.w r1, r2, r3, asr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5048    TESTINST3("bics.w r1, r2, r3, asr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5049    TESTINST3("bics.w r1, r2, r3, asr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5050    TESTINST3("bics.w r1, r2, r3, asr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5051    TESTINST3("bic.w  r1, r2, r3, lsl #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5052    TESTINST3("bic.w  r1, r2, r3, lsl #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5053    TESTINST3("bic.w  r1, r2, r3, lsl #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5054    TESTINST3("bic.w  r1, r2, r3, lsl #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5055    TESTINST3("bic.w  r1, r2, r3, lsr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5056    TESTINST3("bic.w  r1, r2, r3, lsr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5057    TESTINST3("bic.w  r1, r2, r3, lsr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5058    TESTINST3("bic.w  r1, r2, r3, lsr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5059    TESTINST3("bic.w  r1, r2, r3, asr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5060    TESTINST3("bic.w  r1, r2, r3, asr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5061    TESTINST3("bic.w  r1, r2, r3, asr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5062    TESTINST3("bic.w  r1, r2, r3, asr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5063    TESTINST3("bics.w r1, r2, r3, lsl #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5064    TESTINST3("bics.w r1, r2, r3, lsl #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5065    TESTINST3("bics.w r1, r2, r3, lsl #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5066    TESTINST3("bics.w r1, r2, r3, lsl #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5067    TESTINST3("bics.w r1, r2, r3, lsr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5068    TESTINST3("bics.w r1, r2, r3, lsr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5069    TESTINST3("bics.w r1, r2, r3, lsr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5070    TESTINST3("bics.w r1, r2, r3, lsr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5071    TESTINST3("bics.w r1, r2, r3, asr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5072    TESTINST3("bics.w r1, r2, r3, asr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5073    TESTINST3("bics.w r1, r2, r3, asr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5074    TESTINST3("bics.w r1, r2, r3, asr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5075    TESTINST3("bic.w  r1, r2, r3, lsl #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5076    TESTINST3("bic.w  r1, r2, r3, lsl #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5077    TESTINST3("bic.w  r1, r2, r3, lsl #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5078    TESTINST3("bic.w  r1, r2, r3, lsl #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5079    TESTINST3("bic.w  r1, r2, r3, lsr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5080    TESTINST3("bic.w  r1, r2, r3, lsr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5081    TESTINST3("bic.w  r1, r2, r3, lsr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5082    TESTINST3("bic.w  r1, r2, r3, lsr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5083    TESTINST3("bic.w  r1, r2, r3, asr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5084    TESTINST3("bic.w  r1, r2, r3, asr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5085    TESTINST3("bic.w  r1, r2, r3, asr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5086    TESTINST3("bic.w  r1, r2, r3, asr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5087    TESTINST3("bics.w r1, r2, r3, lsl #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5088    TESTINST3("bics.w r1, r2, r3, lsl #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5089    TESTINST3("bics.w r1, r2, r3, lsl #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5090    TESTINST3("bics.w r1, r2, r3, lsl #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5091    TESTINST3("bics.w r1, r2, r3, lsr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5092    TESTINST3("bics.w r1, r2, r3, lsr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5093    TESTINST3("bics.w r1, r2, r3, lsr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5094    TESTINST3("bics.w r1, r2, r3, lsr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5095    TESTINST3("bics.w r1, r2, r3, asr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5096    TESTINST3("bics.w r1, r2, r3, asr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5097    TESTINST3("bics.w r1, r2, r3, asr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5098    TESTINST3("bics.w r1, r2, r3, asr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5099    TESTINST3("bic.w  r1, r2, r3, lsl #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5100    TESTINST3("bic.w  r1, r2, r3, lsl #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5101    TESTINST3("bic.w  r1, r2, r3, lsl #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5102    TESTINST3("bic.w  r1, r2, r3, lsl #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5103    TESTINST3("bic.w  r1, r2, r3, lsr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5104    TESTINST3("bic.w  r1, r2, r3, lsr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5105    TESTINST3("bic.w  r1, r2, r3, lsr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5106    TESTINST3("bic.w  r1, r2, r3, lsr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5107    TESTINST3("bic.w  r1, r2, r3, asr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5108    TESTINST3("bic.w  r1, r2, r3, asr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5109    TESTINST3("bic.w  r1, r2, r3, asr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5110    TESTINST3("bic.w  r1, r2, r3, asr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5111    TESTINST3("bics.w r1, r2, r3, lsl #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5112    TESTINST3("bics.w r1, r2, r3, lsl #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5113    TESTINST3("bics.w r1, r2, r3, lsl #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5114    TESTINST3("bics.w r1, r2, r3, lsl #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5115    TESTINST3("bics.w r1, r2, r3, lsr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5116    TESTINST3("bics.w r1, r2, r3, lsr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5117    TESTINST3("bics.w r1, r2, r3, lsr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5118    TESTINST3("bics.w r1, r2, r3, lsr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5119    TESTINST3("bics.w r1, r2, r3, asr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5120    TESTINST3("bics.w r1, r2, r3, asr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5121    TESTINST3("bics.w r1, r2, r3, asr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5122    TESTINST3("bics.w r1, r2, r3, asr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5123    TESTINST3("bic.w  r1, r2, r3, lsl #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5124    TESTINST3("bic.w  r1, r2, r3, lsl #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5125    TESTINST3("bic.w  r1, r2, r3, lsl #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5126    TESTINST3("bic.w  r1, r2, r3, lsl #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5127    TESTINST3("bic.w  r1, r2, r3, lsr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5128    TESTINST3("bic.w  r1, r2, r3, lsr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5129    TESTINST3("bic.w  r1, r2, r3, lsr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5130    TESTINST3("bic.w  r1, r2, r3, lsr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5131    TESTINST3("bic.w  r1, r2, r3, asr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5132    TESTINST3("bic.w  r1, r2, r3, asr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5133    TESTINST3("bic.w  r1, r2, r3, asr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5134    TESTINST3("bic.w  r1, r2, r3, asr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5135    TESTCARRYEND
   5136 
   5137    printf("ORN{S}.W Rd, Rn, Rm, {shift}\n");
   5138    TESTCARRY
   5139    TESTINST3("orns.w r1, r2, r3, lsl #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   5140    TESTINST3("orns.w r1, r2, r3, lsl #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   5141    TESTINST3("orns.w r1, r2, r3, lsl #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   5142    TESTINST3("orns.w r1, r2, r3, lsl #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   5143    TESTINST3("orns.w r1, r2, r3, lsr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   5144    TESTINST3("orns.w r1, r2, r3, lsr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   5145    TESTINST3("orns.w r1, r2, r3, lsr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   5146    TESTINST3("orns.w r1, r2, r3, lsr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   5147    TESTINST3("orns.w r1, r2, r3, asr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   5148    TESTINST3("orns.w r1, r2, r3, asr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   5149    TESTINST3("orns.w r1, r2, r3, asr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   5150    TESTINST3("orns.w r1, r2, r3, asr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   5151    TESTINST3("orn.w  r1, r2, r3, lsl #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   5152    TESTINST3("orn.w  r1, r2, r3, lsl #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   5153    TESTINST3("orn.w  r1, r2, r3, lsl #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   5154    TESTINST3("orn.w  r1, r2, r3, lsl #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   5155    TESTINST3("orn.w  r1, r2, r3, lsr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   5156    TESTINST3("orn.w  r1, r2, r3, lsr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   5157    TESTINST3("orn.w  r1, r2, r3, lsr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   5158    TESTINST3("orn.w  r1, r2, r3, lsr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   5159    TESTINST3("orn.w  r1, r2, r3, asr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   5160    TESTINST3("orn.w  r1, r2, r3, asr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
   5161    TESTINST3("orn.w  r1, r2, r3, asr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
   5162    TESTINST3("orn.w  r1, r2, r3, asr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
   5163    TESTINST3("orns.w r1, r2, r3, lsl #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   5164    TESTINST3("orns.w r1, r2, r3, lsl #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   5165    TESTINST3("orns.w r1, r2, r3, lsl #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   5166    TESTINST3("orns.w r1, r2, r3, lsl #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   5167    TESTINST3("orns.w r1, r2, r3, lsr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   5168    TESTINST3("orns.w r1, r2, r3, lsr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   5169    TESTINST3("orns.w r1, r2, r3, lsr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   5170    TESTINST3("orns.w r1, r2, r3, lsr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   5171    TESTINST3("orns.w r1, r2, r3, asr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   5172    TESTINST3("orns.w r1, r2, r3, asr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   5173    TESTINST3("orns.w r1, r2, r3, asr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   5174    TESTINST3("orns.w r1, r2, r3, asr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   5175    TESTINST3("orn.w  r1, r2, r3, lsl #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   5176    TESTINST3("orn.w  r1, r2, r3, lsl #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   5177    TESTINST3("orn.w  r1, r2, r3, lsl #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   5178    TESTINST3("orn.w  r1, r2, r3, lsl #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   5179    TESTINST3("orn.w  r1, r2, r3, lsr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   5180    TESTINST3("orn.w  r1, r2, r3, lsr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   5181    TESTINST3("orn.w  r1, r2, r3, lsr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   5182    TESTINST3("orn.w  r1, r2, r3, lsr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   5183    TESTINST3("orn.w  r1, r2, r3, asr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   5184    TESTINST3("orn.w  r1, r2, r3, asr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
   5185    TESTINST3("orn.w  r1, r2, r3, asr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
   5186    TESTINST3("orn.w  r1, r2, r3, asr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
   5187    TESTINST3("orns.w r1, r2, r3, lsl #0 ", 0,          0,          r1, r2, r3, cv);
   5188    TESTINST3("orns.w r1, r2, r3, lsl #1 ", 0,          0,          r1, r2, r3, cv);
   5189    TESTINST3("orns.w r1, r2, r3, lsl #15", 0,          0,          r1, r2, r3, cv);
   5190    TESTINST3("orns.w r1, r2, r3, lsl #31", 0,          0,          r1, r2, r3, cv);
   5191    TESTINST3("orns.w r1, r2, r3, lsr #0 ", 0,          0,          r1, r2, r3, cv);
   5192    TESTINST3("orns.w r1, r2, r3, lsr #1 ", 0,          0,          r1, r2, r3, cv);
   5193    TESTINST3("orns.w r1, r2, r3, lsr #15", 0,          0,          r1, r2, r3, cv);
   5194    TESTINST3("orns.w r1, r2, r3, lsr #31", 0,          0,          r1, r2, r3, cv);
   5195    TESTINST3("orns.w r1, r2, r3, asr #0 ", 0,          0,          r1, r2, r3, cv);
   5196    TESTINST3("orns.w r1, r2, r3, asr #1 ", 0,          0,          r1, r2, r3, cv);
   5197    TESTINST3("orns.w r1, r2, r3, asr #15", 0,          0,          r1, r2, r3, cv);
   5198    TESTINST3("orns.w r1, r2, r3, asr #31", 0,          0,          r1, r2, r3, cv);
   5199    TESTINST3("orn.w  r1, r2, r3, lsl #0 ", 0,          0,          r1, r2, r3, cv);
   5200    TESTINST3("orn.w  r1, r2, r3, lsl #1 ", 0,          0,          r1, r2, r3, cv);
   5201    TESTINST3("orn.w  r1, r2, r3, lsl #15", 0,          0,          r1, r2, r3, cv);
   5202    TESTINST3("orn.w  r1, r2, r3, lsl #31", 0,          0,          r1, r2, r3, cv);
   5203    TESTINST3("orn.w  r1, r2, r3, lsr #0 ", 0,          0,          r1, r2, r3, cv);
   5204    TESTINST3("orn.w  r1, r2, r3, lsr #1 ", 0,          0,          r1, r2, r3, cv);
   5205    TESTINST3("orn.w  r1, r2, r3, lsr #15", 0,          0,          r1, r2, r3, cv);
   5206    TESTINST3("orn.w  r1, r2, r3, lsr #31", 0,          0,          r1, r2, r3, cv);
   5207    TESTINST3("orn.w  r1, r2, r3, asr #0 ", 0,          0,          r1, r2, r3, cv);
   5208    TESTINST3("orn.w  r1, r2, r3, asr #1 ", 0,          0,          r1, r2, r3, cv);
   5209    TESTINST3("orn.w  r1, r2, r3, asr #15", 0,          0,          r1, r2, r3, cv);
   5210    TESTINST3("orn.w  r1, r2, r3, asr #31", 0,          0,          r1, r2, r3, cv);
   5211    TESTINST3("orns.w r1, r2, r3, lsl #0 ", 1,          0,          r1, r2, r3, cv);
   5212    TESTINST3("orns.w r1, r2, r3, lsl #1 ", 1,          0,          r1, r2, r3, cv);
   5213    TESTINST3("orns.w r1, r2, r3, lsl #15", 1,          0,          r1, r2, r3, cv);
   5214    TESTINST3("orns.w r1, r2, r3, lsl #31", 1,          0,          r1, r2, r3, cv);
   5215    TESTINST3("orns.w r1, r2, r3, lsr #0 ", 1,          0,          r1, r2, r3, cv);
   5216    TESTINST3("orns.w r1, r2, r3, lsr #1 ", 1,          0,          r1, r2, r3, cv);
   5217    TESTINST3("orns.w r1, r2, r3, lsr #15", 1,          0,          r1, r2, r3, cv);
   5218    TESTINST3("orns.w r1, r2, r3, lsr #31", 1,          0,          r1, r2, r3, cv);
   5219    TESTINST3("orns.w r1, r2, r3, asr #0 ", 1,          0,          r1, r2, r3, cv);
   5220    TESTINST3("orns.w r1, r2, r3, asr #1 ", 1,          0,          r1, r2, r3, cv);
   5221    TESTINST3("orns.w r1, r2, r3, asr #15", 1,          0,          r1, r2, r3, cv);
   5222    TESTINST3("orns.w r1, r2, r3, asr #31", 1,          0,          r1, r2, r3, cv);
   5223    TESTINST3("orn.w  r1, r2, r3, lsl #0 ", 1,          0,          r1, r2, r3, cv);
   5224    TESTINST3("orn.w  r1, r2, r3, lsl #1 ", 1,          0,          r1, r2, r3, cv);
   5225    TESTINST3("orn.w  r1, r2, r3, lsl #15", 1,          0,          r1, r2, r3, cv);
   5226    TESTINST3("orn.w  r1, r2, r3, lsl #31", 1,          0,          r1, r2, r3, cv);
   5227    TESTINST3("orn.w  r1, r2, r3, lsr #0 ", 1,          0,          r1, r2, r3, cv);
   5228    TESTINST3("orn.w  r1, r2, r3, lsr #1 ", 1,          0,          r1, r2, r3, cv);
   5229    TESTINST3("orn.w  r1, r2, r3, lsr #15", 1,          0,          r1, r2, r3, cv);
   5230    TESTINST3("orn.w  r1, r2, r3, lsr #31", 1,          0,          r1, r2, r3, cv);
   5231    TESTINST3("orn.w  r1, r2, r3, asr #0 ", 1,          0,          r1, r2, r3, cv);
   5232    TESTINST3("orn.w  r1, r2, r3, asr #1 ", 1,          0,          r1, r2, r3, cv);
   5233    TESTINST3("orn.w  r1, r2, r3, asr #15", 1,          0,          r1, r2, r3, cv);
   5234    TESTINST3("orn.w  r1, r2, r3, asr #31", 1,          0,          r1, r2, r3, cv);
   5235    TESTINST3("orns.w r1, r2, r3, lsl #0 ", 0,          1,          r1, r2, r3, cv);
   5236    TESTINST3("orns.w r1, r2, r3, lsl #1 ", 0,          1,          r1, r2, r3, cv);
   5237    TESTINST3("orns.w r1, r2, r3, lsl #15", 0,          1,          r1, r2, r3, cv);
   5238    TESTINST3("orns.w r1, r2, r3, lsl #31", 0,          1,          r1, r2, r3, cv);
   5239    TESTINST3("orns.w r1, r2, r3, lsr #0 ", 0,          1,          r1, r2, r3, cv);
   5240    TESTINST3("orns.w r1, r2, r3, lsr #1 ", 0,          1,          r1, r2, r3, cv);
   5241    TESTINST3("orns.w r1, r2, r3, lsr #15", 0,          1,          r1, r2, r3, cv);
   5242    TESTINST3("orns.w r1, r2, r3, lsr #31", 0,          1,          r1, r2, r3, cv);
   5243    TESTINST3("orns.w r1, r2, r3, asr #0 ", 0,          1,          r1, r2, r3, cv);
   5244    TESTINST3("orns.w r1, r2, r3, asr #1 ", 0,          1,          r1, r2, r3, cv);
   5245    TESTINST3("orns.w r1, r2, r3, asr #15", 0,          1,          r1, r2, r3, cv);
   5246    TESTINST3("orns.w r1, r2, r3, asr #31", 0,          1,          r1, r2, r3, cv);
   5247    TESTINST3("orn.w  r1, r2, r3, lsl #0 ", 0,          1,          r1, r2, r3, cv);
   5248    TESTINST3("orn.w  r1, r2, r3, lsl #1 ", 0,          1,          r1, r2, r3, cv);
   5249    TESTINST3("orn.w  r1, r2, r3, lsl #15", 0,          1,          r1, r2, r3, cv);
   5250    TESTINST3("orn.w  r1, r2, r3, lsl #31", 0,          1,          r1, r2, r3, cv);
   5251    TESTINST3("orn.w  r1, r2, r3, lsr #0 ", 0,          1,          r1, r2, r3, cv);
   5252    TESTINST3("orn.w  r1, r2, r3, lsr #1 ", 0,          1,          r1, r2, r3, cv);
   5253    TESTINST3("orn.w  r1, r2, r3, lsr #15", 0,          1,          r1, r2, r3, cv);
   5254    TESTINST3("orn.w  r1, r2, r3, lsr #31", 0,          1,          r1, r2, r3, cv);
   5255    TESTINST3("orn.w  r1, r2, r3, asr #0 ", 0,          1,          r1, r2, r3, cv);
   5256    TESTINST3("orn.w  r1, r2, r3, asr #1 ", 0,          1,          r1, r2, r3, cv);
   5257    TESTINST3("orn.w  r1, r2, r3, asr #15", 0,          1,          r1, r2, r3, cv);
   5258    TESTINST3("orn.w  r1, r2, r3, asr #31", 0,          1,          r1, r2, r3, cv);
   5259    TESTINST3("orns.w r1, r2, r3, lsl #0 ", -1,         0,          r1, r2, r3, cv);
   5260    TESTINST3("orns.w r1, r2, r3, lsl #1 ", -1,         0,          r1, r2, r3, cv);
   5261    TESTINST3("orns.w r1, r2, r3, lsl #15", -1,         0,          r1, r2, r3, cv);
   5262    TESTINST3("orns.w r1, r2, r3, lsl #31", -1,         0,          r1, r2, r3, cv);
   5263    TESTINST3("orns.w r1, r2, r3, lsr #0 ", -1,         0,          r1, r2, r3, cv);
   5264    TESTINST3("orns.w r1, r2, r3, lsr #1 ", -1,         0,          r1, r2, r3, cv);
   5265    TESTINST3("orns.w r1, r2, r3, lsr #15", -1,         0,          r1, r2, r3, cv);
   5266    TESTINST3("orns.w r1, r2, r3, lsr #31", -1,         0,          r1, r2, r3, cv);
   5267    TESTINST3("orns.w r1, r2, r3, asr #0 ", -1,         0,          r1, r2, r3, cv);
   5268    TESTINST3("orns.w r1, r2, r3, asr #1 ", -1,         0,          r1, r2, r3, cv);
   5269    TESTINST3("orns.w r1, r2, r3, asr #15", -1,         0,          r1, r2, r3, cv);
   5270    TESTINST3("orns.w r1, r2, r3, asr #31", -1,         0,          r1, r2, r3, cv);
   5271    TESTINST3("orn.w  r1, r2, r3, lsl #0 ", -1,         0,          r1, r2, r3, cv);
   5272    TESTINST3("orn.w  r1, r2, r3, lsl #1 ", -1,         0,          r1, r2, r3, cv);
   5273    TESTINST3("orn.w  r1, r2, r3, lsl #15", -1,         0,          r1, r2, r3, cv);
   5274    TESTINST3("orn.w  r1, r2, r3, lsl #31", -1,         0,          r1, r2, r3, cv);
   5275    TESTINST3("orn.w  r1, r2, r3, lsr #0 ", -1,         0,          r1, r2, r3, cv);
   5276    TESTINST3("orn.w  r1, r2, r3, lsr #1 ", -1,         0,          r1, r2, r3, cv);
   5277    TESTINST3("orn.w  r1, r2, r3, lsr #15", -1,         0,          r1, r2, r3, cv);
   5278    TESTINST3("orn.w  r1, r2, r3, lsr #31", -1,         0,          r1, r2, r3, cv);
   5279    TESTINST3("orn.w  r1, r2, r3, asr #0 ", -1,         0,          r1, r2, r3, cv);
   5280    TESTINST3("orn.w  r1, r2, r3, asr #1 ", -1,         0,          r1, r2, r3, cv);
   5281    TESTINST3("orn.w  r1, r2, r3, asr #15", -1,         0,          r1, r2, r3, cv);
   5282    TESTINST3("orn.w  r1, r2, r3, asr #31", -1,         0,          r1, r2, r3, cv);
   5283    TESTINST3("orns.w r1, r2, r3, lsl #0 ", 0,          -1,         r1, r2, r3, cv);
   5284    TESTINST3("orns.w r1, r2, r3, lsl #1 ", 0,          -1,         r1, r2, r3, cv);
   5285    TESTINST3("orns.w r1, r2, r3, lsl #15", 0,          -1,         r1, r2, r3, cv);
   5286    TESTINST3("orns.w r1, r2, r3, lsl #31", 0,          -1,         r1, r2, r3, cv);
   5287    TESTINST3("orns.w r1, r2, r3, lsr #0 ", 0,          -1,         r1, r2, r3, cv);
   5288    TESTINST3("orns.w r1, r2, r3, lsr #1 ", 0,          -1,         r1, r2, r3, cv);
   5289    TESTINST3("orns.w r1, r2, r3, lsr #15", 0,          -1,         r1, r2, r3, cv);
   5290    TESTINST3("orns.w r1, r2, r3, lsr #31", 0,          -1,         r1, r2, r3, cv);
   5291    TESTINST3("orns.w r1, r2, r3, asr #0 ", 0,          -1,         r1, r2, r3, cv);
   5292    TESTINST3("orns.w r1, r2, r3, asr #1 ", 0,          -1,         r1, r2, r3, cv);
   5293    TESTINST3("orns.w r1, r2, r3, asr #15", 0,          -1,         r1, r2, r3, cv);
   5294    TESTINST3("orns.w r1, r2, r3, asr #31", 0,          -1,         r1, r2, r3, cv);
   5295    TESTINST3("orn.w  r1, r2, r3, lsl #0 ", 0,          -1,         r1, r2, r3, cv);
   5296    TESTINST3("orn.w  r1, r2, r3, lsl #1 ", 0,          -1,         r1, r2, r3, cv);
   5297    TESTINST3("orn.w  r1, r2, r3, lsl #15", 0,          -1,         r1, r2, r3, cv);
   5298    TESTINST3("orn.w  r1, r2, r3, lsl #31", 0,          -1,         r1, r2, r3, cv);
   5299    TESTINST3("orn.w  r1, r2, r3, lsr #0 ", 0,          -1,         r1, r2, r3, cv);
   5300    TESTINST3("orn.w  r1, r2, r3, lsr #1 ", 0,          -1,         r1, r2, r3, cv);
   5301    TESTINST3("orn.w  r1, r2, r3, lsr #15", 0,          -1,         r1, r2, r3, cv);
   5302    TESTINST3("orn.w  r1, r2, r3, lsr #31", 0,          -1,         r1, r2, r3, cv);
   5303    TESTINST3("orn.w  r1, r2, r3, asr #0 ", 0,          -1,         r1, r2, r3, cv);
   5304    TESTINST3("orn.w  r1, r2, r3, asr #1 ", 0,          -1,         r1, r2, r3, cv);
   5305    TESTINST3("orn.w  r1, r2, r3, asr #15", 0,          -1,         r1, r2, r3, cv);
   5306    TESTINST3("orn.w  r1, r2, r3, asr #31", 0,          -1,         r1, r2, r3, cv);
   5307    TESTINST3("orns.w r1, r2, r3, lsl #0 ", 0,          0x80000000, r1, r2, r3, cv);
   5308    TESTINST3("orns.w r1, r2, r3, lsl #1 ", 0,          0x80000000, r1, r2, r3, cv);
   5309    TESTINST3("orns.w r1, r2, r3, lsl #15", 0,          0x80000000, r1, r2, r3, cv);
   5310    TESTINST3("orns.w r1, r2, r3, lsl #31", 0,          0x80000000, r1, r2, r3, cv);
   5311    TESTINST3("orns.w r1, r2, r3, lsr #0 ", 0,          0x80000000, r1, r2, r3, cv);
   5312    TESTINST3("orns.w r1, r2, r3, lsr #1 ", 0,          0x80000000, r1, r2, r3, cv);
   5313    TESTINST3("orns.w r1, r2, r3, lsr #15", 0,          0x80000000, r1, r2, r3, cv);
   5314    TESTINST3("orns.w r1, r2, r3, lsr #31", 0,          0x80000000, r1, r2, r3, cv);
   5315    TESTINST3("orns.w r1, r2, r3, asr #0 ", 0,          0x80000000, r1, r2, r3, cv);
   5316    TESTINST3("orns.w r1, r2, r3, asr #1 ", 0,          0x80000000, r1, r2, r3, cv);
   5317    TESTINST3("orns.w r1, r2, r3, asr #15", 0,          0x80000000, r1, r2, r3, cv);
   5318    TESTINST3("orns.w r1, r2, r3, asr #31", 0,          0x80000000, r1, r2, r3, cv);
   5319    TESTINST3("orn.w  r1, r2, r3, lsl #0 ", 0,          0x80000000, r1, r2, r3, cv);
   5320    TESTINST3("orn.w  r1, r2, r3, lsl #1 ", 0,          0x80000000, r1, r2, r3, cv);
   5321    TESTINST3("orn.w  r1, r2, r3, lsl #15", 0,          0x80000000, r1, r2, r3, cv);
   5322    TESTINST3("orn.w  r1, r2, r3, lsl #31", 0,          0x80000000, r1, r2, r3, cv);
   5323    TESTINST3("orn.w  r1, r2, r3, lsr #0 ", 0,          0x80000000, r1, r2, r3, cv);
   5324    TESTINST3("orn.w  r1, r2, r3, lsr #1 ", 0,          0x80000000, r1, r2, r3, cv);
   5325    TESTINST3("orn.w  r1, r2, r3, lsr #15", 0,          0x80000000, r1, r2, r3, cv);
   5326    TESTINST3("orn.w  r1, r2, r3, lsr #31", 0,          0x80000000, r1, r2, r3, cv);
   5327    TESTINST3("orn.w  r1, r2, r3, asr #0 ", 0,          0x80000000, r1, r2, r3, cv);
   5328    TESTINST3("orn.w  r1, r2, r3, asr #1 ", 0,          0x80000000, r1, r2, r3, cv);
   5329    TESTINST3("orn.w  r1, r2, r3, asr #15", 0,          0x80000000, r1, r2, r3, cv);
   5330    TESTINST3("orn.w  r1, r2, r3, asr #31", 0,          0x80000000, r1, r2, r3, cv);
   5331    TESTINST3("orns.w r1, r2, r3, lsl #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   5332    TESTINST3("orns.w r1, r2, r3, lsl #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   5333    TESTINST3("orns.w r1, r2, r3, lsl #15", 0x80000000, 0,          r1, r2, r3, cv);
   5334    TESTINST3("orns.w r1, r2, r3, lsl #31", 0x80000000, 0,          r1, r2, r3, cv);
   5335    TESTINST3("orns.w r1, r2, r3, lsr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   5336    TESTINST3("orns.w r1, r2, r3, lsr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   5337    TESTINST3("orns.w r1, r2, r3, lsr #15", 0x80000000, 0,          r1, r2, r3, cv);
   5338    TESTINST3("orns.w r1, r2, r3, lsr #31", 0x80000000, 0,          r1, r2, r3, cv);
   5339    TESTINST3("orns.w r1, r2, r3, asr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   5340    TESTINST3("orns.w r1, r2, r3, asr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   5341    TESTINST3("orns.w r1, r2, r3, asr #15", 0x80000000, 0,          r1, r2, r3, cv);
   5342    TESTINST3("orns.w r1, r2, r3, asr #31", 0x80000000, 0,          r1, r2, r3, cv);
   5343    TESTINST3("orn.w  r1, r2, r3, lsl #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   5344    TESTINST3("orn.w  r1, r2, r3, lsl #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   5345    TESTINST3("orn.w  r1, r2, r3, lsl #15", 0x80000000, 0,          r1, r2, r3, cv);
   5346    TESTINST3("orn.w  r1, r2, r3, lsl #31", 0x80000000, 0,          r1, r2, r3, cv);
   5347    TESTINST3("orn.w  r1, r2, r3, lsr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   5348    TESTINST3("orn.w  r1, r2, r3, lsr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   5349    TESTINST3("orn.w  r1, r2, r3, lsr #15", 0x80000000, 0,          r1, r2, r3, cv);
   5350    TESTINST3("orn.w  r1, r2, r3, lsr #31", 0x80000000, 0,          r1, r2, r3, cv);
   5351    TESTINST3("orn.w  r1, r2, r3, asr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
   5352    TESTINST3("orn.w  r1, r2, r3, asr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
   5353    TESTINST3("orn.w  r1, r2, r3, asr #15", 0x80000000, 0,          r1, r2, r3, cv);
   5354    TESTINST3("orn.w  r1, r2, r3, asr #31", 0x80000000, 0,          r1, r2, r3, cv);
   5355    TESTINST3("orns.w r1, r2, r3, lsl #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5356    TESTINST3("orns.w r1, r2, r3, lsl #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5357    TESTINST3("orns.w r1, r2, r3, lsl #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5358    TESTINST3("orns.w r1, r2, r3, lsl #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5359    TESTINST3("orns.w r1, r2, r3, lsr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5360    TESTINST3("orns.w r1, r2, r3, lsr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5361    TESTINST3("orns.w r1, r2, r3, lsr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5362    TESTINST3("orns.w r1, r2, r3, lsr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5363    TESTINST3("orns.w r1, r2, r3, asr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5364    TESTINST3("orns.w r1, r2, r3, asr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5365    TESTINST3("orns.w r1, r2, r3, asr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5366    TESTINST3("orns.w r1, r2, r3, asr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5367    TESTINST3("orn.w  r1, r2, r3, lsl #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5368    TESTINST3("orn.w  r1, r2, r3, lsl #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5369    TESTINST3("orn.w  r1, r2, r3, lsl #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5370    TESTINST3("orn.w  r1, r2, r3, lsl #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5371    TESTINST3("orn.w  r1, r2, r3, lsr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5372    TESTINST3("orn.w  r1, r2, r3, lsr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5373    TESTINST3("orn.w  r1, r2, r3, lsr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5374    TESTINST3("orn.w  r1, r2, r3, lsr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5375    TESTINST3("orn.w  r1, r2, r3, asr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5376    TESTINST3("orn.w  r1, r2, r3, asr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5377    TESTINST3("orn.w  r1, r2, r3, asr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5378    TESTINST3("orn.w  r1, r2, r3, asr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
   5379    TESTINST3("orns.w r1, r2, r3, lsl #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5380    TESTINST3("orns.w r1, r2, r3, lsl #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5381    TESTINST3("orns.w r1, r2, r3, lsl #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5382    TESTINST3("orns.w r1, r2, r3, lsl #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5383    TESTINST3("orns.w r1, r2, r3, lsr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5384    TESTINST3("orns.w r1, r2, r3, lsr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5385    TESTINST3("orns.w r1, r2, r3, lsr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5386    TESTINST3("orns.w r1, r2, r3, lsr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5387    TESTINST3("orns.w r1, r2, r3, asr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5388    TESTINST3("orns.w r1, r2, r3, asr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5389    TESTINST3("orns.w r1, r2, r3, asr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5390    TESTINST3("orns.w r1, r2, r3, asr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5391    TESTINST3("orn.w  r1, r2, r3, lsl #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5392    TESTINST3("orn.w  r1, r2, r3, lsl #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5393    TESTINST3("orn.w  r1, r2, r3, lsl #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5394    TESTINST3("orn.w  r1, r2, r3, lsl #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5395    TESTINST3("orn.w  r1, r2, r3, lsr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5396    TESTINST3("orn.w  r1, r2, r3, lsr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5397    TESTINST3("orn.w  r1, r2, r3, lsr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5398    TESTINST3("orn.w  r1, r2, r3, lsr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5399    TESTINST3("orn.w  r1, r2, r3, asr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5400    TESTINST3("orn.w  r1, r2, r3, asr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5401    TESTINST3("orn.w  r1, r2, r3, asr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5402    TESTINST3("orn.w  r1, r2, r3, asr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
   5403    TESTINST3("orns.w r1, r2, r3, lsl #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5404    TESTINST3("orns.w r1, r2, r3, lsl #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5405    TESTINST3("orns.w r1, r2, r3, lsl #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5406    TESTINST3("orns.w r1, r2, r3, lsl #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5407    TESTINST3("orns.w r1, r2, r3, lsr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5408    TESTINST3("orns.w r1, r2, r3, lsr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5409    TESTINST3("orns.w r1, r2, r3, lsr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5410    TESTINST3("orns.w r1, r2, r3, lsr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5411    TESTINST3("orns.w r1, r2, r3, asr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5412    TESTINST3("orns.w r1, r2, r3, asr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5413    TESTINST3("orns.w r1, r2, r3, asr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5414    TESTINST3("orns.w r1, r2, r3, asr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5415    TESTINST3("orn.w  r1, r2, r3, lsl #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5416    TESTINST3("orn.w  r1, r2, r3, lsl #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5417    TESTINST3("orn.w  r1, r2, r3, lsl #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5418    TESTINST3("orn.w  r1, r2, r3, lsl #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5419    TESTINST3("orn.w  r1, r2, r3, lsr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5420    TESTINST3("orn.w  r1, r2, r3, lsr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5421    TESTINST3("orn.w  r1, r2, r3, lsr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5422    TESTINST3("orn.w  r1, r2, r3, lsr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5423    TESTINST3("orn.w  r1, r2, r3, asr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5424    TESTINST3("orn.w  r1, r2, r3, asr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5425    TESTINST3("orn.w  r1, r2, r3, asr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5426    TESTINST3("orn.w  r1, r2, r3, asr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
   5427    TESTINST3("orns.w r1, r2, r3, lsl #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5428    TESTINST3("orns.w r1, r2, r3, lsl #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5429    TESTINST3("orns.w r1, r2, r3, lsl #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5430    TESTINST3("orns.w r1, r2, r3, lsl #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5431    TESTINST3("orns.w r1, r2, r3, lsr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5432    TESTINST3("orns.w r1, r2, r3, lsr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5433    TESTINST3("orns.w r1, r2, r3, lsr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5434    TESTINST3("orns.w r1, r2, r3, lsr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5435    TESTINST3("orns.w r1, r2, r3, asr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5436    TESTINST3("orns.w r1, r2, r3, asr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5437    TESTINST3("orns.w r1, r2, r3, asr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5438    TESTINST3("orns.w r1, r2, r3, asr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5439    TESTINST3("orn.w  r1, r2, r3, lsl #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5440    TESTINST3("orn.w  r1, r2, r3, lsl #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5441    TESTINST3("orn.w  r1, r2, r3, lsl #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5442    TESTINST3("orn.w  r1, r2, r3, lsl #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5443    TESTINST3("orn.w  r1, r2, r3, lsr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5444    TESTINST3("orn.w  r1, r2, r3, lsr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5445    TESTINST3("orn.w  r1, r2, r3, lsr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5446    TESTINST3("orn.w  r1, r2, r3, lsr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5447    TESTINST3("orn.w  r1, r2, r3, asr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5448    TESTINST3("orn.w  r1, r2, r3, asr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5449    TESTINST3("orn.w  r1, r2, r3, asr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5450    TESTINST3("orn.w  r1, r2, r3, asr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
   5451    TESTCARRYEND
   5452 
   5453    printf("(T?) LSL{S}.W Rd, Rn, Rm\n");
   5454    TESTCARRY
   5455    TESTINST3("lsls.w r1, r2, r3", 0x31415927, 0x00000000, r1, r2, r3, cv);
   5456    TESTINST3("lsls.w r1, r2, r3", 0x31415927, 0x00000001, r1, r2, r3, cv);
   5457    TESTINST3("lsls.w r1, r2, r3", 0x31415927, 0x00000002, r1, r2, r3, cv);
   5458    TESTINST3("lsls.w r1, r2, r3", 0x31415927, 0x0000000F, r1, r2, r3, cv);
   5459    TESTINST3("lsls.w r1, r2, r3", 0x31415927, 0x00000010, r1, r2, r3, cv);
   5460    TESTINST3("lsls.w r1, r2, r3", 0x31415927, 0x0000001F, r1, r2, r3, cv);
   5461    TESTINST3("lsls.w r1, r2, r3", 0x31415927, 0x00000020, r1, r2, r3, cv);
   5462    TESTINST3("lsls.w r1, r2, r3", 0x31415927, 0x00000021, r1, r2, r3, cv);
   5463    TESTINST3("lsl.w  r1, r2, r3", 0x31415927, 0x00000000, r1, r2, r3, cv);
   5464    TESTINST3("lsl.w  r1, r2, r3", 0x31415927, 0x00000001, r1, r2, r3, cv);
   5465    TESTINST3("lsl.w  r1, r2, r3", 0x31415927, 0x00000002, r1, r2, r3, cv);
   5466    TESTINST3("lsl.w  r1, r2, r3", 0x31415927, 0x0000000F, r1, r2, r3, cv);
   5467    TESTINST3("lsl.w  r1, r2, r3", 0x31415927, 0x00000010, r1, r2, r3, cv);
   5468    TESTINST3("lsl.w  r1, r2, r3", 0x31415927, 0x0000001F, r1, r2, r3, cv);
   5469    TESTINST3("lsl.w  r1, r2, r3", 0x31415927, 0x00000020, r1, r2, r3, cv);
   5470    TESTINST3("lsl.w  r1, r2, r3", 0x31415927, 0x00000021, r1, r2, r3, cv);
   5471    TESTCARRYEND
   5472 
   5473    printf("(T?) LSR{S}.W Rd, Rn, Rm\n");
   5474    TESTCARRY
   5475    TESTINST3("lsrs.w r1, r2, r3", 0x31415927, 0x00000000, r1, r2, r3, cv);
   5476    TESTINST3("lsrs.w r1, r2, r3", 0x31415927, 0x00000001, r1, r2, r3, cv);
   5477    TESTINST3("lsrs.w r1, r2, r3", 0x31415927, 0x00000002, r1, r2, r3, cv);
   5478    TESTINST3("lsrs.w r1, r2, r3", 0x31415927, 0x0000000F, r1, r2, r3, cv);
   5479    TESTINST3("lsrs.w r1, r2, r3", 0x31415927, 0x00000010, r1, r2, r3, cv);
   5480    TESTINST3("lsrs.w r1, r2, r3", 0x31415927, 0x0000001F, r1, r2, r3, cv);
   5481    TESTINST3("lsrs.w r1, r2, r3", 0x31415927, 0x00000020, r1, r2, r3, cv);
   5482    TESTINST3("lsrs.w r1, r2, r3", 0x31415927, 0x00000021, r1, r2, r3, cv);
   5483    TESTINST3("lsr.w  r1, r2, r3", 0x31415927, 0x00000000, r1, r2, r3, cv);
   5484    TESTINST3("lsr.w  r1, r2, r3", 0x31415927, 0x00000001, r1, r2, r3, cv);
   5485    TESTINST3("lsr.w  r1, r2, r3", 0x31415927, 0x00000002, r1, r2, r3, cv);
   5486    TESTINST3("lsr.w  r1, r2, r3", 0x31415927, 0x0000000F, r1, r2, r3, cv);
   5487    TESTINST3("lsr.w  r1, r2, r3", 0x31415927, 0x00000010, r1, r2, r3, cv);
   5488    TESTINST3("lsr.w  r1, r2, r3", 0x31415927, 0x0000001F, r1, r2, r3, cv);
   5489    TESTINST3("lsr.w  r1, r2, r3", 0x31415927, 0x00000020, r1, r2, r3, cv);
   5490    TESTINST3("lsr.w  r1, r2, r3", 0x31415927, 0x00000021, r1, r2, r3, cv);
   5491    TESTCARRYEND
   5492 
   5493    printf("(T?) ASR{S}.W Rd, Rn, Rm\n");
   5494    TESTCARRY
   5495    TESTINST3("asrs.w r1, r2, r3", 0x31415927, 0x00000000, r1, r2, r3, cv);
   5496    TESTINST3("asrs.w r1, r2, r3", 0x91415927, 0x00000001, r1, r2, r3, cv);
   5497    TESTINST3("asrs.w r1, r2, r3", 0x31415927, 0x00000002, r1, r2, r3, cv);
   5498    TESTINST3("asrs.w r1, r2, r3", 0x91415927, 0x0000000F, r1, r2, r3, cv);
   5499    TESTINST3("asrs.w r1, r2, r3", 0x31415927, 0x00000010, r1, r2, r3, cv);
   5500    TESTINST3("asrs.w r1, r2, r3", 0x91415927, 0x0000001F, r1, r2, r3, cv);
   5501    TESTINST3("asrs.w r1, r2, r3", 0x31415927, 0x00000020, r1, r2, r3, cv);
   5502    TESTINST3("asrs.w r1, r2, r3", 0x91415927, 0x00000021, r1, r2, r3, cv);
   5503    TESTINST3("asr.w  r1, r2, r3", 0x31415927, 0x00000000, r1, r2, r3, cv);
   5504    TESTINST3("asr.w  r1, r2, r3", 0x91415927, 0x00000001, r1, r2, r3, cv);
   5505    TESTINST3("asr.w  r1, r2, r3", 0x31415927, 0x00000002, r1, r2, r3, cv);
   5506    TESTINST3("asr.w  r1, r2, r3", 0x91415927, 0x0000000F, r1, r2, r3, cv);
   5507    TESTINST3("asr.w  r1, r2, r3", 0x31415927, 0x00000010, r1, r2, r3, cv);
   5508    TESTINST3("asr.w  r1, r2, r3", 0x91415927, 0x0000001F, r1, r2, r3, cv);
   5509    TESTINST3("asr.w  r1, r2, r3", 0x31415927, 0x00000020, r1, r2, r3, cv);
   5510    TESTINST3("asr.w  r1, r2, r3", 0x91415927, 0x00000021, r1, r2, r3, cv);
   5511    TESTCARRYEND
   5512 
   5513    printf("(T?) ROR{S}.W Rd, Rn, Rm\n");
   5514    TESTCARRY
   5515    TESTINST3("rors.w r1, r2, r3", 0x31415927, 0x00000000, r1, r2, r3, cv);
   5516    TESTINST3("rors.w r1, r2, r3", 0x31415927, 0x00000001, r1, r2, r3, cv);
   5517    TESTINST3("rors.w r1, r2, r3", 0x31415927, 0x00000002, r1, r2, r3, cv);
   5518    TESTINST3("rors.w r1, r2, r3", 0x31415927, 0x0000000F, r1, r2, r3, cv);
   5519    TESTINST3("rors.w r1, r2, r3", 0x31415927, 0x00000010, r1, r2, r3, cv);
   5520    TESTINST3("rors.w r1, r2, r3", 0x31415927, 0x0000001F, r1, r2, r3, cv);
   5521    TESTINST3("rors.w r1, r2, r3", 0x31415927, 0x00000020, r1, r2, r3, cv);
   5522    TESTINST3("rors.w r1, r2, r3", 0x31415927, 0x00000021, r1, r2, r3, cv);
   5523    TESTINST3("ror.w  r1, r2, r3", 0x31415927, 0x00000000, r1, r2, r3, cv);
   5524    TESTINST3("ror.w  r1, r2, r3", 0x31415927, 0x00000001, r1, r2, r3, cv);
   5525    TESTINST3("ror.w  r1, r2, r3", 0x31415927, 0x00000002, r1, r2, r3, cv);
   5526    TESTINST3("ror.w  r1, r2, r3", 0x31415927, 0x0000000F, r1, r2, r3, cv);
   5527    TESTINST3("ror.w  r1, r2, r3", 0x31415927, 0x00000010, r1, r2, r3, cv);
   5528    TESTINST3("ror.w  r1, r2, r3", 0x31415927, 0x0000001F, r1, r2, r3, cv);
   5529    TESTINST3("ror.w  r1, r2, r3", 0x31415927, 0x00000020, r1, r2, r3, cv);
   5530    TESTINST3("ror.w  r1, r2, r3", 0x31415927, 0x00000021, r1, r2, r3, cv);
   5531    TESTCARRYEND
   5532 
   5533    printf("MVN{S}.W Rd, Rn, shift,   and MOV{S}.W ditto\n");
   5534    TESTCARRY
   5535    TESTINST2("lsls.w   r1, r2, #0 ", 0x7fffffff, r1, r2, cv);
   5536    TESTINST2("lsls.w   r1, r2, #1 ", 0x7fffffff, r1, r2, cv);
   5537    TESTINST2("lsls.w   r1, r2, #15", 0x7fffffff, r1, r2, cv);
   5538    TESTINST2("lsls.w   r1, r2, #31", 0x7fffffff, r1, r2, cv);
   5539    TESTINST2("lsrs.w   r1, r2, #0 ", 0x7fffffff, r1, r2, cv);
   5540    TESTINST2("lsrs.w   r1, r2, #1 ", 0x7fffffff, r1, r2, cv);
   5541    TESTINST2("lsrs.w   r1, r2, #15", 0x7fffffff, r1, r2, cv);
   5542    TESTINST2("lsrs.w   r1, r2, #31", 0x7fffffff, r1, r2, cv);
   5543    TESTINST2("asrs.w   r1, r2, #0 ", 0x7fffffff, r1, r2, cv);
   5544    TESTINST2("asrs.w   r1, r2, #1 ", 0x7fffffff, r1, r2, cv);
   5545    TESTINST2("asrs.w   r1, r2, #15", 0x7fffffff, r1, r2, cv);
   5546    TESTINST2("asrs.w   r1, r2, #31", 0x7fffffff, r1, r2, cv);
   5547    TESTINST2("rors.w   r1, r2, #0 ", 0x7fffffff, r1, r2, cv);
   5548    TESTINST2("rors.w   r1, r2, #1 ", 0x7fffffff, r1, r2, cv);
   5549    TESTINST2("rors.w   r1, r2, #15", 0x7fffffff, r1, r2, cv);
   5550    TESTINST2("rors.w   r1, r2, #31", 0x7fffffff, r1, r2, cv);
   5551    TESTINST2("lsl.w    r1, r2, #0 ", 0x7fffffff, r1, r2, cv);
   5552    TESTINST2("lsl.w    r1, r2, #1 ", 0x7fffffff, r1, r2, cv);
   5553    TESTINST2("lsl.w    r1, r2, #15", 0x7fffffff, r1, r2, cv);
   5554    TESTINST2("lsl.w    r1, r2, #31", 0x7fffffff, r1, r2, cv);
   5555    TESTINST2("lsr.w    r1, r2, #0 ", 0x7fffffff, r1, r2, cv);
   5556    TESTINST2("lsr.w    r1, r2, #1 ", 0x7fffffff, r1, r2, cv);
   5557    TESTINST2("lsr.w    r1, r2, #15", 0x7fffffff, r1, r2, cv);
   5558    TESTINST2("lsr.w    r1, r2, #31", 0x7fffffff, r1, r2, cv);
   5559    TESTINST2("asr.w    r1, r2, #0 ", 0x7fffffff, r1, r2, cv);
   5560    TESTINST2("asr.w    r1, r2, #1 ", 0x7fffffff, r1, r2, cv);
   5561    TESTINST2("asr.w    r1, r2, #15", 0x7fffffff, r1, r2, cv);
   5562    TESTINST2("asr.w    r1, r2, #31", 0x7fffffff, r1, r2, cv);
   5563    TESTINST2("ror.w    r1, r2, #0 ", 0x7fffffff, r1, r2, cv);
   5564    TESTINST2("ror.w    r1, r2, #1 ", 0x7fffffff, r1, r2, cv);
   5565    TESTINST2("ror.w    r1, r2, #15", 0x7fffffff, r1, r2, cv);
   5566    TESTINST2("ror.w    r1, r2, #31", 0x7fffffff, r1, r2, cv);
   5567    TESTINST2("mvns.w   r1, r2, lsl #0 ", 0x7fffffff, r1, r2, cv);
   5568    TESTINST2("mvns.w   r1, r2, lsl #1 ", 0x7fffffff, r1, r2, cv);
   5569    TESTINST2("mvns.w   r1, r2, lsl #15", 0x7fffffff, r1, r2, cv);
   5570    TESTINST2("mvns.w   r1, r2, lsl #31", 0x7fffffff, r1, r2, cv);
   5571    TESTINST2("mvns.w   r1, r2, lsr #0 ", 0x7fffffff, r1, r2, cv);
   5572    TESTINST2("mvns.w   r1, r2, lsr #1 ", 0x7fffffff, r1, r2, cv);
   5573    TESTINST2("mvns.w   r1, r2, lsr #15", 0x7fffffff, r1, r2, cv);
   5574    TESTINST2("mvns.w   r1, r2, lsr #31", 0x7fffffff, r1, r2, cv);
   5575    TESTINST2("mvns.w   r1, r2, asr #0 ", 0x7fffffff, r1, r2, cv);
   5576    TESTINST2("mvns.w   r1, r2, asr #1 ", 0x7fffffff, r1, r2, cv);
   5577    TESTINST2("mvns.w   r1, r2, asr #15", 0x7fffffff, r1, r2, cv);
   5578    TESTINST2("mvns.w   r1, r2, asr #31", 0x7fffffff, r1, r2, cv);
   5579    TESTINST2("mvns.w   r1, r2, ror #0 ", 0x7fffffff, r1, r2, cv);
   5580    TESTINST2("mvns.w   r1, r2, ror #1 ", 0x7fffffff, r1, r2, cv);
   5581    TESTINST2("mvns.w   r1, r2, ror #15", 0x7fffffff, r1, r2, cv);
   5582    TESTINST2("mvns.w   r1, r2, ror #31", 0x7fffffff, r1, r2, cv);
   5583    TESTINST2("mvn.w    r1, r2, lsl #0 ", 0x7fffffff, r1, r2, cv);
   5584    TESTINST2("mvn.w    r1, r2, lsl #1 ", 0x7fffffff, r1, r2, cv);
   5585    TESTINST2("mvn.w    r1, r2, lsl #15", 0x7fffffff, r1, r2, cv);
   5586    TESTINST2("mvn.w    r1, r2, lsl #31", 0x7fffffff, r1, r2, cv);
   5587    TESTINST2("mvn.w    r1, r2, lsr #0 ", 0x7fffffff, r1, r2, cv);
   5588    TESTINST2("mvn.w    r1, r2, lsr #1 ", 0x7fffffff, r1, r2, cv);
   5589    TESTINST2("mvn.w    r1, r2, lsr #15", 0x7fffffff, r1, r2, cv);
   5590    TESTINST2("mvn.w    r1, r2, lsr #31", 0x7fffffff, r1, r2, cv);
   5591    TESTINST2("mvn.w    r1, r2, asr #0 ", 0x7fffffff, r1, r2, cv);
   5592    TESTINST2("mvn.w    r1, r2, asr #1 ", 0x7fffffff, r1, r2, cv);
   5593    TESTINST2("mvn.w    r1, r2, asr #15", 0x7fffffff, r1, r2, cv);
   5594    TESTINST2("mvn.w    r1, r2, asr #31", 0x7fffffff, r1, r2, cv);
   5595    TESTINST2("mvn.w    r1, r2, ror #0 ", 0x7fffffff, r1, r2, cv);
   5596    TESTINST2("mvn.w    r1, r2, ror #1 ", 0x7fffffff, r1, r2, cv);
   5597    TESTINST2("mvn.w    r1, r2, ror #15", 0x7fffffff, r1, r2, cv);
   5598    TESTINST2("mvn.w    r1, r2, ror #31", 0x7fffffff, r1, r2, cv);
   5599    TESTINST2("lsls.w   r1, r2, #0 ", 0x00000000, r1, r2, cv);
   5600    TESTINST2("lsls.w   r1, r2, #1 ", 0x00000000, r1, r2, cv);
   5601    TESTINST2("lsls.w   r1, r2, #15", 0x00000000, r1, r2, cv);
   5602    TESTINST2("lsls.w   r1, r2, #31", 0x00000000, r1, r2, cv);
   5603    TESTINST2("lsrs.w   r1, r2, #0 ", 0x00000000, r1, r2, cv);
   5604    TESTINST2("lsrs.w   r1, r2, #1 ", 0x00000000, r1, r2, cv);
   5605    TESTINST2("lsrs.w   r1, r2, #15", 0x00000000, r1, r2, cv);
   5606    TESTINST2("lsrs.w   r1, r2, #31", 0x00000000, r1, r2, cv);
   5607    TESTINST2("asrs.w   r1, r2, #0 ", 0x00000000, r1, r2, cv);
   5608    TESTINST2("asrs.w   r1, r2, #1 ", 0x00000000, r1, r2, cv);
   5609    TESTINST2("asrs.w   r1, r2, #15", 0x00000000, r1, r2, cv);
   5610    TESTINST2("asrs.w   r1, r2, #31", 0x00000000, r1, r2, cv);
   5611    TESTINST2("rors.w   r1, r2, #0 ", 0x00000000, r1, r2, cv);
   5612    TESTINST2("rors.w   r1, r2, #1 ", 0x00000000, r1, r2, cv);
   5613    TESTINST2("rors.w   r1, r2, #15", 0x00000000, r1, r2, cv);
   5614    TESTINST2("rors.w   r1, r2, #31", 0x00000000, r1, r2, cv);
   5615    TESTINST2("lsl.w    r1, r2, #0 ", 0x00000000, r1, r2, cv);
   5616    TESTINST2("lsl.w    r1, r2, #1 ", 0x00000000, r1, r2, cv);
   5617    TESTINST2("lsl.w    r1, r2, #15", 0x00000000, r1, r2, cv);
   5618    TESTINST2("lsl.w    r1, r2, #31", 0x00000000, r1, r2, cv);
   5619    TESTINST2("lsr.w    r1, r2, #0 ", 0x00000000, r1, r2, cv);
   5620    TESTINST2("lsr.w    r1, r2, #1 ", 0x00000000, r1, r2, cv);
   5621    TESTINST2("lsr.w    r1, r2, #15", 0x00000000, r1, r2, cv);
   5622    TESTINST2("lsr.w    r1, r2, #31", 0x00000000, r1, r2, cv);
   5623    TESTINST2("asr.w    r1, r2, #0 ", 0x00000000, r1, r2, cv);
   5624    TESTINST2("asr.w    r1, r2, #1 ", 0x00000000, r1, r2, cv);
   5625    TESTINST2("asr.w    r1, r2, #15", 0x00000000, r1, r2, cv);
   5626    TESTINST2("asr.w    r1, r2, #31", 0x00000000, r1, r2, cv);
   5627    TESTINST2("ror.w    r1, r2, #0 ", 0x00000000, r1, r2, cv);
   5628    TESTINST2("ror.w    r1, r2, #1 ", 0x00000000, r1, r2, cv);
   5629    TESTINST2("ror.w    r1, r2, #15", 0x00000000, r1, r2, cv);
   5630    TESTINST2("ror.w    r1, r2, #31", 0x00000000, r1, r2, cv);
   5631    TESTINST2("mvns.w   r1, r2, lsl #0 ", 0x00000000, r1, r2, cv);
   5632    TESTINST2("mvns.w   r1, r2, lsl #1 ", 0x00000000, r1, r2, cv);
   5633    TESTINST2("mvns.w   r1, r2, lsl #15", 0x00000000, r1, r2, cv);
   5634    TESTINST2("mvns.w   r1, r2, lsl #31", 0x00000000, r1, r2, cv);
   5635    TESTINST2("mvns.w   r1, r2, lsr #0 ", 0x00000000, r1, r2, cv);
   5636    TESTINST2("mvns.w   r1, r2, lsr #1 ", 0x00000000, r1, r2, cv);
   5637    TESTINST2("mvns.w   r1, r2, lsr #15", 0x00000000, r1, r2, cv);
   5638    TESTINST2("mvns.w   r1, r2, lsr #31", 0x00000000, r1, r2, cv);
   5639    TESTINST2("mvns.w   r1, r2, asr #0 ", 0x00000000, r1, r2, cv);
   5640    TESTINST2("mvns.w   r1, r2, asr #1 ", 0x00000000, r1, r2, cv);
   5641    TESTINST2("mvns.w   r1, r2, asr #15", 0x00000000, r1, r2, cv);
   5642    TESTINST2("mvns.w   r1, r2, asr #31", 0x00000000, r1, r2, cv);
   5643    TESTINST2("mvns.w   r1, r2, ror #0 ", 0x00000000, r1, r2, cv);
   5644    TESTINST2("mvns.w   r1, r2, ror #1 ", 0x00000000, r1, r2, cv);
   5645    TESTINST2("mvns.w   r1, r2, ror #15", 0x00000000, r1, r2, cv);
   5646    TESTINST2("mvns.w   r1, r2, ror #31", 0x00000000, r1, r2, cv);
   5647    TESTINST2("mvn.w    r1, r2, lsl #0 ", 0x00000000, r1, r2, cv);
   5648    TESTINST2("mvn.w    r1, r2, lsl #1 ", 0x00000000, r1, r2, cv);
   5649    TESTINST2("mvn.w    r1, r2, lsl #15", 0x00000000, r1, r2, cv);
   5650    TESTINST2("mvn.w    r1, r2, lsl #31", 0x00000000, r1, r2, cv);
   5651    TESTINST2("mvn.w    r1, r2, lsr #0 ", 0x00000000, r1, r2, cv);
   5652    TESTINST2("mvn.w    r1, r2, lsr #1 ", 0x00000000, r1, r2, cv);
   5653    TESTINST2("mvn.w    r1, r2, lsr #15", 0x00000000, r1, r2, cv);
   5654    TESTINST2("mvn.w    r1, r2, lsr #31", 0x00000000, r1, r2, cv);
   5655    TESTINST2("mvn.w    r1, r2, asr #0 ", 0x00000000, r1, r2, cv);
   5656    TESTINST2("mvn.w    r1, r2, asr #1 ", 0x00000000, r1, r2, cv);
   5657    TESTINST2("mvn.w    r1, r2, asr #15", 0x00000000, r1, r2, cv);
   5658    TESTINST2("mvn.w    r1, r2, asr #31", 0x00000000, r1, r2, cv);
   5659    TESTINST2("mvn.w    r1, r2, ror #0 ", 0x00000000, r1, r2, cv);
   5660    TESTINST2("mvn.w    r1, r2, ror #1 ", 0x00000000, r1, r2, cv);
   5661    TESTINST2("mvn.w    r1, r2, ror #15", 0x00000000, r1, r2, cv);
   5662    TESTINST2("mvn.w    r1, r2, ror #31", 0x00000000, r1, r2, cv);
   5663    TESTINST2("lsls.w   r1, r2, #0 ", 0x00000001, r1, r2, cv);
   5664    TESTINST2("lsls.w   r1, r2, #1 ", 0x00000001, r1, r2, cv);
   5665    TESTINST2("lsls.w   r1, r2, #15", 0x00000001, r1, r2, cv);
   5666    TESTINST2("lsls.w   r1, r2, #31", 0x00000001, r1, r2, cv);
   5667    TESTINST2("lsrs.w   r1, r2, #0 ", 0x00000001, r1, r2, cv);
   5668    TESTINST2("lsrs.w   r1, r2, #1 ", 0x00000001, r1, r2, cv);
   5669    TESTINST2("lsrs.w   r1, r2, #15", 0x00000001, r1, r2, cv);
   5670    TESTINST2("lsrs.w   r1, r2, #31", 0x00000001, r1, r2, cv);
   5671    TESTINST2("asrs.w   r1, r2, #0 ", 0x00000001, r1, r2, cv);
   5672    TESTINST2("asrs.w   r1, r2, #1 ", 0x00000001, r1, r2, cv);
   5673    TESTINST2("asrs.w   r1, r2, #15", 0x00000001, r1, r2, cv);
   5674    TESTINST2("asrs.w   r1, r2, #31", 0x00000001, r1, r2, cv);
   5675    TESTINST2("rors.w   r1, r2, #0 ", 0x00000001, r1, r2, cv);
   5676    TESTINST2("rors.w   r1, r2, #1 ", 0x00000001, r1, r2, cv);
   5677    TESTINST2("rors.w   r1, r2, #15", 0x00000001, r1, r2, cv);
   5678    TESTINST2("rors.w   r1, r2, #31", 0x00000001, r1, r2, cv);
   5679    TESTINST2("lsl.w    r1, r2, #0 ", 0x00000001, r1, r2, cv);
   5680    TESTINST2("lsl.w    r1, r2, #1 ", 0x00000001, r1, r2, cv);
   5681    TESTINST2("lsl.w    r1, r2, #15", 0x00000001, r1, r2, cv);
   5682    TESTINST2("lsl.w    r1, r2, #31", 0x00000001, r1, r2, cv);
   5683    TESTINST2("lsr.w    r1, r2, #0 ", 0x00000001, r1, r2, cv);
   5684    TESTINST2("lsr.w    r1, r2, #1 ", 0x00000001, r1, r2, cv);
   5685    TESTINST2("lsr.w    r1, r2, #15", 0x00000001, r1, r2, cv);
   5686    TESTINST2("lsr.w    r1, r2, #31", 0x00000001, r1, r2, cv);
   5687    TESTINST2("asr.w    r1, r2, #0 ", 0x00000001, r1, r2, cv);
   5688    TESTINST2("asr.w    r1, r2, #1 ", 0x00000001, r1, r2, cv);
   5689    TESTINST2("asr.w    r1, r2, #15", 0x00000001, r1, r2, cv);
   5690    TESTINST2("asr.w    r1, r2, #31", 0x00000001, r1, r2, cv);
   5691    TESTINST2("ror.w    r1, r2, #0 ", 0x00000001, r1, r2, cv);
   5692    TESTINST2("ror.w    r1, r2, #1 ", 0x00000001, r1, r2, cv);
   5693    TESTINST2("ror.w    r1, r2, #15", 0x00000001, r1, r2, cv);
   5694    TESTINST2("ror.w    r1, r2, #31", 0x00000001, r1, r2, cv);
   5695    TESTINST2("mvns.w   r1, r2, lsl #0 ", 0x00000001, r1, r2, cv);
   5696    TESTINST2("mvns.w   r1, r2, lsl #1 ", 0x00000001, r1, r2, cv);
   5697    TESTINST2("mvns.w   r1, r2, lsl #15", 0x00000001, r1, r2, cv);
   5698    TESTINST2("mvns.w   r1, r2, lsl #31", 0x00000001, r1, r2, cv);
   5699    TESTINST2("mvns.w   r1, r2, lsr #0 ", 0x00000001, r1, r2, cv);
   5700    TESTINST2("mvns.w   r1, r2, lsr #1 ", 0x00000001, r1, r2, cv);
   5701    TESTINST2("mvns.w   r1, r2, lsr #15", 0x00000001, r1, r2, cv);
   5702    TESTINST2("mvns.w   r1, r2, lsr #31", 0x00000001, r1, r2, cv);
   5703    TESTINST2("mvns.w   r1, r2, asr #0 ", 0x00000001, r1, r2, cv);
   5704    TESTINST2("mvns.w   r1, r2, asr #1 ", 0x00000001, r1, r2, cv);
   5705    TESTINST2("mvns.w   r1, r2, asr #15", 0x00000001, r1, r2, cv);
   5706    TESTINST2("mvns.w   r1, r2, asr #31", 0x00000001, r1, r2, cv);
   5707    TESTINST2("mvns.w   r1, r2, ror #0 ", 0x00000001, r1, r2, cv);
   5708    TESTINST2("mvns.w   r1, r2, ror #1 ", 0x00000001, r1, r2, cv);
   5709    TESTINST2("mvns.w   r1, r2, ror #15", 0x00000001, r1, r2, cv);
   5710    TESTINST2("mvns.w   r1, r2, ror #31", 0x00000001, r1, r2, cv);
   5711    TESTINST2("mvn.w    r1, r2, lsl #0 ", 0x00000001, r1, r2, cv);
   5712    TESTINST2("mvn.w    r1, r2, lsl #1 ", 0x00000001, r1, r2, cv);
   5713    TESTINST2("mvn.w    r1, r2, lsl #15", 0x00000001, r1, r2, cv);
   5714    TESTINST2("mvn.w    r1, r2, lsl #31", 0x00000001, r1, r2, cv);
   5715    TESTINST2("mvn.w    r1, r2, lsr #0 ", 0x00000001, r1, r2, cv);
   5716    TESTINST2("mvn.w    r1, r2, lsr #1 ", 0x00000001, r1, r2, cv);
   5717    TESTINST2("mvn.w    r1, r2, lsr #15", 0x00000001, r1, r2, cv);
   5718    TESTINST2("mvn.w    r1, r2, lsr #31", 0x00000001, r1, r2, cv);
   5719    TESTINST2("mvn.w    r1, r2, asr #0 ", 0x00000001, r1, r2, cv);
   5720    TESTINST2("mvn.w    r1, r2, asr #1 ", 0x00000001, r1, r2, cv);
   5721    TESTINST2("mvn.w    r1, r2, asr #15", 0x00000001, r1, r2, cv);
   5722    TESTINST2("mvn.w    r1, r2, asr #31", 0x00000001, r1, r2, cv);
   5723    TESTINST2("mvn.w    r1, r2, ror #0 ", 0x00000001, r1, r2, cv);
   5724    TESTINST2("mvn.w    r1, r2, ror #1 ", 0x00000001, r1, r2, cv);
   5725    TESTINST2("mvn.w    r1, r2, ror #15", 0x00000001, r1, r2, cv);
   5726    TESTINST2("mvn.w    r1, r2, ror #31", 0x00000001, r1, r2, cv);
   5727    TESTINST2("lsls.w   r1, r2, #0 ", 0x9218abcd, r1, r2, cv);
   5728    TESTINST2("lsls.w   r1, r2, #1 ", 0x9218abcd, r1, r2, cv);
   5729    TESTINST2("lsls.w   r1, r2, #15", 0x9218abcd, r1, r2, cv);
   5730    TESTINST2("lsls.w   r1, r2, #31", 0x9218abcd, r1, r2, cv);
   5731    TESTINST2("lsrs.w   r1, r2, #0 ", 0x9218abcd, r1, r2, cv);
   5732    TESTINST2("lsrs.w   r1, r2, #1 ", 0x9218abcd, r1, r2, cv);
   5733    TESTINST2("lsrs.w   r1, r2, #15", 0x9218abcd, r1, r2, cv);
   5734    TESTINST2("lsrs.w   r1, r2, #31", 0x9218abcd, r1, r2, cv);
   5735    TESTINST2("asrs.w   r1, r2, #0 ", 0x9218abcd, r1, r2, cv);
   5736    TESTINST2("asrs.w   r1, r2, #1 ", 0x9218abcd, r1, r2, cv);
   5737    TESTINST2("asrs.w   r1, r2, #15", 0x9218abcd, r1, r2, cv);
   5738    TESTINST2("asrs.w   r1, r2, #31", 0x9218abcd, r1, r2, cv);
   5739    TESTINST2("rors.w   r1, r2, #0 ", 0x9218abcd, r1, r2, cv);
   5740    TESTINST2("rors.w   r1, r2, #1 ", 0x9218abcd, r1, r2, cv);
   5741    TESTINST2("rors.w   r1, r2, #15", 0x9218abcd, r1, r2, cv);
   5742    TESTINST2("rors.w   r1, r2, #31", 0x9218abcd, r1, r2, cv);
   5743    TESTINST2("lsl.w    r1, r2, #0 ", 0x9218abcd, r1, r2, cv);
   5744    TESTINST2("lsl.w    r1, r2, #1 ", 0x9218abcd, r1, r2, cv);
   5745    TESTINST2("lsl.w    r1, r2, #15", 0x9218abcd, r1, r2, cv);
   5746    TESTINST2("lsl.w    r1, r2, #31", 0x9218abcd, r1, r2, cv);
   5747    TESTINST2("lsr.w    r1, r2, #0 ", 0x9218abcd, r1, r2, cv);
   5748    TESTINST2("lsr.w    r1, r2, #1 ", 0x9218abcd, r1, r2, cv);
   5749    TESTINST2("lsr.w    r1, r2, #15", 0x9218abcd, r1, r2, cv);
   5750    TESTINST2("lsr.w    r1, r2, #31", 0x9218abcd, r1, r2, cv);
   5751    TESTINST2("asr.w    r1, r2, #0 ", 0x9218abcd, r1, r2, cv);
   5752    TESTINST2("asr.w    r1, r2, #1 ", 0x9218abcd, r1, r2, cv);
   5753    TESTINST2("asr.w    r1, r2, #15", 0x9218abcd, r1, r2, cv);
   5754    TESTINST2("asr.w    r1, r2, #31", 0x9218abcd, r1, r2, cv);
   5755    TESTINST2("ror.w    r1, r2, #0 ", 0x9218abcd, r1, r2, cv);
   5756    TESTINST2("ror.w    r1, r2, #1 ", 0x9218abcd, r1, r2, cv);
   5757    TESTINST2("ror.w    r1, r2, #15", 0x9218abcd, r1, r2, cv);
   5758    TESTINST2("ror.w    r1, r2, #31", 0x9218abcd, r1, r2, cv);
   5759    TESTINST2("mvns.w   r1, r2, lsl #0 ", 0x9218abcd, r1, r2, cv);
   5760    TESTINST2("mvns.w   r1, r2, lsl #1 ", 0x9218abcd, r1, r2, cv);
   5761    TESTINST2("mvns.w   r1, r2, lsl #15", 0x9218abcd, r1, r2, cv);
   5762    TESTINST2("mvns.w   r1, r2, lsl #31", 0x9218abcd, r1, r2, cv);
   5763    TESTINST2("mvns.w   r1, r2, lsr #0 ", 0x9218abcd, r1, r2, cv);
   5764    TESTINST2("mvns.w   r1, r2, lsr #1 ", 0x9218abcd, r1, r2, cv);
   5765    TESTINST2("mvns.w   r1, r2, lsr #15", 0x9218abcd, r1, r2, cv);
   5766    TESTINST2("mvns.w   r1, r2, lsr #31", 0x9218abcd, r1, r2, cv);
   5767    TESTINST2("mvns.w   r1, r2, asr #0 ", 0x9218abcd, r1, r2, cv);
   5768    TESTINST2("mvns.w   r1, r2, asr #1 ", 0x9218abcd, r1, r2, cv);
   5769    TESTINST2("mvns.w   r1, r2, asr #15", 0x9218abcd, r1, r2, cv);
   5770    TESTINST2("mvns.w   r1, r2, asr #31", 0x9218abcd, r1, r2, cv);
   5771    TESTINST2("mvns.w   r1, r2, ror #0 ", 0x9218abcd, r1, r2, cv);
   5772    TESTINST2("mvns.w   r1, r2, ror #1 ", 0x9218abcd, r1, r2, cv);
   5773    TESTINST2("mvns.w   r1, r2, ror #15", 0x9218abcd, r1, r2, cv);
   5774    TESTINST2("mvns.w   r1, r2, ror #31", 0x9218abcd, r1, r2, cv);
   5775    TESTINST2("mvn.w    r1, r2, lsl #0 ", 0x9218abcd, r1, r2, cv);
   5776    TESTINST2("mvn.w    r1, r2, lsl #1 ", 0x9218abcd, r1, r2, cv);
   5777    TESTINST2("mvn.w    r1, r2, lsl #15", 0x9218abcd, r1, r2, cv);
   5778    TESTINST2("mvn.w    r1, r2, lsl #31", 0x9218abcd, r1, r2, cv);
   5779    TESTINST2("mvn.w    r1, r2, lsr #0 ", 0x9218abcd, r1, r2, cv);
   5780    TESTINST2("mvn.w    r1, r2, lsr #1 ", 0x9218abcd, r1, r2, cv);
   5781    TESTINST2("mvn.w    r1, r2, lsr #15", 0x9218abcd, r1, r2, cv);
   5782    TESTINST2("mvn.w    r1, r2, lsr #31", 0x9218abcd, r1, r2, cv);
   5783    TESTINST2("mvn.w    r1, r2, asr #0 ", 0x9218abcd, r1, r2, cv);
   5784    TESTINST2("mvn.w    r1, r2, asr #1 ", 0x9218abcd, r1, r2, cv);
   5785    TESTINST2("mvn.w    r1, r2, asr #15", 0x9218abcd, r1, r2, cv);
   5786    TESTINST2("mvn.w    r1, r2, asr #31", 0x9218abcd, r1, r2, cv);
   5787    TESTINST2("mvn.w    r1, r2, ror #0 ", 0x9218abcd, r1, r2, cv);
   5788    TESTINST2("mvn.w    r1, r2, ror #1 ", 0x9218abcd, r1, r2, cv);
   5789    TESTINST2("mvn.w    r1, r2, ror #15", 0x9218abcd, r1, r2, cv);
   5790    TESTINST2("mvn.w    r1, r2, ror #31", 0x9218abcd, r1, r2, cv);
   5791    TESTINST2("lsls.w   r1, r2, #0 ", 0xffffffff, r1, r2, cv);
   5792    TESTINST2("lsls.w   r1, r2, #1 ", 0xffffffff, r1, r2, cv);
   5793    TESTINST2("lsls.w   r1, r2, #15", 0xffffffff, r1, r2, cv);
   5794    TESTINST2("lsls.w   r1, r2, #31", 0xffffffff, r1, r2, cv);
   5795    TESTINST2("lsrs.w   r1, r2, #0 ", 0xffffffff, r1, r2, cv);
   5796    TESTINST2("lsrs.w   r1, r2, #1 ", 0xffffffff, r1, r2, cv);
   5797    TESTINST2("lsrs.w   r1, r2, #15", 0xffffffff, r1, r2, cv);
   5798    TESTINST2("lsrs.w   r1, r2, #31", 0xffffffff, r1, r2, cv);
   5799    TESTINST2("asrs.w   r1, r2, #0 ", 0xffffffff, r1, r2, cv);
   5800    TESTINST2("asrs.w   r1, r2, #1 ", 0xffffffff, r1, r2, cv);
   5801    TESTINST2("asrs.w   r1, r2, #15", 0xffffffff, r1, r2, cv);
   5802    TESTINST2("asrs.w   r1, r2, #31", 0xffffffff, r1, r2, cv);
   5803    TESTINST2("rors.w   r1, r2, #0 ", 0xffffffff, r1, r2, cv);
   5804    TESTINST2("rors.w   r1, r2, #1 ", 0xffffffff, r1, r2, cv);
   5805    TESTINST2("rors.w   r1, r2, #15", 0xffffffff, r1, r2, cv);
   5806    TESTINST2("rors.w   r1, r2, #31", 0xffffffff, r1, r2, cv);
   5807    TESTINST2("lsl.w    r1, r2, #0 ", 0xffffffff, r1, r2, cv);
   5808    TESTINST2("lsl.w    r1, r2, #1 ", 0xffffffff, r1, r2, cv);
   5809    TESTINST2("lsl.w    r1, r2, #15", 0xffffffff, r1, r2, cv);
   5810    TESTINST2("lsl.w    r1, r2, #31", 0xffffffff, r1, r2, cv);
   5811    TESTINST2("lsr.w    r1, r2, #0 ", 0xffffffff, r1, r2, cv);
   5812    TESTINST2("lsr.w    r1, r2, #1 ", 0xffffffff, r1, r2, cv);
   5813    TESTINST2("lsr.w    r1, r2, #15", 0xffffffff, r1, r2, cv);
   5814    TESTINST2("lsr.w    r1, r2, #31", 0xffffffff, r1, r2, cv);
   5815    TESTINST2("asr.w    r1, r2, #0 ", 0xffffffff, r1, r2, cv);
   5816    TESTINST2("asr.w    r1, r2, #1 ", 0xffffffff, r1, r2, cv);
   5817    TESTINST2("asr.w    r1, r2, #15", 0xffffffff, r1, r2, cv);
   5818    TESTINST2("asr.w    r1, r2, #31", 0xffffffff, r1, r2, cv);
   5819    TESTINST2("ror.w    r1, r2, #0 ", 0xffffffff, r1, r2, cv);
   5820    TESTINST2("ror.w    r1, r2, #1 ", 0xffffffff, r1, r2, cv);
   5821    TESTINST2("ror.w    r1, r2, #15", 0xffffffff, r1, r2, cv);
   5822    TESTINST2("ror.w    r1, r2, #31", 0xffffffff, r1, r2, cv);
   5823    TESTINST2("mvns.w   r1, r2, lsl #0 ", 0xffffffff, r1, r2, cv);
   5824    TESTINST2("mvns.w   r1, r2, lsl #1 ", 0xffffffff, r1, r2, cv);
   5825    TESTINST2("mvns.w   r1, r2, lsl #15", 0xffffffff, r1, r2, cv);
   5826    TESTINST2("mvns.w   r1, r2, lsl #31", 0xffffffff, r1, r2, cv);
   5827    TESTINST2("mvns.w   r1, r2, lsr #0 ", 0xffffffff, r1, r2, cv);
   5828    TESTINST2("mvns.w   r1, r2, lsr #1 ", 0xffffffff, r1, r2, cv);
   5829    TESTINST2("mvns.w   r1, r2, lsr #15", 0xffffffff, r1, r2, cv);
   5830    TESTINST2("mvns.w   r1, r2, lsr #31", 0xffffffff, r1, r2, cv);
   5831    TESTINST2("mvns.w   r1, r2, asr #0 ", 0xffffffff, r1, r2, cv);
   5832    TESTINST2("mvns.w   r1, r2, asr #1 ", 0xffffffff, r1, r2, cv);
   5833    TESTINST2("mvns.w   r1, r2, asr #15", 0xffffffff, r1, r2, cv);
   5834    TESTINST2("mvns.w   r1, r2, asr #31", 0xffffffff, r1, r2, cv);
   5835    TESTINST2("mvns.w   r1, r2, ror #0 ", 0xffffffff, r1, r2, cv);
   5836    TESTINST2("mvns.w   r1, r2, ror #1 ", 0xffffffff, r1, r2, cv);
   5837    TESTINST2("mvns.w   r1, r2, ror #15", 0xffffffff, r1, r2, cv);
   5838    TESTINST2("mvns.w   r1, r2, ror #31", 0xffffffff, r1, r2, cv);
   5839    TESTINST2("mvn.w    r1, r2, lsl #0 ", 0xffffffff, r1, r2, cv);
   5840    TESTINST2("mvn.w    r1, r2, lsl #1 ", 0xffffffff, r1, r2, cv);
   5841    TESTINST2("mvn.w    r1, r2, lsl #15", 0xffffffff, r1, r2, cv);
   5842    TESTINST2("mvn.w    r1, r2, lsl #31", 0xffffffff, r1, r2, cv);
   5843    TESTINST2("mvn.w    r1, r2, lsr #0 ", 0xffffffff, r1, r2, cv);
   5844    TESTINST2("mvn.w    r1, r2, lsr #1 ", 0xffffffff, r1, r2, cv);
   5845    TESTINST2("mvn.w    r1, r2, lsr #15", 0xffffffff, r1, r2, cv);
   5846    TESTINST2("mvn.w    r1, r2, lsr #31", 0xffffffff, r1, r2, cv);
   5847    TESTINST2("mvn.w    r1, r2, asr #0 ", 0xffffffff, r1, r2, cv);
   5848    TESTINST2("mvn.w    r1, r2, asr #1 ", 0xffffffff, r1, r2, cv);
   5849    TESTINST2("mvn.w    r1, r2, asr #15", 0xffffffff, r1, r2, cv);
   5850    TESTINST2("mvn.w    r1, r2, asr #31", 0xffffffff, r1, r2, cv);
   5851    TESTINST2("mvn.w    r1, r2, ror #0 ", 0xffffffff, r1, r2, cv);
   5852    TESTINST2("mvn.w    r1, r2, ror #1 ", 0xffffffff, r1, r2, cv);
   5853    TESTINST2("mvn.w    r1, r2, ror #15", 0xffffffff, r1, r2, cv);
   5854    TESTINST2("mvn.w    r1, r2, ror #31", 0xffffffff, r1, r2, cv);
   5855    TESTCARRYEND
   5856 
   5857    printf("(T?) TST.W Rn, Rm, {shift}\n");
   5858    TESTCARRY
   5859    TESTINST2x("tst.w  r1, r2, lsl #1", 0x11223344, 0x99887766, r1, r2, cv);
   5860    TESTINST2x("tst.w  r1, r2, lsr #1", 0x11223344, 0x99887766, r1, r2, cv);
   5861    TESTINST2x("tst.w  r1, r2, asr #1", 0x11223344, 0x99887766, r1, r2, cv);
   5862    TESTINST2x("tst.w  r1, r2, ror #1", 0x11223344, 0x99887766, r1, r2, cv);
   5863    TESTINST2x("tst.w  r1, r2, lsl #1", 0x11223344, 0x00000000, r1, r2, cv);
   5864    TESTINST2x("tst.w  r1, r2, lsr #1", 0x11223344, 0x00000000, r1, r2, cv);
   5865    TESTINST2x("tst.w  r1, r2, asr #1", 0x11223344, 0x00000000, r1, r2, cv);
   5866    TESTINST2x("tst.w  r1, r2, ror #1", 0x11223344, 0x00000000, r1, r2, cv);
   5867    TESTINST2x("tst.w  r1, r2, lsl #1", 0x91223344, 0x40000000, r1, r2, cv);
   5868    TESTINST2x("tst.w  r1, r2, lsr #1", 0x91223344, 0x40000000, r1, r2, cv);
   5869    TESTINST2x("tst.w  r1, r2, asr #1", 0x91223344, 0x80000000, r1, r2, cv);
   5870    TESTINST2x("tst.w  r1, r2, ror #1", 0x91223344, 0x00000001, r1, r2, cv);
   5871    TESTCARRYEND
   5872 
   5873    printf("(T?) TEQ.W Rn, Rm, {shift}\n");
   5874    TESTCARRY
   5875    TESTINST2x("teq.w  r1, r2, lsl #1", 0x11223344, 0x99887766, r1, r2, cv);
   5876    TESTINST2x("teq.w  r1, r2, lsr #1", 0x11223344, 0x99887766, r1, r2, cv);
   5877    TESTINST2x("teq.w  r1, r2, asr #1", 0x11223344, 0x99887766, r1, r2, cv);
   5878    TESTINST2x("teq.w  r1, r2, ror #1", 0x11223344, 0x99887766, r1, r2, cv);
   5879    TESTINST2x("teq.w  r1, r2, lsl #1", 0x11223344, 0x00000000, r1, r2, cv);
   5880    TESTINST2x("teq.w  r1, r2, lsr #1", 0x11223344, 0x00000000, r1, r2, cv);
   5881    TESTINST2x("teq.w  r1, r2, asr #1", 0x11223344, 0x00000000, r1, r2, cv);
   5882    TESTINST2x("teq.w  r1, r2, ror #1", 0x11223344, 0x00000000, r1, r2, cv);
   5883    TESTINST2x("teq.w  r1, r2, lsl #1", 0x91223344, 0x40000000, r1, r2, cv);
   5884    TESTINST2x("teq.w  r1, r2, lsr #1", 0x91223344, 0x40000000, r1, r2, cv);
   5885    TESTINST2x("teq.w  r1, r2, asr #1", 0x91223344, 0x80000000, r1, r2, cv);
   5886    TESTINST2x("teq.w  r1, r2, ror #1", 0x91223344, 0x00000001, r1, r2, cv);
   5887    TESTCARRYEND
   5888 
   5889    printf("(T?) CMP.W Rn, Rm, {shift}\n");
   5890    TESTCARRY
   5891    TESTINST2x("cmp.w  r1, r2, lsl #1", 0x11223344, 0x99887766, r1, r2, cv);
   5892    TESTINST2x("cmp.w  r1, r2, lsr #1", 0x11223344, 0x99887766, r1, r2, cv);
   5893    TESTINST2x("cmp.w  r1, r2, asr #1", 0x11223344, 0x99887766, r1, r2, cv);
   5894    TESTINST2x("cmp.w  r1, r2, ror #1", 0x11223344, 0x99887766, r1, r2, cv);
   5895    TESTINST2x("cmp.w  r1, r2, lsl #1", 0x11223344, 0x00000000, r1, r2, cv);
   5896    TESTINST2x("cmp.w  r1, r2, lsr #1", 0x11223344, 0x00000000, r1, r2, cv);
   5897    TESTINST2x("cmp.w  r1, r2, asr #1", 0x11223344, 0x00000000, r1, r2, cv);
   5898    TESTINST2x("cmp.w  r1, r2, ror #1", 0x11223344, 0x00000000, r1, r2, cv);
   5899    TESTINST2x("cmp.w  r1, r2, lsl #1", 0x91223344, 0x40000000, r1, r2, cv);
   5900    TESTINST2x("cmp.w  r1, r2, lsr #1", 0x91223344, 0x40000000, r1, r2, cv);
   5901    TESTINST2x("cmp.w  r1, r2, asr #1", 0x91223344, 0x80000000, r1, r2, cv);
   5902    TESTINST2x("cmp.w  r1, r2, ror #1", 0x91223344, 0x00000001, r1, r2, cv);
   5903    TESTINST2x("cmp.w  r1, r2, lsr #2", 0x15555555, 0x55555555, r1, r2, cv);
   5904    TESTINST2x("cmp.w  r1, r2, ror #1", 0x55555555, 0xaaaaaaaa, r1, r2, cv);
   5905    TESTCARRYEND
   5906 
   5907    printf("(T?) CMN.W Rn, Rm, {shift}\n");
   5908    TESTCARRY
   5909    TESTINST2x("cmn.w  r1, r2, lsl #1", 0x11223344, 0x99887766, r1, r2, cv);
   5910    TESTINST2x("cmn.w  r1, r2, lsr #1", 0x11223344, 0x99887766, r1, r2, cv);
   5911    TESTINST2x("cmn.w  r1, r2, asr #1", 0x11223344, 0x99887766, r1, r2, cv);
   5912    TESTINST2x("cmn.w  r1, r2, ror #1", 0x11223344, 0x99887766, r1, r2, cv);
   5913    TESTINST2x("cmn.w  r1, r2, lsl #1", 0x11223344, 0x00000000, r1, r2, cv);
   5914    TESTINST2x("cmn.w  r1, r2, lsr #1", 0x11223344, 0x00000000, r1, r2, cv);
   5915    TESTINST2x("cmn.w  r1, r2, asr #1", 0x11223344, 0x00000000, r1, r2, cv);
   5916    TESTINST2x("cmn.w  r1, r2, ror #1", 0x11223344, 0x00000000, r1, r2, cv);
   5917    TESTINST2x("cmn.w  r1, r2, lsl #1", 0x91223344, 0x40000000, r1, r2, cv);
   5918    TESTINST2x("cmn.w  r1, r2, lsr #1", 0x91223344, 0x40000000, r1, r2, cv);
   5919    TESTINST2x("cmn.w  r1, r2, asr #1", 0x91223344, 0x80000000, r1, r2, cv);
   5920    TESTINST2x("cmn.w  r1, r2, ror #1", 0x91223344, 0x00000001, r1, r2, cv);
   5921    TESTINST2x("cmn.w  r1, r2, lsr #2", 0x15555555, 0x55555555, r1, r2, cv);
   5922    TESTINST2x("cmn.w  r1, r2, ror #1", 0x55555555, 0xaaaaaaaa, r1, r2, cv);
   5923    TESTCARRYEND
   5924 
   5925    printf("(T2) MOV{S}.W Rd, #constT\n");
   5926    TESTCARRY
   5927    TESTINST1("movs.w  r9, 0x00000000", r9, cv);
   5928    TESTINST1("movs.w  r9, 0x000000FF", r9, cv);
   5929    TESTINST1("movs.w  r9, 0x0000007F", r9, cv);
   5930    TESTINST1("movs.w  r9, 0x00FF00FF", r9, cv);
   5931    TESTINST1("movs.w  r9, 0x007F007F", r9, cv);
   5932    TESTINST1("movs.w  r9, 0x43434343", r9, cv);
   5933    TESTINST1("movs.w  r9, 0x93939393", r9, cv);
   5934    TESTINST1("movs.w  r9, 0x93000000", r9, cv);
   5935    TESTINST1("movs.w  r9, 0x43000000", r9, cv);
   5936    TESTINST1("movs.w  r9, 0x09300000", r9, cv);
   5937    TESTINST1("movs.w  r9, 0x04300000", r9, cv);
   5938    TESTINST1("movs.w  r9, 0x00930000", r9, cv);
   5939    TESTINST1("movs.w  r9, 0x00430000", r9, cv);
   5940    TESTINST1("movs.w  r9, 0x00000930", r9, cv);
   5941    TESTINST1("movs.w  r9, 0x00000430", r9, cv);
   5942    TESTINST1("movs.w  r9, 0x00000093", r9, cv);
   5943    TESTINST1("movs.w  r9, 0x00000043", r9, cv);
   5944    TESTINST1("mov.w   r9, 0x00000000", r9, cv);
   5945    TESTINST1("mov.w   r9, 0x000000FF", r9, cv);
   5946    TESTINST1("mov.w   r9, 0x0000007F", r9, cv);
   5947    TESTINST1("mov.w   r9, 0x00FF00FF", r9, cv);
   5948    TESTINST1("mov.w   r9, 0x007F007F", r9, cv);
   5949    TESTINST1("mov.w   r9, 0x43434343", r9, cv);
   5950    TESTINST1("mov.w   r9, 0x93939393", r9, cv);
   5951    TESTINST1("mov.w   r9, 0x93000000", r9, cv);
   5952    TESTINST1("mov.w   r9, 0x43000000", r9, cv);
   5953    TESTINST1("mov.w   r9, 0x09300000", r9, cv);
   5954    TESTINST1("mov.w   r9, 0x04300000", r9, cv);
   5955    TESTINST1("mov.w   r9, 0x00930000", r9, cv);
   5956    TESTINST1("mov.w   r9, 0x00430000", r9, cv);
   5957    TESTINST1("mov.w   r9, 0x00000930", r9, cv);
   5958    TESTINST1("mov.w   r9, 0x00000430", r9, cv);
   5959    TESTINST1("mov.w   r9, 0x00000093", r9, cv);
   5960    TESTINST1("mov.w   r9, 0x00000043", r9, cv);
   5961    TESTCARRYEND
   5962 
   5963    printf("(T2) MVN{S}.W Rd, #constT\n");
   5964    TESTCARRY
   5965    TESTINST1("mvns.w  r9, 0x00000000", r9, cv);
   5966    TESTINST1("mvns.w  r9, 0x000000FF", r9, cv);
   5967    TESTINST1("mvns.w  r9, 0x0000007F", r9, cv);
   5968    TESTINST1("mvns.w  r9, 0x00FF00FF", r9, cv);
   5969    TESTINST1("mvns.w  r9, 0x007F007F", r9, cv);
   5970    TESTINST1("mvns.w  r9, 0x43434343", r9, cv);
   5971    TESTINST1("mvns.w  r9, 0x93939393", r9, cv);
   5972    TESTINST1("mvns.w  r9, 0x93000000", r9, cv);
   5973    TESTINST1("mvns.w  r9, 0x43000000", r9, cv);
   5974    TESTINST1("mvns.w  r9, 0x09300000", r9, cv);
   5975    TESTINST1("mvns.w  r9, 0x04300000", r9, cv);
   5976    TESTINST1("mvns.w  r9, 0x00930000", r9, cv);
   5977    TESTINST1("mvns.w  r9, 0x00430000", r9, cv);
   5978    TESTINST1("mvns.w  r9, 0x00000930", r9, cv);
   5979    TESTINST1("mvns.w  r9, 0x00000430", r9, cv);
   5980    TESTINST1("mvns.w  r9, 0x00000093", r9, cv);
   5981    TESTINST1("mvns.w  r9, 0x00000043", r9, cv);
   5982    TESTINST1("mvn.w   r9, 0x00000000", r9, cv);
   5983    TESTINST1("mvn.w   r9, 0x000000FF", r9, cv);
   5984    TESTINST1("mvn.w   r9, 0x0000007F", r9, cv);
   5985    TESTINST1("mvn.w   r9, 0x00FF00FF", r9, cv);
   5986    TESTINST1("mvn.w   r9, 0x007F007F", r9, cv);
   5987    TESTINST1("mvn.w   r9, 0x43434343", r9, cv);
   5988    TESTINST1("mvn.w   r9, 0x93939393", r9, cv);
   5989    TESTINST1("mvn.w   r9, 0x93000000", r9, cv);
   5990    TESTINST1("mvn.w   r9, 0x43000000", r9, cv);
   5991    TESTINST1("mvn.w   r9, 0x09300000", r9, cv);
   5992    TESTINST1("mvn.w   r9, 0x04300000", r9, cv);
   5993    TESTINST1("mvn.w   r9, 0x00930000", r9, cv);
   5994    TESTINST1("mvn.w   r9, 0x00430000", r9, cv);
   5995    TESTINST1("mvn.w   r9, 0x00000930", r9, cv);
   5996    TESTINST1("mvn.w   r9, 0x00000430", r9, cv);
   5997    TESTINST1("mvn.w   r9, 0x00000093", r9, cv);
   5998    TESTINST1("mvn.w   r9, 0x00000043", r9, cv);
   5999    TESTCARRYEND
   6000 
   6001    printf("(T1) RBIT Rd, Rm\n");
   6002 	TESTINST2("rbit r0, r1", 0x00000000, r0, r1, 0);
   6003 	TESTINST2("rbit r0, r1", 0xFFFFFFFF, r0, r1, 0);
   6004 	TESTINST2("rbit r0, r1", 0x80000000, r0, r1, 0);
   6005 	TESTINST2("rbit r0, r1", 0x00000001, r0, r1, 0);
   6006 	TESTINST2("rbit r0, r1", 0x31415927, r0, r1, 0);
   6007 	TESTINST2("rbit r0, r1", 0x14141562, r0, r1, 0);
   6008    TESTINST2("rbit r0, r1", 0xabe8391f, r0, r1, 0);
   6009    TESTINST2("rbit r0, r1", 0x9028aa80, r0, r1, 0);
   6010    TESTINST2("rbit r0, r1", 0xead1fc6d, r0, r1, 0);
   6011    TESTINST2("rbit r0, r1", 0x35c98c55, r0, r1, 0);
   6012    TESTINST2("rbit r0, r1", 0x534af1eb, r0, r1, 0);
   6013    TESTINST2("rbit r0, r1", 0x45511b08, r0, r1, 0);
   6014    TESTINST2("rbit r0, r1", 0x90077f71, r0, r1, 0);
   6015    TESTINST2("rbit r0, r1", 0xde8ca84b, r0, r1, 0);
   6016    TESTINST2("rbit r0, r1", 0xe37a0dda, r0, r1, 0);
   6017    TESTINST2("rbit r0, r1", 0xe5b83d4b, r0, r1, 0);
   6018    TESTINST2("rbit r0, r1", 0xbb6d14ec, r0, r1, 0);
   6019    TESTINST2("rbit r0, r1", 0x68983cc9, r0, r1, 0);
   6020 
   6021 	printf("(T1) REV Rd, Rm ------------\n");
   6022 	TESTINST2("rev r0, r1", 0x00000000, r0, r1, 0);
   6023 	TESTINST2("rev r0, r1", 0xFFFFFFFF, r0, r1, 0);
   6024 	TESTINST2("rev r0, r1", 0x80000000, r0, r1, 0);
   6025 	TESTINST2("rev r0, r1", 0x00000001, r0, r1, 0);
   6026 	TESTINST2("rev r0, r1", 0x31415927, r0, r1, 0);
   6027 	TESTINST2("rev r0, r1", 0x14141562, r0, r1, 0);
   6028    TESTINST2("rev r0, r1", 0xabe8391f, r0, r1, 0);
   6029    TESTINST2("rev r0, r1", 0x9028aa80, r0, r1, 0);
   6030    TESTINST2("rev r0, r1", 0xead1fc6d, r0, r1, 0);
   6031    TESTINST2("rev r0, r1", 0x35c98c55, r0, r1, 0);
   6032    TESTINST2("rev r0, r1", 0x534af1eb, r0, r1, 0);
   6033    TESTINST2("rev r0, r1", 0x45511b08, r0, r1, 0);
   6034    TESTINST2("rev r0, r1", 0x90077f71, r0, r1, 0);
   6035    TESTINST2("rev r0, r1", 0xde8ca84b, r0, r1, 0);
   6036    TESTINST2("rev r0, r1", 0xe37a0dda, r0, r1, 0);
   6037    TESTINST2("rev r0, r1", 0xe5b83d4b, r0, r1, 0);
   6038    TESTINST2("rev r0, r1", 0xbb6d14ec, r0, r1, 0);
   6039    TESTINST2("rev r0, r1", 0x68983cc9, r0, r1, 0);
   6040 
   6041 	printf("(T2) REV Rd, Rm ------------\n");
   6042 	TESTINST2("rev r8, r9", 0x00000000, r8, r9, 0);
   6043 	TESTINST2("rev r8, r9", 0xFFFFFFFF, r8, r9, 0);
   6044 	TESTINST2("rev r8, r9", 0x80000000, r8, r9, 0);
   6045 	TESTINST2("rev r8, r9", 0x00000001, r8, r9, 0);
   6046 	TESTINST2("rev r8, r9", 0x31415927, r8, r9, 0);
   6047 	TESTINST2("rev r8, r9", 0x14141562, r8, r9, 0);
   6048    TESTINST2("rev r8, r9", 0xabe8391f, r8, r9, 0);
   6049    TESTINST2("rev r8, r9", 0x9028aa80, r8, r9, 0);
   6050    TESTINST2("rev r8, r9", 0xead1fc6d, r8, r9, 0);
   6051    TESTINST2("rev r8, r9", 0x35c98c55, r8, r9, 0);
   6052    TESTINST2("rev r8, r9", 0x534af1eb, r8, r9, 0);
   6053    TESTINST2("rev r8, r9", 0x45511b08, r8, r9, 0);
   6054    TESTINST2("rev r8, r9", 0x90077f71, r8, r9, 0);
   6055    TESTINST2("rev r8, r9", 0xde8ca84b, r8, r9, 0);
   6056    TESTINST2("rev r8, r9", 0xe37a0dda, r8, r9, 0);
   6057    TESTINST2("rev r8, r9", 0xe5b83d4b, r8, r9, 0);
   6058    TESTINST2("rev r8, r9", 0xbb6d14ec, r8, r9, 0);
   6059    TESTINST2("rev r8, r9", 0x68983cc9, r8, r9, 0);
   6060 
   6061 	printf("(T1) REV16 Rd, Rm ------------\n");
   6062 	TESTINST2("rev16 r0, r1", 0x00000000, r0, r1, 0);
   6063 	TESTINST2("rev16 r0, r1", 0xFFFFFFFF, r0, r1, 0);
   6064 	TESTINST2("rev16 r0, r1", 0x80000000, r0, r1, 0);
   6065 	TESTINST2("rev16 r0, r1", 0x00000001, r0, r1, 0);
   6066 	TESTINST2("rev16 r0, r1", 0x31415927, r0, r1, 0);
   6067 	TESTINST2("rev16 r0, r1", 0x14141562, r0, r1, 0);
   6068    TESTINST2("rev16 r0, r1", 0xabe8391f, r0, r1, 0);
   6069    TESTINST2("rev16 r0, r1", 0x9028aa80, r0, r1, 0);
   6070    TESTINST2("rev16 r0, r1", 0xead1fc6d, r0, r1, 0);
   6071    TESTINST2("rev16 r0, r1", 0x35c98c55, r0, r1, 0);
   6072    TESTINST2("rev16 r0, r1", 0x534af1eb, r0, r1, 0);
   6073    TESTINST2("rev16 r0, r1", 0x45511b08, r0, r1, 0);
   6074    TESTINST2("rev16 r0, r1", 0x90077f71, r0, r1, 0);
   6075    TESTINST2("rev16 r0, r1", 0xde8ca84b, r0, r1, 0);
   6076    TESTINST2("rev16 r0, r1", 0xe37a0dda, r0, r1, 0);
   6077    TESTINST2("rev16 r0, r1", 0xe5b83d4b, r0, r1, 0);
   6078    TESTINST2("rev16 r0, r1", 0xbb6d14ec, r0, r1, 0);
   6079    TESTINST2("rev16 r0, r1", 0x68983cc9, r0, r1, 0);
   6080 
   6081 	printf("(T2) REV16 Rd, Rm ------------\n");
   6082 	TESTINST2("rev16 r8, r9", 0x00000000, r8, r9, 0);
   6083 	TESTINST2("rev16 r8, r9", 0xFFFFFFFF, r8, r9, 0);
   6084 	TESTINST2("rev16 r8, r9", 0x80000000, r8, r9, 0);
   6085 	TESTINST2("rev16 r8, r9", 0x00000001, r8, r9, 0);
   6086 	TESTINST2("rev16 r8, r9", 0x31415927, r8, r9, 0);
   6087 	TESTINST2("rev16 r8, r9", 0x14141562, r8, r9, 0);
   6088    TESTINST2("rev16 r8, r9", 0xabe8391f, r8, r9, 0);
   6089    TESTINST2("rev16 r8, r9", 0x9028aa80, r8, r9, 0);
   6090    TESTINST2("rev16 r8, r9", 0xead1fc6d, r8, r9, 0);
   6091    TESTINST2("rev16 r8, r9", 0x35c98c55, r8, r9, 0);
   6092    TESTINST2("rev16 r8, r9", 0x534af1eb, r8, r9, 0);
   6093    TESTINST2("rev16 r8, r9", 0x45511b08, r8, r9, 0);
   6094    TESTINST2("rev16 r8, r9", 0x90077f71, r8, r9, 0);
   6095    TESTINST2("rev16 r8, r9", 0xde8ca84b, r8, r9, 0);
   6096    TESTINST2("rev16 r8, r9", 0xe37a0dda, r8, r9, 0);
   6097    TESTINST2("rev16 r8, r9", 0xe5b83d4b, r8, r9, 0);
   6098    TESTINST2("rev16 r8, r9", 0xbb6d14ec, r8, r9, 0);
   6099    TESTINST2("rev16 r8, r9", 0x68983cc9, r8, r9, 0);
   6100 
   6101         printf("(T1) REVSH Rd, Rm ------------\n");
   6102         TESTINST2("revsh r0, r1", 0x00000000, r0, r1, 0);
   6103         TESTINST2("revsh r0, r1", 0xFFFFFFFF, r0, r1, 0);
   6104         TESTINST2("revsh r0, r1", 0x80000000, r0, r1, 0);
   6105         TESTINST2("revsh r0, r1", 0x00000001, r0, r1, 0);
   6106         TESTINST2("revsh r0, r1", 0x31415927, r0, r1, 0);
   6107         TESTINST2("revsh r0, r1", 0x14141562, r0, r1, 0);
   6108    TESTINST2("revsh r0, r1", 0xabe8391f, r0, r1, 0);
   6109    TESTINST2("revsh r0, r1", 0x9028aa80, r0, r1, 0);
   6110    TESTINST2("revsh r0, r1", 0xead1fc6d, r0, r1, 0);
   6111    TESTINST2("revsh r0, r1", 0x35c98c55, r0, r1, 0);
   6112    TESTINST2("revsh r0, r1", 0x534af1eb, r0, r1, 0);
   6113    TESTINST2("revsh r0, r1", 0x45511b08, r0, r1, 0);
   6114    TESTINST2("revsh r0, r1", 0x90077f71, r0, r1, 0);
   6115    TESTINST2("revsh r0, r1", 0xde8ca84b, r0, r1, 0);
   6116    TESTINST2("revsh r0, r1", 0xe37a0dda, r0, r1, 0);
   6117    TESTINST2("revsh r0, r1", 0xe5b83d4b, r0, r1, 0);
   6118    TESTINST2("revsh r0, r1", 0xbb6d14ec, r0, r1, 0);
   6119    TESTINST2("revsh r0, r1", 0x68983cc9, r0, r1, 0);
   6120 
   6121         printf("(T2) REVSH Rd, Rm ------------\n");
   6122         TESTINST2("revsh r8, r9", 0x00000000, r8, r9, 0);
   6123         TESTINST2("revsh r8, r9", 0xFFFFFFFF, r8, r9, 0);
   6124         TESTINST2("revsh r8, r9", 0x80000000, r8, r9, 0);
   6125         TESTINST2("revsh r8, r9", 0x00000001, r8, r9, 0);
   6126         TESTINST2("revsh r8, r9", 0x31415927, r8, r9, 0);
   6127         TESTINST2("revsh r8, r9", 0x14141562, r8, r9, 0);
   6128    TESTINST2("revsh r8, r9", 0xabe8391f, r8, r9, 0);
   6129    TESTINST2("revsh r8, r9", 0x9028aa80, r8, r9, 0);
   6130    TESTINST2("revsh r8, r9", 0xead1fc6d, r8, r9, 0);
   6131    TESTINST2("revsh r8, r9", 0x35c98c55, r8, r9, 0);
   6132    TESTINST2("revsh r8, r9", 0x534af1eb, r8, r9, 0);
   6133    TESTINST2("revsh r8, r9", 0x45511b08, r8, r9, 0);
   6134    TESTINST2("revsh r8, r9", 0x90077f71, r8, r9, 0);
   6135    TESTINST2("revsh r8, r9", 0xde8ca84b, r8, r9, 0);
   6136    TESTINST2("revsh r8, r9", 0xe37a0dda, r8, r9, 0);
   6137    TESTINST2("revsh r8, r9", 0xe5b83d4b, r8, r9, 0);
   6138    TESTINST2("revsh r8, r9", 0xbb6d14ec, r8, r9, 0);
   6139    TESTINST2("revsh r8, r9", 0x68983cc9, r8, r9, 0);
   6140 
   6141 	printf("------------ NOP (begin) ------------\n");
   6142         printf("nop\n");
   6143         __asm__ __volatile__("nop" ::: "memory","cc");
   6144         printf("nop.w\n");
   6145         __asm__ __volatile__("nop.w" ::: "memory","cc");
   6146 	printf("------------ NOP (end) ------------\n");
   6147 
   6148    // plus whatever stuff we can throw in from the old ARM test program
   6149    old_main();
   6150 
   6151         printf("------------ SMMUL ------------\n");
   6152         TESTINST3("smmul   r0, r1, r2", 0, 0, r0, r1, r2, 0);
   6153         TESTINST3("smmul   r0, r1, r2", 0xffffffff, 0, r0, r1, r2, 0);
   6154         TESTINST3("smmul   r0, r1, r2", 0, 0xffffffff, r0, r1, r2, 0);
   6155         TESTINST3("smmul   r0, r1, r2", 0xffffffff, 0xffffffff, r0, r1, r2, 0);
   6156         TESTINST3("smmul   r0, r1, r2", 0x7fffffff, 0x7fffffff, r0, r1, r2, 0);
   6157         TESTINST3("smmul   r0, r1, r2", 0x0000ffff, 0x0000ffff, r0, r1, r2, 0);
   6158         TESTINST3("smmul   r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
   6159         TESTINST3("smmul   r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
   6160         TESTINST3("smmul   r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
   6161         TESTINST3("smmul   r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
   6162         TESTINST3("smmul   r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
   6163 
   6164         TESTINST3("smmulr  r0, r1, r2", 0, 0, r0, r1, r2, 0);
   6165         TESTINST3("smmulr  r0, r1, r2", 0xffffffff, 0, r0, r1, r2, 0);
   6166         TESTINST3("smmulr  r0, r1, r2", 0, 0xffffffff, r0, r1, r2, 0);
   6167         TESTINST3("smmulr  r0, r1, r2", 0xffffffff, 0xffffffff, r0, r1, r2, 0);
   6168         TESTINST3("smmulr  r0, r1, r2", 0x7fffffff, 0x7fffffff, r0, r1, r2, 0);
   6169         TESTINST3("smmulr  r0, r1, r2", 0x0000ffff, 0x0000ffff, r0, r1, r2, 0);
   6170         TESTINST3("smmulr  r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
   6171         TESTINST3("smmulr  r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
   6172         TESTINST3("smmulr  r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
   6173         TESTINST3("smmulr  r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
   6174         TESTINST3("smmulr  r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
   6175 
   6176 	printf("------------ UMAAL ------------\n");
   6177 	TESTINST4_2OUT("umaal  r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
   6178 	TESTINST4_2OUT("umaal  r0, r1, r2, r3", 0, 1, 0, 0, r0, r1, r2, r3, 0);
   6179 	TESTINST4_2OUT("umaal  r0, r1, r2, r3", 1, 1, 0, 0, r0, r1, r2, r3, 0);
   6180 	TESTINST4_2OUT("umaal  r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0, r1, r2, r3, 0);
   6181 	TESTINST4_2OUT("umaal  r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
   6182 	TESTINST4_2OUT("umaal  r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
   6183 	TESTINST4_2OUT("umaal  r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
   6184 	TESTINST4_2OUT("umaal  r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
   6185 	TESTINST4_2OUT("umaal  r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
   6186 
   6187 	TESTINST4_2OUT("umaal  r0, r1, r2, r3", 0x27182846, 0x31415927, 0x14141356, 0x1773250A,
   6188                        r0, r1, r2, r3, 0);
   6189 	TESTINST4_2OUT("umaal  r0, r1, r2, r3", 0x01415927, 0x74141356, 0x5773250A, 0xA7182846,
   6190                        r0, r1, r2, r3, 1);
   6191 
   6192         printf("----------------- SMMLA{R} ----------------- \n");
   6193         TESTINST4("smmla  r0, r1, r2, r3",
   6194                   0x80008000, 0x80008000, 0x00000000, r0, r1, r2, r3, 0);
   6195         TESTINST4("smmla  r0, r1, r2, r3",
   6196                   0x7fff7fff, 0x00000000, 0x00000000, r0, r1, r2, r3, 0);
   6197         TESTINST4("smmla  r0, r1, r2, r3",
   6198                   0x7fff7fff, 0x00010001, 0x00000001, r0, r1, r2, r3, 0);
   6199         TESTINST4("smmla  r0, r1, r2, r3",
   6200                   0x80008000, 0xffffffff, 0x0000001f, r0, r1, r2, r3, 0);
   6201         TESTINST4("smmla  r0, r1, r2, r3",
   6202                   0x00640064, 0x00030003, 0x00000020, r0, r1, r2, r3, 0);
   6203         TESTINST4("smmla  r0, r1, r2, r3",
   6204                   0xffffffff, 0xfffc0001, 0x000000ff, r0, r1, r2, r3, 0);
   6205         TESTINST4("smmla  r0, r1, r2, r3",
   6206                   0xfff70fff, 0x00030003, 0x00000100, r0, r1, r2, r3, 0);
   6207         TESTINST4("smmla  r0, r1, r2, r3",
   6208                   0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
   6209         TESTINST4("smmla  r0, r1, r2, r3",
   6210                   0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
   6211         TESTINST4("smmla  r0, r1, r2, r3",
   6212                   0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
   6213         TESTINST4("smmla  r0, r1, r2, r3",
   6214                   0x32fa0095, 0x36f26261, 0x89d2ef86, r0, r1, r2, r3, 0);
   6215         TESTINST4("smmla  r0, r1, r2, r3",
   6216                   0x8ed8287c, 0x02c90120, 0xd4b64d54, r0, r1, r2, r3, 0);
   6217         TESTINST4("smmla  r0, r1, r2, r3",
   6218                   0xc53aaba9, 0x29300837, 0x0b02c58a, r0, r1, r2, r3, 0);
   6219         TESTINST4("smmla  r0, r1, r2, r3",
   6220                   0x216158cb, 0x57a50a01, 0xb0d20777, r0, r1, r2, r3, 0);
   6221         TESTINST4("smmla  r0, r1, r2, r3",
   6222                   0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0, r1, r2, r3, 0);
   6223         TESTINST4("smmla  r0, r1, r2, r3",
   6224                   0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0, r1, r2, r3, 0);
   6225         TESTINST4("smmla  r0, r1, r2, r3",
   6226                   0xf87b961e, 0x1d66879f, 0xf2b64835, r0, r1, r2, r3, 0);
   6227         TESTINST4("smmla  r0, r1, r2, r3",
   6228                   0xd65db979, 0xc61b323b, 0xae930a1a, r0, r1, r2, r3, 0);
   6229         TESTINST4("smmla  r0, r1, r2, r3",
   6230                   0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0, r1, r2, r3, 0);
   6231         TESTINST4("smmla  r0, r1, r2, r3",
   6232                   0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0, r1, r2, r3, 0);
   6233         TESTINST4("smmla  r0, r1, r2, r3",
   6234                   0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, r3, 0);
   6235         TESTINST4("smmla  r0, r1, r2, r3",
   6236                   0xeaa652c7, 0x137741f4, 0x3dba1164, r0, r1, r2, r3, 0);
   6237         TESTINST4("smmla  r0, r1, r2, r3",
   6238                   0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0, r1, r2, r3, 0);
   6239         TESTINST4("smmla  r0, r1, r2, r3",
   6240                   0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0, r1, r2, r3, 0);
   6241         TESTINST4("smmla  r0, r1, r2, r3",
   6242                   0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, r3, 0);
   6243         TESTINST4("smmla  r0, r1, r2, r3",
   6244                   0xe1bb8606, 0x58293969, 0x81616d13, r0, r1, r2, r3, 0);
   6245         TESTINST4("smmla  r0, r1, r2, r3",
   6246                   0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0, r1, r2, r3, 0);
   6247         TESTINST4("smmla  r0, r1, r2, r3",
   6248                   0x0849a0c2, 0x0872f25a, 0x40b094e2, r0, r1, r2, r3, 0);
   6249         TESTINST4("smmla  r0, r1, r2, r3",
   6250                   0x17913309, 0xf1e03d7e, 0x91edc21d, r0, r1, r2, r3, 0);
   6251         TESTINST4("smmla  r0, r1, r2, r3",
   6252                   0x5388b5cd, 0x86582032, 0x6034078d, r0, r1, r2, r3, 0);
   6253         TESTINST4("smmla  r0, r1, r2, r3",
   6254                   0x181c436b, 0x5de41558, 0xccfa1c7e, r0, r1, r2, r3, 0);
   6255         TESTINST4("smmla  r0, r1, r2, r3",
   6256                   0x23ba1b46, 0x4437983c, 0x48d06549, r0, r1, r2, r3, 0);
   6257         TESTINST4("smmla  r0, r1, r2, r3",
   6258                   0xa9085781, 0xc6b4ac58, 0xb2aead21, r0, r1, r2, r3, 0);
   6259         TESTINST4("smmla  r0, r1, r2, r3",
   6260                   0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0, r1, r2, r3, 0);
   6261         TESTINST4("smmla  r0, r1, r2, r3",
   6262                   0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, r3, 0);
   6263         TESTINST4("smmla  r0, r1, r2, r3",
   6264                   0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0, r1, r2, r3, 0);
   6265         TESTINST4("smmla  r0, r1, r2, r3",
   6266                   0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0, r1, r2, r3, 0);
   6267         TESTINST4("smmla  r0, r1, r2, r3",
   6268                   0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0, r1, r2, r3, 0);
   6269         TESTINST4("smmla  r0, r1, r2, r3",
   6270                   0xd7ce1909, 0x3e435701, 0x85fbf196, r0, r1, r2, r3, 0);
   6271         TESTINST4("smmla  r0, r1, r2, r3",
   6272                   0xb4e16b6e, 0x6e13680a, 0x89436f88, r0, r1, r2, r3, 0);
   6273         TESTINST4("smmla  r0, r1, r2, r3",
   6274                   0x44858efc, 0x9002bc30, 0x390d2c2f, r0, r1, r2, r3, 0);
   6275         TESTINST4("smmla  r0, r1, r2, r3",
   6276                   0xbea121ab, 0x953ff6ec, 0x80657c40, r0, r1, r2, r3, 0);
   6277         TESTINST4("smmla  r0, r1, r2, r3",
   6278                   0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, r3, 0);
   6279         TESTINST4("smmla  r0, r1, r2, r3",
   6280                   0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0, r1, r2, r3, 0);
   6281         TESTINST4("smmla  r0, r1, r2, r3",
   6282                   0xec0c2f30, 0x5736ed46, 0x231348c0, r0, r1, r2, r3, 0);
   6283         TESTINST4("smmla  r0, r1, r2, r3",
   6284                   0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0, r1, r2, r3, 0);
   6285         TESTINST4("smmla  r0, r1, r2, r3",
   6286                   0xc1553709, 0x0112b30a, 0x69ec0212, r0, r1, r2, r3, 0);
   6287         TESTINST4("smmla  r0, r1, r2, r3",
   6288                   0x74bd0223, 0x03fa9bb5, 0x899d9192, r0, r1, r2, r3, 0);
   6289         TESTINST4("smmla  r0, r1, r2, r3",
   6290                   0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, r3, 0);
   6291         TESTINST4("smmla  r0, r1, r2, r3",
   6292                   0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0, r1, r2, r3, 0);
   6293         TESTINST4("smmla  r0, r1, r2, r3",
   6294                   0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0, r1, r2, r3, 0);
   6295         TESTINST4("smmla  r0, r1, r2, r3",
   6296                   0x299da970, 0xe8108f1b, 0xf5818cfb, r0, r1, r2, r3, 0);
   6297         TESTINST4("smmla  r0, r1, r2, r3",
   6298                   0xcd90d604, 0xaa5e9444, 0x8217b7df, r0, r1, r2, r3, 0);
   6299         TESTINST4("smmla  r0, r1, r2, r3",
   6300                   0xe60743c3, 0x7acb4de3, 0x73c29060, r0, r1, r2, r3, 0);
   6301         TESTINST4("smmla  r0, r1, r2, r3",
   6302                   0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0, r1, r2, r3, 0);
   6303         TESTINST4("smmla  r0, r1, r2, r3",
   6304                   0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0, r1, r2, r3, 0);
   6305         TESTINST4("smmla  r0, r1, r2, r3",
   6306                   0xde99ac2f, 0x0be36f70, 0xeda5110c, r0, r1, r2, r3, 0);
   6307         TESTINST4("smmla  r0, r1, r2, r3",
   6308                   0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0);
   6309 
   6310         TESTINST4("smmlar  r0, r1, r2, r3",
   6311                   0x80008000, 0x80008000, 0x00000000, r0, r1, r2, r3, 0);
   6312         TESTINST4("smmlar  r0, r1, r2, r3",
   6313                   0x7fff7fff, 0x00000000, 0x00000000, r0, r1, r2, r3, 0);
   6314         TESTINST4("smmlar  r0, r1, r2, r3",
   6315                   0x7fff7fff, 0x00010001, 0x00000001, r0, r1, r2, r3, 0);
   6316         TESTINST4("smmlar  r0, r1, r2, r3",
   6317                   0x80008000, 0xffffffff, 0x0000001f, r0, r1, r2, r3, 0);
   6318         TESTINST4("smmlar  r0, r1, r2, r3",
   6319                   0x00640064, 0x00030003, 0x00000020, r0, r1, r2, r3, 0);
   6320         TESTINST4("smmlar  r0, r1, r2, r3",
   6321                   0xffffffff, 0xfffc0001, 0x000000ff, r0, r1, r2, r3, 0);
   6322         TESTINST4("smmlar  r0, r1, r2, r3",
   6323                   0xfff70fff, 0x00030003, 0x00000100, r0, r1, r2, r3, 0);
   6324         TESTINST4("smmlar  r0, r1, r2, r3",
   6325                   0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
   6326         TESTINST4("smmlar  r0, r1, r2, r3",
   6327                   0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
   6328         TESTINST4("smmlar  r0, r1, r2, r3",
   6329                   0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
   6330         TESTINST4("smmlar  r0, r1, r2, r3",
   6331                   0x32fa0095, 0x36f26261, 0x89d2ef86, r0, r1, r2, r3, 0);
   6332         TESTINST4("smmlar  r0, r1, r2, r3",
   6333                   0x8ed8287c, 0x02c90120, 0xd4b64d54, r0, r1, r2, r3, 0);
   6334         TESTINST4("smmlar  r0, r1, r2, r3",
   6335                   0xc53aaba9, 0x29300837, 0x0b02c58a, r0, r1, r2, r3, 0);
   6336         TESTINST4("smmlar  r0, r1, r2, r3",
   6337                   0x216158cb, 0x57a50a01, 0xb0d20777, r0, r1, r2, r3, 0);
   6338         TESTINST4("smmlar  r0, r1, r2, r3",
   6339                   0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0, r1, r2, r3, 0);
   6340         TESTINST4("smmlar  r0, r1, r2, r3",
   6341                   0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0, r1, r2, r3, 0);
   6342         TESTINST4("smmlar  r0, r1, r2, r3",
   6343                   0xf87b961e, 0x1d66879f, 0xf2b64835, r0, r1, r2, r3, 0);
   6344         TESTINST4("smmlar  r0, r1, r2, r3",
   6345                   0xd65db979, 0xc61b323b, 0xae930a1a, r0, r1, r2, r3, 0);
   6346         TESTINST4("smmlar  r0, r1, r2, r3",
   6347                   0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0, r1, r2, r3, 0);
   6348         TESTINST4("smmlar  r0, r1, r2, r3",
   6349                   0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0, r1, r2, r3, 0);
   6350         TESTINST4("smmlar  r0, r1, r2, r3",
   6351                   0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, r3, 0);
   6352         TESTINST4("smmlar  r0, r1, r2, r3",
   6353                   0xeaa652c7, 0x137741f4, 0x3dba1164, r0, r1, r2, r3, 0);
   6354         TESTINST4("smmlar  r0, r1, r2, r3",
   6355                   0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0, r1, r2, r3, 0);
   6356         TESTINST4("smmlar  r0, r1, r2, r3",
   6357                   0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0, r1, r2, r3, 0);
   6358         TESTINST4("smmlar  r0, r1, r2, r3",
   6359                   0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, r3, 0);
   6360         TESTINST4("smmlar  r0, r1, r2, r3",
   6361                   0xe1bb8606, 0x58293969, 0x81616d13, r0, r1, r2, r3, 0);
   6362         TESTINST4("smmlar  r0, r1, r2, r3",
   6363                   0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0, r1, r2, r3, 0);
   6364         TESTINST4("smmlar  r0, r1, r2, r3",
   6365                   0x0849a0c2, 0x0872f25a, 0x40b094e2, r0, r1, r2, r3, 0);
   6366         TESTINST4("smmlar  r0, r1, r2, r3",
   6367                   0x17913309, 0xf1e03d7e, 0x91edc21d, r0, r1, r2, r3, 0);
   6368         TESTINST4("smmlar  r0, r1, r2, r3",
   6369                   0x5388b5cd, 0x86582032, 0x6034078d, r0, r1, r2, r3, 0);
   6370         TESTINST4("smmlar  r0, r1, r2, r3",
   6371                   0x181c436b, 0x5de41558, 0xccfa1c7e, r0, r1, r2, r3, 0);
   6372         TESTINST4("smmlar  r0, r1, r2, r3",
   6373                   0x23ba1b46, 0x4437983c, 0x48d06549, r0, r1, r2, r3, 0);
   6374         TESTINST4("smmlar  r0, r1, r2, r3",
   6375                   0xa9085781, 0xc6b4ac58, 0xb2aead21, r0, r1, r2, r3, 0);
   6376         TESTINST4("smmlar  r0, r1, r2, r3",
   6377                   0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0, r1, r2, r3, 0);
   6378         TESTINST4("smmlar  r0, r1, r2, r3",
   6379                   0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, r3, 0);
   6380         TESTINST4("smmlar  r0, r1, r2, r3",
   6381                   0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0, r1, r2, r3, 0);
   6382         TESTINST4("smmlar  r0, r1, r2, r3",
   6383                   0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0, r1, r2, r3, 0);
   6384         TESTINST4("smmlar  r0, r1, r2, r3",
   6385                   0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0, r1, r2, r3, 0);
   6386         TESTINST4("smmlar  r0, r1, r2, r3",
   6387                   0xd7ce1909, 0x3e435701, 0x85fbf196, r0, r1, r2, r3, 0);
   6388         TESTINST4("smmlar  r0, r1, r2, r3",
   6389                   0xb4e16b6e, 0x6e13680a, 0x89436f88, r0, r1, r2, r3, 0);
   6390         TESTINST4("smmlar  r0, r1, r2, r3",
   6391                   0x44858efc, 0x9002bc30, 0x390d2c2f, r0, r1, r2, r3, 0);
   6392         TESTINST4("smmlar  r0, r1, r2, r3",
   6393                   0xbea121ab, 0x953ff6ec, 0x80657c40, r0, r1, r2, r3, 0);
   6394         TESTINST4("smmlar  r0, r1, r2, r3",
   6395                   0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, r3, 0);
   6396         TESTINST4("smmlar  r0, r1, r2, r3",
   6397                   0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0, r1, r2, r3, 0);
   6398         TESTINST4("smmlar  r0, r1, r2, r3",
   6399                   0xec0c2f30, 0x5736ed46, 0x231348c0, r0, r1, r2, r3, 0);
   6400         TESTINST4("smmlar  r0, r1, r2, r3",
   6401                   0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0, r1, r2, r3, 0);
   6402         TESTINST4("smmlar  r0, r1, r2, r3",
   6403                   0xc1553709, 0x0112b30a, 0x69ec0212, r0, r1, r2, r3, 0);
   6404         TESTINST4("smmlar  r0, r1, r2, r3",
   6405                   0x74bd0223, 0x03fa9bb5, 0x899d9192, r0, r1, r2, r3, 0);
   6406         TESTINST4("smmlar  r0, r1, r2, r3",
   6407                   0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, r3, 0);
   6408         TESTINST4("smmlar  r0, r1, r2, r3",
   6409                   0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0, r1, r2, r3, 0);
   6410         TESTINST4("smmlar  r0, r1, r2, r3",
   6411                   0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0, r1, r2, r3, 0);
   6412         TESTINST4("smmlar  r0, r1, r2, r3",
   6413                   0x299da970, 0xe8108f1b, 0xf5818cfb, r0, r1, r2, r3, 0);
   6414         TESTINST4("smmlar  r0, r1, r2, r3",
   6415                   0xcd90d604, 0xaa5e9444, 0x8217b7df, r0, r1, r2, r3, 0);
   6416         TESTINST4("smmlar  r0, r1, r2, r3",
   6417                   0xe60743c3, 0x7acb4de3, 0x73c29060, r0, r1, r2, r3, 0);
   6418         TESTINST4("smmlar  r0, r1, r2, r3",
   6419                   0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0, r1, r2, r3, 0);
   6420         TESTINST4("smmlar  r0, r1, r2, r3",
   6421                   0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0, r1, r2, r3, 0);
   6422         TESTINST4("smmlar  r0, r1, r2, r3",
   6423                   0xde99ac2f, 0x0be36f70, 0xeda5110c, r0, r1, r2, r3, 0);
   6424         TESTINST4("smmlar  r0, r1, r2, r3",
   6425                   0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0);
   6426 
   6427         printf("----------------- SMMLS{R} ----------------- \n");
   6428         TESTINST4("smmls  r0, r1, r2, r3",
   6429                   0x80008000, 0x80008000, 0x00000000, r0, r1, r2, r3, 0);
   6430         TESTINST4("smmls  r0, r1, r2, r3",
   6431                   0x7fff7fff, 0x00000000, 0x00000000, r0, r1, r2, r3, 0);
   6432         TESTINST4("smmls  r0, r1, r2, r3",
   6433                   0x7fff7fff, 0x00010001, 0x00000001, r0, r1, r2, r3, 0);
   6434         TESTINST4("smmls  r0, r1, r2, r3",
   6435                   0x80008000, 0xffffffff, 0x0000001f, r0, r1, r2, r3, 0);
   6436         TESTINST4("smmls  r0, r1, r2, r3",
   6437                   0x00640064, 0x00030003, 0x00000020, r0, r1, r2, r3, 0);
   6438         TESTINST4("smmls  r0, r1, r2, r3",
   6439                   0xffffffff, 0xfffc0001, 0x000000ff, r0, r1, r2, r3, 0);
   6440         TESTINST4("smmls  r0, r1, r2, r3",
   6441                   0xfff70fff, 0x00030003, 0x00000100, r0, r1, r2, r3, 0);
   6442         TESTINST4("smmls  r0, r1, r2, r3",
   6443                   0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
   6444         TESTINST4("smmls  r0, r1, r2, r3",
   6445                   0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
   6446         TESTINST4("smmls  r0, r1, r2, r3",
   6447                   0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
   6448         TESTINST4("smmls  r0, r1, r2, r3",
   6449                   0x32fa0095, 0x36f26261, 0x89d2ef86, r0, r1, r2, r3, 0);
   6450         TESTINST4("smmls  r0, r1, r2, r3",
   6451                   0x8ed8287c, 0x02c90120, 0xd4b64d54, r0, r1, r2, r3, 0);
   6452         TESTINST4("smmls  r0, r1, r2, r3",
   6453                   0xc53aaba9, 0x29300837, 0x0b02c58a, r0, r1, r2, r3, 0);
   6454         TESTINST4("smmls  r0, r1, r2, r3",
   6455                   0x216158cb, 0x57a50a01, 0xb0d20777, r0, r1, r2, r3, 0);
   6456         TESTINST4("smmls  r0, r1, r2, r3",
   6457                   0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0, r1, r2, r3, 0);
   6458         TESTINST4("smmls  r0, r1, r2, r3",
   6459                   0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0, r1, r2, r3, 0);
   6460         TESTINST4("smmls  r0, r1, r2, r3",
   6461                   0xf87b961e, 0x1d66879f, 0xf2b64835, r0, r1, r2, r3, 0);
   6462         TESTINST4("smmls  r0, r1, r2, r3",
   6463                   0xd65db979, 0xc61b323b, 0xae930a1a, r0, r1, r2, r3, 0);
   6464         TESTINST4("smmls  r0, r1, r2, r3",
   6465                   0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0, r1, r2, r3, 0);
   6466         TESTINST4("smmls  r0, r1, r2, r3",
   6467                   0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0, r1, r2, r3, 0);
   6468         TESTINST4("smmls  r0, r1, r2, r3",
   6469                   0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, r3, 0);
   6470         TESTINST4("smmls  r0, r1, r2, r3",
   6471                   0xeaa652c7, 0x137741f4, 0x3dba1164, r0, r1, r2, r3, 0);
   6472         TESTINST4("smmls  r0, r1, r2, r3",
   6473                   0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0, r1, r2, r3, 0);
   6474         TESTINST4("smmls  r0, r1, r2, r3",
   6475                   0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0, r1, r2, r3, 0);
   6476         TESTINST4("smmls  r0, r1, r2, r3",
   6477                   0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, r3, 0);
   6478         TESTINST4("smmls  r0, r1, r2, r3",
   6479                   0xe1bb8606, 0x58293969, 0x81616d13, r0, r1, r2, r3, 0);
   6480         TESTINST4("smmls  r0, r1, r2, r3",
   6481                   0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0, r1, r2, r3, 0);
   6482         TESTINST4("smmls  r0, r1, r2, r3",
   6483                   0x0849a0c2, 0x0872f25a, 0x40b094e2, r0, r1, r2, r3, 0);
   6484         TESTINST4("smmls  r0, r1, r2, r3",
   6485                   0x17913309, 0xf1e03d7e, 0x91edc21d, r0, r1, r2, r3, 0);
   6486         TESTINST4("smmls  r0, r1, r2, r3",
   6487                   0x5388b5cd, 0x86582032, 0x6034078d, r0, r1, r2, r3, 0);
   6488         TESTINST4("smmls  r0, r1, r2, r3",
   6489                   0x181c436b, 0x5de41558, 0xccfa1c7e, r0, r1, r2, r3, 0);
   6490         TESTINST4("smmls  r0, r1, r2, r3",
   6491                   0x23ba1b46, 0x4437983c, 0x48d06549, r0, r1, r2, r3, 0);
   6492         TESTINST4("smmls  r0, r1, r2, r3",
   6493                   0xa9085781, 0xc6b4ac58, 0xb2aead21, r0, r1, r2, r3, 0);
   6494         TESTINST4("smmls  r0, r1, r2, r3",
   6495                   0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0, r1, r2, r3, 0);
   6496         TESTINST4("smmls  r0, r1, r2, r3",
   6497                   0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, r3, 0);
   6498         TESTINST4("smmls  r0, r1, r2, r3",
   6499                   0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0, r1, r2, r3, 0);
   6500         TESTINST4("smmls  r0, r1, r2, r3",
   6501                   0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0, r1, r2, r3, 0);
   6502         TESTINST4("smmls  r0, r1, r2, r3",
   6503                   0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0, r1, r2, r3, 0);
   6504         TESTINST4("smmls  r0, r1, r2, r3",
   6505                   0xd7ce1909, 0x3e435701, 0x85fbf196, r0, r1, r2, r3, 0);
   6506         TESTINST4("smmls  r0, r1, r2, r3",
   6507                   0xb4e16b6e, 0x6e13680a, 0x89436f88, r0, r1, r2, r3, 0);
   6508         TESTINST4("smmls  r0, r1, r2, r3",
   6509                   0x44858efc, 0x9002bc30, 0x390d2c2f, r0, r1, r2, r3, 0);
   6510         TESTINST4("smmls  r0, r1, r2, r3",
   6511                   0xbea121ab, 0x953ff6ec, 0x80657c40, r0, r1, r2, r3, 0);
   6512         TESTINST4("smmls  r0, r1, r2, r3",
   6513                   0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, r3, 0);
   6514         TESTINST4("smmls  r0, r1, r2, r3",
   6515                   0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0, r1, r2, r3, 0);
   6516         TESTINST4("smmls  r0, r1, r2, r3",
   6517                   0xec0c2f30, 0x5736ed46, 0x231348c0, r0, r1, r2, r3, 0);
   6518         TESTINST4("smmls  r0, r1, r2, r3",
   6519                   0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0, r1, r2, r3, 0);
   6520         TESTINST4("smmls  r0, r1, r2, r3",
   6521                   0xc1553709, 0x0112b30a, 0x69ec0212, r0, r1, r2, r3, 0);
   6522         TESTINST4("smmls  r0, r1, r2, r3",
   6523                   0x74bd0223, 0x03fa9bb5, 0x899d9192, r0, r1, r2, r3, 0);
   6524         TESTINST4("smmls  r0, r1, r2, r3",
   6525                   0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, r3, 0);
   6526         TESTINST4("smmls  r0, r1, r2, r3",
   6527                   0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0, r1, r2, r3, 0);
   6528         TESTINST4("smmls  r0, r1, r2, r3",
   6529                   0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0, r1, r2, r3, 0);
   6530         TESTINST4("smmls  r0, r1, r2, r3",
   6531                   0x299da970, 0xe8108f1b, 0xf5818cfb, r0, r1, r2, r3, 0);
   6532         TESTINST4("smmls  r0, r1, r2, r3",
   6533                   0xcd90d604, 0xaa5e9444, 0x8217b7df, r0, r1, r2, r3, 0);
   6534         TESTINST4("smmls  r0, r1, r2, r3",
   6535                   0xe60743c3, 0x7acb4de3, 0x73c29060, r0, r1, r2, r3, 0);
   6536         TESTINST4("smmls  r0, r1, r2, r3",
   6537                   0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0, r1, r2, r3, 0);
   6538         TESTINST4("smmls  r0, r1, r2, r3",
   6539                   0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0, r1, r2, r3, 0);
   6540         TESTINST4("smmls  r0, r1, r2, r3",
   6541                   0xde99ac2f, 0x0be36f70, 0xeda5110c, r0, r1, r2, r3, 0);
   6542         TESTINST4("smmls  r0, r1, r2, r3",
   6543                   0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0);
   6544 
   6545         TESTINST4("smmlsr  r0, r1, r2, r3",
   6546                   0x80008000, 0x80008000, 0x00000000, r0, r1, r2, r3, 0);
   6547         TESTINST4("smmlsr  r0, r1, r2, r3",
   6548                   0x7fff7fff, 0x00000000, 0x00000000, r0, r1, r2, r3, 0);
   6549         TESTINST4("smmlsr  r0, r1, r2, r3",
   6550                   0x7fff7fff, 0x00010001, 0x00000001, r0, r1, r2, r3, 0);
   6551         TESTINST4("smmlsr  r0, r1, r2, r3",
   6552                   0x80008000, 0xffffffff, 0x0000001f, r0, r1, r2, r3, 0);
   6553         TESTINST4("smmlsr  r0, r1, r2, r3",
   6554                   0x00640064, 0x00030003, 0x00000020, r0, r1, r2, r3, 0);
   6555         TESTINST4("smmlsr  r0, r1, r2, r3",
   6556                   0xffffffff, 0xfffc0001, 0x000000ff, r0, r1, r2, r3, 0);
   6557         TESTINST4("smmlsr  r0, r1, r2, r3",
   6558                   0xfff70fff, 0x00030003, 0x00000100, r0, r1, r2, r3, 0);
   6559         TESTINST4("smmlsr  r0, r1, r2, r3",
   6560                   0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
   6561         TESTINST4("smmlsr  r0, r1, r2, r3",
   6562                   0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
   6563         TESTINST4("smmlsr  r0, r1, r2, r3",
   6564                   0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
   6565         TESTINST4("smmlsr  r0, r1, r2, r3",
   6566                   0x32fa0095, 0x36f26261, 0x89d2ef86, r0, r1, r2, r3, 0);
   6567         TESTINST4("smmlsr  r0, r1, r2, r3",
   6568                   0x8ed8287c, 0x02c90120, 0xd4b64d54, r0, r1, r2, r3, 0);
   6569         TESTINST4("smmlsr  r0, r1, r2, r3",
   6570                   0xc53aaba9, 0x29300837, 0x0b02c58a, r0, r1, r2, r3, 0);
   6571         TESTINST4("smmlsr  r0, r1, r2, r3",
   6572                   0x216158cb, 0x57a50a01, 0xb0d20777, r0, r1, r2, r3, 0);
   6573         TESTINST4("smmlsr  r0, r1, r2, r3",
   6574                   0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0, r1, r2, r3, 0);
   6575         TESTINST4("smmlsr  r0, r1, r2, r3",
   6576                   0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0, r1, r2, r3, 0);
   6577         TESTINST4("smmlsr  r0, r1, r2, r3",
   6578                   0xf87b961e, 0x1d66879f, 0xf2b64835, r0, r1, r2, r3, 0);
   6579         TESTINST4("smmlsr  r0, r1, r2, r3",
   6580                   0xd65db979, 0xc61b323b, 0xae930a1a, r0, r1, r2, r3, 0);
   6581         TESTINST4("smmlsr  r0, r1, r2, r3",
   6582                   0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0, r1, r2, r3, 0);
   6583         TESTINST4("smmlsr  r0, r1, r2, r3",
   6584                   0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0, r1, r2, r3, 0);
   6585         TESTINST4("smmlsr  r0, r1, r2, r3",
   6586                   0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, r3, 0);
   6587         TESTINST4("smmlsr  r0, r1, r2, r3",
   6588                   0xeaa652c7, 0x137741f4, 0x3dba1164, r0, r1, r2, r3, 0);
   6589         TESTINST4("smmlsr  r0, r1, r2, r3",
   6590                   0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0, r1, r2, r3, 0);
   6591         TESTINST4("smmlsr  r0, r1, r2, r3",
   6592                   0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0, r1, r2, r3, 0);
   6593         TESTINST4("smmlsr  r0, r1, r2, r3",
   6594                   0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, r3, 0);
   6595         TESTINST4("smmlsr  r0, r1, r2, r3",
   6596                   0xe1bb8606, 0x58293969, 0x81616d13, r0, r1, r2, r3, 0);
   6597         TESTINST4("smmlsr  r0, r1, r2, r3",
   6598                   0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0, r1, r2, r3, 0);
   6599         TESTINST4("smmlsr  r0, r1, r2, r3",
   6600                   0x0849a0c2, 0x0872f25a, 0x40b094e2, r0, r1, r2, r3, 0);
   6601         TESTINST4("smmlsr  r0, r1, r2, r3",
   6602                   0x17913309, 0xf1e03d7e, 0x91edc21d, r0, r1, r2, r3, 0);
   6603         TESTINST4("smmlsr  r0, r1, r2, r3",
   6604                   0x5388b5cd, 0x86582032, 0x6034078d, r0, r1, r2, r3, 0);
   6605         TESTINST4("smmlsr  r0, r1, r2, r3",
   6606                   0x181c436b, 0x5de41558, 0xccfa1c7e, r0, r1, r2, r3, 0);
   6607         TESTINST4("smmlsr  r0, r1, r2, r3",
   6608                   0x23ba1b46, 0x4437983c, 0x48d06549, r0, r1, r2, r3, 0);
   6609         TESTINST4("smmlsr  r0, r1, r2, r3",
   6610                   0xa9085781, 0xc6b4ac58, 0xb2aead21, r0, r1, r2, r3, 0);
   6611         TESTINST4("smmlsr  r0, r1, r2, r3",
   6612                   0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0, r1, r2, r3, 0);
   6613         TESTINST4("smmlsr  r0, r1, r2, r3",
   6614                   0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, r3, 0);
   6615         TESTINST4("smmlsr  r0, r1, r2, r3",
   6616                   0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0, r1, r2, r3, 0);
   6617         TESTINST4("smmlsr  r0, r1, r2, r3",
   6618                   0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0, r1, r2, r3, 0);
   6619         TESTINST4("smmlsr  r0, r1, r2, r3",
   6620                   0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0, r1, r2, r3, 0);
   6621         TESTINST4("smmlsr  r0, r1, r2, r3",
   6622                   0xd7ce1909, 0x3e435701, 0x85fbf196, r0, r1, r2, r3, 0);
   6623         TESTINST4("smmlsr  r0, r1, r2, r3",
   6624                   0xb4e16b6e, 0x6e13680a, 0x89436f88, r0, r1, r2, r3, 0);
   6625         TESTINST4("smmlsr  r0, r1, r2, r3",
   6626                   0x44858efc, 0x9002bc30, 0x390d2c2f, r0, r1, r2, r3, 0);
   6627         TESTINST4("smmlsr  r0, r1, r2, r3",
   6628                   0xbea121ab, 0x953ff6ec, 0x80657c40, r0, r1, r2, r3, 0);
   6629         TESTINST4("smmlsr  r0, r1, r2, r3",
   6630                   0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, r3, 0);
   6631         TESTINST4("smmlsr  r0, r1, r2, r3",
   6632                   0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0, r1, r2, r3, 0);
   6633         TESTINST4("smmlsr  r0, r1, r2, r3",
   6634                   0xec0c2f30, 0x5736ed46, 0x231348c0, r0, r1, r2, r3, 0);
   6635         TESTINST4("smmlsr  r0, r1, r2, r3",
   6636                   0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0, r1, r2, r3, 0);
   6637         TESTINST4("smmlsr  r0, r1, r2, r3",
   6638                   0xc1553709, 0x0112b30a, 0x69ec0212, r0, r1, r2, r3, 0);
   6639         TESTINST4("smmlsr  r0, r1, r2, r3",
   6640                   0x74bd0223, 0x03fa9bb5, 0x899d9192, r0, r1, r2, r3, 0);
   6641         TESTINST4("smmlsr  r0, r1, r2, r3",
   6642                   0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, r3, 0);
   6643         TESTINST4("smmlsr  r0, r1, r2, r3",
   6644                   0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0, r1, r2, r3, 0);
   6645         TESTINST4("smmlsr  r0, r1, r2, r3",
   6646                   0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0, r1, r2, r3, 0);
   6647         TESTINST4("smmlsr  r0, r1, r2, r3",
   6648                   0x299da970, 0xe8108f1b, 0xf5818cfb, r0, r1, r2, r3, 0);
   6649         TESTINST4("smmlsr  r0, r1, r2, r3",
   6650                   0xcd90d604, 0xaa5e9444, 0x8217b7df, r0, r1, r2, r3, 0);
   6651         TESTINST4("smmlsr  r0, r1, r2, r3",
   6652                   0xe60743c3, 0x7acb4de3, 0x73c29060, r0, r1, r2, r3, 0);
   6653         TESTINST4("smmlsr  r0, r1, r2, r3",
   6654                   0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0, r1, r2, r3, 0);
   6655         TESTINST4("smmlsr  r0, r1, r2, r3",
   6656                   0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0, r1, r2, r3, 0);
   6657         TESTINST4("smmlsr  r0, r1, r2, r3",
   6658                   0xde99ac2f, 0x0be36f70, 0xeda5110c, r0, r1, r2, r3, 0);
   6659         TESTINST4("smmlsr  r0, r1, r2, r3",
   6660                   0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0);
   6661 
   6662    return 0;
   6663 }
   6664