]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Add test cases for v6 media instructions in both ARM and Thumb mode.
authorJulian Seward <jseward@acm.org>
Sun, 29 Aug 2010 12:35:37 +0000 (12:35 +0000)
committerJulian Seward <jseward@acm.org>
Sun, 29 Aug 2010 12:35:37 +0000 (12:35 +0000)
(Donna Robinson, donna@valgrind.org).

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11303

none/tests/arm/Makefile.am
none/tests/arm/v6media.c [new file with mode: 0644]
none/tests/arm/v6media.stderr.exp [new file with mode: 0644]
none/tests/arm/v6media.stdout.exp [new file with mode: 0644]
none/tests/arm/v6media.vgtest [new file with mode: 0644]

index a0a3eeadb5b69e7d79c28a4534c6a8226cab213c..9f4df58cdf3772c7d513a0e2f66dc04c7fcef4db 100644 (file)
@@ -7,13 +7,15 @@ EXTRA_DIST = \
        neon128.stdout.exp neon128.stderr.exp neon128.vgtest \
        neon64.stdout.exp neon64.stderr.exp neon64.vgtest \
        v6intARM.stdout.exp v6intARM.stderr.exp v6intARM.vgtest \
-       v6intThumb.stdout.exp v6intThumb.stderr.exp v6intThumb.vgtest
+       v6intThumb.stdout.exp v6intThumb.stderr.exp v6intThumb.vgtest \
+       v6media.stdout.exp v6media.stderr.exp v6media.vgtest
 
 check_PROGRAMS = \
        neon128 \
        neon64 \
        v6intARM \
-       v6intThumb
+       v6intThumb \
+       v6media
 
 AM_CFLAGS    += @FLAG_M32@
 AM_CXXFLAGS  += @FLAG_M32@
@@ -29,6 +31,8 @@ AM_CCASFLAGS += @FLAG_M32@
 v6intARM_CFLAGS   = $(AM_CFLAGS) -g -O0 -mcpu=cortex-a8 -marm
 v6intThumb_CFLAGS = $(AM_CFLAGS) -g -O0 -mcpu=cortex-a8 -mthumb
 
+v6media_CFLAGS    = $(AM_CFLAGS) -g -O0 -mcpu=cortex-a8 -mthumb
+
 neon128_CFLAGS    = $(AM_CFLAGS) -g -O0 -mcpu=cortex-a8 \
                        -mfpu=neon -mfloat-abi=softfp \
                        -mthumb
diff --git a/none/tests/arm/v6media.c b/none/tests/arm/v6media.c
new file mode 100644 (file)
index 0000000..3ccc856
--- /dev/null
@@ -0,0 +1,3033 @@
+
+/* How to compile:
+   gcc -marm -O -g -Wall -mcpu=cortex-a8 -o test_arm_v6int v6int.c
+*/
+
+#include <stdio.h>
+
+static int gen_cin(cin)
+{
+  int r = ((cin & 1) ? (1<<29) : 0);
+  //r |= (1 << 31) | (1 << 30);
+  return r;
+}
+
+/* test macros to generate and output the result of a single instruction */
+#define TESTINST2(instruction, RMval, RD, RM, carryin) \
+{ \
+  unsigned int out;   \
+  unsigned int cpsr;  \
+\
+  __asm__ volatile(   \
+    "msr  cpsr_fs, %3;"  \
+    "mov " #RM ",%2;"         \
+                /* set #RD to 0x55555555 so we can see which parts get overwritten */ \
+                "mov " #RD ", #0x55" "\n\t" \
+                "orr " #RD "," #RD "," #RD ", LSL #8" "\n\t"  \
+                "orr " #RD "," #RD "," #RD ", LSL #16" "\n\t" \
+    instruction ";"    \
+    "mov %0," #RD ";"  \
+    "mrs %1,cpsr;"     \
+    : "=&r" (out), "=&r" (cpsr)  \
+    : "r" (RMval), "r" (gen_cin(carryin))       \
+    : #RD, #RM, "cc", "memory"   \
+  ); \
+  printf("%s :: rd 0x%08x rm 0x%08x, carryin %d, cpsr 0x%08x %c%c%c%c%c ge[3:0]=%d%d%d%d\n", \
+    instruction, out, RMval,      \
+    carryin ? 1 : 0,     \
+    cpsr & 0xffff0000,            \
+    ((1<<31) & cpsr) ? 'N' : ' ', \
+    ((1<<30) & cpsr) ? 'Z' : ' ', \
+    ((1<<29) & cpsr) ? 'C' : ' ', \
+    ((1<<28) & cpsr) ? 'V' : ' ', \
+    ((1<<27) & cpsr) ? 'Q' : ' ', \
+    (cpsr >> 19) & 1, (cpsr >> 18) & 1, (cpsr >> 17) & 1, (cpsr >> 16) & 1 \
+  ); \
+}
+
+#define TESTINST3(instruction, RMval, RNval, RD, RM, RN, carryin) \
+{ \
+  unsigned int out;  \
+  unsigned int cpsr; \
+\
+  __asm__ volatile(  \
+    "msr  cpsr_fs, %4;"  \
+    "mov " #RM ",%2;"  \
+    "mov " #RN ",%3;"  \
+    instruction ";"    \
+    "mov %0," #RD ";"  \
+    "mrs %1,cpsr;"     \
+    : "=&r" (out), "=&r" (cpsr)               \
+    : "r" (RMval), "r" (RNval), "r" (gen_cin(carryin))   \
+    : #RD, #RM, #RN, "cc", "memory"           \
+  ); \
+  printf("%s :: rd 0x%08x rm 0x%08x, rn 0x%08x, carryin %d, cpsr 0x%08x %c%c%c%c%c ge[3:0]=%d%d%d%d\n", \
+    instruction, out, RMval, RNval, \
+    carryin ? 1 : 0,  \
+    cpsr & 0xffff0000, \
+    ((1<<31) & cpsr) ? 'N' : ' ', \
+    ((1<<30) & cpsr) ? 'Z' : ' ', \
+    ((1<<29) & cpsr) ? 'C' : ' ', \
+    ((1<<28) & cpsr) ? 'V' : ' ', \
+    ((1<<27) & cpsr) ? 'Q' : ' ', \
+    (cpsr >> 19) & 1, (cpsr >> 18) & 1, (cpsr >> 17) & 1, (cpsr >> 16) & 1 \
+  ); \
+}
+
+#define TESTINST4(instruction, RMval, RNval, RSval, RD, RM, RN, RS, carryin) \
+{ \
+  unsigned int out;  \
+  unsigned int cpsr; \
+\
+  __asm__ volatile( \
+    "msr  cpsr_fs, %5;"  \
+    "mov " #RM ",%2;"  \
+    "mov " #RN ",%3;"  \
+    "mov " #RS ",%4;"  \
+    instruction ";"    \
+    "mov %0," #RD ";"  \
+    "mrs %1,cpsr;"     \
+    : "=&r" (out), "=&r" (cpsr) \
+    : "r" (RMval), "r" (RNval), "r" (RSval), "r" (gen_cin(carryin))  \
+    : #RD, #RM, #RN, #RS, "cc", "memory" \
+  ); \
+  printf("%s :: rd 0x%08x rm 0x%08x, rn 0x%08x rs 0x%08x, carryin %d, cpsr 0x%08x %c%c%c%c%c ge[3:0]=%d%d%d%d\n", \
+    instruction, out, RMval, RNval, RSval, \
+    carryin ? 1 : 0,   \
+    cpsr & 0xffff0000, \
+    ((1<<31) & cpsr) ? 'N' : ' ', \
+    ((1<<30) & cpsr) ? 'Z' : ' ', \
+    ((1<<29) & cpsr) ? 'C' : ' ', \
+    ((1<<28) & cpsr) ? 'V' : ' ', \
+    ((1<<27) & cpsr) ? 'Q' : ' ', \
+    (cpsr >> 19) & 1, (cpsr >> 18) & 1, (cpsr >> 17) & 1, (cpsr >> 16) & 1 \
+  ); \
+}
+
+#define TESTINST4_2OUT(instruction, RDval, RD2val, RMval, RSval, RD, RD2, RM, RS, carryin) \
+{ \
+  unsigned int out;  \
+  unsigned int out2; \
+  unsigned int cpsr; \
+\
+  __asm__ volatile(  \
+    "msr  cpsr_fs, %7;"  \
+    "mov " #RD ",%3;"  \
+    "mov " #RD2 ",%4;" \
+    "mov " #RM ",%5;"  \
+    "mov " #RS ",%6;"  \
+    instruction ";"    \
+    "mov %0," #RD ";"  \
+    "mov %1," #RD2 ";" \
+    "mrs %2,cpsr;"     \
+    : "=&r" (out), "=&r" (out2), "=&r" (cpsr)  \
+    : "r" (RDval), "r" (RD2val), "r" (RMval), "r" (RSval), "r" (gen_cin(carryin)) \
+    : #RD, #RD2, #RM, #RS, "cc", "memory"      \
+  ); \
+  printf("%s :: rd 0x%08x rd2 0x%08x, rm 0x%08x rs 0x%08x, carryin %d, cpsr 0x%08x %c%c%c%c%c ge[3:0]=%d%d%d%d\n", \
+    instruction, out, out2, RMval, RSval, \
+    carryin ? 1 : 0,   \
+    cpsr & 0xffff0000, \
+    ((1<<31) & cpsr) ? 'N' : ' ', \
+    ((1<<30) & cpsr) ? 'Z' : ' ', \
+    ((1<<29) & cpsr) ? 'C' : ' ', \
+    ((1<<28) & cpsr) ? 'V' : ' ', \
+    ((1<<27) & cpsr) ? 'Q' : ' ', \
+    (cpsr >> 19) & 1, (cpsr >> 18) & 1, (cpsr >> 17) & 1, (cpsr >> 16) & 1 \
+  ); \
+}
+
+/* helpers */
+#define TESTCARRY { int c = 0; for (c = 0; c < 2; c++) {
+#define TESTCARRYEND }}
+
+
+
+
+int main(int argc, char **argv)
+{
+  printf("MUL\n");
+  TESTINST3("mul  r0, r1, r2", 0,          0,          r0, r1, r2, 0);
+  TESTINST3("mul  r0, r1, r2", 0xffffffff, 0,          r0, r1, r2, 0);
+  TESTINST3("mul  r0, r1, r2", 0,          0xffffffff, r0, r1, r2, 0);
+  TESTINST3("mul  r0, r1, r2", 0xffffffff, 0xffffffff, r0, r1, r2, 0);
+  TESTINST3("mul  r0, r1, r2", 0x7fffffff, 0x7fffffff, r0, r1, r2, 0);
+  TESTINST3("mul  r0, r1, r2", 0x0000ffff, 0x0000ffff, r0, r1, r2, 0);
+
+#if 0
+  printf("MULS\n");
+  TESTINST3("muls r0, r1, r2", 0, 0, r0, r1, r2, 0);
+  TESTINST3("muls r0, r1, r2", 0xffffffff, 0, r0, r1, r2, 0);
+  TESTINST3("muls r0, r1, r2", 0, 0xffffffff, r0, r1, r2, 0);
+  TESTINST3("muls r0, r1, r2", 0xffffffff, 0xffffffff, r0, r1, r2, 0);
+  TESTINST3("muls r0, r1, r2", 0x7fffffff, 0x7fffffff, r0, r1, r2, 0);
+  TESTINST3("muls r0, r1, r2", 0x0000ffff, 0x0000ffff, r0, r1, r2, 0);
+#endif
+
+  printf("MLA\n");
+  TESTINST4("mla  r0, r1, r2, r3", 0, 0, 1, r0, r1, r2, r3, 0);
+  TESTINST4("mla  r0, r1, r2, r3", 0xffffffff, 0, 1, r0, r1, r2, r3, 0);
+  TESTINST4("mla  r0, r1, r2, r3", 0, 0xffffffff, 1, r0, r1, r2, r3, 0);
+  TESTINST4("mla  r0, r1, r2, r3", 0xffffffff, 0xffffffff, 1, r0, r1, r2, r3, 0);
+  TESTINST4("mla  r0, r1, r2, r3", 0x7fffffff, 0x7fffffff, 1, r0, r1, r2, r3, 0);
+  TESTINST4("mla  r0, r1, r2, r3", 0x0000ffff, 0x0000ffff, 1, r0, r1, r2, r3, 0);
+
+#if 0
+  printf("MLAS\n");
+  TESTINST4("mlas r0, r1, r2, r3", 0,          0,          1, r0, r1, r2, r3, 0);
+  TESTINST4("mlas r0, r1, r2, r3", 0xffffffff, 0,          1, r0, r1, r2, r3, 0);
+  TESTINST4("mlas r0, r1, r2, r3", 0,          0xffffffff, 1, r0, r1, r2, r3, 0);
+  TESTINST4("mlas r0, r1, r2, r3", 0xffffffff, 0xffffffff, 1, r0, r1, r2, r3, 0);
+  TESTINST4("mlas r0, r1, r2, r3", 0x7fffffff, 0x7fffffff, 1, r0, r1, r2, r3, 0);
+  TESTINST4("mlas r0, r1, r2, r3", 0x0000ffff, 0x0000ffff, 1, r0, r1, r2, r3, 0);
+#endif
+
+  printf("MLS\n");
+  TESTINST4("mls  r0, r1, r2, r3", 0, 0, 1, r0, r1, r2, r3, 0);
+  TESTINST4("mls  r0, r1, r2, r3", 0xffffffff, 0, 1, r0, r1, r2, r3, 0);
+  TESTINST4("mls  r0, r1, r2, r3", 0, 0xffffffff, 1, r0, r1, r2, r3, 0);
+  TESTINST4("mls  r0, r1, r2, r3", 0xffffffff, 0xffffffff, 1, r0, r1, r2, r3, 0);
+  TESTINST4("mls  r0, r1, r2, r3", 0x7fffffff, 0x7fffffff, 1, r0, r1, r2, r3, 0);
+  TESTINST4("mls  r0, r1, r2, r3", 0x0000ffff, 0x0000ffff, 1, r0, r1, r2, r3, 0);
+
+  printf("UMULL\n");
+  TESTINST4_2OUT("umull  r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("umull  r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("umull  r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("umull  r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("umull  r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("umull  r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
+#if 0
+  TESTINST4_2OUT("umulls r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("umulls r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("umulls r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("umulls r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("umulls r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("umulls r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
+#endif
+  printf("SMULL\n");
+  TESTINST4_2OUT("smull  r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("smull  r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("smull  r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("smull  r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("smull  r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("smull  r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
+#if 0
+  TESTINST4_2OUT("smulls r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("smulls r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("smulls r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("smulls r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("smulls r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("smulls r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
+#endif
+
+  printf("UMLAL\n");
+  TESTINST4_2OUT("umlal  r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("umlal  r0, r1, r2, r3", 0, 1, 0, 0, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("umlal  r0, r1, r2, r3", 1, 1, 0, 0, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("umlal  r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("umlal  r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("umlal  r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("umlal  r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("umlal  r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("umlal  r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
+#if 0
+  TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 1, 0, 0, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("umlals r0, r1, r2, r3", 1, 1, 0, 0, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
+#endif
+
+  printf("SMLAL\n");
+  TESTINST4_2OUT("smlal  r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("smlal  r0, r1, r2, r3", 0, 1, 0, 0, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("smlal  r0, r1, r2, r3", 1, 1, 0, 0, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("smlal  r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("smlal  r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("smlal  r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("smlal  r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("smlal  r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("smlal  r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
+#if 0
+  TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 1, 0, 0, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("smlals r0, r1, r2, r3", 1, 1, 0, 0, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
+  TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
+#endif
+
+  printf("CLZ\n");
+  TESTCARRY
+  TESTINST2("clz  r0, r1", 0, r0, r1, c);
+  TESTINST2("clz  r0, r1", 1, r0, r1, c);
+  TESTINST2("clz  r0, r1", 0x10, r0, r1, c);
+  TESTINST2("clz  r0, r1", 0xffffffff, r0, r1, c);
+  TESTCARRYEND
+
+  printf("extend instructions\n");
+  TESTINST2("uxtb r0, r1", 0, r0, r1, 0);
+  TESTINST2("uxtb r0, r1", 1, r0, r1, 0);
+  TESTINST2("uxtb r0, r1", 0xff, r0, r1, 0);
+  TESTINST2("uxtb r0, r1", 0xffffffff, r0, r1, 0);
+  TESTINST2("sxtb r0, r1", 0, r0, r1, 0);
+  TESTINST2("sxtb r0, r1", 1, r0, r1, 0);
+  TESTINST2("sxtb r0, r1", 0xff, r0, r1, 0);
+  TESTINST2("sxtb r0, r1", 0xffffffff, r0, r1, 0);
+
+  TESTINST2("uxth r0, r1", 0, r0, r1, 0);
+  TESTINST2("uxth r0, r1", 1, r0, r1, 0);
+  TESTINST2("uxth r0, r1", 0xffff, r0, r1, 0);
+  TESTINST2("uxth r0, r1", 0xffffffff, r0, r1, 0);
+  TESTINST2("sxth r0, r1", 0, r0, r1, 0);
+  TESTINST2("sxth r0, r1", 1, r0, r1, 0);
+  TESTINST2("sxth r0, r1", 0x7fff, r0, r1, 0);
+  TESTINST2("sxth r0, r1", 0xffff, r0, r1, 0);
+  TESTINST2("sxth r0, r1", 0x10ffff, r0, r1, 0);
+  TESTINST2("sxth r0, r1", 0x107fff, r0, r1, 0);
+  TESTINST2("sxth r0, r1", 0xffffffff, r0, r1, 0);
+
+  TESTINST2("uxtb r0, r1, ror #0", 0x000000ff, r0, r1, 0);
+  TESTINST2("uxtb r0, r1, ror #8", 0x000000ff, r0, r1, 0);
+  TESTINST2("uxtb r0, r1, ror #8", 0x0000ff00, r0, r1, 0);
+  TESTINST2("uxtb r0, r1, ror #16", 0x00ff0000, r0, r1, 0);
+  TESTINST2("uxtb r0, r1, ror #24", 0xff000000, r0, r1, 0);
+
+  TESTINST2("uxtb16 r0, r1", 0xffffffff, r0, r1, 0);
+  TESTINST2("uxtb16 r0, r1, ror #16", 0x0000ffff, r0, r1, 0);
+  TESTINST2("sxtb16 r0, r1", 0xffffffff, r0, r1, 0);
+  TESTINST2("sxtb16 r0, r1", 0x00ff00ff, r0, r1, 0);
+  TESTINST2("sxtb16 r0, r1", 0x007f007f, r0, r1, 0);
+
+  printf("------------ BFI ------------\n");
+  /* bfi  rDst, rSrc, #lsb-in-dst, #number-of-bits-to-copy */
+  TESTINST2("bfi  r0, r1, #0, #11", 0xAAAAAAAA, r0, r1, 0);
+  TESTINST2("bfi  r0, r1, #1, #11", 0xAAAAAAAA, r0, r1, 0);
+  TESTINST2("bfi  r0, r1, #2, #11", 0xAAAAAAAA, r0, r1, 0);
+
+  TESTINST2("bfi  r0, r1, #19, #11", 0xFFFFFFFF, r0, r1, 0);
+  TESTINST2("bfi  r0, r1, #20, #11", 0xFFFFFFFF, r0, r1, 0);
+  TESTINST2("bfi  r0, r1, #21, #11", 0xFFFFFFFF, r0, r1, 0);
+
+  TESTINST2("bfi  r0, r1, #0, #32", 0xFFFFFFFF, r0, r1, 0);
+  TESTINST2("bfi  r0, r1, #1, #31", 0xFFFFFFFF, r0, r1, 0);
+
+  TESTINST2("bfi  r0, r1, #29, #3", 0xFFFFFFFF, r0, r1, 0);
+  TESTINST2("bfi  r0, r1, #30, #2", 0xFFFFFFFF, r0, r1, 0);
+  TESTINST2("bfi  r0, r1, #31, #1", 0xFFFFFFFF, r0, r1, 0);
+
+  printf("------------ BFC ------------\n");
+  /* bfi  rDst, #lsb-in-dst, #number-of-bits-to-copy */
+  TESTINST2("bfc  r0, #0, #11", 0xAAAAAAAA, r0, r1, 0);
+  TESTINST2("bfc  r0, #1, #11", 0xAAAAAAAA, r0, r1, 0);
+  TESTINST2("bfc  r0, #2, #11", 0xAAAAAAAA, r0, r1, 0);
+
+  TESTINST2("bfc  r0, #19, #11", 0xFFFFFFFF, r0, r1, 0);
+  TESTINST2("bfc  r0, #20, #11", 0xFFFFFFFF, r0, r1, 0);
+  TESTINST2("bfc  r0, #21, #11", 0xFFFFFFFF, r0, r1, 0);
+
+  TESTINST2("bfc  r0, #0, #32", 0xFFFFFFFF, r0, r1, 0);
+  TESTINST2("bfc  r0, #1, #31", 0xFFFFFFFF, r0, r1, 0);
+
+  TESTINST2("bfc  r0, #29, #3", 0xFFFFFFFF, r0, r1, 0);
+  TESTINST2("bfc  r0, #30, #2", 0xFFFFFFFF, r0, r1, 0);
+  TESTINST2("bfc  r0, #31, #1", 0xFFFFFFFF, r0, r1, 0);
+
+  printf("------------ SBFX ------------\n");
+  /* sbfx rDst, rSrc, #lsb, #width */
+  TESTINST2("sbfx  r0, r1, #0, #1", 0x00000000, r0, r1, 0);
+  TESTINST2("sbfx  r0, r1, #0, #1", 0x00000001, r0, r1, 0);
+  TESTINST2("sbfx  r0, r1, #1, #1", 0x00000000, r0, r1, 0);
+  TESTINST2("sbfx  r0, r1, #1, #1", 0x00000001, r0, r1, 0);
+  TESTINST2("sbfx  r0, r1, #1, #1", 0x00000002, r0, r1, 0);
+  TESTINST2("sbfx  r0, r1, #1, #1", 0x00000003, r0, r1, 0);
+
+  TESTINST2("sbfx  r0, r1, #0, #2", 0x00000000, r0, r1, 0);
+  TESTINST2("sbfx  r0, r1, #0, #2", 0x00000001, r0, r1, 0);
+  TESTINST2("sbfx  r0, r1, #1, #2", 0x00000000, r0, r1, 0);
+  TESTINST2("sbfx  r0, r1, #1, #2", 0x00000001, r0, r1, 0);
+  TESTINST2("sbfx  r0, r1, #1, #2", 0x00000002, r0, r1, 0);
+  TESTINST2("sbfx  r0, r1, #1, #2", 0x00000003, r0, r1, 0);
+
+  TESTINST2("sbfx  r0, r1, #0, #11", 0xAAAAAAAA, r0, r1, 0);
+  TESTINST2("sbfx  r0, r1, #1, #11", 0xAAAAAAAA, r0, r1, 0);
+  TESTINST2("sbfx  r0, r1, #2, #11", 0xAAAAAAAA, r0, r1, 0);
+  TESTINST2("sbfx  r0, r1, #2, #11", 0xAAAAAAAA, r0, r1, 0);
+  TESTINST2("sbfx  r0, r1, #31, #1", 0xAAAAAAAA, r0, r1, 0);
+  TESTINST2("sbfx  r0, r1, #30, #2", 0xAAAAAAAA, r0, r1, 0);
+
+  printf("------------ UBFX ------------\n");
+  /* ubfx rDst, rSrc, #lsb, #width */
+  TESTINST2("ubfx  r0, r1, #0, #1", 0x00000000, r0, r1, 0);
+  TESTINST2("ubfx  r0, r1, #0, #1", 0x00000001, r0, r1, 0);
+  TESTINST2("ubfx  r0, r1, #1, #1", 0x00000000, r0, r1, 0);
+  TESTINST2("ubfx  r0, r1, #1, #1", 0x00000001, r0, r1, 0);
+  TESTINST2("ubfx  r0, r1, #1, #1", 0x00000002, r0, r1, 0);
+  TESTINST2("ubfx  r0, r1, #1, #1", 0x00000003, r0, r1, 0);
+
+  TESTINST2("ubfx  r0, r1, #0, #2", 0x00000000, r0, r1, 0);
+  TESTINST2("ubfx  r0, r1, #0, #2", 0x00000001, r0, r1, 0);
+  TESTINST2("ubfx  r0, r1, #1, #2", 0x00000000, r0, r1, 0);
+  TESTINST2("ubfx  r0, r1, #1, #2", 0x00000001, r0, r1, 0);
+  TESTINST2("ubfx  r0, r1, #1, #2", 0x00000002, r0, r1, 0);
+  TESTINST2("ubfx  r0, r1, #1, #2", 0x00000003, r0, r1, 0);
+
+  TESTINST2("ubfx  r0, r1, #0, #11", 0xAAAAAAAA, r0, r1, 0);
+  TESTINST2("ubfx  r0, r1, #1, #11", 0xAAAAAAAA, r0, r1, 0);
+  TESTINST2("ubfx  r0, r1, #2, #11", 0xAAAAAAAA, r0, r1, 0);
+  TESTINST2("ubfx  r0, r1, #2, #11", 0xAAAAAAAA, r0, r1, 0);
+  TESTINST2("ubfx  r0, r1, #31, #1", 0xAAAAAAAA, r0, r1, 0);
+  TESTINST2("ubfx  r0, r1, #30, #2", 0xAAAAAAAA, r0, r1, 0);
+
+  printf("------------ SMUL{B,T}{B,T} ------------\n");
+  /* SMULbb rD, rN, rM */
+  TESTINST3("smulbb r0, r1, r2", 0x00030000, 0x00040000,  r0, r1, r2, 0);
+  TESTINST3("smulbb r0, r1, r2", 0x00030001, 0x00040002,  r0, r1, r2, 0);
+  TESTINST3("smulbb r0, r1, r2", 0x00038001, 0x00047fff,  r0, r1, r2, 0);
+  TESTINST3("smulbb r0, r1, r2", 0x00037fff, 0x00047fff,  r0, r1, r2, 0);
+  TESTINST3("smulbb r0, r1, r2", 0x0003ffff, 0x0004ffff,  r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0x2575feb2, 0xd2c4287c, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0xfb412431, 0x4b90362d, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0x004dfbe5, 0xe87927cc, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0xf6a3fa3c, 0x083b3571, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0xbf17fb9a, 0xb9743941, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0x2c0bd024, 0xbce5f924, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0x3e976e2e, 0xcc3c201c, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0xb4bfb365, 0x1ebaf88e, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0x288593c0, 0x722d5e20, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0x4d7ff5b4, 0xa1d6f791, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0x4557be13, 0x7b11bee7, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0xadcf5772, 0xa5631488, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0x989a7235, 0xb10bcc65, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0x4d6f393a, 0x73f39fca, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0x24a3291e, 0x5648e540, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0xdd91eebf, 0xc54f79e6, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0xf7ce2ec6, 0x5fc92974, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0xbc1083e8, 0x7e08184e, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0xa617cc31, 0x71c8315f, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0xdfe1e8f0, 0x9493110e, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0x6ef49020, 0xba8a7e0d, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0x3dc4e36b, 0x21568e39, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0x52db4a9d, 0x55fcc8cf, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0x3564c76c, 0x14434a2a, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0x27836b0c, 0x3c855ca8, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0x62ff7c30, 0x30ece28e, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0x40955fdf, 0x057b562c, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0x3b34c270, 0x27e1475b, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0x7fdcda96, 0xd05893a7, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0xb6ab141d, 0x2dc43624, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0x403d53cb, 0x5328d58c, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0x21ef1aef, 0x87488a4a, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0x31458a23, 0xbb246228, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0x848af791, 0x339d8d88, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0xda3bacdc, 0x70974249, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0x649d5cbd, 0x8a8d4e7d, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0xc0c8c881, 0xeb1b4335, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0x7dd81a20, 0x0cd6b508, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0x6892886c, 0x6731e282, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0x112dcffc, 0xb6edf28f, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0xabfabbe6, 0x4b4ec9ca, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0xe52aabf8, 0xc1037fa4, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0xf2f4df1f, 0xcb4ab48f, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0x435f909a, 0xaf8f7e18, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0x2106ba5f, 0x87df4510, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0x246a6376, 0xabf4e8e1, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0x1046a1a3, 0xf4c0eeac, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0x638ca515, 0x006a54f2, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0xf63e7a9d, 0x79f74493, r0, r1, r2, 0);
+TESTINST3("smulbb r0, r1, r2", 0xbd6845cd, 0x9c09e313, r0, r1, r2, 0);
+  /* SMULtt rD, rN, rM */
+  TESTINST3("smultt r0, r1, r2", 0x00000003, 0x00000004,  r0, r1, r2, 0);
+  TESTINST3("smultt r0, r1, r2", 0x00010003, 0x00020004,  r0, r1, r2, 0);
+  TESTINST3("smultt r0, r1, r2", 0x80010003, 0x7fff0004,  r0, r1, r2, 0);
+  TESTINST3("smultt r0, r1, r2", 0x7fff0003, 0x7fff0004,  r0, r1, r2, 0);
+  TESTINST3("smultt r0, r1, r2", 0xffff0003, 0xffff0004,  r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0x2575feb2, 0xd2c4287c, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0xfb412431, 0x4b90362d, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0x004dfbe5, 0xe87927cc, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0xf6a3fa3c, 0x083b3571, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0xbf17fb9a, 0xb9743941, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0x2c0bd024, 0xbce5f924, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0x3e976e2e, 0xcc3c201c, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0xb4bfb365, 0x1ebaf88e, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0x288593c0, 0x722d5e20, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0x4d7ff5b4, 0xa1d6f791, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0x4557be13, 0x7b11bee7, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0xadcf5772, 0xa5631488, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0x989a7235, 0xb10bcc65, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0x4d6f393a, 0x73f39fca, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0x24a3291e, 0x5648e540, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0xdd91eebf, 0xc54f79e6, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0xf7ce2ec6, 0x5fc92974, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0xbc1083e8, 0x7e08184e, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0xa617cc31, 0x71c8315f, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0xdfe1e8f0, 0x9493110e, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0x6ef49020, 0xba8a7e0d, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0x3dc4e36b, 0x21568e39, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0x52db4a9d, 0x55fcc8cf, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0x3564c76c, 0x14434a2a, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0x27836b0c, 0x3c855ca8, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0x62ff7c30, 0x30ece28e, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0x40955fdf, 0x057b562c, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0x3b34c270, 0x27e1475b, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0x7fdcda96, 0xd05893a7, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0xb6ab141d, 0x2dc43624, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0x403d53cb, 0x5328d58c, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0x21ef1aef, 0x87488a4a, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0x31458a23, 0xbb246228, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0x848af791, 0x339d8d88, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0xda3bacdc, 0x70974249, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0x649d5cbd, 0x8a8d4e7d, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0xc0c8c881, 0xeb1b4335, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0x7dd81a20, 0x0cd6b508, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0x6892886c, 0x6731e282, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0x112dcffc, 0xb6edf28f, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0xabfabbe6, 0x4b4ec9ca, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0xe52aabf8, 0xc1037fa4, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0xf2f4df1f, 0xcb4ab48f, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0x435f909a, 0xaf8f7e18, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0x2106ba5f, 0x87df4510, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0x246a6376, 0xabf4e8e1, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0x1046a1a3, 0xf4c0eeac, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0x638ca515, 0x006a54f2, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0xf63e7a9d, 0x79f74493, r0, r1, r2, 0);
+TESTINST3("smultt r0, r1, r2", 0xbd6845cd, 0x9c09e313, r0, r1, r2, 0);
+  /* SMULtb rD, rN, rM */
+  TESTINST3("smultb r0, r1, r2", 0x00000003, 0x00040000,  r0, r1, r2, 0);
+  TESTINST3("smultb r0, r1, r2", 0x00010003, 0x00040002,  r0, r1, r2, 0);
+  TESTINST3("smultb r0, r1, r2", 0x80010003, 0x00047fff,  r0, r1, r2, 0);
+  TESTINST3("smultb r0, r1, r2", 0x7fff0003, 0x00047fff,  r0, r1, r2, 0);
+  TESTINST3("smultb r0, r1, r2", 0xffff0003, 0x0004ffff,  r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0x2575feb2, 0xd2c4287c, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0xfb412431, 0x4b90362d, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0x004dfbe5, 0xe87927cc, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0xf6a3fa3c, 0x083b3571, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0xbf17fb9a, 0xb9743941, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0x2c0bd024, 0xbce5f924, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0x3e976e2e, 0xcc3c201c, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0xb4bfb365, 0x1ebaf88e, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0x288593c0, 0x722d5e20, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0x4d7ff5b4, 0xa1d6f791, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0x4557be13, 0x7b11bee7, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0xadcf5772, 0xa5631488, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0x989a7235, 0xb10bcc65, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0x4d6f393a, 0x73f39fca, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0x24a3291e, 0x5648e540, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0xdd91eebf, 0xc54f79e6, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0xf7ce2ec6, 0x5fc92974, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0xbc1083e8, 0x7e08184e, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0xa617cc31, 0x71c8315f, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0xdfe1e8f0, 0x9493110e, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0x6ef49020, 0xba8a7e0d, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0x3dc4e36b, 0x21568e39, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0x52db4a9d, 0x55fcc8cf, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0x3564c76c, 0x14434a2a, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0x27836b0c, 0x3c855ca8, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0x62ff7c30, 0x30ece28e, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0x40955fdf, 0x057b562c, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0x3b34c270, 0x27e1475b, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0x7fdcda96, 0xd05893a7, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0xb6ab141d, 0x2dc43624, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0x403d53cb, 0x5328d58c, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0x21ef1aef, 0x87488a4a, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0x31458a23, 0xbb246228, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0x848af791, 0x339d8d88, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0xda3bacdc, 0x70974249, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0x649d5cbd, 0x8a8d4e7d, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0xc0c8c881, 0xeb1b4335, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0x7dd81a20, 0x0cd6b508, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0x6892886c, 0x6731e282, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0x112dcffc, 0xb6edf28f, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0xabfabbe6, 0x4b4ec9ca, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0xe52aabf8, 0xc1037fa4, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0xf2f4df1f, 0xcb4ab48f, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0x435f909a, 0xaf8f7e18, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0x2106ba5f, 0x87df4510, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0x246a6376, 0xabf4e8e1, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0x1046a1a3, 0xf4c0eeac, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0x638ca515, 0x006a54f2, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0xf63e7a9d, 0x79f74493, r0, r1, r2, 0);
+TESTINST3("smultb r0, r1, r2", 0xbd6845cd, 0x9c09e313, r0, r1, r2, 0);
+  /* SMULbt rD, rN, rM */
+  TESTINST3("smulbt r0, r1, r2", 0x00030000, 0x00000004,  r0, r1, r2, 0);
+  TESTINST3("smulbt r0, r1, r2", 0x00030001, 0x00020004,  r0, r1, r2, 0);
+  TESTINST3("smulbt r0, r1, r2", 0x00038001, 0x7fff0004,  r0, r1, r2, 0);
+  TESTINST3("smulbt r0, r1, r2", 0x00037fff, 0x7fff0004,  r0, r1, r2, 0);
+  TESTINST3("smulbt r0, r1, r2", 0x0003ffff, 0xffff0004,  r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0x2575feb2, 0xd2c4287c, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0xfb412431, 0x4b90362d, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0x004dfbe5, 0xe87927cc, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0xf6a3fa3c, 0x083b3571, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0xbf17fb9a, 0xb9743941, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0x2c0bd024, 0xbce5f924, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0x3e976e2e, 0xcc3c201c, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0xb4bfb365, 0x1ebaf88e, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0x288593c0, 0x722d5e20, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0x4d7ff5b4, 0xa1d6f791, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0x4557be13, 0x7b11bee7, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0xadcf5772, 0xa5631488, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0x989a7235, 0xb10bcc65, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0x4d6f393a, 0x73f39fca, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0x24a3291e, 0x5648e540, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0xdd91eebf, 0xc54f79e6, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0xf7ce2ec6, 0x5fc92974, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0xbc1083e8, 0x7e08184e, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0xa617cc31, 0x71c8315f, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0xdfe1e8f0, 0x9493110e, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0x6ef49020, 0xba8a7e0d, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0x3dc4e36b, 0x21568e39, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0x52db4a9d, 0x55fcc8cf, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0x3564c76c, 0x14434a2a, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0x27836b0c, 0x3c855ca8, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0x62ff7c30, 0x30ece28e, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0x40955fdf, 0x057b562c, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0x3b34c270, 0x27e1475b, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0x7fdcda96, 0xd05893a7, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0xb6ab141d, 0x2dc43624, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0x403d53cb, 0x5328d58c, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0x21ef1aef, 0x87488a4a, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0x31458a23, 0xbb246228, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0x848af791, 0x339d8d88, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0xda3bacdc, 0x70974249, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0x649d5cbd, 0x8a8d4e7d, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0xc0c8c881, 0xeb1b4335, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0x7dd81a20, 0x0cd6b508, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0x6892886c, 0x6731e282, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0x112dcffc, 0xb6edf28f, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0xabfabbe6, 0x4b4ec9ca, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0xe52aabf8, 0xc1037fa4, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0xf2f4df1f, 0xcb4ab48f, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0x435f909a, 0xaf8f7e18, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0x2106ba5f, 0x87df4510, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0x246a6376, 0xabf4e8e1, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0x1046a1a3, 0xf4c0eeac, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0x638ca515, 0x006a54f2, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0xf63e7a9d, 0x79f74493, r0, r1, r2, 0);
+TESTINST3("smulbt r0, r1, r2", 0xbd6845cd, 0x9c09e313, r0, r1, r2, 0);
+
+  printf("-------------- SMULW{B,T} --------------\n");
+  /* SMULWB rD, rN, rM : Rn x Rm[31..16] */
+  TESTINST3("smulwb r0, r1, r2", 0x00000003, 0x00020004, r0, r1, r2, 0);
+  TESTINST3("smulwb r0, r1, r2", 0x00010003, 0x47ff0004, r0, r1, r2, 0);
+  TESTINST3("smulwb r0, r1, r2", 0x80010003, 0x7fff0004, r0, r1, r2, 0);
+  TESTINST3("smulwb r0, r1, r2", 0x7fff0003, 0x7fff0004, r0, r1, r2, 0);
+  TESTINST3("smulwb r0, r1, r2", 0xffff0003, 0xffff0004, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0x2575feb2, 0xd2c4287c, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0xfb412431, 0x4b90362d, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0x004dfbe5, 0xe87927cc, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0xf6a3fa3c, 0x083b3571, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0xbf17fb9a, 0xb9743941, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0x2c0bd024, 0xbce5f924, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0x3e976e2e, 0xcc3c201c, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0xb4bfb365, 0x1ebaf88e, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0x288593c0, 0x722d5e20, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0x4d7ff5b4, 0xa1d6f791, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0x4557be13, 0x7b11bee7, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0xadcf5772, 0xa5631488, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0x989a7235, 0xb10bcc65, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0x4d6f393a, 0x73f39fca, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0x24a3291e, 0x5648e540, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0xdd91eebf, 0xc54f79e6, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0xf7ce2ec6, 0x5fc92974, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0xbc1083e8, 0x7e08184e, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0xa617cc31, 0x71c8315f, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0xdfe1e8f0, 0x9493110e, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0x6ef49020, 0xba8a7e0d, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0x3dc4e36b, 0x21568e39, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0x52db4a9d, 0x55fcc8cf, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0x3564c76c, 0x14434a2a, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0x27836b0c, 0x3c855ca8, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0x62ff7c30, 0x30ece28e, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0x40955fdf, 0x057b562c, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0x3b34c270, 0x27e1475b, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0x7fdcda96, 0xd05893a7, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0xb6ab141d, 0x2dc43624, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0x403d53cb, 0x5328d58c, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0x21ef1aef, 0x87488a4a, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0x31458a23, 0xbb246228, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0x848af791, 0x339d8d88, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0xda3bacdc, 0x70974249, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0x649d5cbd, 0x8a8d4e7d, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0xc0c8c881, 0xeb1b4335, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0x7dd81a20, 0x0cd6b508, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0x6892886c, 0x6731e282, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0x112dcffc, 0xb6edf28f, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0xabfabbe6, 0x4b4ec9ca, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0xe52aabf8, 0xc1037fa4, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0xf2f4df1f, 0xcb4ab48f, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0x435f909a, 0xaf8f7e18, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0x2106ba5f, 0x87df4510, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0x246a6376, 0xabf4e8e1, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0x1046a1a3, 0xf4c0eeac, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0x638ca515, 0x006a54f2, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0xf63e7a9d, 0x79f74493, r0, r1, r2, 0);
+TESTINST3("smulwb r0, r1, r2", 0xbd6845cd, 0x9c09e313, r0, r1, r2, 0);
+  /* SMULWT rD, rN, rM - Rn x Rm[15.. 0] */
+  TESTINST3("smulwt r0, r1, r2", 0x00000003, 0x00040000, r0, r1, r2, 0);
+  TESTINST3("smulwt r0, r1, r2", 0x00010003, 0x00040002, r0, r1, r2, 0);
+  TESTINST3("smulwt r0, r1, r2", 0x80010003, 0x00047fff, r0, r1, r2, 0);
+  TESTINST3("smulwt r0, r1, r2", 0x7fff0003, 0x00047fff, r0, r1, r2, 0);
+  TESTINST3("smulwt r0, r1, r2", 0xffff0003, 0x0004ffff, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0x2575feb2, 0xd2c4287c, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0xfb412431, 0x4b90362d, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0x004dfbe5, 0xe87927cc, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0xf6a3fa3c, 0x083b3571, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0xbf17fb9a, 0xb9743941, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0x2c0bd024, 0xbce5f924, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0x3e976e2e, 0xcc3c201c, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0xb4bfb365, 0x1ebaf88e, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0x288593c0, 0x722d5e20, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0x4d7ff5b4, 0xa1d6f791, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0x4557be13, 0x7b11bee7, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0xadcf5772, 0xa5631488, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0x989a7235, 0xb10bcc65, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0x4d6f393a, 0x73f39fca, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0x24a3291e, 0x5648e540, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0xdd91eebf, 0xc54f79e6, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0xf7ce2ec6, 0x5fc92974, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0xbc1083e8, 0x7e08184e, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0xa617cc31, 0x71c8315f, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0xdfe1e8f0, 0x9493110e, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0x6ef49020, 0xba8a7e0d, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0x3dc4e36b, 0x21568e39, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0x52db4a9d, 0x55fcc8cf, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0x3564c76c, 0x14434a2a, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0x27836b0c, 0x3c855ca8, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0x62ff7c30, 0x30ece28e, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0x40955fdf, 0x057b562c, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0x3b34c270, 0x27e1475b, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0x7fdcda96, 0xd05893a7, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0xb6ab141d, 0x2dc43624, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0x403d53cb, 0x5328d58c, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0x21ef1aef, 0x87488a4a, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0x31458a23, 0xbb246228, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0x848af791, 0x339d8d88, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0xda3bacdc, 0x70974249, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0x649d5cbd, 0x8a8d4e7d, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0xc0c8c881, 0xeb1b4335, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0x7dd81a20, 0x0cd6b508, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0x6892886c, 0x6731e282, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0x112dcffc, 0xb6edf28f, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0xabfabbe6, 0x4b4ec9ca, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0xe52aabf8, 0xc1037fa4, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0xf2f4df1f, 0xcb4ab48f, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0x435f909a, 0xaf8f7e18, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0x2106ba5f, 0x87df4510, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0x246a6376, 0xabf4e8e1, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0x1046a1a3, 0xf4c0eeac, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0x638ca515, 0x006a54f2, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0xf63e7a9d, 0x79f74493, r0, r1, r2, 0);
+TESTINST3("smulwt r0, r1, r2", 0xbd6845cd, 0x9c09e313, r0, r1, r2, 0);
+
+  printf("------------ PKHBT / PKHTB ------------\n");
+  /* PKHBT */
+  TESTINST3("pkhbt r0, r1, r2, lsl #0",  0x11223344, 0x55667788, r0,r1,r2, 0);
+  TESTINST3("pkhbt r0, r1, r2, lsl #1",  0x11223344, 0x55667788, r0,r1,r2, 0);
+  TESTINST3("pkhbt r0, r1, r2, lsl #2",  0x11223344, 0x55667788, r0,r1,r2, 0);
+  TESTINST3("pkhbt r0, r1, r2, lsl #3",  0x11223344, 0x55667788, r0,r1,r2, 0);
+  TESTINST3("pkhbt r0, r1, r2, lsl #4",  0x11223344, 0x55667788, r0,r1,r2, 0);
+  TESTINST3("pkhbt r0, r1, r2, lsl #16", 0x11223344, 0x55667788, r0,r1,r2, 0);
+  TESTINST3("pkhbt r0, r1, r2, lsl #22", 0x11223344, 0x55667788, r0,r1,r2, 0);
+  TESTINST3("pkhbt r0, r1, r2, lsl #31", 0x11223344, 0x55667788, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2", 0x50c28082, 0xc1553709, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2", 0x17962e8f, 0x69ec0212, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2", 0xc57243b7, 0x03fa9bb5, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2", 0x7eb226ac, 0xf52e9fbf, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2", 0xbce0f026, 0x7fcbe5a9, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2", 0xa5757252, 0x2dd01366, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2", 0xf4a477c1, 0x5e4b1cbf, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2", 0x76723a21, 0x464a21cc, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2", 0x74d01105, 0xe8108f1b, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2", 0xc1273e2c, 0xcd90d604, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #0",  0x5f986e68, 0x35232047, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #1",  0x5f986e68, 0x35232047, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #2",  0x5f986e68, 0x35232047, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #3",  0x5f986e68, 0x35232047, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #4",  0x5f986e68, 0x35232047, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #8",  0x5f986e68, 0x35232047, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #12", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #16", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #24", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #31", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #0",  0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #1",  0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #2",  0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #3",  0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #4",  0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #8",  0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #12", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #16", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #24", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #31", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #0",  0x216158cb, 0x57a50a01, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #1",  0x216158cb, 0x57a50a01, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #2",  0x216158cb, 0x57a50a01, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #3",  0x216158cb, 0x57a50a01, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #4",  0x216158cb, 0x57a50a01, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #8",  0x216158cb, 0x57a50a01, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #12", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #16", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #24", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #31", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #0",  0xd5dc5407, 0xf87b961e, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #1",  0xd65db979, 0xc61b323b, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #2",  0xa3268abe, 0xed2cbf78, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #3",  0xbf73f0a5, 0x2fb714c9, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #4",  0x281703ed, 0x925ef472, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #8",  0xeaa652c7, 0x137741f4, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #12", 0x71fbde8b, 0xdba5bd25, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #16", 0x884c0ad8, 0xc00b821a, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #24", 0xe1bb8606, 0x58293969, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #31", 0xa3cfd624, 0x6077fb1f, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #0",  0x40b094e2, 0x17913309, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #1",  0x5388b5cd, 0x86582032, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #2",  0x5de41558, 0xccfa1c7e, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #3",  0x23ba1b46, 0x4437983c, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #4",  0x48d06549, 0xa9085781, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #8",  0xc6b4ac58, 0xb2aead21, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #12", 0xc2bdf597, 0xdde1e6a4, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #16", 0x852e3a72, 0x157b0dea, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #24", 0xe7aa57b4, 0x1584bd74, r0,r1,r2, 0);
+TESTINST3("pkhbt r0, r1, r2, lsl #31", 0xd4b64d54, 0xc53aaba9, r0,r1,r2, 0);
+  /* PKHTB */
+  TESTINST3("pkhtb r0, r1, r2, asr #0",  0x11223344, 0x55667788, r0,r1,r2, 0);
+  TESTINST3("pkhtb r0, r1, r2, asr #1",  0x11223344, 0x55667788, r0,r1,r2, 0);
+  TESTINST3("pkhtb r0, r1, r2, asr #2",  0x11223344, 0x55667788, r0,r1,r2, 0);
+  TESTINST3("pkhtb r0, r1, r2, asr #3",  0x11223344, 0x55667788, r0,r1,r2, 0);
+  TESTINST3("pkhtb r0, r1, r2, asr #4",  0x11223344, 0x55667788, r0,r1,r2, 0);
+  TESTINST3("pkhtb r0, r1, r2, asr #16", 0x11223344, 0x55667788, r0,r1,r2, 0);
+  TESTINST3("pkhtb r0, r1, r2, asr #22", 0x11223344, 0x55667788, r0,r1,r2, 0);
+  TESTINST3("pkhtb r0, r1, r2, asr #31", 0x11223344, 0x55667788, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2", 0x50c28082, 0xc1553709, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2", 0x17962e8f, 0x69ec0212, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2", 0xc57243b7, 0x03fa9bb5, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2", 0x7eb226ac, 0xf52e9fbf, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2", 0xbce0f026, 0x7fcbe5a9, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2", 0xa5757252, 0x2dd01366, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2", 0xf4a477c1, 0x5e4b1cbf, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2", 0x76723a21, 0x464a21cc, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2", 0x74d01105, 0xe8108f1b, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2", 0xc1273e2c, 0xcd90d604, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #0",  0x5f986e68, 0x35232047, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #1",  0x5f986e68, 0x35232047, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #2",  0x5f986e68, 0x35232047, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #3",  0x5f986e68, 0x35232047, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #4",  0x5f986e68, 0x35232047, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #8",  0x5f986e68, 0x35232047, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #12", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #16", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #24", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #31", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #32", 0x5f986e68, 0x35232047, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #0",  0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #1",  0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #2",  0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #3",  0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #4",  0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #8",  0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #12", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #16", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #24", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #31", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #32", 0x36f26261, 0x89d2ef86, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #0",  0x216158cb, 0x57a50a01, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #1",  0x216158cb, 0x57a50a01, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #2",  0x216158cb, 0x57a50a01, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #3",  0x216158cb, 0x57a50a01, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #4",  0x216158cb, 0x57a50a01, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #8",  0x216158cb, 0x57a50a01, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #12", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #16", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #24", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #31", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #32", 0x216158cb, 0x57a50a01, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #0",  0xd5dc5407, 0xf87b961e, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #1",  0xd65db979, 0xc61b323b, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #2",  0xa3268abe, 0xed2cbf78, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #3",  0xbf73f0a5, 0x2fb714c9, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #4",  0x281703ed, 0x925ef472, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #8",  0xeaa652c7, 0x137741f4, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #12", 0x71fbde8b, 0xdba5bd25, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #16", 0x884c0ad8, 0xc00b821a, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #24", 0xe1bb8606, 0x58293969, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #31", 0xa3cfd624, 0x6077fb1f, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #32", 0xa3cfd624, 0x6077fb1f, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #0",  0x40b094e2, 0x17913309, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #1",  0x5388b5cd, 0x86582032, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #2",  0x5de41558, 0xccfa1c7e, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #3",  0x23ba1b46, 0x4437983c, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #4",  0x48d06549, 0xa9085781, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #8",  0xc6b4ac58, 0xb2aead21, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #12", 0xc2bdf597, 0xdde1e6a4, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #16", 0x852e3a72, 0x157b0dea, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #24", 0xe7aa57b4, 0x1584bd74, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #31", 0xd4b64d54, 0xc53aaba9, r0,r1,r2, 0);
+TESTINST3("pkhtb r0, r1, r2, asr #32", 0xd4b64d54, 0xc53aaba9, r0,r1,r2, 0);
+
+  printf("----------------- USAT ----------------- \n");
+  TESTINST2("usat  r0, #0,  r1", 0x0123abcd, r0, r1, 0);
+  TESTINST2("usat  r0, #1,  r1", 0x0123abcd, r0, r1, 0);
+  TESTINST2("usat  r0, #5,  r1", 0x0123abcd, r0, r1, 0);
+  TESTINST2("usat  r0, #8,  r1", 0x0123abcd, r0, r1, 0);
+  TESTINST2("usat  r0, #11, r1", 0x11110000, r0, r1, 0);
+  TESTINST2("usat  r0, #13, r1", 0x11110000, r0, r1, 0);
+  TESTINST2("usat  r0, #15, r1", 0x11110000, r0, r1, 0);
+TESTINST2("usat  r0, #0,  r1",          0xebbff82b, r0, r1, 0);
+TESTINST2("usat  r0, #31, r1, lsl #0",  0x5f986e68, r0, r1, 0);
+TESTINST2("usat  r0, #31, r1, lsl #0",  0xe7aa57b4, r0, r1, 0);
+TESTINST2("usat  r0, #31, r1, lsl #0",  0x89d2ef86, r0, r1, 0);
+TESTINST2("usat  r0, #31, r1, lsl #8",  0xc53aaba9, r0, r1, 0);
+TESTINST2("usat  r0, #31, r1, lsl #8",  0x216158cb, r0, r1, 0);
+TESTINST2("usat  r0, #31, r1, lsl #8",  0x3cd6cd94, r0, r1, 0);
+TESTINST2("usat  r0, #0,  r1, lsl #0",  0xf87b961e, r0, r1, 0);
+TESTINST2("usat  r0, #0,  r1, lsl #0",  0xc61b323b, r0, r1, 0);
+TESTINST2("usat  r0, #0,  r1, lsl #0",  0xa3268abe, r0, r1, 0);
+TESTINST2("usat  r0, #0,  r1, lsl #8",  0xbf73f0a5, r0, r1, 0);
+TESTINST2("usat  r0, #0,  r1, lsl #8",  0x925ef472, r0, r1, 0);
+TESTINST2("usat  r0, #0,  r1, lsl #8",  0x137741f4, r0, r1, 0);
+TESTINST2("usat  r0, #24, r1, lsl #2",  0x50c28082, r0, r1, 0);
+TESTINST2("usat  r0, #16, r1, lsl #3",  0x17962e8f, r0, r1, 0);
+TESTINST2("usat  r0, #12, r1, lsl #4",  0xc57243b7, r0, r1, 0);
+TESTINST2("usat  r0, #8,  r1, lsl #8",  0xf20fb90f, r0, r1, 0);
+TESTINST2("usat  r0, #4,  r1, lsl #12", 0xbb151055, r0, r1, 0);
+TESTINST2("usat  r0, #3,  r1, lsl #16", 0x957440d2, r0, r1, 0);
+TESTINST2("usat  r0, #2,  r1, lsl #24", 0x728b7771, r0, r1, 0);
+TESTINST2("usat  r0, #1,  r1, lsl #31", 0xf13c20f3, r0, r1, 0);
+TESTINST2("usat  r0, #0,  r1",          0xebbff82b, r0, r1, 0);
+TESTINST2("usat  r0, #31, r1, asr #0",  0x5f986e68, r0, r1, 0);
+TESTINST2("usat  r0, #31, r1, asr #0",  0xe7aa57b4, r0, r1, 0);
+TESTINST2("usat  r0, #31, r1, asr #0",  0x89d2ef86, r0, r1, 0);
+TESTINST2("usat  r0, #31, r1, asr #8",  0xc53aaba9, r0, r1, 0);
+TESTINST2("usat  r0, #31, r1, asr #8",  0x216158cb, r0, r1, 0);
+TESTINST2("usat  r0, #31, r1, asr #8",  0x3cd6cd94, r0, r1, 0);
+TESTINST2("usat  r0, #0,  r1, asr #0",  0xf87b961e, r0, r1, 0);
+TESTINST2("usat  r0, #0,  r1, asr #0",  0xc61b323b, r0, r1, 0);
+TESTINST2("usat  r0, #0,  r1, asr #0",  0xa3268abe, r0, r1, 0);
+TESTINST2("usat  r0, #0,  r1, asr #8",  0xbf73f0a5, r0, r1, 0);
+TESTINST2("usat  r0, #0,  r1, asr #8",  0x925ef472, r0, r1, 0);
+TESTINST2("usat  r0, #0,  r1, asr #8",  0x137741f4, r0, r1, 0);
+TESTINST2("usat  r0, #24, r1, asr #2",  0x50c28082, r0, r1, 0);
+TESTINST2("usat  r0, #16, r1, asr #3",  0x17962e8f, r0, r1, 0);
+TESTINST2("usat  r0, #12, r1, asr #4",  0xc57243b7, r0, r1, 0);
+TESTINST2("usat  r0, #8,  r1, asr #8",  0xf20fb90f, r0, r1, 0);
+TESTINST2("usat  r0, #4,  r1, asr #12", 0xbb151055, r0, r1, 0);
+TESTINST2("usat  r0, #3,  r1, asr #16", 0x957440d2, r0, r1, 0);
+TESTINST2("usat  r0, #2,  r1, asr #24", 0x728b7771, r0, r1, 0);
+TESTINST2("usat  r0, #1,  r1, asr #31", 0xf13c20f3, r0, r1, 0);
+TESTINST2("usat  r0, #0,  r1",          0xebbff82b, r0, r1, 0);
+TESTINST2("usat  r0, #31, r1, asr #0",  0x5f986e68, r0, r1, 0);
+TESTINST2("usat  r0, #31, r1, asr #0",  0xe7aa57b4, r0, r1, 0);
+TESTINST2("usat  r0, #31, r1, asr #0",  0x89d2ef86, r0, r1, 0);
+TESTINST2("usat  r0, #31, r1, asr #8",  0xc53aaba9, r0, r1, 0);
+TESTINST2("usat  r0, #31, r1, asr #8",  0x216158cb, r0, r1, 0);
+TESTINST2("usat  r0, #31, r1, asr #8",  0x3cd6cd94, r0, r1, 0);
+TESTINST2("usat  r0, #0,  r1, asr #0",  0xf87b961e, r0, r1, 0);
+TESTINST2("usat  r0, #0,  r1, asr #0",  0xc61b323b, r0, r1, 0);
+TESTINST2("usat  r0, #0,  r1, asr #0",  0xa3268abe, r0, r1, 0);
+TESTINST2("usat  r0, #0,  r1, asr #8",  0xbf73f0a5, r0, r1, 0);
+TESTINST2("usat  r0, #0,  r1, asr #8",  0x925ef472, r0, r1, 0);
+TESTINST2("usat  r0, #0,  r1, asr #8",  0x137741f4, r0, r1, 0);
+TESTINST2("usat  r0, #24, r1, asr #2",  0x50c28082, r0, r1, 0);
+TESTINST2("usat  r0, #16, r1, asr #3",  0x17962e8f, r0, r1, 0);
+TESTINST2("usat  r0, #12, r1, asr #4",  0xc57243b7, r0, r1, 0);
+TESTINST2("usat  r0, #8,  r1, asr #8",  0xf20fb90f, r0, r1, 0);
+TESTINST2("usat  r0, #4,  r1, asr #12", 0xbb151055, r0, r1, 0);
+TESTINST2("usat  r0, #3,  r1, asr #16", 0x957440d2, r0, r1, 0);
+TESTINST2("usat  r0, #2,  r1, asr #24", 0x728b7771, r0, r1, 0);
+TESTINST2("usat  r0, #1,  r1, asr #31", 0xf13c20f3, r0, r1, 0);
+#ifndef __thumb__
+TESTINST2("usat  r0, #0,  r1, asr #32", 0xa9085781, r0, r1, 0);
+TESTINST2("usat  r0, #31, r1, asr #32", 0x40b094e2, r0, r1, 0);
+TESTINST2("usat  r0, #31, r1, asr #32", 0x17913309, r0, r1, 0);
+TESTINST2("usat  r0, #31, r1, asr #32", 0x5388b5cd, r0, r1, 0);
+TESTINST2("usat  r0, #24, r1, asr #32", 0x86582032, r0, r1, 0);
+TESTINST2("usat  r0, #16, r1, asr #32", 0x5de41558, r0, r1, 0);
+TESTINST2("usat  r0, #12, r1, asr #32", 0xccfa1c7e, r0, r1, 0);
+TESTINST2("usat  r0, #8,  r1, asr #32", 0x23ba1b46, r0, r1, 0);
+TESTINST2("usat  r0, #4,  r1, asr #32", 0x4437983c, r0, r1, 0);
+TESTINST2("usat  r0, #3,  r1, asr #32", 0x48d06549, r0, r1, 0);
+TESTINST2("usat  r0, #2,  r1, asr #32", 0xa9085781, r0, r1, 0);
+TESTINST2("usat  r0, #1,  r1, asr #32", 0xc6b4ac58, r0, r1, 0);
+#endif
+
+  printf("------------ USAT16 sat_imm ------------ \n");
+  TESTINST2("usat16  r0, #0,  r1", 0x0123abcd, r0, r1, 0);
+  TESTINST2("usat16  r0, #1,  r1", 0xffcdabcd, r0, r1, 0);
+  TESTINST2("usat16  r0, #5,  r1", 0x0123feff, r0, r1, 0);
+  TESTINST2("usat16  r0, #8,  r1", 0x0123abcd, r0, r1, 0);
+  TESTINST2("usat16  r0, #11, r1", 0x11110000, r0, r1, 0);
+  TESTINST2("usat16  r0, #13, r1", 0x1111f111, r0, r1, 0);
+  TESTINST2("usat16  r0, #15, r1", 0x00001111, r0, r1, 0);
+TESTINST2("usat16  r0, #0,  r1", 0xebbff82b, r0, r1, 0);
+TESTINST2("usat16  r0, #1,  r1", 0xebbff82b, r0, r1, 0);
+TESTINST2("usat16  r0, #3,  r1", 0x50c28082, r0, r1, 0);
+TESTINST2("usat16  r0, #5,  r1", 0x17962e8f, r0, r1, 0);
+TESTINST2("usat16  r0, #8,  r1", 0xc57243b7, r0, r1, 0);
+TESTINST2("usat16  r0, #10, r1", 0xf20fb90f, r0, r1, 0);
+TESTINST2("usat16  r0, #11, r1", 0xbb151055, r0, r1, 0);
+TESTINST2("usat16  r0, #13, r1", 0x957440d2, r0, r1, 0);
+TESTINST2("usat16  r0, #14, r1", 0x728b7771, r0, r1, 0);
+TESTINST2("usat16  r0, #15, r1", 0xf13c20f3, r0, r1, 0);
+TESTINST2("usat16  r0, #0,  r1", 0x86398371, r0, r1, 0);
+TESTINST2("usat16  r0, #1,  r1", 0x03d0fb78, r0, r1, 0);
+TESTINST2("usat16  r0, #3,  r1", 0xd0d49b7c, r0, r1, 0);
+TESTINST2("usat16  r0, #5,  r1", 0x76354a58, r0, r1, 0);
+TESTINST2("usat16  r0, #8,  r1", 0x9fa45fb7, r0, r1, 0);
+TESTINST2("usat16  r0, #10, r1", 0x7572bdec, r0, r1, 0);
+TESTINST2("usat16  r0, #11, r1", 0xfea59eb6, r0, r1, 0);
+TESTINST2("usat16  r0, #13, r1", 0xf2669090, r0, r1, 0);
+TESTINST2("usat16  r0, #14, r1", 0xbc1ff573, r0, r1, 0);
+TESTINST2("usat16  r0, #15, r1", 0x7eb226ac, r0, r1, 0);
+TESTINST2("usat16  r0, #0,  r1", 0x22b65db1, r0, r1, 0);
+TESTINST2("usat16  r0, #1,  r1", 0x776c41c7, r0, r1, 0);
+TESTINST2("usat16  r0, #3,  r1", 0xe50dd77c, r0, r1, 0);
+TESTINST2("usat16  r0, #5,  r1", 0xd6f9a698, r0, r1, 0);
+TESTINST2("usat16  r0, #8,  r1", 0xeda5110c, r0, r1, 0);
+TESTINST2("usat16  r0, #10, r1", 0x0be36f70, r0, r1, 0);
+TESTINST2("usat16  r0, #11, r1", 0xd759eb72, r0, r1, 0);
+TESTINST2("usat16  r0, #13, r1", 0xd9c4b1f4, r0, r1, 0);
+TESTINST2("usat16  r0, #14, r1", 0xa29eb320, r0, r1, 0);
+TESTINST2("usat16  r0, #15, r1", 0xcf1e4487, r0, r1, 0);
+TESTINST2("usat16  r0, #0,  r1", 0x2eb68500, r0, r1, 0);
+TESTINST2("usat16  r0, #1,  r1", 0xcdb7ed11, r0, r1, 0);
+TESTINST2("usat16  r0, #3,  r1", 0x2eaea305, r0, r1, 0);
+TESTINST2("usat16  r0, #5,  r1", 0x6ebd04d9, r0, r1, 0);
+TESTINST2("usat16  r0, #8,  r1", 0xa5ec1aa8, r0, r1, 0);
+TESTINST2("usat16  r0, #10, r1", 0x72f33509, r0, r1, 0);
+TESTINST2("usat16  r0, #11, r1", 0xa3e6f759, r0, r1, 0);
+TESTINST2("usat16  r0, #13, r1", 0xfaceab39, r0, r1, 0);
+TESTINST2("usat16  r0, #14, r1", 0x2738f0ff, r0, r1, 0);
+TESTINST2("usat16  r0, #15, r1", 0xe79fd570, r0, r1, 0);
+TESTINST2("usat16  r0, #0,  r1", 0x55ea3e4e, r0, r1, 0);
+TESTINST2("usat16  r0, #1,  r1", 0x2b62ba5a, r0, r1, 0);
+TESTINST2("usat16  r0, #3,  r1", 0x9b41bfb1, r0, r1, 0);
+TESTINST2("usat16  r0, #5,  r1", 0x557c7ba2, r0, r1, 0);
+TESTINST2("usat16  r0, #8,  r1", 0x2973c051, r0, r1, 0);
+TESTINST2("usat16  r0, #10, r1", 0x6a228b19, r0, r1, 0);
+TESTINST2("usat16  r0, #11, r1", 0x0cdafabe, r0, r1, 0);
+TESTINST2("usat16  r0, #13, r1", 0x50865114, r0, r1, 0);
+TESTINST2("usat16  r0, #14, r1", 0xd83b849b, r0, r1, 0);
+TESTINST2("usat16  r0, #15, r1", 0xca5e5605, r0, r1, 0);
+
+  printf("---------------- UADD16 ---------------- \n");
+  TESTINST3("uadd16 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
+  TESTINST3("uadd16 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
+  TESTINST3("uadd16 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
+  TESTINST3("uadd16 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
+TESTINST3("uadd16 r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
+
+  printf("---------------- USUB16 ---------------- \n");
+  TESTINST3("usub16 r0, r1, r2", 0x04000022, 0x03000011, r0, r1, r2, 0);
+  TESTINST3("usub16 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
+  TESTINST3("usub16 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
+  TESTINST3("usub16 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
+  TESTINST3("usub16 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
+TESTINST3("usub16 r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
+
+  printf("---------------- UADD8 ----------------- \n");
+  TESTINST3("uadd8 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
+  TESTINST3("uadd8 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
+  TESTINST3("uadd8 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
+  TESTINST3("uadd8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
+  TESTINST3("uadd8 r0, r1, r2", 0x00000318, 0xff00ff09, r0, r1, r2, 0);
+  TESTINST3("uadd8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
+  TESTINST3("uadd8 r0, r1, r2", 0x00020318, 0xff07ff09, r0, r1, r2, 0);
+  TESTINST3("uadd8 r0, r1, r2", 0xff07ff09, 0x00020318, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
+TESTINST3("uadd8 r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
+
+  printf("---------------- USUB8 ----------------- \n");
+  TESTINST3("usub8 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
+  TESTINST3("usub8 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
+  TESTINST3("usub8 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
+  TESTINST3("usub8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
+  TESTINST3("usub8 r0, r1, r2", 0x00000318, 0xff00ff09, r0, r1, r2, 0);
+  TESTINST3("usub8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
+  TESTINST3("usub8 r0, r1, r2", 0x00020318, 0xff07ff09, r0, r1, r2, 0);
+  TESTINST3("usub8 r0, r1, r2", 0xff07ff09, 0x00020318, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
+TESTINST3("usub8 r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
+
+  printf("---------------- QADD16 ---------------- \n");
+  TESTINST3("qadd16 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
+  TESTINST3("qadd16 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
+  TESTINST3("qadd16 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
+  TESTINST3("qadd16 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
+TESTINST3("qadd16 r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
+
+  printf("---------------- QSUB16 ---------------- \n");
+  TESTINST3("qsub16 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
+  TESTINST3("qsub16 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
+  TESTINST3("qsub16 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
+  TESTINST3("qsub16 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
+TESTINST3("qsub16 r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
+
+  printf("----------------- QSAX ----------------- \n");
+  TESTINST3("qsax r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
+  TESTINST3("qsax r0, r1, r2", 0x7fff7fff, 0x00010001, r0, r1, r2, 0);
+  TESTINST3("qsax r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
+  TESTINST3("qsax r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
+  TESTINST3("qsax r0, r1, r2", 0x00640064, 0x00030003, r0, r1, r2, 0);
+  TESTINST3("qsax r0, r1, r2", 0x00030003, 0x00640064, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
+TESTINST3("qsax r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
+
+  printf("----------------- QASX ----------------- \n");
+  TESTINST3("qasx r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
+  TESTINST3("qasx r0, r1, r2", 0x7fff7fff, 0x00010001, r0, r1, r2, 0);
+  TESTINST3("qasx r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
+  TESTINST3("qasx r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
+  TESTINST3("qasx r0, r1, r2", 0x00640064, 0x00030003, r0, r1, r2, 0);
+  TESTINST3("qasx r0, r1, r2", 0x00030003, 0x00640064, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
+TESTINST3("qasx r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
+
+  printf("----------------- SMUAD ----------------- \n");
+  TESTINST3("smuad r0, r1, r2", 0x80008000, 0x80008000, r0, r1, r2, 0);
+  TESTINST3("smuad r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
+  TESTINST3("smuad r0, r1, r2", 0x7fff7fff, 0x00010001, r0, r1, r2, 0);
+  TESTINST3("smuad r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
+  TESTINST3("smuad r0, r1, r2", 0x00640064, 0x00030003, r0, r1, r2, 0);
+  TESTINST3("smuad r0, r1, r2", 0xffffffff, 0xfffc0001, r0, r1, r2, 0);
+  TESTINST3("smuad r0, r1, r2", 0xfff70fff, 0x00030003, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
+TESTINST3("smuad r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
+  printf("----------------- SMUADX ---------------- \n");
+  TESTINST3("smuadx r0, r1, r2", 0x80008000, 0x80008000, r0, r1, r2, 0);
+  TESTINST3("smuadx r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
+  TESTINST3("smuadx r0, r1, r2", 0x7fff7fff, 0x00010001, r0, r1, r2, 0);
+  TESTINST3("smuadx r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
+  TESTINST3("smuadx r0, r1, r2", 0x00640064, 0x00030003, r0, r1, r2, 0);
+  TESTINST3("smuadx r0, r1, r2", 0xffffffff, 0xfffc0001, r0, r1, r2, 0);
+  TESTINST3("smuadx r0, r1, r2", 0xfff70fff, 0x00030003, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
+TESTINST3("smuadx r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
+
+  printf("----------------- SMLAD ----------------- \n");
+  TESTINST4("smlad  r0, r1, r2, r3", 
+                  0x7fff7fff, 0x00000000, 0x00000000, r0, r1, r2, r3, 0);
+  TESTINST4("smlad  r0, r1, r2, r3", 
+                  0x7fff7fff, 0x00010001, 0x00000001, r0, r1, r2, r3, 0);
+  TESTINST4("smlad  r0, r1, r2, r3", 
+                  0x80008000, 0xffffffff, 0x0000001f, r0, r1, r2, r3, 0);
+  TESTINST4("smlad  r0, r1, r2, r3", 
+                  0x00640064, 0x00030003, 0x00000020, r0, r1, r2, r3, 0);
+  TESTINST4("smlad  r0, r1, r2, r3", 
+                  0xffffffff, 0xfffc0001, 0x000000ff, r0, r1, r2, r3, 0);
+  TESTINST4("smlad  r0, r1, r2, r3", 
+                  0xfff70fff, 0x00030003, 0x00000100, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0x32fa0095, 0x36f26261, 0x89d2ef86, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0x8ed8287c, 0x02c90120, 0xd4b64d54, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0xc53aaba9, 0x29300837, 0x0b02c58a, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0x216158cb, 0x57a50a01, 0xb0d20777, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0xf87b961e, 0x1d66879f, 0xf2b64835, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0xd65db979, 0xc61b323b, 0xae930a1a, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0xeaa652c7, 0x137741f4, 0x3dba1164, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0xe1bb8606, 0x58293969, 0x81616d13, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0x0849a0c2, 0x0872f25a, 0x40b094e2, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0x17913309, 0xf1e03d7e, 0x91edc21d, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0x5388b5cd, 0x86582032, 0x6034078d, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0x181c436b, 0x5de41558, 0xccfa1c7e, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0x23ba1b46, 0x4437983c, 0x48d06549, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0xa9085781, 0xc6b4ac58, 0xb2aead21, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0xd7ce1909, 0x3e435701, 0x85fbf196, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0xb4e16b6e, 0x6e13680a, 0x89436f88, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0x44858efc, 0x9002bc30, 0x390d2c2f, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0xbea121ab, 0x953ff6ec, 0x80657c40, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0xec0c2f30, 0x5736ed46, 0x231348c0, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0xc1553709, 0x0112b30a, 0x69ec0212, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0x74bd0223, 0x03fa9bb5, 0x899d9192, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0x299da970, 0xe8108f1b, 0xf5818cfb, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0xcd90d604, 0xaa5e9444, 0x8217b7df, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0xe60743c3, 0x7acb4de3, 0x73c29060, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0xde99ac2f, 0x0be36f70, 0xeda5110c, r0, r1, r2, r3, 0);
+TESTINST4("smlad  r0, r1, r2, r3", 
+          0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0);
+
+  printf("------------ SMLABB, SMLATT, SMLATB, SMLABT ------------\n");
+  /* smlabb rD, rN, rM, rA */
+  TESTINST4("smlabb r0, r1, r2, r3", 
+            0x00030000, 0x00040000, 0x00000000, r0,r1,r2,r3, 0);
+  TESTINST4("smlabb r0, r1, r2, r3", 
+            0x00030001, 0x00040002, 0x00007fff, r0,r1,r2,r3, 0);
+  TESTINST4("smlabb r0, r1, r2, r3", 
+            0x00038001, 0x00047fff, 0x00005fff, r0,r1,r2,r3, 0);
+  TESTINST4("smlabb r0, r1, r2, r3", 
+            0x00037fff, 0x00047fff, 0x00007fff, r0,r1,r2,r3, 0);
+  TESTINST4("smlabb r0, r1, r2, r3", 
+            0x0003ffff, 0x0004ffff, 0x7fff7fff, r0,r1,r2,r3, 0);
+  TESTINST4("smlabb r0, r1, r2, r3", 
+            0x0003fffc, 0x0004ffff, 0xffffffff, r0,r1,r2,r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0x32fa0095, 0x36f26261, 0x89d2ef86, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0x8ed8287c, 0x02c90120, 0xd4b64d54, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0xc53aaba9, 0x29300837, 0x0b02c58a, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0x216158cb, 0x57a50a01, 0xb0d20777, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0xf87b961e, 0x1d66879f, 0xf2b64835, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0xd65db979, 0xc61b323b, 0xae930a1a, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0xeaa652c7, 0x137741f4, 0x3dba1164, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0xe1bb8606, 0x58293969, 0x81616d13, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0x0849a0c2, 0x0872f25a, 0x40b094e2, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0x17913309, 0xf1e03d7e, 0x91edc21d, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0x5388b5cd, 0x86582032, 0x6034078d, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0x181c436b, 0x5de41558, 0xccfa1c7e, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0x23ba1b46, 0x4437983c, 0x48d06549, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0xa9085781, 0xc6b4ac58, 0xb2aead21, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0xd7ce1909, 0x3e435701, 0x85fbf196, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0xb4e16b6e, 0x6e13680a, 0x89436f88, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0x44858efc, 0x9002bc30, 0x390d2c2f, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0xbea121ab, 0x953ff6ec, 0x80657c40, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0xec0c2f30, 0x5736ed46, 0x231348c0, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0xc1553709, 0x0112b30a, 0x69ec0212, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0x74bd0223, 0x03fa9bb5, 0x899d9192, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0x299da970, 0xe8108f1b, 0xf5818cfb, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0xcd90d604, 0xaa5e9444, 0x8217b7df, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0xe60743c3, 0x7acb4de3, 0x73c29060, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0xde99ac2f, 0x0be36f70, 0xeda5110c, r0, r1, r2, r3, 0);
+TESTINST4("smlabb  r0, r1, r2, r3", 
+          0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0);
+  /* smlatt rD, rN, rM, rA */
+  TESTINST4("smlatt r0, r1, r2, r3", 
+            0x00000003, 0x00000004, 0x00000000, r0,r1,r2,r3, 0);
+  TESTINST4("smlatt r0, r1, r2, r3", 
+            0x00010003, 0x00020004, 0x00007fff, r0,r1,r2,r3, 0);
+  TESTINST4("smlatt r0, r1, r2, r3", 
+            0x80010003, 0x7fff0004, 0x00005fff, r0,r1,r2,r3, 0);
+  TESTINST4("smlatt r0, r1, r2, r3", 
+            0x7fff0003, 0x7fff0004, 0x00007fff, r0,r1,r2,r3, 0);
+  TESTINST4("smlatt r0, r1, r2, r3", 
+            0xffff0003, 0xffff0004, 0x7fff7fff, r0,r1,r2,r3, 0);
+  TESTINST4("smlatt r0, r1, r2, r3", 
+            0xfffc0003, 0xffff0004, 0xffffffff, r0,r1,r2,r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0x32fa0095, 0x36f26261, 0x89d2ef86, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0x8ed8287c, 0x02c90120, 0xd4b64d54, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0xc53aaba9, 0x29300837, 0x0b02c58a, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0x216158cb, 0x57a50a01, 0xb0d20777, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0xf87b961e, 0x1d66879f, 0xf2b64835, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0xd65db979, 0xc61b323b, 0xae930a1a, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0xeaa652c7, 0x137741f4, 0x3dba1164, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0xe1bb8606, 0x58293969, 0x81616d13, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0x0849a0c2, 0x0872f25a, 0x40b094e2, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0x17913309, 0xf1e03d7e, 0x91edc21d, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0x5388b5cd, 0x86582032, 0x6034078d, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0x181c436b, 0x5de41558, 0xccfa1c7e, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0x23ba1b46, 0x4437983c, 0x48d06549, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0xa9085781, 0xc6b4ac58, 0xb2aead21, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0xd7ce1909, 0x3e435701, 0x85fbf196, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0xb4e16b6e, 0x6e13680a, 0x89436f88, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0x44858efc, 0x9002bc30, 0x390d2c2f, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0xbea121ab, 0x953ff6ec, 0x80657c40, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0xec0c2f30, 0x5736ed46, 0x231348c0, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0xc1553709, 0x0112b30a, 0x69ec0212, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0x74bd0223, 0x03fa9bb5, 0x899d9192, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0x299da970, 0xe8108f1b, 0xf5818cfb, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0xcd90d604, 0xaa5e9444, 0x8217b7df, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0xe60743c3, 0x7acb4de3, 0x73c29060, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0xde99ac2f, 0x0be36f70, 0xeda5110c, r0, r1, r2, r3, 0);
+TESTINST4("smlatt  r0, r1, r2, r3", 
+          0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0);
+  /* smlatb rD, rN, rM, rA */
+  TESTINST4("smlatb r0, r1, r2, r3", 
+            0x00000003, 0x00040000, 0x00000000, r0,r1,r2,r3, 0);
+  TESTINST4("smlatb r0, r1, r2, r3", 
+            0x00010003, 0x00040002, 0x00007fff, r0,r1,r2,r3, 0);
+  TESTINST4("smlatb r0, r1, r2, r3", 
+            0x80010003, 0x00047fff, 0x00005fff, r0,r1,r2,r3, 0);
+  TESTINST4("smlatb r0, r1, r2, r3", 
+            0x7fff0003, 0x00047fff, 0x00007fff, r0,r1,r2,r3, 0);
+  TESTINST4("smlatb r0, r1, r2, r3", 
+            0xffff0003, 0x0004ffff, 0x7fff7fff, r0,r1,r2,r3, 0);
+  TESTINST4("smlatb r0, r1, r2, r3", 
+            0xfffc0003, 0x0004ffff, 0xffffffff, r0,r1,r2,r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0x32fa0095, 0x36f26261, 0x89d2ef86, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0x8ed8287c, 0x02c90120, 0xd4b64d54, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0xc53aaba9, 0x29300837, 0x0b02c58a, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0x216158cb, 0x57a50a01, 0xb0d20777, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0xf87b961e, 0x1d66879f, 0xf2b64835, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0xd65db979, 0xc61b323b, 0xae930a1a, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0xeaa652c7, 0x137741f4, 0x3dba1164, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0xe1bb8606, 0x58293969, 0x81616d13, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0x0849a0c2, 0x0872f25a, 0x40b094e2, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0x17913309, 0xf1e03d7e, 0x91edc21d, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0x5388b5cd, 0x86582032, 0x6034078d, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0x181c436b, 0x5de41558, 0xccfa1c7e, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0x23ba1b46, 0x4437983c, 0x48d06549, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0xa9085781, 0xc6b4ac58, 0xb2aead21, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0xd7ce1909, 0x3e435701, 0x85fbf196, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0xb4e16b6e, 0x6e13680a, 0x89436f88, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0x44858efc, 0x9002bc30, 0x390d2c2f, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0xbea121ab, 0x953ff6ec, 0x80657c40, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0xec0c2f30, 0x5736ed46, 0x231348c0, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0xc1553709, 0x0112b30a, 0x69ec0212, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0x74bd0223, 0x03fa9bb5, 0x899d9192, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0x299da970, 0xe8108f1b, 0xf5818cfb, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0xcd90d604, 0xaa5e9444, 0x8217b7df, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0xe60743c3, 0x7acb4de3, 0x73c29060, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0xde99ac2f, 0x0be36f70, 0xeda5110c, r0, r1, r2, r3, 0);
+TESTINST4("smlatb  r0, r1, r2, r3", 
+          0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0);
+  /* smlabt rD, rN, rM, rA */
+  TESTINST4("smlabt r0, r1, r2, r3", 
+            0x00030000, 0x00000004, 0x00000000, r0,r1,r2,r3, 0);
+  TESTINST4("smlabt r0, r1, r2, r3", 
+            0x00030001, 0x00020004, 0x00007fff, r0,r1,r2,r3, 0);
+  TESTINST4("smlabt r0, r1, r2, r3", 
+            0x00038001, 0x7fff0004, 0x00005fff, r0,r1,r2,r3, 0);
+  TESTINST4("smlabt r0, r1, r2, r3", 
+            0x00037fff, 0x7fff0004, 0x00007fff, r0,r1,r2,r3, 0);
+  TESTINST4("smlabt r0, r1, r2, r3", 
+            0x0003ffff, 0xffff0004, 0x7fff7fff, r0,r1,r2,r3, 0);
+  TESTINST4("smlabt r0, r1, r2, r3", 
+            0x0003fffc, 0xffff0004, 0xffffffff, r0,r1,r2,r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0x32fa0095, 0x36f26261, 0x89d2ef86, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0x8ed8287c, 0x02c90120, 0xd4b64d54, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0xc53aaba9, 0x29300837, 0x0b02c58a, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0x216158cb, 0x57a50a01, 0xb0d20777, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0xf87b961e, 0x1d66879f, 0xf2b64835, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0xd65db979, 0xc61b323b, 0xae930a1a, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0xeaa652c7, 0x137741f4, 0x3dba1164, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0xe1bb8606, 0x58293969, 0x81616d13, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0x0849a0c2, 0x0872f25a, 0x40b094e2, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0x17913309, 0xf1e03d7e, 0x91edc21d, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0x5388b5cd, 0x86582032, 0x6034078d, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0x181c436b, 0x5de41558, 0xccfa1c7e, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0x23ba1b46, 0x4437983c, 0x48d06549, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0xa9085781, 0xc6b4ac58, 0xb2aead21, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0xd7ce1909, 0x3e435701, 0x85fbf196, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0xb4e16b6e, 0x6e13680a, 0x89436f88, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0x44858efc, 0x9002bc30, 0x390d2c2f, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0xbea121ab, 0x953ff6ec, 0x80657c40, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0xec0c2f30, 0x5736ed46, 0x231348c0, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0xc1553709, 0x0112b30a, 0x69ec0212, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0x74bd0223, 0x03fa9bb5, 0x899d9192, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0x299da970, 0xe8108f1b, 0xf5818cfb, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0xcd90d604, 0xaa5e9444, 0x8217b7df, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0xe60743c3, 0x7acb4de3, 0x73c29060, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0xde99ac2f, 0x0be36f70, 0xeda5110c, r0, r1, r2, r3, 0);
+TESTINST4("smlabt  r0, r1, r2, r3", 
+          0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0);
+
+  printf("------------ UQSUB8 -----------------------------------\n");
+  TESTINST3("uqsub8 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
+  TESTINST3("uqsub8 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
+  TESTINST3("uqsub8 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
+  TESTINST3("uqsub8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
+  TESTINST3("uqsub8 r0, r1, r2", 0x00000318, 0xff00ff09, r0, r1, r2, 0);
+  TESTINST3("uqsub8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
+  TESTINST3("uqsub8 r0, r1, r2", 0x00020318, 0xff07ff09, r0, r1, r2, 0);
+  TESTINST3("uqsub8 r0, r1, r2", 0xff07ff09, 0x00020318, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
+TESTINST3("uqsub8 r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
+
+  printf("------------ UQADD8 -----------------------------------\n");
+  TESTINST3("uqadd8 r0, r1, r2", 0x0009ffff, 0x001800aa, r0, r1, r2, 0);
+  TESTINST3("uqadd8 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
+  TESTINST3("uqadd8 r0, r1, r2", 0x00aa0018, 0xffff0009, r0, r1, r2, 0);
+  TESTINST3("uqadd8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
+  TESTINST3("uqadd8 r0, r1, r2", 0x0000aa18, 0xff00ff09, r0, r1, r2, 0);
+  TESTINST3("uqadd8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
+  TESTINST3("uqadd8 r0, r1, r2", 0xff9fefcc, 0xff9ffedd, r0, r1, r2, 0);
+  TESTINST3("uqadd8 r0, r1, r2", 0xff07ff09, 0xaa020318, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
+TESTINST3("uqadd8 r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
+
+  printf("------------ SEL --------------------------------------\n");
+  TESTINST3("sel r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
+  TESTINST3("sel r0, r1, r2", 0x7fff7fff, 0x00010001, r0, r1, r2, 0);
+  TESTINST3("sel r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
+  TESTINST3("sel r0, r1, r2", 0x00640064, 0x00030003, r0, r1, r2, 0);
+  TESTINST3("sel r0, r1, r2", 0xfffcffff, 0xffff0001, r0, r1, r2, 0);
+  TESTINST3("sel r0, r1, r2", 0xfff70fff, 0x00030003, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
+TESTINST3("sel r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
+
+  printf("------------ QSUB8-------------------------------------\n");
+  TESTINST3("qsub8 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
+  TESTINST3("qsub8 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
+  TESTINST3("qsub8 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
+  TESTINST3("qsub8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
+  TESTINST3("qsub8 r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
+  TESTINST3("qsub8 r0, r1, r2", 0x7fff00ff, 0x80017f01, r0, r1, r2, 0);
+  TESTINST3("qsub8 r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
+  TESTINST3("qsub8 r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
+TESTINST3("qsub8 r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
+
+  printf("------------ QADD8-------------------------------------\n");
+  TESTINST3("qadd8 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
+  TESTINST3("qadd8 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
+  TESTINST3("qadd8 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
+  TESTINST3("qadd8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
+  TESTINST3("qadd8 r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
+  TESTINST3("qadd8 r0, r1, r2", 0x7fff00ff, 0x80017f01, r0, r1, r2, 0);
+  TESTINST3("qadd8 r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
+  TESTINST3("qadd8 r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
+TESTINST3("qadd8 r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
+
+  printf("------------ SHADD8 -----------------------------------\n");
+  TESTINST3("shadd8 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
+  TESTINST3("shadd8 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
+  TESTINST3("shadd8 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
+  TESTINST3("shadd8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
+  TESTINST3("shadd8 r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
+  TESTINST3("shadd8 r0, r1, r2", 0x7fff00ff, 0x80017f01, r0, r1, r2, 0);
+  TESTINST3("shadd8 r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
+  TESTINST3("shadd8 r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
+TESTINST3("shadd8 r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
+
+  printf("----------------- SSAT ----------------- \n");
+  TESTINST2("ssat  r0, #1,  r1, LSL #31", 0x80008000, r0, r1, 0);
+  TESTINST2("ssat  r0, #6,  r1, LSL #24", 0x80008000, r0, r1, 0);
+  TESTINST2("ssat  r0, #8,  r1, ASR #18", 0x80008000, r0, r1, 0);
+  TESTINST2("ssat  r0, #12, r1, ASR #16", 0x80008000, r0, r1, 0);
+  TESTINST2("ssat  r0, #16, r1, LSL #12", 0xffff0009, r0, r1, 0);
+  TESTINST2("ssat  r0, #18, r1, LSL #8",  0xffff0009, r0, r1, 0);
+  TESTINST2("ssat  r0, #24, r1, ASR #6",  0xffff0009, r0, r1, 0);
+  TESTINST2("ssat  r0, #31, r1, ASR #1",  0xffff0009, r0, r1, 0);
+TESTINST2("ssat  r0, #1,   r1", 0x256bfdd6, r0, r1, 0);
+TESTINST2("ssat  r0, #1,   r1", 0xc02a0c05, r0, r1, 0);
+TESTINST2("ssat  r0, #1,   r1", 0xee2fa46e, r0, r1, 0);
+TESTINST2("ssat  r0, #1,   r1", 0x97a7da20, r0, r1, 0);
+TESTINST2("ssat  r0, #32,  r1", 0xa231d5e6, r0, r1, 0);
+TESTINST2("ssat  r0, #32,  r1", 0x10e1968a, r0, r1, 0);
+TESTINST2("ssat  r0, #32,  r1", 0x0e089270, r0, r1, 0);
+TESTINST2("ssat  r0, #32,  r1", 0x9e8e0185, r0, r1, 0);
+TESTINST2("ssat  r0, #32,  r1", 0x3096f12e, r0, r1, 0);
+TESTINST2("ssat  r0, #32,  r1", 0xffc134df, r0, r1, 0);
+TESTINST2("ssat  r0, #1,  r1, LSL #31", 0x256bfdd6, r0, r1, 0);
+TESTINST2("ssat  r0, #1,  r1, LSL #31", 0xc02a0c05, r0, r1, 0);
+TESTINST2("ssat  r0, #1,  r1, LSL #31", 0xee2fa46e, r0, r1, 0);
+TESTINST2("ssat  r0, #1,  r1, LSL #31", 0x97a7da20, r0, r1, 0);
+TESTINST2("ssat  r0, #1,  r1, LSL #31", 0xa231d5e6, r0, r1, 0);
+TESTINST2("ssat  r0, #1,  r1, LSL #31", 0x10e1968a, r0, r1, 0);
+TESTINST2("ssat  r0, #1,  r1, LSL #31", 0x0e089270, r0, r1, 0);
+TESTINST2("ssat  r0, #1,  r1, LSL #31", 0x9e8e0185, r0, r1, 0);
+TESTINST2("ssat  r0, #1,  r1, LSL #31", 0x3096f12e, r0, r1, 0);
+TESTINST2("ssat  r0, #1,  r1, LSL #31", 0xffc134df, r0, r1, 0);
+TESTINST2("ssat  r0, #3,  r1, LSL #28", 0x256bfdd6, r0, r1, 0);
+TESTINST2("ssat  r0, #3,  r1, LSL #28", 0xc02a0c05, r0, r1, 0);
+TESTINST2("ssat  r0, #3,  r1, LSL #28", 0xee2fa46e, r0, r1, 0);
+TESTINST2("ssat  r0, #3,  r1, LSL #28", 0x97a7da20, r0, r1, 0);
+TESTINST2("ssat  r0, #3,  r1, LSL #28", 0xa231d5e6, r0, r1, 0);
+TESTINST2("ssat  r0, #3,  r1, LSL #28", 0x10e1968a, r0, r1, 0);
+TESTINST2("ssat  r0, #3,  r1, LSL #28", 0x0e089270, r0, r1, 0);
+TESTINST2("ssat  r0, #3,  r1, LSL #28", 0x9e8e0185, r0, r1, 0);
+TESTINST2("ssat  r0, #3,  r1, LSL #28", 0x3096f12e, r0, r1, 0);
+TESTINST2("ssat  r0, #3,  r1, LSL #28", 0xffc134df, r0, r1, 0);
+TESTINST2("ssat  r0, #6,  r1, LSL #24", 0x256bfdd6, r0, r1, 0);
+TESTINST2("ssat  r0, #6,  r1, LSL #24", 0xc02a0c05, r0, r1, 0);
+TESTINST2("ssat  r0, #6,  r1, LSL #24", 0xee2fa46e, r0, r1, 0);
+TESTINST2("ssat  r0, #6,  r1, LSL #24", 0x97a7da20, r0, r1, 0);
+TESTINST2("ssat  r0, #6,  r1, LSL #24", 0xa231d5e6, r0, r1, 0);
+TESTINST2("ssat  r0, #6,  r1, LSL #24", 0x10e1968a, r0, r1, 0);
+TESTINST2("ssat  r0, #6,  r1, LSL #24", 0x0e089270, r0, r1, 0);
+TESTINST2("ssat  r0, #6,  r1, LSL #24", 0x9e8e0185, r0, r1, 0);
+TESTINST2("ssat  r0, #6,  r1, LSL #24", 0x3096f12e, r0, r1, 0);
+TESTINST2("ssat  r0, #6,  r1, LSL #24", 0xffc134df, r0, r1, 0);
+TESTINST2("ssat  r0, #8,  r1, ASR #18", 0x256bfdd6, r0, r1, 0);
+TESTINST2("ssat  r0, #8,  r1, ASR #18", 0xc02a0c05, r0, r1, 0);
+TESTINST2("ssat  r0, #8,  r1, ASR #18", 0xee2fa46e, r0, r1, 0);
+TESTINST2("ssat  r0, #8,  r1, ASR #18", 0x97a7da20, r0, r1, 0);
+TESTINST2("ssat  r0, #8,  r1, ASR #18", 0xa231d5e6, r0, r1, 0);
+TESTINST2("ssat  r0, #8,  r1, ASR #18", 0x10e1968a, r0, r1, 0);
+TESTINST2("ssat  r0, #8,  r1, ASR #18", 0x0e089270, r0, r1, 0);
+TESTINST2("ssat  r0, #8,  r1, ASR #18", 0x9e8e0185, r0, r1, 0);
+TESTINST2("ssat  r0, #8,  r1, ASR #18", 0x3096f12e, r0, r1, 0);
+TESTINST2("ssat  r0, #8,  r1, ASR #18", 0xffc134df, r0, r1, 0);
+TESTINST2("ssat  r0, #12, r1, ASR #16", 0x256bfdd6, r0, r1, 0);
+TESTINST2("ssat  r0, #12, r1, ASR #16", 0xc02a0c05, r0, r1, 0);
+TESTINST2("ssat  r0, #12, r1, ASR #16", 0xee2fa46e, r0, r1, 0);
+TESTINST2("ssat  r0, #12, r1, ASR #16", 0x97a7da20, r0, r1, 0);
+TESTINST2("ssat  r0, #12, r1, ASR #16", 0xa231d5e6, r0, r1, 0);
+TESTINST2("ssat  r0, #12, r1, ASR #16", 0x10e1968a, r0, r1, 0);
+TESTINST2("ssat  r0, #12, r1, ASR #16", 0x0e089270, r0, r1, 0);
+TESTINST2("ssat  r0, #12, r1, ASR #16", 0x9e8e0185, r0, r1, 0);
+TESTINST2("ssat  r0, #12, r1, ASR #16", 0x3096f12e, r0, r1, 0);
+TESTINST2("ssat  r0, #12, r1, ASR #16", 0xffc134df, r0, r1, 0);
+TESTINST2("ssat  r0, #16, r1, LSL #12", 0x256bfdd6, r0, r1, 0);
+TESTINST2("ssat  r0, #16, r1, LSL #12", 0xc02a0c05, r0, r1, 0);
+TESTINST2("ssat  r0, #16, r1, LSL #12", 0xee2fa46e, r0, r1, 0);
+TESTINST2("ssat  r0, #16, r1, LSL #12", 0x97a7da20, r0, r1, 0);
+TESTINST2("ssat  r0, #16, r1, LSL #12", 0xa231d5e6, r0, r1, 0);
+TESTINST2("ssat  r0, #16, r1, LSL #12", 0x10e1968a, r0, r1, 0);
+TESTINST2("ssat  r0, #16, r1, LSL #12", 0x0e089270, r0, r1, 0);
+TESTINST2("ssat  r0, #16, r1, LSL #12", 0x9e8e0185, r0, r1, 0);
+TESTINST2("ssat  r0, #16, r1, LSL #12", 0x3096f12e, r0, r1, 0);
+TESTINST2("ssat  r0, #16, r1, LSL #12", 0xffc134df, r0, r1, 0);
+TESTINST2("ssat  r0, #18, r1, LSL #8", 0x256bfdd6, r0, r1, 0);
+TESTINST2("ssat  r0, #18, r1, LSL #8", 0xc02a0c05, r0, r1, 0);
+TESTINST2("ssat  r0, #18, r1, LSL #8", 0xee2fa46e, r0, r1, 0);
+TESTINST2("ssat  r0, #18, r1, LSL #8", 0x97a7da20, r0, r1, 0);
+TESTINST2("ssat  r0, #18, r1, LSL #8", 0xa231d5e6, r0, r1, 0);
+TESTINST2("ssat  r0, #18, r1, LSL #8", 0x10e1968a, r0, r1, 0);
+TESTINST2("ssat  r0, #18, r1, LSL #8", 0x0e089270, r0, r1, 0);
+TESTINST2("ssat  r0, #18, r1, LSL #8", 0x9e8e0185, r0, r1, 0);
+TESTINST2("ssat  r0, #18, r1, LSL #8", 0x3096f12e, r0, r1, 0);
+TESTINST2("ssat  r0, #18, r1, LSL #8", 0xffc134df, r0, r1, 0);
+TESTINST2("ssat  r0, #24, r1, ASR #6", 0x256bfdd6, r0, r1, 0);
+TESTINST2("ssat  r0, #24, r1, ASR #6", 0xc02a0c05, r0, r1, 0);
+TESTINST2("ssat  r0, #24, r1, ASR #6", 0xee2fa46e, r0, r1, 0);
+TESTINST2("ssat  r0, #24, r1, ASR #6", 0x97a7da20, r0, r1, 0);
+TESTINST2("ssat  r0, #24, r1, ASR #6", 0xa231d5e6, r0, r1, 0);
+TESTINST2("ssat  r0, #24, r1, ASR #6", 0x10e1968a, r0, r1, 0);
+TESTINST2("ssat  r0, #24, r1, ASR #6", 0x0e089270, r0, r1, 0);
+TESTINST2("ssat  r0, #24, r1, ASR #6", 0x9e8e0185, r0, r1, 0);
+TESTINST2("ssat  r0, #24, r1, ASR #6", 0x3096f12e, r0, r1, 0);
+TESTINST2("ssat  r0, #24, r1, ASR #6", 0xffc134df, r0, r1, 0);
+TESTINST2("ssat  r0, #28, r1, ASR #3", 0x256bfdd6, r0, r1, 0);
+TESTINST2("ssat  r0, #28, r1, ASR #3", 0xc02a0c05, r0, r1, 0);
+TESTINST2("ssat  r0, #28, r1, ASR #3", 0xee2fa46e, r0, r1, 0);
+TESTINST2("ssat  r0, #28, r1, ASR #3", 0x97a7da20, r0, r1, 0);
+TESTINST2("ssat  r0, #28, r1, ASR #3", 0xa231d5e6, r0, r1, 0);
+TESTINST2("ssat  r0, #28, r1, ASR #3", 0x10e1968a, r0, r1, 0);
+TESTINST2("ssat  r0, #28, r1, ASR #3", 0x0e089270, r0, r1, 0);
+TESTINST2("ssat  r0, #28, r1, ASR #3", 0x9e8e0185, r0, r1, 0);
+TESTINST2("ssat  r0, #28, r1, ASR #3", 0x3096f12e, r0, r1, 0);
+TESTINST2("ssat  r0, #28, r1, ASR #3", 0xffc134df, r0, r1, 0);
+TESTINST2("ssat  r0, #31, r1, ASR #1", 0x256bfdd6, r0, r1, 0);
+TESTINST2("ssat  r0, #31, r1, ASR #1", 0xc02a0c05, r0, r1, 0);
+TESTINST2("ssat  r0, #31, r1, ASR #1", 0xee2fa46e, r0, r1, 0);
+TESTINST2("ssat  r0, #31, r1, ASR #1", 0x97a7da20, r0, r1, 0);
+TESTINST2("ssat  r0, #31, r1, ASR #1", 0xa231d5e6, r0, r1, 0);
+TESTINST2("ssat  r0, #31, r1, ASR #1", 0x10e1968a, r0, r1, 0);
+TESTINST2("ssat  r0, #31, r1, ASR #1", 0x0e089270, r0, r1, 0);
+TESTINST2("ssat  r0, #31, r1, ASR #1", 0x9e8e0185, r0, r1, 0);
+TESTINST2("ssat  r0, #31, r1, ASR #1", 0x3096f12e, r0, r1, 0);
+TESTINST2("ssat  r0, #31, r1, ASR #1", 0xffc134df, r0, r1, 0);
+#ifndef __thumb__
+TESTINST2("ssat  r0, #1, r1, ASR #32", 0x256bfdd6, r0, r1, 0);
+TESTINST2("ssat  r0, #1, r1, ASR #32", 0xc02a0c05, r0, r1, 0);
+TESTINST2("ssat  r0, #1, r1, ASR #32", 0xee2fa46e, r0, r1, 0);
+TESTINST2("ssat  r0, #1, r1, ASR #32", 0x97a7da20, r0, r1, 0);
+TESTINST2("ssat  r0, #1, r1, ASR #32", 0xa231d5e6, r0, r1, 0);
+TESTINST2("ssat  r0, #1, r1, ASR #32", 0x10e1968a, r0, r1, 0);
+TESTINST2("ssat  r0, #1, r1, ASR #32", 0x0e089270, r0, r1, 0);
+TESTINST2("ssat  r0, #1, r1, ASR #32", 0x9e8e0185, r0, r1, 0);
+TESTINST2("ssat  r0, #1, r1, ASR #32", 0x3096f12e, r0, r1, 0);
+TESTINST2("ssat  r0, #1, r1, ASR #32", 0xffc134df, r0, r1, 0);
+TESTINST2("ssat  r0, #32, r1, ASR #32", 0x256bfdd6, r0, r1, 0);
+TESTINST2("ssat  r0, #32, r1, ASR #32", 0xc02a0c05, r0, r1, 0);
+TESTINST2("ssat  r0, #32, r1, ASR #32", 0xee2fa46e, r0, r1, 0);
+TESTINST2("ssat  r0, #32, r1, ASR #32", 0x97a7da20, r0, r1, 0);
+TESTINST2("ssat  r0, #32, r1, ASR #32", 0xa231d5e6, r0, r1, 0);
+TESTINST2("ssat  r0, #32, r1, ASR #32", 0x10e1968a, r0, r1, 0);
+TESTINST2("ssat  r0, #32, r1, ASR #32", 0x0e089270, r0, r1, 0);
+TESTINST2("ssat  r0, #32, r1, ASR #32", 0x9e8e0185, r0, r1, 0);
+TESTINST2("ssat  r0, #32, r1, ASR #32", 0x3096f12e, r0, r1, 0);
+TESTINST2("ssat  r0, #32, r1, ASR #32", 0xffc134df, r0, r1, 0);
+#endif
+
+  printf("---------------- SADD8 ----------------- \n");
+  TESTINST3("sadd8 r0, r1, r2", 0x00f7ffff, 0x00e800fd, r0, r1, r2, 0);
+  TESTINST3("sadd8 r0, r1, r2", 0x00e800fd, 0x00f7ffff, r0, r1, r2, 0);
+  TESTINST3("sadd8 r0, r1, r2", 0x00fd00e8, 0xffff00f7, r0, r1, r2, 0);
+  TESTINST3("sadd8 r0, r1, r2", 0xffff00f7, 0x00fd0018, r0, r1, r2, 0);
+  TESTINST3("sadd8 r0, r1, r2", 0x0000fd18, 0xff00fff7, r0, r1, r2, 0);
+  TESTINST3("sadd8 r0, r1, r2", 0xffff00f7, 0x00fd00e8, r0, r1, r2, 0);
+  TESTINST3("sadd8 r0, r1, r2", 0x00fefd18, 0xff07fff7, r0, r1, r2, 0);
+  TESTINST3("sadd8 r0, r1, r2", 0xff07fff7, 0x00fefde8, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
+TESTINST3("sadd8 r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
+
+  printf("------------ SXTAB ------------\n");
+  TESTINST3("sxtab r0, r1, r2, ROR #24", 0x31415927, 0x27182819, r0, r1, r2, 0);
+  TESTINST3("sxtab r0, r1, r2, ROR #16", 0x31415927, 0x27182819, r0, r1, r2, 0);
+  TESTINST3("sxtab r0, r1, r2, ROR #8",  0x31415927, 0x27182819, r0, r1, r2, 0);
+  TESTINST3("sxtab r0, r1, r2, ROR #0",  0x31415927, 0x27182819, r0, r1, r2, 0);
+
+  TESTINST3("sxtab r0, r1, r2, ROR #24", 0x31415927, 0x27182899, r0, r1, r2, 0);
+  TESTINST3("sxtab r0, r1, r2, ROR #16", 0x31415927, 0x27182899, r0, r1, r2, 0);
+  TESTINST3("sxtab r0, r1, r2, ROR #8",  0x31415927, 0x27182899, r0, r1, r2, 0);
+  TESTINST3("sxtab r0, r1, r2, ROR #0",  0x31415927, 0x27182899, r0, r1, r2, 0);
+
+TESTINST3("sxtab r0, r1, r2, ROR #24", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
+TESTINST3("sxtab r0, r1, r2, ROR #24", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
+TESTINST3("sxtab r0, r1, r2, ROR #24", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
+TESTINST3("sxtab r0, r1, r2, ROR #24", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
+TESTINST3("sxtab r0, r1, r2, ROR #24", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
+TESTINST3("sxtab r0, r1, r2, ROR #24", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
+TESTINST3("sxtab r0, r1, r2, ROR #24", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
+TESTINST3("sxtab r0, r1, r2, ROR #24", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
+TESTINST3("sxtab r0, r1, r2, ROR #24", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
+TESTINST3("sxtab r0, r1, r2, ROR #24", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
+
+TESTINST3("sxtab r0, r1, r2, ROR #16", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
+TESTINST3("sxtab r0, r1, r2, ROR #16", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
+TESTINST3("sxtab r0, r1, r2, ROR #16", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
+TESTINST3("sxtab r0, r1, r2, ROR #16", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
+TESTINST3("sxtab r0, r1, r2, ROR #16", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
+TESTINST3("sxtab r0, r1, r2, ROR #16", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
+TESTINST3("sxtab r0, r1, r2, ROR #16", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
+TESTINST3("sxtab r0, r1, r2, ROR #16", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
+TESTINST3("sxtab r0, r1, r2, ROR #16", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
+TESTINST3("sxtab r0, r1, r2, ROR #16", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
+
+TESTINST3("sxtab r0, r1, r2, ROR #8", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
+TESTINST3("sxtab r0, r1, r2, ROR #8", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
+TESTINST3("sxtab r0, r1, r2, ROR #8", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
+TESTINST3("sxtab r0, r1, r2, ROR #8", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
+TESTINST3("sxtab r0, r1, r2, ROR #8", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
+TESTINST3("sxtab r0, r1, r2, ROR #8", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
+TESTINST3("sxtab r0, r1, r2, ROR #8", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
+TESTINST3("sxtab r0, r1, r2, ROR #8", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
+TESTINST3("sxtab r0, r1, r2, ROR #8", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
+TESTINST3("sxtab r0, r1, r2, ROR #8", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
+
+TESTINST3("sxtab r0, r1, r2, ROR #0", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
+TESTINST3("sxtab r0, r1, r2, ROR #0", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
+TESTINST3("sxtab r0, r1, r2, ROR #0", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
+TESTINST3("sxtab r0, r1, r2, ROR #0", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
+TESTINST3("sxtab r0, r1, r2, ROR #0", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
+TESTINST3("sxtab r0, r1, r2, ROR #0", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
+TESTINST3("sxtab r0, r1, r2, ROR #0", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
+TESTINST3("sxtab r0, r1, r2, ROR #0", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
+TESTINST3("sxtab r0, r1, r2, ROR #0", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
+TESTINST3("sxtab r0, r1, r2, ROR #0", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
+
+  printf("------------ UXTAB ------------\n");
+  TESTINST3("uxtab r0, r1, r2, ROR #24", 0x31415927, 0x27182819, r0, r1, r2, 0);
+  TESTINST3("uxtab r0, r1, r2, ROR #16", 0x31415927, 0x27182819, r0, r1, r2, 0);
+  TESTINST3("uxtab r0, r1, r2, ROR #8",  0x31415927, 0x27182819, r0, r1, r2, 0);
+  TESTINST3("uxtab r0, r1, r2, ROR #0",  0x31415927, 0x27182819, r0, r1, r2, 0);
+
+  TESTINST3("uxtab r0, r1, r2, ROR #24", 0x31415927, 0x27182899, r0, r1, r2, 0);
+  TESTINST3("uxtab r0, r1, r2, ROR #16", 0x31415927, 0x27182899, r0, r1, r2, 0);
+  TESTINST3("uxtab r0, r1, r2, ROR #8",  0x31415927, 0x27182899, r0, r1, r2, 0);
+  TESTINST3("uxtab r0, r1, r2, ROR #0",  0x31415927, 0x27182899, r0, r1, r2, 0);
+
+TESTINST3("uxtab r0, r1, r2, ROR #24", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
+TESTINST3("uxtab r0, r1, r2, ROR #24", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
+TESTINST3("uxtab r0, r1, r2, ROR #24", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
+TESTINST3("uxtab r0, r1, r2, ROR #24", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
+TESTINST3("uxtab r0, r1, r2, ROR #24", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
+TESTINST3("uxtab r0, r1, r2, ROR #24", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
+TESTINST3("uxtab r0, r1, r2, ROR #24", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
+TESTINST3("uxtab r0, r1, r2, ROR #24", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
+TESTINST3("uxtab r0, r1, r2, ROR #24", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
+TESTINST3("uxtab r0, r1, r2, ROR #24", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
+
+TESTINST3("uxtab r0, r1, r2, ROR #16", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
+TESTINST3("uxtab r0, r1, r2, ROR #16", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
+TESTINST3("uxtab r0, r1, r2, ROR #16", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
+TESTINST3("uxtab r0, r1, r2, ROR #16", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
+TESTINST3("uxtab r0, r1, r2, ROR #16", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
+TESTINST3("uxtab r0, r1, r2, ROR #16", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
+TESTINST3("uxtab r0, r1, r2, ROR #16", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
+TESTINST3("uxtab r0, r1, r2, ROR #16", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
+TESTINST3("uxtab r0, r1, r2, ROR #16", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
+TESTINST3("uxtab r0, r1, r2, ROR #16", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
+
+TESTINST3("uxtab r0, r1, r2, ROR #8", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
+TESTINST3("uxtab r0, r1, r2, ROR #8", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
+TESTINST3("uxtab r0, r1, r2, ROR #8", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
+TESTINST3("uxtab r0, r1, r2, ROR #8", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
+TESTINST3("uxtab r0, r1, r2, ROR #8", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
+TESTINST3("uxtab r0, r1, r2, ROR #8", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
+TESTINST3("uxtab r0, r1, r2, ROR #8", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
+TESTINST3("uxtab r0, r1, r2, ROR #8", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
+TESTINST3("uxtab r0, r1, r2, ROR #8", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
+TESTINST3("uxtab r0, r1, r2, ROR #8", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
+
+TESTINST3("uxtab r0, r1, r2, ROR #0", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
+TESTINST3("uxtab r0, r1, r2, ROR #0", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
+TESTINST3("uxtab r0, r1, r2, ROR #0", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
+TESTINST3("uxtab r0, r1, r2, ROR #0", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
+TESTINST3("uxtab r0, r1, r2, ROR #0", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
+TESTINST3("uxtab r0, r1, r2, ROR #0", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
+TESTINST3("uxtab r0, r1, r2, ROR #0", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
+TESTINST3("uxtab r0, r1, r2, ROR #0", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
+TESTINST3("uxtab r0, r1, r2, ROR #0", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
+TESTINST3("uxtab r0, r1, r2, ROR #0", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
+
+  printf("----------- UXTAB16 -----------\n");
+  TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0x31415927, 0x27182819, r0, r1, r2, 0);
+  TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0x31415927, 0x27182819, r0, r1, r2, 0);
+  TESTINST3("uxtab16 r0, r1, r2, ROR #8",  0x31415927, 0x27182819, r0, r1, r2, 0);
+  TESTINST3("uxtab16 r0, r1, r2, ROR #0",  0x31415927, 0x27182819, r0, r1, r2, 0);
+
+  TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0x31415927, 0x27182899, r0, r1, r2, 0);
+  TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0x31415927, 0x27182899, r0, r1, r2, 0);
+  TESTINST3("uxtab16 r0, r1, r2, ROR #8",  0x31415927, 0x27182899, r0, r1, r2, 0);
+  TESTINST3("uxtab16 r0, r1, r2, ROR #0",  0x31415927, 0x27182899, r0, r1, r2, 0);
+  TESTINST3("uxtab16 r0, r1, r2, ROR #0",  0x3141FFFF, 0x27182899, r0, r1, r2, 0);
+
+TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
+TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
+TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
+TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
+TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
+TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
+TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
+TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
+TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
+TESTINST3("uxtab16 r0, r1, r2, ROR #24", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
+
+TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
+TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
+TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
+TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
+TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
+TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
+TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
+TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
+TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
+TESTINST3("uxtab16 r0, r1, r2, ROR #16", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
+
+TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
+TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
+TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
+TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
+TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
+TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
+TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
+TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
+TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
+TESTINST3("uxtab16 r0, r1, r2, ROR #8", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
+
+TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
+TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
+TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
+TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
+TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
+TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
+TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
+TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
+TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
+TESTINST3("uxtab16 r0, r1, r2, ROR #0", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
+
+  printf("------------ SXTAH ------------\n");
+  TESTINST3("sxtah r0, r1, r2, ROR #24", 0x31415927, 0x27182819, r0, r1, r2, 0);
+  TESTINST3("sxtah r0, r1, r2, ROR #16", 0x31415927, 0x27182819, r0, r1, r2, 0);
+  TESTINST3("sxtah r0, r1, r2, ROR #8 ", 0x31415927, 0x27182819, r0, r1, r2, 0);
+  TESTINST3("sxtah r0, r1, r2, ROR #0 ", 0x31415927, 0x27182819, r0, r1, r2, 0);
+
+  TESTINST3("sxtah r0, r1, r2, ROR #24", 0x31415927, 0x27189819, r0, r1, r2, 0);
+  TESTINST3("sxtah r0, r1, r2, ROR #16", 0x31415927, 0x27189819, r0, r1, r2, 0);
+  TESTINST3("sxtah r0, r1, r2, ROR #8 ", 0x31415927, 0x27189819, r0, r1, r2, 0);
+  TESTINST3("sxtah r0, r1, r2, ROR #0 ", 0x31415927, 0x27189819, r0, r1, r2, 0);
+
+TESTINST3("sxtah r0, r1, r2, ROR #24", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
+TESTINST3("sxtah r0, r1, r2, ROR #24", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
+TESTINST3("sxtah r0, r1, r2, ROR #24", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
+TESTINST3("sxtah r0, r1, r2, ROR #24", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
+TESTINST3("sxtah r0, r1, r2, ROR #24", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
+TESTINST3("sxtah r0, r1, r2, ROR #24", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
+TESTINST3("sxtah r0, r1, r2, ROR #24", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
+TESTINST3("sxtah r0, r1, r2, ROR #24", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
+TESTINST3("sxtah r0, r1, r2, ROR #24", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
+TESTINST3("sxtah r0, r1, r2, ROR #24", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
+
+TESTINST3("sxtah r0, r1, r2, ROR #16", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
+TESTINST3("sxtah r0, r1, r2, ROR #16", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
+TESTINST3("sxtah r0, r1, r2, ROR #16", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
+TESTINST3("sxtah r0, r1, r2, ROR #16", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
+TESTINST3("sxtah r0, r1, r2, ROR #16", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
+TESTINST3("sxtah r0, r1, r2, ROR #16", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
+TESTINST3("sxtah r0, r1, r2, ROR #16", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
+TESTINST3("sxtah r0, r1, r2, ROR #16", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
+TESTINST3("sxtah r0, r1, r2, ROR #16", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
+TESTINST3("sxtah r0, r1, r2, ROR #16", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
+
+TESTINST3("sxtah r0, r1, r2, ROR #8", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
+TESTINST3("sxtah r0, r1, r2, ROR #8", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
+TESTINST3("sxtah r0, r1, r2, ROR #8", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
+TESTINST3("sxtah r0, r1, r2, ROR #8", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
+TESTINST3("sxtah r0, r1, r2, ROR #8", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
+TESTINST3("sxtah r0, r1, r2, ROR #8", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
+TESTINST3("sxtah r0, r1, r2, ROR #8", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
+TESTINST3("sxtah r0, r1, r2, ROR #8", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
+TESTINST3("sxtah r0, r1, r2, ROR #8", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
+TESTINST3("sxtah r0, r1, r2, ROR #8", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
+
+TESTINST3("sxtah r0, r1, r2, ROR #0", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
+TESTINST3("sxtah r0, r1, r2, ROR #0", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
+TESTINST3("sxtah r0, r1, r2, ROR #0", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
+TESTINST3("sxtah r0, r1, r2, ROR #0", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
+TESTINST3("sxtah r0, r1, r2, ROR #0", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
+TESTINST3("sxtah r0, r1, r2, ROR #0", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
+TESTINST3("sxtah r0, r1, r2, ROR #0", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
+TESTINST3("sxtah r0, r1, r2, ROR #0", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
+TESTINST3("sxtah r0, r1, r2, ROR #0", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
+TESTINST3("sxtah r0, r1, r2, ROR #0", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
+
+  printf("------------ UXTAH ------------\n");
+  TESTINST3("uxtah r0, r1, r2, ROR #24", 0x31415927, 0x27182819, r0, r1, r2, 0);
+  TESTINST3("uxtah r0, r1, r2, ROR #16", 0x31415927, 0x27182819, r0, r1, r2, 0);
+  TESTINST3("uxtah r0, r1, r2, ROR #8 ", 0x31415927, 0x27182819, r0, r1, r2, 0);
+  TESTINST3("uxtah r0, r1, r2, ROR #0 ", 0x31415927, 0x27182819, r0, r1, r2, 0);
+
+  TESTINST3("uxtah r0, r1, r2, ROR #24", 0x31415927, 0x27189819, r0, r1, r2, 0);
+  TESTINST3("uxtah r0, r1, r2, ROR #16", 0x31415927, 0x27189819, r0, r1, r2, 0);
+  TESTINST3("uxtah r0, r1, r2, ROR #8 ", 0x31415927, 0x27189819, r0, r1, r2, 0);
+  TESTINST3("uxtah r0, r1, r2, ROR #0 ", 0x31415927, 0x27189819, r0, r1, r2, 0);
+
+TESTINST3("uxtah r0, r1, r2, ROR #24", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
+TESTINST3("uxtah r0, r1, r2, ROR #24", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
+TESTINST3("uxtah r0, r1, r2, ROR #24", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
+TESTINST3("uxtah r0, r1, r2, ROR #24", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
+TESTINST3("uxtah r0, r1, r2, ROR #24", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
+TESTINST3("uxtah r0, r1, r2, ROR #24", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
+TESTINST3("uxtah r0, r1, r2, ROR #24", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
+TESTINST3("uxtah r0, r1, r2, ROR #24", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
+TESTINST3("uxtah r0, r1, r2, ROR #24", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
+TESTINST3("uxtah r0, r1, r2, ROR #24", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
+
+TESTINST3("uxtah r0, r1, r2, ROR #16", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
+TESTINST3("uxtah r0, r1, r2, ROR #16", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
+TESTINST3("uxtah r0, r1, r2, ROR #16", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
+TESTINST3("uxtah r0, r1, r2, ROR #16", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
+TESTINST3("uxtah r0, r1, r2, ROR #16", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
+TESTINST3("uxtah r0, r1, r2, ROR #16", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
+TESTINST3("uxtah r0, r1, r2, ROR #16", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
+TESTINST3("uxtah r0, r1, r2, ROR #16", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
+TESTINST3("uxtah r0, r1, r2, ROR #16", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
+TESTINST3("uxtah r0, r1, r2, ROR #16", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
+
+TESTINST3("uxtah r0, r1, r2, ROR #8", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
+TESTINST3("uxtah r0, r1, r2, ROR #8", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
+TESTINST3("uxtah r0, r1, r2, ROR #8", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
+TESTINST3("uxtah r0, r1, r2, ROR #8", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
+TESTINST3("uxtah r0, r1, r2, ROR #8", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
+TESTINST3("uxtah r0, r1, r2, ROR #8", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
+TESTINST3("uxtah r0, r1, r2, ROR #8", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
+TESTINST3("uxtah r0, r1, r2, ROR #8", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
+TESTINST3("uxtah r0, r1, r2, ROR #8", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
+TESTINST3("uxtah r0, r1, r2, ROR #8", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
+
+TESTINST3("uxtah r0, r1, r2, ROR #0", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
+TESTINST3("uxtah r0, r1, r2, ROR #0", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
+TESTINST3("uxtah r0, r1, r2, ROR #0", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
+TESTINST3("uxtah r0, r1, r2, ROR #0", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
+TESTINST3("uxtah r0, r1, r2, ROR #0", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
+TESTINST3("uxtah r0, r1, r2, ROR #0", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
+TESTINST3("uxtah r0, r1, r2, ROR #0", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
+TESTINST3("uxtah r0, r1, r2, ROR #0", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
+TESTINST3("uxtah r0, r1, r2, ROR #0", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
+TESTINST3("uxtah r0, r1, r2, ROR #0", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
+
+/*
+TESTINST3("theinsn", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
+TESTINST3("theinsn", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
+TESTINST3("theinsn", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
+TESTINST3("theinsn", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
+TESTINST3("theinsn", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
+TESTINST3("theinsn", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
+TESTINST3("theinsn", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
+TESTINST3("theinsn", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
+TESTINST3("theinsn", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
+TESTINST3("theinsn", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
+*/
+
+  return 0;
+}
diff --git a/none/tests/arm/v6media.stderr.exp b/none/tests/arm/v6media.stderr.exp
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/none/tests/arm/v6media.stdout.exp b/none/tests/arm/v6media.stdout.exp
new file mode 100644 (file)
index 0000000..33f19f7
--- /dev/null
@@ -0,0 +1,2398 @@
+MUL
+mul  r0, r1, r2 :: rd 0x00000000 rm 0x00000000, rn 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+mul  r0, r1, r2 :: rd 0x00000000 rm 0xffffffff, rn 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+mul  r0, r1, r2 :: rd 0x00000000 rm 0x00000000, rn 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+mul  r0, r1, r2 :: rd 0x00000001 rm 0xffffffff, rn 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+mul  r0, r1, r2 :: rd 0x00000001 rm 0x7fffffff, rn 0x7fffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+mul  r0, r1, r2 :: rd 0xfffe0001 rm 0x0000ffff, rn 0x0000ffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+MLA
+mla  r0, r1, r2, r3 :: rd 0x00000001 rm 0x00000000, rn 0x00000000 rs 0x00000001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+mla  r0, r1, r2, r3 :: rd 0x00000001 rm 0xffffffff, rn 0x00000000 rs 0x00000001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+mla  r0, r1, r2, r3 :: rd 0x00000001 rm 0x00000000, rn 0xffffffff rs 0x00000001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+mla  r0, r1, r2, r3 :: rd 0x00000002 rm 0xffffffff, rn 0xffffffff rs 0x00000001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+mla  r0, r1, r2, r3 :: rd 0x00000002 rm 0x7fffffff, rn 0x7fffffff rs 0x00000001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+mla  r0, r1, r2, r3 :: rd 0xfffe0002 rm 0x0000ffff, rn 0x0000ffff rs 0x00000001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+MLS
+mls  r0, r1, r2, r3 :: rd 0x00000001 rm 0x00000000, rn 0x00000000 rs 0x00000001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+mls  r0, r1, r2, r3 :: rd 0x00000001 rm 0xffffffff, rn 0x00000000 rs 0x00000001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+mls  r0, r1, r2, r3 :: rd 0x00000001 rm 0x00000000, rn 0xffffffff rs 0x00000001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+mls  r0, r1, r2, r3 :: rd 0x00000000 rm 0xffffffff, rn 0xffffffff rs 0x00000001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+mls  r0, r1, r2, r3 :: rd 0x00000000 rm 0x7fffffff, rn 0x7fffffff rs 0x00000001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+mls  r0, r1, r2, r3 :: rd 0x00020000 rm 0x0000ffff, rn 0x0000ffff rs 0x00000001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+UMULL
+umull  r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000000 rs 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+umull  r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000000 rs 0x00000001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+umull  r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000001 rs 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+umull  r0, r1, r2, r3 :: rd 0x00000001 rd2 0x00000000, rm 0x00000001 rs 0x00000001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+umull  r0, r1, r2, r3 :: rd 0xfffe0001 rd2 0x00000000, rm 0x0000ffff rs 0x0000ffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+umull  r0, r1, r2, r3 :: rd 0x00000001 rd2 0xfffffffe, rm 0xffffffff rs 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+SMULL
+smull  r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000000 rs 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smull  r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000000 rs 0x00000001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smull  r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000001 rs 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smull  r0, r1, r2, r3 :: rd 0x00000001 rd2 0x00000000, rm 0x00000001 rs 0x00000001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smull  r0, r1, r2, r3 :: rd 0xfffe0001 rd2 0x00000000, rm 0x0000ffff rs 0x0000ffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smull  r0, r1, r2, r3 :: rd 0x00000001 rd2 0x00000000, rm 0xffffffff rs 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+UMLAL
+umlal  r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000000 rs 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+umlal  r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000001, rm 0x00000000 rs 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+umlal  r0, r1, r2, r3 :: rd 0x00000001 rd2 0x00000001, rm 0x00000000 rs 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+umlal  r0, r1, r2, r3 :: rd 0x00000001 rd2 0xffffffff, rm 0x00000001 rs 0x00000001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+umlal  r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000000 rs 0x00000001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+umlal  r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000001 rs 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+umlal  r0, r1, r2, r3 :: rd 0x00000001 rd2 0x00000000, rm 0x00000001 rs 0x00000001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+umlal  r0, r1, r2, r3 :: rd 0xfffe0001 rd2 0x00000000, rm 0x0000ffff rs 0x0000ffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+umlal  r0, r1, r2, r3 :: rd 0x00000001 rd2 0xfffffffe, rm 0xffffffff rs 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+SMLAL
+smlal  r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000000 rs 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlal  r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000001, rm 0x00000000 rs 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlal  r0, r1, r2, r3 :: rd 0x00000001 rd2 0x00000001, rm 0x00000000 rs 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlal  r0, r1, r2, r3 :: rd 0x00000001 rd2 0xffffffff, rm 0x00000001 rs 0x00000001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlal  r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000000 rs 0x00000001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlal  r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000001 rs 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlal  r0, r1, r2, r3 :: rd 0x00000001 rd2 0x00000000, rm 0x00000001 rs 0x00000001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlal  r0, r1, r2, r3 :: rd 0xfffe0001 rd2 0x00000000, rm 0x0000ffff rs 0x0000ffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlal  r0, r1, r2, r3 :: rd 0x00000001 rd2 0x00000000, rm 0xffffffff rs 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+CLZ
+clz  r0, r1 :: rd 0x00000020 rm 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+clz  r0, r1 :: rd 0x0000001f rm 0x00000001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+clz  r0, r1 :: rd 0x0000001b rm 0x00000010, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+clz  r0, r1 :: rd 0x00000000 rm 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+clz  r0, r1 :: rd 0x00000020 rm 0x00000000, carryin 1, cpsr 0x20000000   C   ge[3:0]=0000
+clz  r0, r1 :: rd 0x0000001f rm 0x00000001, carryin 1, cpsr 0x20000000   C   ge[3:0]=0000
+clz  r0, r1 :: rd 0x0000001b rm 0x00000010, carryin 1, cpsr 0x20000000   C   ge[3:0]=0000
+clz  r0, r1 :: rd 0x00000000 rm 0xffffffff, carryin 1, cpsr 0x20000000   C   ge[3:0]=0000
+extend instructions
+uxtb r0, r1 :: rd 0x00000000 rm 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtb r0, r1 :: rd 0x00000001 rm 0x00000001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtb r0, r1 :: rd 0x000000ff rm 0x000000ff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtb r0, r1 :: rd 0x000000ff rm 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtb r0, r1 :: rd 0x00000000 rm 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtb r0, r1 :: rd 0x00000001 rm 0x00000001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtb r0, r1 :: rd 0xffffffff rm 0x000000ff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtb r0, r1 :: rd 0xffffffff rm 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxth r0, r1 :: rd 0x00000000 rm 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxth r0, r1 :: rd 0x00000001 rm 0x00000001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxth r0, r1 :: rd 0x0000ffff rm 0x0000ffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxth r0, r1 :: rd 0x0000ffff rm 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxth r0, r1 :: rd 0x00000000 rm 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxth r0, r1 :: rd 0x00000001 rm 0x00000001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxth r0, r1 :: rd 0x00007fff rm 0x00007fff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxth r0, r1 :: rd 0xffffffff rm 0x0000ffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxth r0, r1 :: rd 0xffffffff rm 0x0010ffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxth r0, r1 :: rd 0x00007fff rm 0x00107fff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxth r0, r1 :: rd 0xffffffff rm 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtb r0, r1, ror #0 :: rd 0x000000ff rm 0x000000ff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtb r0, r1, ror #8 :: rd 0x00000000 rm 0x000000ff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtb r0, r1, ror #8 :: rd 0x000000ff rm 0x0000ff00, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtb r0, r1, ror #16 :: rd 0x000000ff rm 0x00ff0000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtb r0, r1, ror #24 :: rd 0x000000ff rm 0xff000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtb16 r0, r1 :: rd 0x00ff00ff rm 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtb16 r0, r1, ror #16 :: rd 0x00ff0000 rm 0x0000ffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtb16 r0, r1 :: rd 0xffffffff rm 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtb16 r0, r1 :: rd 0xffffffff rm 0x00ff00ff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtb16 r0, r1 :: rd 0x007f007f rm 0x007f007f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+------------ BFI ------------
+bfi  r0, r1, #0, #11 :: rd 0x555552aa rm 0xaaaaaaaa, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+bfi  r0, r1, #1, #11 :: rd 0x55555555 rm 0xaaaaaaaa, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+bfi  r0, r1, #2, #11 :: rd 0x55554aa9 rm 0xaaaaaaaa, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+bfi  r0, r1, #19, #11 :: rd 0x7ffd5555 rm 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+bfi  r0, r1, #20, #11 :: rd 0x7ff55555 rm 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+bfi  r0, r1, #21, #11 :: rd 0xfff55555 rm 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+bfi  r0, r1, #0, #32 :: rd 0xffffffff rm 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+bfi  r0, r1, #1, #31 :: rd 0xffffffff rm 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+bfi  r0, r1, #29, #3 :: rd 0xf5555555 rm 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+bfi  r0, r1, #30, #2 :: rd 0xd5555555 rm 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+bfi  r0, r1, #31, #1 :: rd 0xd5555555 rm 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+------------ BFC ------------
+bfc  r0, #0, #11 :: rd 0x55555000 rm 0xaaaaaaaa, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+bfc  r0, #1, #11 :: rd 0x55555001 rm 0xaaaaaaaa, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+bfc  r0, #2, #11 :: rd 0x55554001 rm 0xaaaaaaaa, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+bfc  r0, #19, #11 :: rd 0x40055555 rm 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+bfc  r0, #20, #11 :: rd 0x00055555 rm 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+bfc  r0, #21, #11 :: rd 0x00155555 rm 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+bfc  r0, #0, #32 :: rd 0x00000000 rm 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+bfc  r0, #1, #31 :: rd 0x00000001 rm 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+bfc  r0, #29, #3 :: rd 0x15555555 rm 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+bfc  r0, #30, #2 :: rd 0x15555555 rm 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+bfc  r0, #31, #1 :: rd 0x55555555 rm 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+------------ SBFX ------------
+sbfx  r0, r1, #0, #1 :: rd 0x00000000 rm 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sbfx  r0, r1, #0, #1 :: rd 0xffffffff rm 0x00000001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sbfx  r0, r1, #1, #1 :: rd 0x00000000 rm 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sbfx  r0, r1, #1, #1 :: rd 0x00000000 rm 0x00000001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sbfx  r0, r1, #1, #1 :: rd 0xffffffff rm 0x00000002, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sbfx  r0, r1, #1, #1 :: rd 0xffffffff rm 0x00000003, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sbfx  r0, r1, #0, #2 :: rd 0x00000000 rm 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sbfx  r0, r1, #0, #2 :: rd 0x00000001 rm 0x00000001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sbfx  r0, r1, #1, #2 :: rd 0x00000000 rm 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sbfx  r0, r1, #1, #2 :: rd 0x00000000 rm 0x00000001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sbfx  r0, r1, #1, #2 :: rd 0x00000001 rm 0x00000002, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sbfx  r0, r1, #1, #2 :: rd 0x00000001 rm 0x00000003, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sbfx  r0, r1, #0, #11 :: rd 0x000002aa rm 0xaaaaaaaa, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sbfx  r0, r1, #1, #11 :: rd 0xfffffd55 rm 0xaaaaaaaa, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sbfx  r0, r1, #2, #11 :: rd 0x000002aa rm 0xaaaaaaaa, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sbfx  r0, r1, #2, #11 :: rd 0x000002aa rm 0xaaaaaaaa, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sbfx  r0, r1, #31, #1 :: rd 0xffffffff rm 0xaaaaaaaa, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sbfx  r0, r1, #30, #2 :: rd 0xfffffffe rm 0xaaaaaaaa, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+------------ UBFX ------------
+ubfx  r0, r1, #0, #1 :: rd 0x00000000 rm 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ubfx  r0, r1, #0, #1 :: rd 0x00000001 rm 0x00000001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ubfx  r0, r1, #1, #1 :: rd 0x00000000 rm 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ubfx  r0, r1, #1, #1 :: rd 0x00000000 rm 0x00000001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ubfx  r0, r1, #1, #1 :: rd 0x00000001 rm 0x00000002, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ubfx  r0, r1, #1, #1 :: rd 0x00000001 rm 0x00000003, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ubfx  r0, r1, #0, #2 :: rd 0x00000000 rm 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ubfx  r0, r1, #0, #2 :: rd 0x00000001 rm 0x00000001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ubfx  r0, r1, #1, #2 :: rd 0x00000000 rm 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ubfx  r0, r1, #1, #2 :: rd 0x00000000 rm 0x00000001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ubfx  r0, r1, #1, #2 :: rd 0x00000001 rm 0x00000002, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ubfx  r0, r1, #1, #2 :: rd 0x00000001 rm 0x00000003, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ubfx  r0, r1, #0, #11 :: rd 0x000002aa rm 0xaaaaaaaa, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ubfx  r0, r1, #1, #11 :: rd 0x00000555 rm 0xaaaaaaaa, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ubfx  r0, r1, #2, #11 :: rd 0x000002aa rm 0xaaaaaaaa, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ubfx  r0, r1, #2, #11 :: rd 0x000002aa rm 0xaaaaaaaa, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ubfx  r0, r1, #31, #1 :: rd 0x00000001 rm 0xaaaaaaaa, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ubfx  r0, r1, #30, #2 :: rd 0x00000002 rm 0xaaaaaaaa, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+------------ SMUL{B,T}{B,T} ------------
+smulbb r0, r1, r2 :: rd 0x00000000 rm 0x00030000, rn 0x00040000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0x00000002 rm 0x00030001, rn 0x00040002, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0xc000ffff rm 0x00038001, rn 0x00047fff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0x3fff0001 rm 0x00037fff, rn 0x00047fff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0x00000001 rm 0x0003ffff, rn 0x0004ffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0xffcb2e38 rm 0x2575feb2, rn 0xd2c4287c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0x07a8b29d rm 0xfb412431, rn 0x4b90362d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0xff5c9d7c rm 0x004dfbe5, rn 0xe87927cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0xfecbe07c rm 0xf6a3fa3c, rn 0x083b3571, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0xff042c1a rm 0xbf17fb9a, rn 0xb9743941, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0x01484910 rm 0x2c0bd024, rn 0xbce5f924, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0x0dd1cd08 rm 0x3e976e2e, rn 0xcc3c201c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0x023a5a06 rm 0xb4bfb365, rn 0x1ebaf88e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0xd832f800 rm 0x288593c0, rn 0x722d5e20, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0x0056d6f4 rm 0x4d7ff5b4, rn 0xa1d6f791, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0x10c39d25 rm 0x4557be13, rn 0x7b11bee7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0x07035c90 rm 0xadcf5772, rn 0xa5631488, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0xe8fa4ae9 rm 0x989a7235, rn 0xb10bcc65, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0xea7e2dc4 rm 0x4d6f393a, rn 0x73f39fca, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0xfbb41d80 rm 0x24a3291e, rn 0x5648e540, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0xf7c8c69a rm 0xdd91eebf, rn 0xc54f79e6, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0x0792e7b8 rm 0xf7ce2ec6, rn 0x5fc92974, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0xf437f0b0 rm 0xbc1083e8, rn 0x7e08184e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0xf602272f rm 0xa617cc31, rn 0x71c8315f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0xfe76ad20 rm 0xdfe1e8f0, rn 0x9493110e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0xc8ea11a0 rm 0x6ef49020, rn 0xba8a7e0d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0x0cb3fcd3 rm 0x3dc4e36b, rn 0x21568e39, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0xefe9fcf3 rm 0x52db4a9d, rn 0x55fcc8cf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0xef9befb8 rm 0x3564c76c, rn 0x14434a2a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0x26be8fe0 rm 0x27836b0c, rn 0x3c855ca8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0xf1b742a0 rm 0x62ff7c30, rn 0x30ece28e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0x20456454 rm 0x40955fdf, rn 0x057b562c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0xeed72dd0 rm 0x3b34c270, rn 0x27e1475b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0x0fd5b9da rm 0x7fdcda96, rn 0xd05893a7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0x0440f214 rm 0xb6ab141d, rn 0x2dc43624, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0xf21aba04 rm 0x403d53cb, rn 0x5328d58c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0xf39d9f16 rm 0x21ef1aef, rn 0x87488a4a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0xd2cefb78 rm 0x31458a23, rn 0xbb246228, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0x03c56208 rm 0x848af791, rn 0x339d8d88, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0xea7902bc rm 0xda3bacdc, rn 0x70974249, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0x1c6ede49 rm 0x649d5cbd, rn 0x8a8d4e7d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0xf16e45b5 rm 0xc0c8c881, rn 0xeb1b4335, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0xf8597100 rm 0x7dd81a20, rn 0x0cd6b508, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0x0dc69ed8 rm 0x6892886c, rn 0x6731e282, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0x028565c4 rm 0x112dcffc, rn 0xb6edf28f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0x0e6bd97c rm 0xabfabbe6, rn 0x4b4ec9ca, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0xd61a32e0 rm 0xe52aabf8, rn 0xc1037fa4, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0x09b06e51 rm 0xf2f4df1f, rn 0xcb4ab48f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0xc9215a70 rm 0x435f909a, rn 0xaf8f7e18, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0xed3740f0 rm 0x2106ba5f, rn 0x87df4510, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0xf7045ab6 rm 0x246a6376, rn 0xabf4e8e1, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0x06632384 rm 0x1046a1a3, rn 0xf4c0eeac, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0xe1d4f1da rm 0x638ca515, rn 0x006a54f2, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0x20d81c27 rm 0xf63e7a9d, rn 0x79f74493, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbb r0, r1, r2 :: rd 0xf81cf537 rm 0xbd6845cd, rn 0x9c09e313, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0x00000000 rm 0x00000003, rn 0x00000004, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0x00000002 rm 0x00010003, rn 0x00020004, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0xc000ffff rm 0x80010003, rn 0x7fff0004, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0x3fff0001 rm 0x7fff0003, rn 0x7fff0004, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0x00000001 rm 0xffff0003, rn 0xffff0004, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0xf961a794 rm 0x2575feb2, rn 0xd2c4287c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0xfe995f90 rm 0xfb412431, rn 0x4b90362d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0xfff8ec65 rm 0x004dfbe5, rn 0xe87927cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0xffb2ef91 rm 0xf6a3fa3c, rn 0x083b3571, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0x11e3356c rm 0xbf17fb9a, rn 0xb9743941, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0xf47479d7 rm 0x2c0bd024, rn 0xbce5f924, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0xf357ff64 rm 0x3e976e2e, rn 0xcc3c201c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0xf6f7b4c6 rm 0xb4bfb365, rn 0x1ebaf88e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0x12125961 rm 0x288593c0, rn 0x722d5e20, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0xe37ea72a rm 0x4d7ff5b4, rn 0xa1d6f791, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0x215567c7 rm 0x4557be13, rn 0x7b11bee7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0x1d17a20d rm 0xadcf5772, rn 0xa5631488, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0x1fe4089e rm 0x989a7235, rn 0xb10bcc65, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0x23125d5d rm 0x4d6f393a, rn 0x73f39fca, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0x0c590fd8 rm 0x24a3291e, rn 0x5648e540, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0x07e4f4bf rm 0xdd91eebf, rn 0xc54f79e6, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0xfcef02be rm 0xf7ce2ec6, rn 0x5fc92974, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0xde8dc080 rm 0xbc1083e8, rn 0x7e08184e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0xd809e8f8 rm 0xa617cc31, rn 0x71c8315f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0x0d7aa233 rm 0xdfe1e8f0, rn 0x9493110e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0xe1e51788 rm 0x6ef49020, rn 0xba8a7e0d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0x080b03d8 rm 0x3dc4e36b, rn 0x21568e39, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0x1bd44694 rm 0x52db4a9d, rn 0x55fcc8cf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0x0439c92c rm 0x3564c76c, rn 0x14434a2a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0x09573b0f rm 0x27836b0c, rn 0x3c855ca8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0x12eb1314 rm 0x62ff7c30, rn 0x30ece28e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0x0161f097 rm 0x40955fdf, rn 0x057b562c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0x0938f4b4 rm 0x3b34c270, rn 0x27e1475b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0xe832b3a0 rm 0x7fdcda96, rn 0xd05893a7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0xf2e3e9ec rm 0xb6ab141d, rn 0x2dc43624, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0x14ddd088 rm 0x403d53cb, rn 0x5328d58c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0xefff9438 rm 0x21ef1aef, rn 0x87488a4a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0xf2bf54b4 rm 0x31458a23, rn 0xbb246228, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0xe71bc6a2 rm 0x848af791, rn 0x339d8d88, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0xef6388cd rm 0xda3bacdc, rn 0x70974249, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0xd1d70c79 rm 0x649d5cbd, rn 0x8a8d4e7d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0x0528ed18 rm 0xc0c8c881, rn 0xeb1b4335, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0x064f5290 rm 0x7dd81a20, rn 0x0cd6b508, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0x2a26c1f2 rm 0x6892886c, rn 0x6731e282, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0xfb18e4a9 rm 0x112dcffc, rn 0xb6edf28f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0xe748a42c rm 0xabfabbe6, rn 0x4b4ec9ca, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0x069a597e rm 0xe52aabf8, rn 0xc1037fa4, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0x02afb688 rm 0xf2f4df1f, rn 0xcb4ab48f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0xead49311 rm 0x435f909a, rn 0xaf8f7e18, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0xf080ee3a rm 0x2106ba5f, rn 0x87df4510, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0xf40b8308 rm 0x246a6376, rn 0xabf4e8e1, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0xff48ec80 rm 0x1046a1a3, rn 0xf4c0eeac, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0x002937f8 rm 0x638ca515, rn 0x006a54f2, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0xfb59e3d2 rm 0xf63e7a9d, rn 0x79f74493, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultt r0, r1, r2 :: rd 0x1a0108a8 rm 0xbd6845cd, rn 0x9c09e313, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0x00000000 rm 0x00000003, rn 0x00040000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0x00000002 rm 0x00010003, rn 0x00040002, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0xc000ffff rm 0x80010003, rn 0x00047fff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0x3fff0001 rm 0x7fff0003, rn 0x00047fff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0x00000001 rm 0xffff0003, rn 0x0004ffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0x05ec6cac rm 0x2575feb2, rn 0xd2c4287c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0xfefee06d rm 0xfb412431, rn 0x4b90362d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0x000bf85c rm 0x004dfbe5, rn 0xe87927cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0xfe0b9cf3 rm 0xf6a3fa3c, rn 0x083b3571, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0xf17ba3d7 rm 0xbf17fb9a, rn 0xb9743941, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0xfed1e48c rm 0x2c0bd024, rn 0xbce5f924, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0x07d9b884 rm 0x3e976e2e, rn 0xcc3c201c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0x023049f2 rm 0xb4bfb365, rn 0x1ebaf88e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0x0ee5e6a0 rm 0x288593c0, rn 0x722d5e20, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0xfd726def rm 0x4d7ff5b4, rn 0xa1d6f791, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0xee5e2381 rm 0x4557be13, rn 0x7b11bee7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0xf96881f8 rm 0xadcf5772, rn 0xa5631488, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0x14d7ecc2 rm 0x989a7235, rn 0xb10bcc65, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0xe2e60a96 rm 0x4d6f393a, rn 0x73f39fca, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0xfc2bf7c0 rm 0x24a3291e, rn 0x5648e540, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0xef9a9946 rm 0xdd91eebf, rn 0xc54f79e6, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0xfeac4758 rm 0xf7ce2ec6, rn 0x5fc92974, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0xf98ccce0 rm 0xbc1083e8, rn 0x7e08184e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0xeea90989 rm 0xa617cc31, rn 0x71c8315f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0xfddc2f4e rm 0xdfe1e8f0, rn 0x9493110e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0x36a1ba64 rm 0x6ef49020, rn 0xba8a7e0d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0xe48c78a4 rm 0x3dc4e36b, rn 0x21568e39, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0xee231715 rm 0x52db4a9d, rn 0x55fcc8cf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0x0f77aa68 rm 0x3564c76c, rn 0x14434a2a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0x0e4d01f8 rm 0x27836b0c, rn 0x3c855ca8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0xf49d0772 rm 0x62ff7c30, rn 0x30ece28e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0x15bd279c rm 0x40955fdf, rn 0x057b562c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0x1080777c rm 0x3b34c270, rn 0x27e1475b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0xc9e2bc84 rm 0x7fdcda96, rn 0xd05893a7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0xf07dc20c rm 0xb6ab141d, rn 0x2dc43624, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0xf558e25c rm 0x403d53cb, rn 0x5328d58c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0xf065a516 rm 0x21ef1aef, rn 0x87488a4a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0x12e41cc8 rm 0x31458a23, rn 0xbb246228, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0x37346b50 rm 0x848af791, rn 0x339d8d88, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0xf63870d3 rm 0xda3bacdc, rn 0x70974249, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0x1ed8f6a9 rm 0x649d5cbd, rn 0x8a8d4e7d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0xef674168 rm 0xc0c8c881, rn 0xeb1b4335, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0xdb25a6c0 rm 0x7dd81a20, rn 0x0cd6b508, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0xf3f3fe24 rm 0x6892886c, rn 0x6731e282, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0xff192223 rm 0x112dcffc, rn 0xb6edf28f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0x11cafd44 rm 0xabfabbe6, rn 0x4b4ec9ca, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0xf29ea4e8 rm 0xe52aabf8, rn 0xc1037fa4, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0x03d8464c rm 0xf2f4df1f, rn 0xcb4ab48f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0x212f12e8 rm 0x435f909a, rn 0xaf8f7e18, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0x08e8ae60 rm 0x2106ba5f, rn 0x87df4510, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0xfcb6112a rm 0x246a6376, rn 0xabf4e8e1, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0xfee60308 rm 0x1046a1a3, rn 0xf4c0eeac, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0x21080a58 rm 0x638ca515, rn 0x006a54f2, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0xfd62dd9a rm 0xf63e7a9d, rn 0x79f74493, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smultb r0, r1, r2 :: rd 0x078646b8 rm 0xbd6845cd, rn 0x9c09e313, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0x00000000 rm 0x00030000, rn 0x00000004, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0x00000002 rm 0x00030001, rn 0x00020004, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0xc000ffff rm 0x00038001, rn 0x7fff0004, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0x3fff0001 rm 0x00037fff, rn 0x7fff0004, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0x00000001 rm 0x0003ffff, rn 0xffff0004, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0x003b0448 rm 0x2575feb2, rn 0xd2c4287c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0x0aaeb690 rm 0xfb412431, rn 0x4b90362d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0x0060973d rm 0x004dfbe5, rn 0xe87927cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0xffd08bd4 rm 0xf6a3fa3c, rn 0x083b3571, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0x01364bc8 rm 0xbf17fb9a, rn 0xb9743941, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0x0c8ba034 rm 0x2c0bd024, rn 0xbce5f924, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0xe9b87ac8 rm 0x3e976e2e, rn 0xcc3c201c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0xf6ce2d62 rm 0xb4bfb365, rn 0x1ebaf88e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0xcfb878c0 rm 0x288593c0, rn 0x722d5e20, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0x03c99878 rm 0x4d7ff5b4, rn 0xa1d6f791, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0xe04ec043 rm 0x4557be13, rn 0x7b11bee7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0xe10c4b16 rm 0xadcf5772, rn 0xa5631488, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0xdcc68d47 rm 0x989a7235, rn 0xb10bcc65, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0x19eb600e rm 0x4d6f393a, rn 0x73f39fca, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0x0ddba470 rm 0x24a3291e, rn 0x5648e540, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0x03f4a7f1 rm 0xdd91eebf, rn 0xc54f79e6, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0x11803376 rm 0xf7ce2ec6, rn 0x5fc92974, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0xc2e84f40 rm 0xbc1083e8, rn 0x7e08184e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0xe8f92748 rm 0xa617cc31, rn 0x71c8315f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0x09ad81d0 rm 0xdfe1e8f0, rn 0x9493110e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0x1e5af140 rm 0x6ef49020, rn 0xba8a7e0d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0xfc4730f2 rm 0x3dc4e36b, rn 0x21568e39, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0x190f938c rm 0x52db4a9d, rn 0x55fcc8cf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0xfb85a144 rm 0x3564c76c, rn 0x14434a2a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0x194e6d3c rm 0x27836b0c, rn 0x3c855ca8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0x17bb7c40 rm 0x62ff7c30, rn 0x30ece28e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0x020d6b25 rm 0x40955fdf, rn 0x057b562c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0xf668f470 rm 0x3b34c270, rn 0x27e1475b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0x06f70390 rm 0x7fdcda96, rn 0xd05893a7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0x03987f34 rm 0xb6ab141d, rn 0x2dc43624, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0x1b37e8b8 rm 0x403d53cb, rn 0x5328d58c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0xf34c9c38 rm 0x21ef1aef, rn 0x87488a4a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0x1fb3fdec rm 0x31458a23, rn 0xbb246228, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0xfe4cb6ed rm 0x848af791, rn 0x339d8d88, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0xdb6f35c4 rm 0xda3bacdc, rn 0x70974249, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0xd573f619 rm 0x649d5cbd, rn 0x8a8d4e7d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0x0487909b rm 0xc0c8c881, rn 0xeb1b4335, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0x014f56c0 rm 0x7dd81a20, rn 0x0cd6b508, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0xcfcc90ac rm 0x6892886c, rn 0x6731e282, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0x0db4b44c rm 0x112dcffc, rn 0xb6edf28f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0xebf7a214 rm 0xabfabbe6, rn 0x4b4ec9ca, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0x14acfbe8 rm 0xe52aabf8, rn 0xc1037fa4, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0x06c513f6 rm 0xf2f4df1f, rn 0xcb4ab48f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0x23010c06 rm 0x435f909a, rn 0xaf8f7e18, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0x20ac71c1 rm 0x2106ba5f, rn 0x87df4510, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0xdf589e78 rm 0x246a6376, rn 0xabf4e8e1, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0x04259640 rm 0x1046a1a3, rn 0xf4c0eeac, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0xffda5ab2 rm 0x638ca515, rn 0x006a54f2, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0x3a6a827b rm 0xf63e7a9d, rn 0x79f74493, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulbt r0, r1, r2 :: rd 0xe4be6035 rm 0xbd6845cd, rn 0x9c09e313, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+-------------- SMULW{B,T} --------------
+smulwb r0, r1, r2 :: rd 0x00000000 rm 0x00000003, rn 0x00020004, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0x00000004 rm 0x00010003, rn 0x47ff0004, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0xfffe0004 rm 0x80010003, rn 0x7fff0004, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0x0001fffc rm 0x7fff0003, rn 0x7fff0004, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0xfffffffc rm 0xffff0003, rn 0xffff0004, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0x05ec94f3 rm 0x2575feb2, rn 0xd2c4287c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0xfefee815 rm 0xfb412431, rn 0x4b90362d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0x000c1f84 rm 0x004dfbe5, rn 0xe87927cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0xfe0bd12f rm 0xf6a3fa3c, rn 0x083b3571, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0xf17bdc1c rm 0xbf17fb9a, rn 0xb9743941, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0xfed1def8 rm 0x2c0bd024, rn 0xbce5f924, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0x07d9c655 rm 0x3e976e2e, rn 0xcc3c201c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0x023044ba rm 0xb4bfb365, rn 0x1ebaf88e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0x0ee61cf2 rm 0x288593c0, rn 0x722d5e20, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0xfd7265d6 rm 0x4d7ff5b4, rn 0xa1d6f791, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0xee5df32b rm 0x4557be13, rn 0x7b11bee7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0xf96888fb rm 0xadcf5772, rn 0xa5631488, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0x14d7d5bc rm 0x989a7235, rn 0xb10bcc65, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0xe2e5f514 rm 0x4d6f393a, rn 0x73f39fca, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0xfc2bf374 rm 0x24a3291e, rn 0x5648e540, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0xef9b0af4 rm 0xdd91eebf, rn 0xc54f79e6, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0xfeac4eea rm 0xf7ce2ec6, rn 0x5fc92974, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0xf98cd965 rm 0xbc1083e8, rn 0x7e08184e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0xeea930ea rm 0xa617cc31, rn 0x71c8315f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0xfddc3ed2 rm 0xdfe1e8f0, rn 0x9493110e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0x36a2015b rm 0x6ef49020, rn 0xba8a7e0d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0xe48c1390 rm 0x3dc4e36b, rn 0x21568e39, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0xee2306fe rm 0x52db4a9d, rn 0x55fcc8cf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0x0f77e42d rm 0x3564c76c, rn 0x14434a2a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0x0e4d28b6 rm 0x27836b0c, rn 0x3c855ca8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0xf49cf929 rm 0x62ff7c30, rn 0x30ece28e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0x15bd47e1 rm 0x40955fdf, rn 0x057b562c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0x1080adae rm 0x3b34c270, rn 0x27e1475b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0xc9e26000 rm 0x7fdcda96, rn 0xd05893a7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0xf07dc64c rm 0xb6ab141d, rn 0x2dc43624, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0xf558d476 rm 0x403d53cb, rn 0x5328d58c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0xf06598b3 rm 0x21ef1aef, rn 0x87488a4a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0x12e451be rm 0x31458a23, rn 0xbb246228, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0x3733fc9d rm 0x848af791, rn 0x339d8d88, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0xf6389d95 rm 0xda3bacdc, rn 0x70974249, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0x1ed91317 rm 0x649d5cbd, rn 0x8a8d4e7d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0xef67760b rm 0xc0c8c881, rn 0xeb1b4335, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0xdb259f19 rm 0x7dd81a20, rn 0x0cd6b508, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0xf3f3ee6c rm 0x6892886c, rn 0x6731e282, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0xff191737 rm 0x112dcffc, rn 0xb6edf28f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0x11cad579 rm 0xabfabbe6, rn 0x4b4ec9ca, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0xf29efaa6 rm 0xe52aabf8, rn 0xc1037fa4, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0x03d8048b rm 0xf2f4df1f, rn 0xcb4ab48f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0x212f5a21 rm 0x435f909a, rn 0xaf8f7e18, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0x08e8e0a7 rm 0x2106ba5f, rn 0x87df4510, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0xfcb6082e rm 0x246a6376, rn 0xabf4e8e1, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0xfee5f817 rm 0x1046a1a3, rn 0xf4c0eeac, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0x2108411e rm 0x638ca515, rn 0x006a54f2, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0xfd62fe72 rm 0xf63e7a9d, rn 0x79f74493, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwb r0, r1, r2 :: rd 0x07863ed4 rm 0xbd6845cd, rn 0x9c09e313, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0x00000000 rm 0x00000003, rn 0x00040000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0x00000004 rm 0x00010003, rn 0x00040002, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0xfffe0004 rm 0x80010003, rn 0x00047fff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0x0001fffc rm 0x7fff0003, rn 0x00047fff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0xfffffffc rm 0xffff0003, rn 0x0004ffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0xf9617a93 rm 0x2575feb2, rn 0xd2c4287c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0xfe996a3e rm 0xfb412431, rn 0x4b90362d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0xfff8d53e rm 0x004dfbe5, rn 0xe87927cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0xffb2f79c rm 0xf6a3fa3c, rn 0x083b3571, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0x11e2f016 rm 0xbf17fb9a, rn 0xb9743941, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0xf4744347 rm 0x2c0bd024, rn 0xbce5f924, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0xf357e91c rm 0x3e976e2e, rn 0xcc3c201c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0xf6f7ca4e rm 0xb4bfb365, rn 0x1ebaf88e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0x12129b46 rm 0x288593c0, rn 0x722d5e20, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0xe37e4cc9 rm 0x4d7ff5b4, rn 0xa1d6f791, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0x2155c326 rm 0x4557be13, rn 0x7b11bee7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0x1d178319 rm 0xadcf5772, rn 0xa5631488, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0x1fe3e564 rm 0x989a7235, rn 0xb10bcc65, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0x23127748 rm 0x4d6f393a, rn 0x73f39fca, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0x0c591db3 rm 0x24a3291e, rn 0x5648e540, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0x07e4be02 rm 0xdd91eebf, rn 0xc54f79e6, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0xfcef143e rm 0xf7ce2ec6, rn 0x5fc92974, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0xde8e0170 rm 0xbc1083e8, rn 0x7e08184e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0xd80a43b9 rm 0xa617cc31, rn 0x71c8315f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0x0d7a4073 rm 0xdfe1e8f0, rn 0x9493110e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0xe1e4f06c rm 0x6ef49020, rn 0xba8a7e0d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0x080b2175 rm 0x3dc4e36b, rn 0x21568e39, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0x1bd45fa3 rm 0x52db4a9d, rn 0x55fcc8cf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0x0439d8f4 rm 0x3564c76c, rn 0x14434a2a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0x0957545d rm 0x27836b0c, rn 0x3c855ca8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0x12eb2acf rm 0x62ff7c30, rn 0x30ece28e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0x0161f2a4 rm 0x40955fdf, rn 0x057b562c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0x093912fd rm 0x3b34c270, rn 0x27e1475b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0xe8328aef rm 0x7fdcda96, rn 0xd05893a7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0xf2e3ed84 rm 0xb6ab141d, rn 0x2dc43624, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0x14ddebbf rm 0x403d53cb, rn 0x5328d58c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0xefff8784 rm 0x21ef1aef, rn 0x87488a4a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0xf2bf2f8b rm 0x31458a23, rn 0xbb246228, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0xe71bf88b rm 0x848af791, rn 0x339d8d88, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0xef63d4d3 rm 0xda3bacdc, rn 0x70974249, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0xd1d6e1ec rm 0x649d5cbd, rn 0x8a8d4e7d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0x0528dcba rm 0xc0c8c881, rn 0xeb1b4335, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0x064f53df rm 0x7dd81a20, rn 0x0cd6b508, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0x2a26f8ef rm 0x6892886c, rn 0x6731e282, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0xfb18a94a rm 0x112dcffc, rn 0xb6edf28f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0xe748db71 rm 0xabfabbe6, rn 0x4b4ec9ca, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0x069a2f2d rm 0xe52aabf8, rn 0xc1037fa4, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0x02af8897 rm 0xf2f4df1f, rn 0xcb4ab48f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0xead465a1 rm 0x435f909a, rn 0xaf8f7e18, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0xf08096c5 rm 0x2106ba5f, rn 0x87df4510, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0xf40b6260 rm 0x246a6376, rn 0xabf4e8e1, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0xff48e565 rm 0x1046a1a3, rn 0xf4c0eeac, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0x0029383c rm 0x638ca515, rn 0x006a54f2, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0xfb5a1e3c rm 0xf63e7a9d, rn 0x79f74493, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smulwt r0, r1, r2 :: rd 0x1a00ed66 rm 0xbd6845cd, rn 0x9c09e313, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+------------ PKHBT / PKHTB ------------
+pkhbt r0, r1, r2, lsl #0 :: rd 0x55663344 rm 0x11223344, rn 0x55667788, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #1 :: rd 0xaacc3344 rm 0x11223344, rn 0x55667788, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #2 :: rd 0x55993344 rm 0x11223344, rn 0x55667788, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #3 :: rd 0xab333344 rm 0x11223344, rn 0x55667788, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #4 :: rd 0x56673344 rm 0x11223344, rn 0x55667788, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #16 :: rd 0x77883344 rm 0x11223344, rn 0x55667788, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #22 :: rd 0xe2003344 rm 0x11223344, rn 0x55667788, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #31 :: rd 0x00003344 rm 0x11223344, rn 0x55667788, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2 :: rd 0xc1558082 rm 0x50c28082, rn 0xc1553709, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2 :: rd 0x69ec2e8f rm 0x17962e8f, rn 0x69ec0212, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2 :: rd 0x03fa43b7 rm 0xc57243b7, rn 0x03fa9bb5, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2 :: rd 0xf52e26ac rm 0x7eb226ac, rn 0xf52e9fbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2 :: rd 0x7fcbf026 rm 0xbce0f026, rn 0x7fcbe5a9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2 :: rd 0x2dd07252 rm 0xa5757252, rn 0x2dd01366, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2 :: rd 0x5e4b77c1 rm 0xf4a477c1, rn 0x5e4b1cbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2 :: rd 0x464a3a21 rm 0x76723a21, rn 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2 :: rd 0xe8101105 rm 0x74d01105, rn 0xe8108f1b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2 :: rd 0xcd903e2c rm 0xc1273e2c, rn 0xcd90d604, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #0 :: rd 0x35236e68 rm 0x5f986e68, rn 0x35232047, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #1 :: rd 0x6a466e68 rm 0x5f986e68, rn 0x35232047, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #2 :: rd 0xd48c6e68 rm 0x5f986e68, rn 0x35232047, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #3 :: rd 0xa9196e68 rm 0x5f986e68, rn 0x35232047, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #4 :: rd 0x52326e68 rm 0x5f986e68, rn 0x35232047, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #8 :: rd 0x23206e68 rm 0x5f986e68, rn 0x35232047, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #12 :: rd 0x32046e68 rm 0x5f986e68, rn 0x35232047, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #16 :: rd 0x20476e68 rm 0x5f986e68, rn 0x35232047, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #24 :: rd 0x47006e68 rm 0x5f986e68, rn 0x35232047, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #31 :: rd 0x80006e68 rm 0x5f986e68, rn 0x35232047, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #0 :: rd 0x89d26261 rm 0x36f26261, rn 0x89d2ef86, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #1 :: rd 0x13a56261 rm 0x36f26261, rn 0x89d2ef86, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #2 :: rd 0x274b6261 rm 0x36f26261, rn 0x89d2ef86, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #3 :: rd 0x4e976261 rm 0x36f26261, rn 0x89d2ef86, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #4 :: rd 0x9d2e6261 rm 0x36f26261, rn 0x89d2ef86, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #8 :: rd 0xd2ef6261 rm 0x36f26261, rn 0x89d2ef86, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #12 :: rd 0x2ef86261 rm 0x36f26261, rn 0x89d2ef86, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #16 :: rd 0xef866261 rm 0x36f26261, rn 0x89d2ef86, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #24 :: rd 0x86006261 rm 0x36f26261, rn 0x89d2ef86, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #31 :: rd 0x00006261 rm 0x36f26261, rn 0x89d2ef86, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #0 :: rd 0x57a558cb rm 0x216158cb, rn 0x57a50a01, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #1 :: rd 0xaf4a58cb rm 0x216158cb, rn 0x57a50a01, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #2 :: rd 0x5e9458cb rm 0x216158cb, rn 0x57a50a01, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #3 :: rd 0xbd2858cb rm 0x216158cb, rn 0x57a50a01, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #4 :: rd 0x7a5058cb rm 0x216158cb, rn 0x57a50a01, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #8 :: rd 0xa50a58cb rm 0x216158cb, rn 0x57a50a01, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #12 :: rd 0x50a058cb rm 0x216158cb, rn 0x57a50a01, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #16 :: rd 0x0a0158cb rm 0x216158cb, rn 0x57a50a01, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #24 :: rd 0x010058cb rm 0x216158cb, rn 0x57a50a01, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #31 :: rd 0x800058cb rm 0x216158cb, rn 0x57a50a01, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #0 :: rd 0xf87b5407 rm 0xd5dc5407, rn 0xf87b961e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #1 :: rd 0x8c36b979 rm 0xd65db979, rn 0xc61b323b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #2 :: rd 0xb4b28abe rm 0xa3268abe, rn 0xed2cbf78, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #3 :: rd 0x7db8f0a5 rm 0xbf73f0a5, rn 0x2fb714c9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #4 :: rd 0x25ef03ed rm 0x281703ed, rn 0x925ef472, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #8 :: rd 0x774152c7 rm 0xeaa652c7, rn 0x137741f4, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #12 :: rd 0x5bd2de8b rm 0x71fbde8b, rn 0xdba5bd25, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #16 :: rd 0x821a0ad8 rm 0x884c0ad8, rn 0xc00b821a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #24 :: rd 0x69008606 rm 0xe1bb8606, rn 0x58293969, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #31 :: rd 0x8000d624 rm 0xa3cfd624, rn 0x6077fb1f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #0 :: rd 0x179194e2 rm 0x40b094e2, rn 0x17913309, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #1 :: rd 0x0cb0b5cd rm 0x5388b5cd, rn 0x86582032, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #2 :: rd 0x33e81558 rm 0x5de41558, rn 0xccfa1c7e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #3 :: rd 0x21bc1b46 rm 0x23ba1b46, rn 0x4437983c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #4 :: rd 0x90856549 rm 0x48d06549, rn 0xa9085781, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #8 :: rd 0xaeadac58 rm 0xc6b4ac58, rn 0xb2aead21, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #12 :: rd 0x1e6af597 rm 0xc2bdf597, rn 0xdde1e6a4, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #16 :: rd 0x0dea3a72 rm 0x852e3a72, rn 0x157b0dea, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #24 :: rd 0x740057b4 rm 0xe7aa57b4, rn 0x1584bd74, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhbt r0, r1, r2, lsl #31 :: rd 0x80004d54 rm 0xd4b64d54, rn 0xc53aaba9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #0 :: rd 0x11220000 rm 0x11223344, rn 0x55667788, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #1 :: rd 0x11223bc4 rm 0x11223344, rn 0x55667788, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #2 :: rd 0x11229de2 rm 0x11223344, rn 0x55667788, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #3 :: rd 0x1122cef1 rm 0x11223344, rn 0x55667788, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #4 :: rd 0x11226778 rm 0x11223344, rn 0x55667788, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #16 :: rd 0x11225566 rm 0x11223344, rn 0x55667788, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #22 :: rd 0x11220155 rm 0x11223344, rn 0x55667788, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #31 :: rd 0x11220000 rm 0x11223344, rn 0x55667788, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2 :: rd 0x50c23709 rm 0x50c28082, rn 0xc1553709, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2 :: rd 0x17960212 rm 0x17962e8f, rn 0x69ec0212, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2 :: rd 0xc5729bb5 rm 0xc57243b7, rn 0x03fa9bb5, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2 :: rd 0x7eb29fbf rm 0x7eb226ac, rn 0xf52e9fbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2 :: rd 0xbce0e5a9 rm 0xbce0f026, rn 0x7fcbe5a9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2 :: rd 0xa5751366 rm 0xa5757252, rn 0x2dd01366, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2 :: rd 0xf4a41cbf rm 0xf4a477c1, rn 0x5e4b1cbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2 :: rd 0x767221cc rm 0x76723a21, rn 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2 :: rd 0x74d08f1b rm 0x74d01105, rn 0xe8108f1b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2 :: rd 0xc127d604 rm 0xc1273e2c, rn 0xcd90d604, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #0 :: rd 0x5f980000 rm 0x5f986e68, rn 0x35232047, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #1 :: rd 0x5f989023 rm 0x5f986e68, rn 0x35232047, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #2 :: rd 0x5f98c811 rm 0x5f986e68, rn 0x35232047, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #3 :: rd 0x5f986408 rm 0x5f986e68, rn 0x35232047, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #4 :: rd 0x5f983204 rm 0x5f986e68, rn 0x35232047, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #8 :: rd 0x5f982320 rm 0x5f986e68, rn 0x35232047, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #12 :: rd 0x5f985232 rm 0x5f986e68, rn 0x35232047, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #16 :: rd 0x5f983523 rm 0x5f986e68, rn 0x35232047, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #24 :: rd 0x5f980035 rm 0x5f986e68, rn 0x35232047, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #31 :: rd 0x5f980000 rm 0x5f986e68, rn 0x35232047, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #32 :: rd 0x5f980000 rm 0x5f986e68, rn 0x35232047, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #0 :: rd 0x36f2ffff rm 0x36f26261, rn 0x89d2ef86, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #1 :: rd 0x36f277c3 rm 0x36f26261, rn 0x89d2ef86, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #2 :: rd 0x36f2bbe1 rm 0x36f26261, rn 0x89d2ef86, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #3 :: rd 0x36f25df0 rm 0x36f26261, rn 0x89d2ef86, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #4 :: rd 0x36f22ef8 rm 0x36f26261, rn 0x89d2ef86, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #8 :: rd 0x36f2d2ef rm 0x36f26261, rn 0x89d2ef86, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #12 :: rd 0x36f29d2e rm 0x36f26261, rn 0x89d2ef86, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #16 :: rd 0x36f289d2 rm 0x36f26261, rn 0x89d2ef86, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #24 :: rd 0x36f2ff89 rm 0x36f26261, rn 0x89d2ef86, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #31 :: rd 0x36f2ffff rm 0x36f26261, rn 0x89d2ef86, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #32 :: rd 0x36f2ffff rm 0x36f26261, rn 0x89d2ef86, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #0 :: rd 0x21610000 rm 0x216158cb, rn 0x57a50a01, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #1 :: rd 0x21618500 rm 0x216158cb, rn 0x57a50a01, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #2 :: rd 0x21614280 rm 0x216158cb, rn 0x57a50a01, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #3 :: rd 0x2161a140 rm 0x216158cb, rn 0x57a50a01, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #4 :: rd 0x216150a0 rm 0x216158cb, rn 0x57a50a01, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #8 :: rd 0x2161a50a rm 0x216158cb, rn 0x57a50a01, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #12 :: rd 0x21617a50 rm 0x216158cb, rn 0x57a50a01, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #16 :: rd 0x216157a5 rm 0x216158cb, rn 0x57a50a01, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #24 :: rd 0x21610057 rm 0x216158cb, rn 0x57a50a01, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #31 :: rd 0x21610000 rm 0x216158cb, rn 0x57a50a01, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #32 :: rd 0x21610000 rm 0x216158cb, rn 0x57a50a01, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #0 :: rd 0xd5dcffff rm 0xd5dc5407, rn 0xf87b961e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #1 :: rd 0xd65d991d rm 0xd65db979, rn 0xc61b323b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #2 :: rd 0xa3262fde rm 0xa3268abe, rn 0xed2cbf78, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #3 :: rd 0xbf73e299 rm 0xbf73f0a5, rn 0x2fb714c9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #4 :: rd 0x2817ef47 rm 0x281703ed, rn 0x925ef472, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #8 :: rd 0xeaa67741 rm 0xeaa652c7, rn 0x137741f4, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #12 :: rd 0x71fbba5b rm 0x71fbde8b, rn 0xdba5bd25, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #16 :: rd 0x884cc00b rm 0x884c0ad8, rn 0xc00b821a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #24 :: rd 0xe1bb0058 rm 0xe1bb8606, rn 0x58293969, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #31 :: rd 0xa3cf0000 rm 0xa3cfd624, rn 0x6077fb1f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #32 :: rd 0xa3cf0000 rm 0xa3cfd624, rn 0x6077fb1f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #0 :: rd 0x40b00000 rm 0x40b094e2, rn 0x17913309, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #1 :: rd 0x53881019 rm 0x5388b5cd, rn 0x86582032, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #2 :: rd 0x5de4871f rm 0x5de41558, rn 0xccfa1c7e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #3 :: rd 0x23baf307 rm 0x23ba1b46, rn 0x4437983c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #4 :: rd 0x48d08578 rm 0x48d06549, rn 0xa9085781, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #8 :: rd 0xc6b4aead rm 0xc6b4ac58, rn 0xb2aead21, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #12 :: rd 0xc2bdde1e rm 0xc2bdf597, rn 0xdde1e6a4, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #16 :: rd 0x852e157b rm 0x852e3a72, rn 0x157b0dea, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #24 :: rd 0xe7aa0015 rm 0xe7aa57b4, rn 0x1584bd74, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #31 :: rd 0xd4b6ffff rm 0xd4b64d54, rn 0xc53aaba9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+pkhtb r0, r1, r2, asr #32 :: rd 0xd4b6ffff rm 0xd4b64d54, rn 0xc53aaba9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+----------------- USAT ----------------- 
+usat  r0, #0,  r1 :: rd 0x00000000 rm 0x0123abcd, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #1,  r1 :: rd 0x00000001 rm 0x0123abcd, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #5,  r1 :: rd 0x0000001f rm 0x0123abcd, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #8,  r1 :: rd 0x000000ff rm 0x0123abcd, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #11, r1 :: rd 0x000007ff rm 0x11110000, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #13, r1 :: rd 0x00001fff rm 0x11110000, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #15, r1 :: rd 0x00007fff rm 0x11110000, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #0,  r1 :: rd 0x00000000 rm 0xebbff82b, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #31, r1, lsl #0 :: rd 0x5f986e68 rm 0x5f986e68, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+usat  r0, #31, r1, lsl #0 :: rd 0x00000000 rm 0xe7aa57b4, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #31, r1, lsl #0 :: rd 0x00000000 rm 0x89d2ef86, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #31, r1, lsl #8 :: rd 0x3aaba900 rm 0xc53aaba9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+usat  r0, #31, r1, lsl #8 :: rd 0x6158cb00 rm 0x216158cb, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+usat  r0, #31, r1, lsl #8 :: rd 0x00000000 rm 0x3cd6cd94, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #0,  r1, lsl #0 :: rd 0x00000000 rm 0xf87b961e, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #0,  r1, lsl #0 :: rd 0x00000000 rm 0xc61b323b, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #0,  r1, lsl #0 :: rd 0x00000000 rm 0xa3268abe, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #0,  r1, lsl #8 :: rd 0x00000000 rm 0xbf73f0a5, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #0,  r1, lsl #8 :: rd 0x00000000 rm 0x925ef472, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #0,  r1, lsl #8 :: rd 0x00000000 rm 0x137741f4, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #24, r1, lsl #2 :: rd 0x00ffffff rm 0x50c28082, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #16, r1, lsl #3 :: rd 0x00000000 rm 0x17962e8f, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #12, r1, lsl #4 :: rd 0x00000fff rm 0xc57243b7, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #8,  r1, lsl #8 :: rd 0x000000ff rm 0xf20fb90f, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #4,  r1, lsl #12 :: rd 0x0000000f rm 0xbb151055, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #3,  r1, lsl #16 :: rd 0x00000007 rm 0x957440d2, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #2,  r1, lsl #24 :: rd 0x00000003 rm 0x728b7771, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #1,  r1, lsl #31 :: rd 0x00000000 rm 0xf13c20f3, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #0,  r1 :: rd 0x00000000 rm 0xebbff82b, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #31, r1, asr #0 :: rd 0x5f986e68 rm 0x5f986e68, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+usat  r0, #31, r1, asr #0 :: rd 0x00000000 rm 0xe7aa57b4, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #31, r1, asr #0 :: rd 0x00000000 rm 0x89d2ef86, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #31, r1, asr #8 :: rd 0x00000000 rm 0xc53aaba9, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #31, r1, asr #8 :: rd 0x00216158 rm 0x216158cb, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+usat  r0, #31, r1, asr #8 :: rd 0x003cd6cd rm 0x3cd6cd94, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+usat  r0, #0,  r1, asr #0 :: rd 0x00000000 rm 0xf87b961e, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #0,  r1, asr #0 :: rd 0x00000000 rm 0xc61b323b, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #0,  r1, asr #0 :: rd 0x00000000 rm 0xa3268abe, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #0,  r1, asr #8 :: rd 0x00000000 rm 0xbf73f0a5, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #0,  r1, asr #8 :: rd 0x00000000 rm 0x925ef472, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #0,  r1, asr #8 :: rd 0x00000000 rm 0x137741f4, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #24, r1, asr #2 :: rd 0x00ffffff rm 0x50c28082, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #16, r1, asr #3 :: rd 0x0000ffff rm 0x17962e8f, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #12, r1, asr #4 :: rd 0x00000000 rm 0xc57243b7, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #8,  r1, asr #8 :: rd 0x00000000 rm 0xf20fb90f, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #4,  r1, asr #12 :: rd 0x00000000 rm 0xbb151055, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #3,  r1, asr #16 :: rd 0x00000000 rm 0x957440d2, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #2,  r1, asr #24 :: rd 0x00000003 rm 0x728b7771, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #1,  r1, asr #31 :: rd 0x00000000 rm 0xf13c20f3, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #0,  r1 :: rd 0x00000000 rm 0xebbff82b, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #31, r1, asr #0 :: rd 0x5f986e68 rm 0x5f986e68, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+usat  r0, #31, r1, asr #0 :: rd 0x00000000 rm 0xe7aa57b4, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #31, r1, asr #0 :: rd 0x00000000 rm 0x89d2ef86, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #31, r1, asr #8 :: rd 0x00000000 rm 0xc53aaba9, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #31, r1, asr #8 :: rd 0x00216158 rm 0x216158cb, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+usat  r0, #31, r1, asr #8 :: rd 0x003cd6cd rm 0x3cd6cd94, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+usat  r0, #0,  r1, asr #0 :: rd 0x00000000 rm 0xf87b961e, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #0,  r1, asr #0 :: rd 0x00000000 rm 0xc61b323b, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #0,  r1, asr #0 :: rd 0x00000000 rm 0xa3268abe, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #0,  r1, asr #8 :: rd 0x00000000 rm 0xbf73f0a5, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #0,  r1, asr #8 :: rd 0x00000000 rm 0x925ef472, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #0,  r1, asr #8 :: rd 0x00000000 rm 0x137741f4, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #24, r1, asr #2 :: rd 0x00ffffff rm 0x50c28082, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #16, r1, asr #3 :: rd 0x0000ffff rm 0x17962e8f, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #12, r1, asr #4 :: rd 0x00000000 rm 0xc57243b7, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #8,  r1, asr #8 :: rd 0x00000000 rm 0xf20fb90f, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #4,  r1, asr #12 :: rd 0x00000000 rm 0xbb151055, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #3,  r1, asr #16 :: rd 0x00000000 rm 0x957440d2, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #2,  r1, asr #24 :: rd 0x00000003 rm 0x728b7771, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat  r0, #1,  r1, asr #31 :: rd 0x00000000 rm 0xf13c20f3, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+------------ USAT16 sat_imm ------------ 
+usat16  r0, #0,  r1 :: rd 0x00000000 rm 0x0123abcd, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #1,  r1 :: rd 0x00000000 rm 0xffcdabcd, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #5,  r1 :: rd 0x001f0000 rm 0x0123feff, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #8,  r1 :: rd 0x00ff0000 rm 0x0123abcd, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #11, r1 :: rd 0x07ff0000 rm 0x11110000, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #13, r1 :: rd 0x11110000 rm 0x1111f111, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #15, r1 :: rd 0x00001111 rm 0x00001111, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+usat16  r0, #0,  r1 :: rd 0x00000000 rm 0xebbff82b, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #1,  r1 :: rd 0x00000000 rm 0xebbff82b, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #3,  r1 :: rd 0x00070000 rm 0x50c28082, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #5,  r1 :: rd 0x001f001f rm 0x17962e8f, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #8,  r1 :: rd 0x000000ff rm 0xc57243b7, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #10, r1 :: rd 0x00000000 rm 0xf20fb90f, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #11, r1 :: rd 0x000007ff rm 0xbb151055, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #13, r1 :: rd 0x00001fff rm 0x957440d2, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #14, r1 :: rd 0x3fff3fff rm 0x728b7771, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #15, r1 :: rd 0x000020f3 rm 0xf13c20f3, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #0,  r1 :: rd 0x00000000 rm 0x86398371, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #1,  r1 :: rd 0x00010000 rm 0x03d0fb78, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #3,  r1 :: rd 0x00000000 rm 0xd0d49b7c, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #5,  r1 :: rd 0x001f001f rm 0x76354a58, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #8,  r1 :: rd 0x000000ff rm 0x9fa45fb7, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #10, r1 :: rd 0x03ff0000 rm 0x7572bdec, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #11, r1 :: rd 0x00000000 rm 0xfea59eb6, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #13, r1 :: rd 0x00000000 rm 0xf2669090, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #14, r1 :: rd 0x00000000 rm 0xbc1ff573, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #15, r1 :: rd 0x7eb226ac rm 0x7eb226ac, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+usat16  r0, #0,  r1 :: rd 0x00000000 rm 0x22b65db1, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #1,  r1 :: rd 0x00010001 rm 0x776c41c7, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #3,  r1 :: rd 0x00000000 rm 0xe50dd77c, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #5,  r1 :: rd 0x00000000 rm 0xd6f9a698, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #8,  r1 :: rd 0x000000ff rm 0xeda5110c, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #10, r1 :: rd 0x03ff03ff rm 0x0be36f70, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #11, r1 :: rd 0x00000000 rm 0xd759eb72, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #13, r1 :: rd 0x00000000 rm 0xd9c4b1f4, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #14, r1 :: rd 0x00000000 rm 0xa29eb320, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #15, r1 :: rd 0x00004487 rm 0xcf1e4487, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #0,  r1 :: rd 0x00000000 rm 0x2eb68500, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #1,  r1 :: rd 0x00000000 rm 0xcdb7ed11, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #3,  r1 :: rd 0x00070000 rm 0x2eaea305, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #5,  r1 :: rd 0x001f001f rm 0x6ebd04d9, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #8,  r1 :: rd 0x000000ff rm 0xa5ec1aa8, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #10, r1 :: rd 0x03ff03ff rm 0x72f33509, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #11, r1 :: rd 0x00000000 rm 0xa3e6f759, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #13, r1 :: rd 0x00000000 rm 0xfaceab39, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #14, r1 :: rd 0x27380000 rm 0x2738f0ff, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #15, r1 :: rd 0x00000000 rm 0xe79fd570, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #0,  r1 :: rd 0x00000000 rm 0x55ea3e4e, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #1,  r1 :: rd 0x00010000 rm 0x2b62ba5a, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #3,  r1 :: rd 0x00000000 rm 0x9b41bfb1, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #5,  r1 :: rd 0x001f001f rm 0x557c7ba2, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #8,  r1 :: rd 0x00ff0000 rm 0x2973c051, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #10, r1 :: rd 0x03ff0000 rm 0x6a228b19, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #11, r1 :: rd 0x07ff0000 rm 0x0cdafabe, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #13, r1 :: rd 0x1fff1fff rm 0x50865114, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #14, r1 :: rd 0x00000000 rm 0xd83b849b, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+usat16  r0, #15, r1 :: rd 0x00005605 rm 0xca5e5605, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+---------------- UADD16 ---------------- 
+uadd16 r0, r1, r2 :: rd 0x00210002 rm 0x0009ffff, rn 0x00180003, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+uadd16 r0, r1, r2 :: rd 0x00210002 rm 0x00180003, rn 0x0009ffff, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+uadd16 r0, r1, r2 :: rd 0x00020021 rm 0x00030018, rn 0xffff0009, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+uadd16 r0, r1, r2 :: rd 0x00020021 rm 0xffff0009, rn 0x00030018, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+uadd16 r0, r1, r2 :: rd 0xa299daa0 rm 0xd83b849b, rn 0xca5e5605, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+uadd16 r0, r1, r2 :: rd 0x5d604bd2 rm 0x0cdafabe, rn 0x50865114, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+uadd16 r0, r1, r2 :: rd 0x915a7c18 rm 0x2738f0ff, rn 0x6a228b19, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+uadd16 r0, r1, r2 :: rd 0x24416b8a rm 0xfaceab39, rn 0x2973c051, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+uadd16 r0, r1, r2 :: rd 0xf96272fb rm 0xa3e6f759, rn 0x557c7ba2, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+uadd16 r0, r1, r2 :: rd 0x0e34f4ba rm 0x72f33509, rn 0x9b41bfb1, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+uadd16 r0, r1, r2 :: rd 0xd14ed502 rm 0xa5ec1aa8, rn 0x2b62ba5a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uadd16 r0, r1, r2 :: rd 0xc4a74327 rm 0x6ebd04d9, rn 0x55ea3e4e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uadd16 r0, r1, r2 :: rd 0x164d7875 rm 0x2eaea305, rn 0xe79fd570, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+uadd16 r0, r1, r2 :: rd 0xf06d4ac2 rm 0x22b65db1, rn 0xcdb7ed11, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+uadd16 r0, r1, r2 :: rd 0xa622c6c7 rm 0x776c41c7, rn 0x2eb68500, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uadd16 r0, r1, r2 :: rd 0xbc067e14 rm 0xe50dd77c, rn 0xd6f9a698, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+uadd16 r0, r1, r2 :: rd 0xf988807c rm 0x0be36f70, rn 0xeda5110c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uadd16 r0, r1, r2 :: rd 0xc318e39d rm 0xebbff82b, rn 0xd759eb72, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+uadd16 r0, r1, r2 :: rd 0x2a863276 rm 0x50c28082, rn 0xd9c4b1f4, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+uadd16 r0, r1, r2 :: rd 0xba34e1af rm 0x17962e8f, rn 0xa29eb320, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uadd16 r0, r1, r2 :: rd 0x9490883e rm 0xc57243b7, rn 0xcf1e4487, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+uadd16 r0, r1, r2 :: rd 0x70c1dfbb rm 0x7eb226ac, rn 0xf20fb90f, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+uadd16 r0, r1, r2 :: rd 0x77f5007b rm 0xbce0f026, rn 0xbb151055, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+uadd16 r0, r1, r2 :: rd 0x3ae9b324 rm 0xa5757252, rn 0x957440d2, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+uadd16 r0, r1, r2 :: rd 0x672fef32 rm 0xf4a477c1, rn 0x728b7771, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+uadd16 r0, r1, r2 :: rd 0x67ae5b14 rm 0x76723a21, rn 0xf13c20f3, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+uadd16 r0, r1, r2 :: rd 0xfb099476 rm 0x74d01105, rn 0x86398371, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uadd16 r0, r1, r2 :: rd 0xc4f739a4 rm 0xc1273e2c, rn 0x03d0fb78, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+uadd16 r0, r1, r2 :: rd 0xae6f11cf rm 0xdd9b7653, rn 0xd0d49b7c, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+uadd16 r0, r1, r2 :: rd 0x541b7a29 rm 0xdde62fd1, rn 0x76354a58, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+uadd16 r0, r1, r2 :: rd 0x639faa4d rm 0xc3fb4a96, rn 0x9fa45fb7, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+uadd16 r0, r1, r2 :: rd 0x1713cd42 rm 0xa1a10f56, rn 0x7572bdec, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+uadd16 r0, r1, r2 :: rd 0x4a22ee8f rm 0x4b7d4fd9, rn 0xfea59eb6, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+uadd16 r0, r1, r2 :: rd 0x8f73708c rm 0x9d0ddffc, rn 0xf2669090, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+uadd16 r0, r1, r2 :: rd 0x0ba1c6ef rm 0x4f82d17c, rn 0xbc1ff573, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+uadd16 r0, r1, r2 :: rd 0x3c80c488 rm 0x08215ca2, rn 0x345f67e6, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uadd16 r0, r1, r2 :: rd 0x316e6d4e rm 0xf23595d0, rn 0x3f39d77e, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+uadd16 r0, r1, r2 :: rd 0xed7176b3 rm 0xf244c158, rn 0xfb2db55b, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+uadd16 r0, r1, r2 :: rd 0x3919bcb5 rm 0x256bfdd6, rn 0x13aebedf, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+uadd16 r0, r1, r2 :: rd 0x1b2b3c05 rm 0xc02a0c05, rn 0x5b013000, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+uadd16 r0, r1, r2 :: rd 0xdbc459b0 rm 0xee2fa46e, rn 0xed95b542, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+uadd16 r0, r1, r2 :: rd 0xf8623908 rm 0x97a7da20, rn 0x60bb5ee8, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+uadd16 r0, r1, r2 :: rd 0x7b31e04a rm 0xa231d5e6, rn 0xd9000a64, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+uadd16 r0, r1, r2 :: rd 0x73302af1 rm 0x10e1968a, rn 0x624f9467, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+uadd16 r0, r1, r2 :: rd 0xb6cee004 rm 0x0e089270, rn 0xa8c64d94, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uadd16 r0, r1, r2 :: rd 0x09dd64ff rm 0x9e8e0185, rn 0x6b4f637a, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+uadd16 r0, r1, r2 :: rd 0x428be5e7 rm 0x3096f12e, rn 0x11f5f4b9, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+uadd16 r0, r1, r2 :: rd 0x0ac31feb rm 0xffc134df, rn 0x0b02eb0c, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+uadd16 r0, r1, r2 :: rd 0xba32d245 rm 0xe444dc25, rn 0xd5eef620, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+uadd16 r0, r1, r2 :: rd 0xa8fa218b rm 0x06ea9b2a, rn 0xa2108661, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+uadd16 r0, r1, r2 :: rd 0x5c3d09b6 rm 0x448f3a5f, rn 0x17aecf57, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+uadd16 r0, r1, r2 :: rd 0x4ab260a3 rm 0x4b0c2337, rn 0xffa63d6c, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+uadd16 r0, r1, r2 :: rd 0x01a8204f rm 0xf91d5f56, rn 0x088bc0f9, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+uadd16 r0, r1, r2 :: rd 0xe7f2fb84 rm 0xf808434e, rn 0xefeab836, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+---------------- USUB16 ---------------- 
+usub16 r0, r1, r2 :: rd 0x01000011 rm 0x04000022, rn 0x03000011, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+usub16 r0, r1, r2 :: rd 0xfff1fffc rm 0x0009ffff, rn 0x00180003, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+usub16 r0, r1, r2 :: rd 0x000f0004 rm 0x00180003, rn 0x0009ffff, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+usub16 r0, r1, r2 :: rd 0x0004000f rm 0x00030018, rn 0xffff0009, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+usub16 r0, r1, r2 :: rd 0xfffcfff1 rm 0xffff0009, rn 0x00030018, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+usub16 r0, r1, r2 :: rd 0x0ddd2e96 rm 0xd83b849b, rn 0xca5e5605, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+usub16 r0, r1, r2 :: rd 0xbc54a9aa rm 0x0cdafabe, rn 0x50865114, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+usub16 r0, r1, r2 :: rd 0xbd1665e6 rm 0x2738f0ff, rn 0x6a228b19, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+usub16 r0, r1, r2 :: rd 0xd15beae8 rm 0xfaceab39, rn 0x2973c051, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+usub16 r0, r1, r2 :: rd 0x4e6a7bb7 rm 0xa3e6f759, rn 0x557c7ba2, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+usub16 r0, r1, r2 :: rd 0xd7b27558 rm 0x72f33509, rn 0x9b41bfb1, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+usub16 r0, r1, r2 :: rd 0x7a8a604e rm 0xa5ec1aa8, rn 0x2b62ba5a, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+usub16 r0, r1, r2 :: rd 0x18d3c68b rm 0x6ebd04d9, rn 0x55ea3e4e, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+usub16 r0, r1, r2 :: rd 0x470fcd95 rm 0x2eaea305, rn 0xe79fd570, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+usub16 r0, r1, r2 :: rd 0x54ff70a0 rm 0x22b65db1, rn 0xcdb7ed11, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+usub16 r0, r1, r2 :: rd 0x48b6bcc7 rm 0x776c41c7, rn 0x2eb68500, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+usub16 r0, r1, r2 :: rd 0x0e1430e4 rm 0xe50dd77c, rn 0xd6f9a698, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+usub16 r0, r1, r2 :: rd 0x1e3e5e64 rm 0x0be36f70, rn 0xeda5110c, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+usub16 r0, r1, r2 :: rd 0x14660cb9 rm 0xebbff82b, rn 0xd759eb72, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+usub16 r0, r1, r2 :: rd 0x76fece8e rm 0x50c28082, rn 0xd9c4b1f4, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+usub16 r0, r1, r2 :: rd 0x74f87b6f rm 0x17962e8f, rn 0xa29eb320, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+usub16 r0, r1, r2 :: rd 0xf654ff30 rm 0xc57243b7, rn 0xcf1e4487, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+usub16 r0, r1, r2 :: rd 0x8ca36d9d rm 0x7eb226ac, rn 0xf20fb90f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+usub16 r0, r1, r2 :: rd 0x01cbdfd1 rm 0xbce0f026, rn 0xbb151055, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+usub16 r0, r1, r2 :: rd 0x10013180 rm 0xa5757252, rn 0x957440d2, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+usub16 r0, r1, r2 :: rd 0x82190050 rm 0xf4a477c1, rn 0x728b7771, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+usub16 r0, r1, r2 :: rd 0x8536192e rm 0x76723a21, rn 0xf13c20f3, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+usub16 r0, r1, r2 :: rd 0xee978d94 rm 0x74d01105, rn 0x86398371, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+usub16 r0, r1, r2 :: rd 0xbd5742b4 rm 0xc1273e2c, rn 0x03d0fb78, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+usub16 r0, r1, r2 :: rd 0x0cc7dad7 rm 0xdd9b7653, rn 0xd0d49b7c, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+usub16 r0, r1, r2 :: rd 0x67b1e579 rm 0xdde62fd1, rn 0x76354a58, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+usub16 r0, r1, r2 :: rd 0x2457eadf rm 0xc3fb4a96, rn 0x9fa45fb7, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+usub16 r0, r1, r2 :: rd 0x2c2f516a rm 0xa1a10f56, rn 0x7572bdec, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+usub16 r0, r1, r2 :: rd 0x4cd8b123 rm 0x4b7d4fd9, rn 0xfea59eb6, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+usub16 r0, r1, r2 :: rd 0xaaa74f6c rm 0x9d0ddffc, rn 0xf2669090, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+usub16 r0, r1, r2 :: rd 0x9363dc09 rm 0x4f82d17c, rn 0xbc1ff573, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+usub16 r0, r1, r2 :: rd 0xd3c2f4bc rm 0x08215ca2, rn 0x345f67e6, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+usub16 r0, r1, r2 :: rd 0xb2fcbe52 rm 0xf23595d0, rn 0x3f39d77e, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+usub16 r0, r1, r2 :: rd 0xf7170bfd rm 0xf244c158, rn 0xfb2db55b, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+usub16 r0, r1, r2 :: rd 0x11bd3ef7 rm 0x256bfdd6, rn 0x13aebedf, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+usub16 r0, r1, r2 :: rd 0x6529dc05 rm 0xc02a0c05, rn 0x5b013000, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+usub16 r0, r1, r2 :: rd 0x009aef2c rm 0xee2fa46e, rn 0xed95b542, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+usub16 r0, r1, r2 :: rd 0x36ec7b38 rm 0x97a7da20, rn 0x60bb5ee8, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+usub16 r0, r1, r2 :: rd 0xc931cb82 rm 0xa231d5e6, rn 0xd9000a64, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+usub16 r0, r1, r2 :: rd 0xae920223 rm 0x10e1968a, rn 0x624f9467, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+usub16 r0, r1, r2 :: rd 0x654244dc rm 0x0e089270, rn 0xa8c64d94, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+usub16 r0, r1, r2 :: rd 0x333f9e0b rm 0x9e8e0185, rn 0x6b4f637a, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+usub16 r0, r1, r2 :: rd 0x1ea1fc75 rm 0x3096f12e, rn 0x11f5f4b9, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+usub16 r0, r1, r2 :: rd 0xf4bf49d3 rm 0xffc134df, rn 0x0b02eb0c, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+usub16 r0, r1, r2 :: rd 0x0e56e605 rm 0xe444dc25, rn 0xd5eef620, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+usub16 r0, r1, r2 :: rd 0x64da14c9 rm 0x06ea9b2a, rn 0xa2108661, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+usub16 r0, r1, r2 :: rd 0x2ce16b08 rm 0x448f3a5f, rn 0x17aecf57, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+usub16 r0, r1, r2 :: rd 0x4b66e5cb rm 0x4b0c2337, rn 0xffa63d6c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+usub16 r0, r1, r2 :: rd 0xf0929e5d rm 0xf91d5f56, rn 0x088bc0f9, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+usub16 r0, r1, r2 :: rd 0x081e8b18 rm 0xf808434e, rn 0xefeab836, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+---------------- UADD8 ----------------- 
+uadd8 r0, r1, r2 :: rd 0x0021ff02 rm 0x0009ffff, rn 0x00180003, carryin 0, cpsr 0x00010000       ge[3:0]=0001
+uadd8 r0, r1, r2 :: rd 0x0021ff02 rm 0x00180003, rn 0x0009ffff, carryin 0, cpsr 0x00010000       ge[3:0]=0001
+uadd8 r0, r1, r2 :: rd 0xff020021 rm 0x00030018, rn 0xffff0009, carryin 0, cpsr 0x00040000       ge[3:0]=0100
+uadd8 r0, r1, r2 :: rd 0xff020021 rm 0xffff0009, rn 0x00030018, carryin 0, cpsr 0x00040000       ge[3:0]=0100
+uadd8 r0, r1, r2 :: rd 0xff000221 rm 0x00000318, rn 0xff00ff09, carryin 0, cpsr 0x00020000       ge[3:0]=0010
+uadd8 r0, r1, r2 :: rd 0xff020021 rm 0xffff0009, rn 0x00030018, carryin 0, cpsr 0x00040000       ge[3:0]=0100
+uadd8 r0, r1, r2 :: rd 0xff090221 rm 0x00020318, rn 0xff07ff09, carryin 0, cpsr 0x00020000       ge[3:0]=0010
+uadd8 r0, r1, r2 :: rd 0xff090221 rm 0xff07ff09, rn 0x00020318, carryin 0, cpsr 0x00020000       ge[3:0]=0010
+uadd8 r0, r1, r2 :: rd 0xa299daa0 rm 0xd83b849b, rn 0xca5e5605, carryin 0, cpsr 0x00080000       ge[3:0]=1000
+uadd8 r0, r1, r2 :: rd 0x5c604bd2 rm 0x0cdafabe, rn 0x50865114, carryin 0, cpsr 0x00060000       ge[3:0]=0110
+uadd8 r0, r1, r2 :: rd 0x915a7b18 rm 0x2738f0ff, rn 0x6a228b19, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+uadd8 r0, r1, r2 :: rd 0x23416b8a rm 0xfaceab39, rn 0x2973c051, carryin 0, cpsr 0x000e0000       ge[3:0]=1110
+uadd8 r0, r1, r2 :: rd 0xf86272fb rm 0xa3e6f759, rn 0x557c7ba2, carryin 0, cpsr 0x00060000       ge[3:0]=0110
+uadd8 r0, r1, r2 :: rd 0x0d34f4ba rm 0x72f33509, rn 0x9b41bfb1, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+uadd8 r0, r1, r2 :: rd 0xd04ed402 rm 0xa5ec1aa8, rn 0x2b62ba5a, carryin 0, cpsr 0x00050000       ge[3:0]=0101
+uadd8 r0, r1, r2 :: rd 0xc3a74227 rm 0x6ebd04d9, rn 0x55ea3e4e, carryin 0, cpsr 0x00050000       ge[3:0]=0101
+uadd8 r0, r1, r2 :: rd 0x154d7875 rm 0x2eaea305, rn 0xe79fd570, carryin 0, cpsr 0x000e0000       ge[3:0]=1110
+uadd8 r0, r1, r2 :: rd 0xef6d4ac2 rm 0x22b65db1, rn 0xcdb7ed11, carryin 0, cpsr 0x00060000       ge[3:0]=0110
+uadd8 r0, r1, r2 :: rd 0xa522c6c7 rm 0x776c41c7, rn 0x2eb68500, carryin 0, cpsr 0x00040000       ge[3:0]=0100
+uadd8 r0, r1, r2 :: rd 0xbb067d14 rm 0xe50dd77c, rn 0xd6f9a698, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+uadd8 r0, r1, r2 :: rd 0xf888807c rm 0x0be36f70, rn 0xeda5110c, carryin 0, cpsr 0x00040000       ge[3:0]=0100
+uadd8 r0, r1, r2 :: rd 0xc218e39d rm 0xebbff82b, rn 0xd759eb72, carryin 0, cpsr 0x000e0000       ge[3:0]=1110
+uadd8 r0, r1, r2 :: rd 0x29863176 rm 0x50c28082, rn 0xd9c4b1f4, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+uadd8 r0, r1, r2 :: rd 0xb934e1af rm 0x17962e8f, rn 0xa29eb320, carryin 0, cpsr 0x00040000       ge[3:0]=0100
+uadd8 r0, r1, r2 :: rd 0x9490873e rm 0xc57243b7, rn 0xcf1e4487, carryin 0, cpsr 0x00090000       ge[3:0]=1001
+uadd8 r0, r1, r2 :: rd 0x70c1dfbb rm 0x7eb226ac, rn 0xf20fb90f, carryin 0, cpsr 0x00080000       ge[3:0]=1000
+uadd8 r0, r1, r2 :: rd 0x77f5007b rm 0xbce0f026, rn 0xbb151055, carryin 0, cpsr 0x000a0000       ge[3:0]=1010
+uadd8 r0, r1, r2 :: rd 0x3ae9b224 rm 0xa5757252, rn 0x957440d2, carryin 0, cpsr 0x00090000       ge[3:0]=1001
+uadd8 r0, r1, r2 :: rd 0x662fee32 rm 0xf4a477c1, rn 0x728b7771, carryin 0, cpsr 0x000d0000       ge[3:0]=1101
+uadd8 r0, r1, r2 :: rd 0x67ae5a14 rm 0x76723a21, rn 0xf13c20f3, carryin 0, cpsr 0x00090000       ge[3:0]=1001
+uadd8 r0, r1, r2 :: rd 0xfa099476 rm 0x74d01105, rn 0x86398371, carryin 0, cpsr 0x00040000       ge[3:0]=0100
+uadd8 r0, r1, r2 :: rd 0xc4f739a4 rm 0xc1273e2c, rn 0x03d0fb78, carryin 0, cpsr 0x00020000       ge[3:0]=0010
+uadd8 r0, r1, r2 :: rd 0xad6f11cf rm 0xdd9b7653, rn 0xd0d49b7c, carryin 0, cpsr 0x000e0000       ge[3:0]=1110
+uadd8 r0, r1, r2 :: rd 0x531b7929 rm 0xdde62fd1, rn 0x76354a58, carryin 0, cpsr 0x000d0000       ge[3:0]=1101
+uadd8 r0, r1, r2 :: rd 0x629fa94d rm 0xc3fb4a96, rn 0x9fa45fb7, carryin 0, cpsr 0x000d0000       ge[3:0]=1101
+uadd8 r0, r1, r2 :: rd 0x1613cc42 rm 0xa1a10f56, rn 0x7572bdec, carryin 0, cpsr 0x000d0000       ge[3:0]=1101
+uadd8 r0, r1, r2 :: rd 0x4922ed8f rm 0x4b7d4fd9, rn 0xfea59eb6, carryin 0, cpsr 0x000d0000       ge[3:0]=1101
+uadd8 r0, r1, r2 :: rd 0x8f736f8c rm 0x9d0ddffc, rn 0xf2669090, carryin 0, cpsr 0x000b0000       ge[3:0]=1011
+uadd8 r0, r1, r2 :: rd 0x0ba1c6ef rm 0x4f82d17c, rn 0xbc1ff573, carryin 0, cpsr 0x000a0000       ge[3:0]=1010
+uadd8 r0, r1, r2 :: rd 0x3c80c388 rm 0x08215ca2, rn 0x345f67e6, carryin 0, cpsr 0x00010000       ge[3:0]=0001
+uadd8 r0, r1, r2 :: rd 0x316e6c4e rm 0xf23595d0, rn 0x3f39d77e, carryin 0, cpsr 0x000b0000       ge[3:0]=1011
+uadd8 r0, r1, r2 :: rd 0xed7176b3 rm 0xf244c158, rn 0xfb2db55b, carryin 0, cpsr 0x000a0000       ge[3:0]=1010
+uadd8 r0, r1, r2 :: rd 0x3819bbb5 rm 0x256bfdd6, rn 0x13aebedf, carryin 0, cpsr 0x00070000       ge[3:0]=0111
+uadd8 r0, r1, r2 :: rd 0x1b2b3c05 rm 0xc02a0c05, rn 0x5b013000, carryin 0, cpsr 0x00080000       ge[3:0]=1000
+uadd8 r0, r1, r2 :: rd 0xdbc459b0 rm 0xee2fa46e, rn 0xed95b542, carryin 0, cpsr 0x000a0000       ge[3:0]=1010
+uadd8 r0, r1, r2 :: rd 0xf7623808 rm 0x97a7da20, rn 0x60bb5ee8, carryin 0, cpsr 0x00070000       ge[3:0]=0111
+uadd8 r0, r1, r2 :: rd 0x7b31df4a rm 0xa231d5e6, rn 0xd9000a64, carryin 0, cpsr 0x00090000       ge[3:0]=1001
+uadd8 r0, r1, r2 :: rd 0x72302af1 rm 0x10e1968a, rn 0x624f9467, carryin 0, cpsr 0x00060000       ge[3:0]=0110
+uadd8 r0, r1, r2 :: rd 0xb6cedf04 rm 0x0e089270, rn 0xa8c64d94, carryin 0, cpsr 0x00010000       ge[3:0]=0001
+uadd8 r0, r1, r2 :: rd 0x09dd64ff rm 0x9e8e0185, rn 0x6b4f637a, carryin 0, cpsr 0x00080000       ge[3:0]=1000
+uadd8 r0, r1, r2 :: rd 0x418be5e7 rm 0x3096f12e, rn 0x11f5f4b9, carryin 0, cpsr 0x00060000       ge[3:0]=0110
+uadd8 r0, r1, r2 :: rd 0x0ac31feb rm 0xffc134df, rn 0x0b02eb0c, carryin 0, cpsr 0x000a0000       ge[3:0]=1010
+uadd8 r0, r1, r2 :: rd 0xb932d245 rm 0xe444dc25, rn 0xd5eef620, carryin 0, cpsr 0x000e0000       ge[3:0]=1110
+uadd8 r0, r1, r2 :: rd 0xa8fa218b rm 0x06ea9b2a, rn 0xa2108661, carryin 0, cpsr 0x00020000       ge[3:0]=0010
+uadd8 r0, r1, r2 :: rd 0x5b3d09b6 rm 0x448f3a5f, rn 0x17aecf57, carryin 0, cpsr 0x00060000       ge[3:0]=0110
+uadd8 r0, r1, r2 :: rd 0x4ab260a3 rm 0x4b0c2337, rn 0xffa63d6c, carryin 0, cpsr 0x00080000       ge[3:0]=1000
+uadd8 r0, r1, r2 :: rd 0x01a81f4f rm 0xf91d5f56, rn 0x088bc0f9, carryin 0, cpsr 0x000b0000       ge[3:0]=1011
+uadd8 r0, r1, r2 :: rd 0xe7f2fb84 rm 0xf808434e, rn 0xefeab836, carryin 0, cpsr 0x00080000       ge[3:0]=1000
+---------------- USUB8 ----------------- 
+usub8 r0, r1, r2 :: rd 0x00f1fffc rm 0x0009ffff, rn 0x00180003, carryin 0, cpsr 0x000b0000       ge[3:0]=1011
+usub8 r0, r1, r2 :: rd 0x000f0104 rm 0x00180003, rn 0x0009ffff, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+usub8 r0, r1, r2 :: rd 0x0104000f rm 0x00030018, rn 0xffff0009, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+usub8 r0, r1, r2 :: rd 0xfffc00f1 rm 0xffff0009, rn 0x00030018, carryin 0, cpsr 0x000e0000       ge[3:0]=1110
+usub8 r0, r1, r2 :: rd 0x0100040f rm 0x00000318, rn 0xff00ff09, carryin 0, cpsr 0x00050000       ge[3:0]=0101
+usub8 r0, r1, r2 :: rd 0xfffc00f1 rm 0xffff0009, rn 0x00030018, carryin 0, cpsr 0x000e0000       ge[3:0]=1110
+usub8 r0, r1, r2 :: rd 0x01fb040f rm 0x00020318, rn 0xff07ff09, carryin 0, cpsr 0x00010000       ge[3:0]=0001
+usub8 r0, r1, r2 :: rd 0xff05fcf1 rm 0xff07ff09, rn 0x00020318, carryin 0, cpsr 0x000e0000       ge[3:0]=1110
+usub8 r0, r1, r2 :: rd 0x0edd2e96 rm 0xd83b849b, rn 0xca5e5605, carryin 0, cpsr 0x000b0000       ge[3:0]=1011
+usub8 r0, r1, r2 :: rd 0xbc54a9aa rm 0x0cdafabe, rn 0x50865114, carryin 0, cpsr 0x00070000       ge[3:0]=0111
+usub8 r0, r1, r2 :: rd 0xbd1665e6 rm 0x2738f0ff, rn 0x6a228b19, carryin 0, cpsr 0x00070000       ge[3:0]=0111
+usub8 r0, r1, r2 :: rd 0xd15bebe8 rm 0xfaceab39, rn 0x2973c051, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+usub8 r0, r1, r2 :: rd 0x4e6a7cb7 rm 0xa3e6f759, rn 0x557c7ba2, carryin 0, cpsr 0x000e0000       ge[3:0]=1110
+usub8 r0, r1, r2 :: rd 0xd7b27658 rm 0x72f33509, rn 0x9b41bfb1, carryin 0, cpsr 0x00040000       ge[3:0]=0100
+usub8 r0, r1, r2 :: rd 0x7a8a604e rm 0xa5ec1aa8, rn 0x2b62ba5a, carryin 0, cpsr 0x000d0000       ge[3:0]=1101
+usub8 r0, r1, r2 :: rd 0x19d3c68b rm 0x6ebd04d9, rn 0x55ea3e4e, carryin 0, cpsr 0x00090000       ge[3:0]=1001
+usub8 r0, r1, r2 :: rd 0x470fce95 rm 0x2eaea305, rn 0xe79fd570, carryin 0, cpsr 0x00040000       ge[3:0]=0100
+usub8 r0, r1, r2 :: rd 0x55ff70a0 rm 0x22b65db1, rn 0xcdb7ed11, carryin 0, cpsr 0x00010000       ge[3:0]=0001
+usub8 r0, r1, r2 :: rd 0x49b6bcc7 rm 0x776c41c7, rn 0x2eb68500, carryin 0, cpsr 0x00090000       ge[3:0]=1001
+usub8 r0, r1, r2 :: rd 0x0f1431e4 rm 0xe50dd77c, rn 0xd6f9a698, carryin 0, cpsr 0x000a0000       ge[3:0]=1010
+usub8 r0, r1, r2 :: rd 0x1e3e5e64 rm 0x0be36f70, rn 0xeda5110c, carryin 0, cpsr 0x00070000       ge[3:0]=0111
+usub8 r0, r1, r2 :: rd 0x14660db9 rm 0xebbff82b, rn 0xd759eb72, carryin 0, cpsr 0x000e0000       ge[3:0]=1110
+usub8 r0, r1, r2 :: rd 0x77fecf8e rm 0x50c28082, rn 0xd9c4b1f4, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+usub8 r0, r1, r2 :: rd 0x75f87b6f rm 0x17962e8f, rn 0xa29eb320, carryin 0, cpsr 0x00010000       ge[3:0]=0001
+usub8 r0, r1, r2 :: rd 0xf654ff30 rm 0xc57243b7, rn 0xcf1e4487, carryin 0, cpsr 0x00050000       ge[3:0]=0101
+usub8 r0, r1, r2 :: rd 0x8ca36d9d rm 0x7eb226ac, rn 0xf20fb90f, carryin 0, cpsr 0x00050000       ge[3:0]=0101
+usub8 r0, r1, r2 :: rd 0x01cbe0d1 rm 0xbce0f026, rn 0xbb151055, carryin 0, cpsr 0x000e0000       ge[3:0]=1110
+usub8 r0, r1, r2 :: rd 0x10013280 rm 0xa5757252, rn 0x957440d2, carryin 0, cpsr 0x000e0000       ge[3:0]=1110
+usub8 r0, r1, r2 :: rd 0x82190050 rm 0xf4a477c1, rn 0x728b7771, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+usub8 r0, r1, r2 :: rd 0x85361a2e rm 0x76723a21, rn 0xf13c20f3, carryin 0, cpsr 0x00060000       ge[3:0]=0110
+usub8 r0, r1, r2 :: rd 0xee978e94 rm 0x74d01105, rn 0x86398371, carryin 0, cpsr 0x00040000       ge[3:0]=0100
+usub8 r0, r1, r2 :: rd 0xbe5743b4 rm 0xc1273e2c, rn 0x03d0fb78, carryin 0, cpsr 0x00080000       ge[3:0]=1000
+usub8 r0, r1, r2 :: rd 0x0dc7dbd7 rm 0xdd9b7653, rn 0xd0d49b7c, carryin 0, cpsr 0x00080000       ge[3:0]=1000
+usub8 r0, r1, r2 :: rd 0x67b1e579 rm 0xdde62fd1, rn 0x76354a58, carryin 0, cpsr 0x000d0000       ge[3:0]=1101
+usub8 r0, r1, r2 :: rd 0x2457ebdf rm 0xc3fb4a96, rn 0x9fa45fb7, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+usub8 r0, r1, r2 :: rd 0x2c2f526a rm 0xa1a10f56, rn 0x7572bdec, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+usub8 r0, r1, r2 :: rd 0x4dd8b123 rm 0x4b7d4fd9, rn 0xfea59eb6, carryin 0, cpsr 0x00010000       ge[3:0]=0001
+usub8 r0, r1, r2 :: rd 0xaba74f6c rm 0x9d0ddffc, rn 0xf2669090, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+usub8 r0, r1, r2 :: rd 0x9363dc09 rm 0x4f82d17c, rn 0xbc1ff573, carryin 0, cpsr 0x00050000       ge[3:0]=0101
+usub8 r0, r1, r2 :: rd 0xd4c2f5bc rm 0x08215ca2, rn 0x345f67e6, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+usub8 r0, r1, r2 :: rd 0xb3fcbe52 rm 0xf23595d0, rn 0x3f39d77e, carryin 0, cpsr 0x00090000       ge[3:0]=1001
+usub8 r0, r1, r2 :: rd 0xf7170cfd rm 0xf244c158, rn 0xfb2db55b, carryin 0, cpsr 0x00060000       ge[3:0]=0110
+usub8 r0, r1, r2 :: rd 0x12bd3ff7 rm 0x256bfdd6, rn 0x13aebedf, carryin 0, cpsr 0x000a0000       ge[3:0]=1010
+usub8 r0, r1, r2 :: rd 0x6529dc05 rm 0xc02a0c05, rn 0x5b013000, carryin 0, cpsr 0x000d0000       ge[3:0]=1101
+usub8 r0, r1, r2 :: rd 0x019aef2c rm 0xee2fa46e, rn 0xed95b542, carryin 0, cpsr 0x00090000       ge[3:0]=1001
+usub8 r0, r1, r2 :: rd 0x37ec7c38 rm 0x97a7da20, rn 0x60bb5ee8, carryin 0, cpsr 0x000a0000       ge[3:0]=1010
+usub8 r0, r1, r2 :: rd 0xc931cb82 rm 0xa231d5e6, rn 0xd9000a64, carryin 0, cpsr 0x00070000       ge[3:0]=0111
+usub8 r0, r1, r2 :: rd 0xae920223 rm 0x10e1968a, rn 0x624f9467, carryin 0, cpsr 0x00070000       ge[3:0]=0111
+usub8 r0, r1, r2 :: rd 0x664245dc rm 0x0e089270, rn 0xa8c64d94, carryin 0, cpsr 0x00020000       ge[3:0]=0010
+usub8 r0, r1, r2 :: rd 0x333f9e0b rm 0x9e8e0185, rn 0x6b4f637a, carryin 0, cpsr 0x000d0000       ge[3:0]=1101
+usub8 r0, r1, r2 :: rd 0x1fa1fd75 rm 0x3096f12e, rn 0x11f5f4b9, carryin 0, cpsr 0x00080000       ge[3:0]=1000
+usub8 r0, r1, r2 :: rd 0xf4bf49d3 rm 0xffc134df, rn 0x0b02eb0c, carryin 0, cpsr 0x000d0000       ge[3:0]=1101
+usub8 r0, r1, r2 :: rd 0x0f56e605 rm 0xe444dc25, rn 0xd5eef620, carryin 0, cpsr 0x00090000       ge[3:0]=1001
+usub8 r0, r1, r2 :: rd 0x64da15c9 rm 0x06ea9b2a, rn 0xa2108661, carryin 0, cpsr 0x00060000       ge[3:0]=0110
+usub8 r0, r1, r2 :: rd 0x2de16b08 rm 0x448f3a5f, rn 0x17aecf57, carryin 0, cpsr 0x00090000       ge[3:0]=1001
+usub8 r0, r1, r2 :: rd 0x4c66e6cb rm 0x4b0c2337, rn 0xffa63d6c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+usub8 r0, r1, r2 :: rd 0xf1929f5d rm 0xf91d5f56, rn 0x088bc0f9, carryin 0, cpsr 0x00080000       ge[3:0]=1000
+usub8 r0, r1, r2 :: rd 0x091e8b18 rm 0xf808434e, rn 0xefeab836, carryin 0, cpsr 0x00090000       ge[3:0]=1001
+---------------- QADD16 ---------------- 
+qadd16 r0, r1, r2 :: rd 0x00210002 rm 0x0009ffff, rn 0x00180003, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0x00210002 rm 0x00180003, rn 0x0009ffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0x00020021 rm 0x00030018, rn 0xffff0009, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0x00020021 rm 0xffff0009, rn 0x00030018, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0xa299daa0 rm 0xd83b849b, rn 0xca5e5605, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0x5d604bd2 rm 0x0cdafabe, rn 0x50865114, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0x7fff8000 rm 0x2738f0ff, rn 0x6a228b19, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0x24418000 rm 0xfaceab39, rn 0x2973c051, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0xf96272fb rm 0xa3e6f759, rn 0x557c7ba2, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0x0e34f4ba rm 0x72f33509, rn 0x9b41bfb1, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0xd14ed502 rm 0xa5ec1aa8, rn 0x2b62ba5a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0x7fff4327 rm 0x6ebd04d9, rn 0x55ea3e4e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0x164d8000 rm 0x2eaea305, rn 0xe79fd570, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0xf06d4ac2 rm 0x22b65db1, rn 0xcdb7ed11, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0x7fffc6c7 rm 0x776c41c7, rn 0x2eb68500, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0xbc068000 rm 0xe50dd77c, rn 0xd6f9a698, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0xf9887fff rm 0x0be36f70, rn 0xeda5110c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0xc318e39d rm 0xebbff82b, rn 0xd759eb72, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0x2a868000 rm 0x50c28082, rn 0xd9c4b1f4, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0xba34e1af rm 0x17962e8f, rn 0xa29eb320, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0x94907fff rm 0xc57243b7, rn 0xcf1e4487, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0x70c1dfbb rm 0x7eb226ac, rn 0xf20fb90f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0x8000007b rm 0xbce0f026, rn 0xbb151055, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0x80007fff rm 0xa5757252, rn 0x957440d2, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0x672f7fff rm 0xf4a477c1, rn 0x728b7771, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0x67ae5b14 rm 0x76723a21, rn 0xf13c20f3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0xfb099476 rm 0x74d01105, rn 0x86398371, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0xc4f739a4 rm 0xc1273e2c, rn 0x03d0fb78, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0xae6f11cf rm 0xdd9b7653, rn 0xd0d49b7c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0x541b7a29 rm 0xdde62fd1, rn 0x76354a58, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0x80007fff rm 0xc3fb4a96, rn 0x9fa45fb7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0x1713cd42 rm 0xa1a10f56, rn 0x7572bdec, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0x4a22ee8f rm 0x4b7d4fd9, rn 0xfea59eb6, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0x8f738000 rm 0x9d0ddffc, rn 0xf2669090, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0x0ba1c6ef rm 0x4f82d17c, rn 0xbc1ff573, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0x3c807fff rm 0x08215ca2, rn 0x345f67e6, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0x316e8000 rm 0xf23595d0, rn 0x3f39d77e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0xed718000 rm 0xf244c158, rn 0xfb2db55b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0x3919bcb5 rm 0x256bfdd6, rn 0x13aebedf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0x1b2b3c05 rm 0xc02a0c05, rn 0x5b013000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0xdbc48000 rm 0xee2fa46e, rn 0xed95b542, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0xf8623908 rm 0x97a7da20, rn 0x60bb5ee8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0x8000e04a rm 0xa231d5e6, rn 0xd9000a64, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0x73308000 rm 0x10e1968a, rn 0x624f9467, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0xb6cee004 rm 0x0e089270, rn 0xa8c64d94, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0x09dd64ff rm 0x9e8e0185, rn 0x6b4f637a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0x428be5e7 rm 0x3096f12e, rn 0x11f5f4b9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0x0ac31feb rm 0xffc134df, rn 0x0b02eb0c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0xba32d245 rm 0xe444dc25, rn 0xd5eef620, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0xa8fa8000 rm 0x06ea9b2a, rn 0xa2108661, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0x5c3d09b6 rm 0x448f3a5f, rn 0x17aecf57, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0x4ab260a3 rm 0x4b0c2337, rn 0xffa63d6c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0x01a8204f rm 0xf91d5f56, rn 0x088bc0f9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd16 r0, r1, r2 :: rd 0xe7f2fb84 rm 0xf808434e, rn 0xefeab836, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+---------------- QSUB16 ---------------- 
+qsub16 r0, r1, r2 :: rd 0xfff1fffc rm 0x0009ffff, rn 0x00180003, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0x000f0004 rm 0x00180003, rn 0x0009ffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0x0004000f rm 0x00030018, rn 0xffff0009, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0xfffcfff1 rm 0xffff0009, rn 0x00030018, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0x0ddd8000 rm 0xd83b849b, rn 0xca5e5605, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0xbc54a9aa rm 0x0cdafabe, rn 0x50865114, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0xbd1665e6 rm 0x2738f0ff, rn 0x6a228b19, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0xd15beae8 rm 0xfaceab39, rn 0x2973c051, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0x80008000 rm 0xa3e6f759, rn 0x557c7ba2, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0x7fff7558 rm 0x72f33509, rn 0x9b41bfb1, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0x8000604e rm 0xa5ec1aa8, rn 0x2b62ba5a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0x18d3c68b rm 0x6ebd04d9, rn 0x55ea3e4e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0x470fcd95 rm 0x2eaea305, rn 0xe79fd570, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0x54ff70a0 rm 0x22b65db1, rn 0xcdb7ed11, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0x48b67fff rm 0x776c41c7, rn 0x2eb68500, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0x0e1430e4 rm 0xe50dd77c, rn 0xd6f9a698, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0x1e3e5e64 rm 0x0be36f70, rn 0xeda5110c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0x14660cb9 rm 0xebbff82b, rn 0xd759eb72, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0x76fece8e rm 0x50c28082, rn 0xd9c4b1f4, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0x74f87b6f rm 0x17962e8f, rn 0xa29eb320, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0xf654ff30 rm 0xc57243b7, rn 0xcf1e4487, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0x7fff6d9d rm 0x7eb226ac, rn 0xf20fb90f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0x01cbdfd1 rm 0xbce0f026, rn 0xbb151055, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0x10013180 rm 0xa5757252, rn 0x957440d2, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0x82190050 rm 0xf4a477c1, rn 0x728b7771, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0x7fff192e rm 0x76723a21, rn 0xf13c20f3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0x7fff7fff rm 0x74d01105, rn 0x86398371, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0xbd5742b4 rm 0xc1273e2c, rn 0x03d0fb78, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0x0cc77fff rm 0xdd9b7653, rn 0xd0d49b7c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0x8000e579 rm 0xdde62fd1, rn 0x76354a58, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0x2457eadf rm 0xc3fb4a96, rn 0x9fa45fb7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0x8000516a rm 0xa1a10f56, rn 0x7572bdec, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0x4cd87fff rm 0x4b7d4fd9, rn 0xfea59eb6, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0xaaa74f6c rm 0x9d0ddffc, rn 0xf2669090, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0x7fffdc09 rm 0x4f82d17c, rn 0xbc1ff573, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0xd3c2f4bc rm 0x08215ca2, rn 0x345f67e6, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0xb2fcbe52 rm 0xf23595d0, rn 0x3f39d77e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0xf7170bfd rm 0xf244c158, rn 0xfb2db55b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0x11bd3ef7 rm 0x256bfdd6, rn 0x13aebedf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0x8000dc05 rm 0xc02a0c05, rn 0x5b013000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0x009aef2c rm 0xee2fa46e, rn 0xed95b542, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0x80008000 rm 0x97a7da20, rn 0x60bb5ee8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0xc931cb82 rm 0xa231d5e6, rn 0xd9000a64, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0xae920223 rm 0x10e1968a, rn 0x624f9467, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0x65428000 rm 0x0e089270, rn 0xa8c64d94, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0x80009e0b rm 0x9e8e0185, rn 0x6b4f637a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0x1ea1fc75 rm 0x3096f12e, rn 0x11f5f4b9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0xf4bf49d3 rm 0xffc134df, rn 0x0b02eb0c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0x0e56e605 rm 0xe444dc25, rn 0xd5eef620, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0x64da14c9 rm 0x06ea9b2a, rn 0xa2108661, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0x2ce16b08 rm 0x448f3a5f, rn 0x17aecf57, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0x4b66e5cb rm 0x4b0c2337, rn 0xffa63d6c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0xf0927fff rm 0xf91d5f56, rn 0x088bc0f9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub16 r0, r1, r2 :: rd 0x081e7fff rm 0xf808434e, rn 0xefeab836, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+----------------- QSAX ----------------- 
+qsax r0, r1, r2 :: rd 0x7fff7fff rm 0x7fff7fff, rn 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x7ffe7fff rm 0x7fff7fff, rn 0x00010001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x80008000 rm 0x80008000, rn 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x80018000 rm 0x80008000, rn 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x00610067 rm 0x00640064, rn 0x00030003, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0xff9f0067 rm 0x00030003, rn 0x00640064, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x82368000 rm 0xd83b849b, rn 0xca5e5605, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0xbbc64b44 rm 0x0cdafabe, rn 0x50865114, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x7fff5b21 rm 0x2738f0ff, rn 0x6a228b19, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x3a7dd4ac rm 0xfaceab39, rn 0x2973c051, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x80004cd5 rm 0xa3e6f759, rn 0x557c7ba2, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x7fffd04a rm 0x72f33509, rn 0x9b41bfb1, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0xeb92460a rm 0xa5ec1aa8, rn 0x2b62ba5a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x306f5ac3 rm 0x6ebd04d9, rn 0x55ea3e4e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x593e8aa4 rm 0x2eaea305, rn 0xe79fd570, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x35a52b68 rm 0x22b65db1, rn 0xcdb7ed11, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x7fff707d rm 0x776c41c7, rn 0x2eb68500, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x3e75ae75 rm 0xe50dd77c, rn 0xd6f9a698, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0xfad75d15 rm 0x0be36f70, rn 0xeda5110c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x004dcf84 rm 0xebbff82b, rn 0xd759eb72, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x7fff8000 rm 0x50c28082, rn 0xd9c4b1f4, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x6476d12d rm 0x17962e8f, rn 0xa29eb320, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x80eb12d5 rm 0xc57243b7, rn 0xcf1e4487, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x7fff18bb rm 0x7eb226ac, rn 0xf20fb90f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0xac8bab3b rm 0xbce0f026, rn 0xbb151055, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x800007c6 rm 0xa5757252, rn 0x957440d2, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x80007fff rm 0xf4a477c1, rn 0x728b7771, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x557f2b5d rm 0x76723a21, rn 0xf13c20f3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x7fff973e rm 0x74d01105, rn 0x86398371, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0xc5af41fc rm 0xc1273e2c, rn 0x03d0fb78, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x421f4727 rm 0xdd9b7653, rn 0xd0d49b7c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x938e7fff rm 0xdde62fd1, rn 0x76354a58, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x8000ea3a rm 0xc3fb4a96, rn 0x9fa45fb7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0xe3b57fff rm 0xa1a10f56, rn 0x7572bdec, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x7fff4e7e rm 0x4b7d4fd9, rn 0xfea59eb6, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x0c7dd262 rm 0x9d0ddffc, rn 0xf2669090, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x5a0f8d9b rm 0x4f82d17c, rn 0xbc1ff573, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0xa03b7fff rm 0x08215ca2, rn 0x345f67e6, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x1ab7d509 rm 0xf23595d0, rn 0x3f39d77e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x3ce9bc85 rm 0xf244c158, rn 0xfb2db55b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x668c1184 rm 0x256bfdd6, rn 0x13aebedf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x902a6706 rm 0xc02a0c05, rn 0x5b013000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x38ed9203 rm 0xee2fa46e, rn 0xed95b542, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x80003adb rm 0x97a7da20, rn 0x60bb5ee8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x97cdaee6 rm 0xa231d5e6, rn 0xd9000a64, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x7c7af8d9 rm 0x10e1968a, rn 0x624f9467, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0xc0748000 rm 0x0e089270, rn 0xa8c64d94, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x80006cd4 rm 0x9e8e0185, rn 0x6b4f637a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x3bdd0323 rm 0x3096f12e, rn 0x11f5f4b9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x14b53fe1 rm 0xffc134df, rn 0x0b02eb0c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0xee24b213 rm 0xe444dc25, rn 0xd5eef620, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x7fff8000 rm 0x06ea9b2a, rn 0xa2108661, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x7538520d rm 0x448f3a5f, rn 0x17aecf57, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x0da022dd rm 0x4b0c2337, rn 0xffa63d6c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x382467e1 rm 0xf91d5f56, rn 0x088bc0f9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsax r0, r1, r2 :: rd 0x3fd23338 rm 0xf808434e, rn 0xefeab836, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+----------------- QASX ----------------- 
+qasx r0, r1, r2 :: rd 0x7fff7fff rm 0x7fff7fff, rn 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0x7fff7ffe rm 0x7fff7fff, rn 0x00010001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0x80008000 rm 0x80008000, rn 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0x80008001 rm 0x80008000, rn 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0x00670061 rm 0x00640064, rn 0x00030003, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0x0067ff9f rm 0x00030003, rn 0x00640064, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0x2e40ba3d rm 0xd83b849b, rn 0xca5e5605, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0x5deeaa38 rm 0x0cdafabe, rn 0x50865114, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0xb25186dd rm 0x2738f0ff, rn 0x6a228b19, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0xbb1f81c6 rm 0xfaceab39, rn 0x2973c051, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0x1f88a1dd rm 0xa3e6f759, rn 0x557c7ba2, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0x32a47fff rm 0x72f33509, rn 0x9b41bfb1, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0x8000ef46 rm 0xa5ec1aa8, rn 0x2b62ba5a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0x7fffaeef rm 0x6ebd04d9, rn 0x55ea3e4e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0x041ebb66 rm 0x2eaea305, rn 0xe79fd570, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0x0fc77fff rm 0x22b65db1, rn 0xcdb7ed11, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0xfc6c1311 rm 0x776c41c7, rn 0x2eb68500, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0x8ba50083 rm 0xe50dd77c, rn 0xd6f9a698, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0x1cef7fff rm 0x0be36f70, rn 0xeda5110c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0xd73120d2 rm 0xebbff82b, rn 0xd759eb72, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0x02b6a6be rm 0x50c28082, rn 0xd9c4b1f4, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0xcab67fff rm 0x17962e8f, rn 0xa29eb320, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0x09f97499 rm 0xc57243b7, rn 0xcf1e4487, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0x37c1349d rm 0x7eb226ac, rn 0xf20fb90f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0xcd353511 rm 0xbce0f026, rn 0xbb151055, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0xe6477fff rm 0xa5757252, rn 0x957440d2, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0x6c150536 rm 0xf4a477c1, rn 0x728b7771, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0x7fff48e5 rm 0x76723a21, rn 0xf13c20f3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0xf8417fff rm 0x74d01105, rn 0x86398371, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0xbc9f3a5c rm 0xc1273e2c, rn 0x03d0fb78, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0x80007fff rm 0xdd9b7653, rn 0xd0d49b7c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0x283eb99c rm 0xdde62fd1, rn 0x76354a58, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0x23b27fff rm 0xc3fb4a96, rn 0x9fa45fb7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0x800099e4 rm 0xa1a10f56, rn 0x7572bdec, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0xea335134 rm 0x4b7d4fd9, rn 0xfea59eb6, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0x8000ed96 rm 0x9d0ddffc, rn 0xf2669090, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0x44f5155d rm 0x4f82d17c, rn 0xbc1ff573, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0x70072843 rm 0x08215ca2, rn 0x345f67e6, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0xc9b38000 rm 0xf23595d0, rn 0x3f39d77e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0xa79fc62b rm 0xf244c158, rn 0xfb2db55b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0xe44aea28 rm 0x256bfdd6, rn 0x13aebedf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0xf02ab104 rm 0xc02a0c05, rn 0x5b013000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0xa371b6d9 rm 0xee2fa46e, rn 0xed95b542, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0xf68f8000 rm 0x97a7da20, rn 0x60bb5ee8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0xac95fce6 rm 0xa231d5e6, rn 0xd9000a64, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0xa5488000 rm 0x10e1968a, rn 0x624f9467, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0x5b9ce9aa rm 0x0e089270, rn 0xa8c64d94, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0x02089636 rm 0x9e8e0185, rn 0x6b4f637a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0x254fdf39 rm 0x3096f12e, rn 0x11f5f4b9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0xeacd29dd rm 0xffc134df, rn 0x0b02eb0c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0xda640637 rm 0xe444dc25, rn 0xd5eef620, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0x8d4bf91a rm 0x06ea9b2a, rn 0xa2108661, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0x13e622b1 rm 0x448f3a5f, rn 0x17aecf57, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0x7fff2391 rm 0x4b0c2337, rn 0xffa63d6c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0xba1656cb rm 0xf91d5f56, rn 0x088bc0f9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qasx r0, r1, r2 :: rd 0xb03e5364 rm 0xf808434e, rn 0xefeab836, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+----------------- SMUAD ----------------- 
+smuad r0, r1, r2 :: rd 0x80000000 rm 0x80008000, rn 0x80008000, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0x00000000 rm 0x7fff7fff, rn 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0x0000fffe rm 0x7fff7fff, rn 0x00010001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0x00010000 rm 0x80008000, rn 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0x00000258 rm 0x00640064, rn 0x00030003, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0x00000003 rm 0xffffffff, rn 0xfffc0001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0x00002fe2 rm 0xfff70fff, rn 0x00030003, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0xdede9cb1 rm 0xd83b849b, rn 0xca5e5605, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0x02608ef4 rm 0x0cdafabe, rn 0x50865114, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0x171c6357 rm 0x2738f0ff, rn 0x6a228b19, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0x143f9593 rm 0xfaceab39, rn 0x2973c051, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0xdd110aba rm 0xa3e6f759, rn 0x557c7ba2, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0xc570b2ec rm 0x72f33509, rn 0x9b41bfb1, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0xe97b9768 rm 0xa5ec1aa8, rn 0x2b62ba5a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0x265801e0 rm 0x6ebd04d9, rn 0x55ea3e4e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0x0b037b42 rm 0x2eaea305, rn 0xe79fd570, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0xf240a3db rm 0x22b65db1, rn 0xcdb7ed11, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0xf62fb1c8 rm 0x776c41c7, rn 0x2eb68500, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0x12780145 rm 0xe50dd77c, rn 0xd6f9a698, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0x0691798f rm 0x0be36f70, rn 0xeda5110c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0x03d85a8d rm 0xebbff82b, rn 0xd759eb72, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0x1acea470 rm 0x50c28082, rn 0xd9c4b1f4, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0xe96a4974 rm 0x17962e8f, rn 0xa29eb320, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0x1d4ea2dd rm 0xc57243b7, rn 0xcf1e4487, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0xee624082 rm 0x7eb226ac, rn 0xf20fb90f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0x110f3afe rm 0xbce0f026, rn 0xbb151055, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0x42a15948 rm 0xa5757252, rn 0x957440d2, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0x32ca703d rm 0xf4a477c1, rn 0x728b7771, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0x00a6620b rm 0x76723a21, rn 0xf13c20f3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0xc026f485 rm 0x74d01105, rn 0x86398371, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0xfdf6ad50 rm 0xc1273e2c, rn 0x03d0fb78, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0xd7e10590 rm 0xdd9b7653, rn 0xd0d49b7c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0xfe23ce76 rm 0xdde62fd1, rn 0x76354a58, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0x327a6d06 rm 0xc3fb4a96, rn 0x9fa45fb7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0xd0bf2ffa rm 0xa1a10f56, rn 0x7572bdec, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0xe1415fd7 rm 0x4b7d4fd9, rn 0xfea59eb6, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0x13319aee rm 0x9d0ddffc, rn 0xf2669090, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0xecd5df72 rm 0x4f82d17c, rn 0xbc1ff573, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0x27421fcb rm 0x08215ca2, rn 0x345f67e6, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0x0d65652d rm 0xf23595d0, rn 0x3f39d77e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0x1287343c rm 0xf244c158, rn 0xfb2db55b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0x036d5124 rm 0x256bfdd6, rn 0x13aebedf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0xeb8f9e2a rm 0xc02a0c05, rn 0x5b013000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0x1c044eb7 rm 0xee2fa46e, rn 0xed95b542, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0xca87d3fd rm 0x97a7da20, rn 0x60bb5ee8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0x0c9512d8 rm 0xa231d5e6, rn 0xd9000a64, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0x32ceb0f5 rm 0x10e1968a, rn 0x624f9467, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0xda0472f0 rm 0x0e089270, rn 0xa8c64d94, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0xd7be7034 rm 0x9e8e0185, rn 0x6b4f637a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0x040f97cc rm 0x3096f12e, rn 0x11f5f4b9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0xfba979f6 rm 0xffc134df, rn 0x0b02eb0c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0x05f0ddd8 rm 0xe444dc25, rn 0xd5eef620, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0x2d5e498a rm 0x06ea9b2a, rn 0xa2108661, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0xfb3f197b rm 0x448f3a5f, rn 0x17aecf57, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0x085893fc rm 0x4b0c2337, rn 0xffa63d6c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0xe84c6565 rm 0xf91d5f56, rn 0x088bc0f9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuad r0, r1, r2 :: rd 0xeda071c4 rm 0xf808434e, rn 0xefeab836, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+----------------- SMUADX ---------------- 
+smuadx r0, r1, r2 :: rd 0x80000000 rm 0x80008000, rn 0x80008000, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0x00000000 rm 0x7fff7fff, rn 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0x0000fffe rm 0x7fff7fff, rn 0x00010001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0x00010000 rm 0x80008000, rn 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0x00000258 rm 0x00640064, rn 0x00030003, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0x00000003 rm 0xffffffff, rn 0xfffc0001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0x00002fe2 rm 0xfff70fff, rn 0x00030003, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0x0c7d0a11 rm 0xd83b849b, rn 0xca5e5605, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0x026a9a7c rm 0x0cdafabe, rn 0x50865114, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0xe7ded456 rm 0x2738f0ff, rn 0x6a228b19, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0xf390e6c9 rm 0xfaceab39, rn 0x2973c051, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0xd0a195a8 rm 0xa3e6f759, rn 0x557c7ba2, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0xce40b14c rm 0x72f33509, rn 0x9b41bfb1, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0x1d063948 rm 0xa5ec1aa8, rn 0x2b62ba5a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0x1c93fef0 rm 0x6ebd04d9, rn 0x55ea3e4e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0x0117f53b rm 0x2eaea305, rn 0xe79fd570, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0xeb07829d rm 0x22b65db1, rn 0xcdb7ed11, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0xd29fa17a rm 0x776c41c7, rn 0x2eb68500, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0x0fe7ad54 rm 0xe50dd77c, rn 0xd6f9a698, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0xf8cd24d4 rm 0x0be36f70, rn 0xeda5110c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0x02deb401 rm 0xebbff82b, rn 0xd759eb72, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0xfa6bb070 rm 0x50c28082, rn 0xd9c4b1f4, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0xe7ef0f02 rm 0x17962e8f, rn 0xa29eb320, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0xe3654f90 rm 0xc57243b7, rn 0xcf1e4487, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0xdac8ea82 rm 0x7eb226ac, rn 0xf20fb90f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0xfffc2b7e rm 0xbce0f026, rn 0xbb151055, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0xb97e8122 rm 0xa5757252, rn 0x957440d2, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0x3048302f rm 0xf4a477c1, rn 0x728b7771, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0x0be45ef2 rm 0x76723a21, rn 0xf13c20f3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0xbf1167ed rm 0x74d01105, rn 0x86398371, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0x0209cf08 rm 0xc1273e2c, rn 0x03d0fb78, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0xf7b39cd0 rm 0xdd9b7653, rn 0xd0d49b7c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0x0c2cff55 rm 0xdde62fd1, rn 0x76354a58, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0xcd7c2f85 rm 0xc3fb4a96, rn 0x9fa45fb7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0x1f64ffb8 rm 0xa1a10f56, rn 0x7572bdec, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0xe2e395bb rm 0x4b7d4fd9, rn 0xfea59eb6, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0x2cc61db8 rm 0x9d0ddffc, rn 0xf2669090, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0x090e8f6a rm 0x4f82d17c, rn 0xbc1ff573, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0x163fdcc4 rm 0x08215ca2, rn 0x345f67e6, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0xe7f54466 rm 0xf23595d0, rn 0x3f39d77e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0x052f76a4 rm 0xf244c158, rn 0xfb2db55b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0xf6506ba9 rm 0x256bfdd6, rn 0x13aebedf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0xf84db305 rm 0xc02a0c05, rn 0x5b013000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0x0bca2d24 rm 0xee2fa46e, rn 0xed95b542, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0xcb0116b8 rm 0x97a7da20, rn 0x60bb5ee8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0x029b3b24 rm 0xa231d5e6, rn 0xd9000a64, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0xd068271d rm 0x10e1968a, rn 0x624f9467, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0x29954740 rm 0x0e089270, rn 0xa8c64d94, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0xdac588b7 rm 0x9e8e0185, rn 0x6b4f637a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0xfcd1f36c rm 0x3096f12e, rn 0x11f5f4b9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0x024b26ca rm 0xffc134df, rn 0x0b02eb0c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0x06f653e6 rm 0xe444dc25, rn 0xd5eef620, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0x21b7614a rm 0x06ea9b2a, rn 0xa2108661, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0xf85e232b rm 0x448f3a5f, rn 0x17aecf57, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0x11f523ba rm 0x4b0c2337, rn 0xffa63d6c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0x04e080e7 rm 0xf91d5f56, rn 0x088bc0f9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smuadx r0, r1, r2 :: rd 0xfe0168fc rm 0xf808434e, rn 0xefeab836, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+----------------- SMLAD ----------------- 
+smlad  r0, r1, r2, r3 :: rd 0x00000000 rm 0x7fff7fff, rn 0x00000000 rs 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0x0000ffff rm 0x7fff7fff, rn 0x00010001 rs 0x00000001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0x0001001f rm 0x80008000, rn 0xffffffff rs 0x0000001f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0x00000278 rm 0x00640064, rn 0x00030003 rs 0x00000020, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0x00000102 rm 0xffffffff, rn 0xfffc0001 rs 0x000000ff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0x000030e2 rm 0xfff70fff, rn 0x00030003 rs 0x00000100, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0x62e906cb rm 0xb8035b5b, rn 0xce0ce1ed rs 0x5f986e68, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0xbdfa058d rm 0x35232047, rn 0x146275d8 rs 0xaae3433f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0x132facec rm 0xe7aa57b4, rn 0x1584bd74 rs 0x2c07a5b4, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0x94fd1e4f rm 0x32fa0095, rn 0x36f26261 rs 0x89d2ef86, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0xd3a8b06c rm 0x8ed8287c, rn 0x02c90120 rs 0xd4b64d54, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0xfed933b9 rm 0xc53aaba9, rn 0x29300837 rs 0x0b02c58a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0xbfb7c8c7 rm 0x216158cb, rn 0x57a50a01 rs 0xb0d20777, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0x87826758 rm 0x3e2e1bd7, rn 0x3cd6cd94 rs 0x7e376198, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0xe9176301 rm 0xd5fe2dc4, rn 0xdd914bf7 rs 0xd5dc5407, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0x23a346d9 rm 0xf87b961e, rn 0x1d66879f rs 0xf2b64835, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0xaa26f4cc rm 0xd65db979, rn 0xc61b323b rs 0xae930a1a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0x18a2cb54 rm 0x5ef1f1a8, rn 0xbf73f0a5 rs 0x2fb714c9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0x7b87d52b rm 0x1ffe53d9, rn 0x815bb75b rs 0xa3268abe, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0x090f2dfd rm 0xed2cbf78, rn 0xc6ffabb6 rs 0xef9e9fd9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0x516de33a rm 0xeaa652c7, rn 0x137741f4 rs 0x3dba1164, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0xf5860663 rm 0x3ada0280, rn 0x71fbde8b rs 0xdba5bd25, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0xc743547a rm 0xda4ba05b, rn 0x90f9833d rs 0x884c0ad8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0x8f412c7f rm 0xc00b821a, rn 0x7fa1d5a6 rs 0x9a4ff1b8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0x5b9a2a7c rm 0xe1bb8606, rn 0x58293969 rs 0x81616d13, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0x3e1eae90 rm 0x51f31d95, rn 0xa3cfd624 rs 0x6077fb1f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0x460a7598 rm 0x0849a0c2, rn 0x0872f25a rs 0x40b094e2, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0x9ce3256b rm 0x17913309, rn 0xf1e03d7e rs 0x91edc21d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0x2f2d1057 rm 0x5388b5cd, rn 0x86582032 rs 0x6034078d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0xdb70b536 rm 0x181c436b, rn 0x5de41558 rs 0xccfa1c7e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0x47476ea7 rm 0x23ba1b46, rn 0x4437983c rs 0x48d06549, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0xa98d7719 rm 0xa9085781, rn 0xc6b4ac58 rs 0xb2aead21, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0x8e608a4b rm 0xc2bdf597, rn 0xdde1e6a4 rs 0x852e3a72, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0xe66cced8 rm 0x157b0dea, rn 0xf0d5ff94 rs 0xe7b87e39, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0xe9e21a30 rm 0x3edad6b6, rn 0x82aceb7a rs 0x0557c6fc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0xd4d7fe4a rm 0x6cc9bfa8, rn 0x7f808c15 rs 0x81874a02, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0x5607de5f rm 0x6b1422c7, rn 0x33921b00 rs 0x3ccad3f7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0x84b77889 rm 0xd7ce1909, rn 0x3e435701 rs 0x85fbf196, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0x949f6c87 rm 0xb4e16b6e, rn 0x6e13680a rs 0x89436f88, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0x39036479 rm 0x44858efc, rn 0x9002bc30 rs 0x390d2c2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0x9a767683 rm 0xbea121ab, rn 0x953ff6ec rs 0x80657c40, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0x21c2fb62 rm 0x6ffed89f, rn 0x3e8c49b7 rs 0x11bd07d1, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0x2473a541 rm 0x7795635d, rn 0x5e6e32dd rs 0xe4999bf2, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0x18d37e68 rm 0xec0c2f30, rn 0x5736ed46 rs 0x231348c0, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0x42a38017 rm 0x4f9ddd1b, rn 0x95bca5d8 rs 0x5765b203, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0x591d6066 rm 0xc1553709, rn 0x0112b30a rs 0x69ec0212, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0x8a977ce3 rm 0x74bd0223, rn 0x03fa9bb5 rs 0x899d9192, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0x7cb70fa8 rm 0xf52e9fbf, rn 0xb4c510a7 rs 0x7fcbe5a9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0x116c76e8 rm 0x64a365ef, rn 0x2dd01366 rs 0xf7b0b13e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0x6a0f70ed rm 0x5e4b1cbf, rn 0x44de5ca9 rs 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0x17c9dd9b rm 0x299da970, rn 0xe8108f1b rs 0xf5818cfb, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0xa4a1fbcf rm 0xcd90d604, rn 0xaa5e9444 rs 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0x7beb0ad6 rm 0xe60743c3, rn 0x7acb4de3 rs 0x73c29060, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0x183c60b5 rm 0x868e7c7d, rn 0x5f77532e rs 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0x00b7b139 rm 0x4e5e0760, rn 0x8f6d3264 rs 0x21ba2fb3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0xc79bbb47 rm 0xde99ac2f, rn 0x0be36f70 rs 0xeda5110c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlad  r0, r1, r2, r3 :: rd 0x0f5e5bec rm 0xc57243b7, rn 0xcf1e4487 rs 0xf20fb90f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+------------ SMLABB, SMLATT, SMLATB, SMLABT ------------
+smlabb r0, r1, r2, r3 :: rd 0x00000000 rm 0x00030000, rn 0x00040000 rs 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb r0, r1, r2, r3 :: rd 0x00008001 rm 0x00030001, rn 0x00040002 rs 0x00007fff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb r0, r1, r2, r3 :: rd 0xc0015ffe rm 0x00038001, rn 0x00047fff rs 0x00005fff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb r0, r1, r2, r3 :: rd 0x3fff8000 rm 0x00037fff, rn 0x00047fff rs 0x00007fff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb r0, r1, r2, r3 :: rd 0x7fff8000 rm 0x0003ffff, rn 0x0004ffff rs 0x7fff7fff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb r0, r1, r2, r3 :: rd 0x00000003 rm 0x0003fffc, rn 0x0004ffff rs 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0x54dcfca7 rm 0xb8035b5b, rn 0xce0ce1ed rs 0x5f986e68, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0xb9bef227 rm 0x35232047, rn 0x146275d8 rs 0xaae3433f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0x153b4744 rm 0xe7aa57b4, rn 0x1584bd74 rs 0x2c07a5b4, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0x8a0c31fb rm 0x32fa0095, rn 0x36f26261 rs 0x89d2ef86, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0xd4e3d8d4 rm 0x8ed8287c, rn 0x02c90120 rs 0xd4b64d54, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0x084deed9 rm 0xc53aaba9, rn 0x29300837 rs 0x0b02c58a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0xb44a4e42 rm 0x216158cb, rn 0x57a50a01 rs 0xb0d20777, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0x78bba4e4 rm 0x3e2e1bd7, rn 0x3cd6cd94 rs 0x7e376198, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0xe370e823 rm 0xd5fe2dc4, rn 0xdd914bf7 rs 0xd5dc5407, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0x248056d7 rm 0xf87b961e, rn 0x1d66879f rs 0xf2b64835, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0xa0bc6afd rm 0xd65db979, rn 0xc61b323b rs 0xae930a1a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0x30935611 rm 0x5ef1f1a8, rn 0xbf73f0a5 rs 0x2fb714c9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0x8b5b77e1 rm 0x1ffe53d9, rn 0x815bb75b rs 0xa3268abe, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0x04dde729 rm 0xed2cbf78, rn 0xc6ffabb6 rs 0xef9e9fd9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0x530d7e10 rm 0xeaa652c7, rn 0x137741f4 rs 0x3dba1164, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0xdb5218a5 rm 0x3ada0280, rn 0x71fbde8b rs 0xdba5bd25, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0xb6e8d187 rm 0xda4ba05b, rn 0x90f9833d rs 0x884c0ad8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0xaf23f094 rm 0xc00b821a, rn 0x7fa1d5a6 rs 0x9a4ff1b8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0x6606bb89 rm 0xe1bb8606, rn 0x58293969 rs 0x81616d13, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0x5ba1b213 rm 0x51f31d95, rn 0xa3cfd624 rs 0x6077fb1f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0x45c47d16 rm 0x0849a0c2, rn 0x0872f25a rs 0x40b094e2, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0x9e30058b rm 0x17913309, rn 0xf1e03d7e rs 0x91edc21d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0x56df2997 rm 0x5388b5cd, rn 0x86582032 rs 0x6034078d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0xd2991046 rm 0x181c436b, rn 0x5de41558 rs 0xccfa1c7e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0x3dc259b1 rm 0x23ba1b46, rn 0x4437983c rs 0x48d06549, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0x96166d79 rm 0xa9085781, rn 0xc6b4ac58 rs 0xb2aead21, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0x8636392e rm 0xc2bdf597, rn 0xdde1e6a4 rs 0x852e3a72, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0xe7b29f81 rm 0x157b0dea, rn 0xf0d5ff94 rs 0xe7b87e39, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0x08a72bb8 rm 0x3edad6b6, rn 0x82aceb7a rs 0x0557c6fc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0x9ea9e2ca rm 0x6cc9bfa8, rn 0x7f808c15 rs 0x81874a02, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0x4075d0f7 rm 0x6b1422c7, rn 0x33921b00 rs 0x3ccad3f7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0x8e7e199f rm 0xd7ce1909, rn 0x3e435701 rs 0x85fbf196, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0xb4ec51d4 rm 0xb4e16b6e, rn 0x6e13680a rs 0x89436f88, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0x56fd0b6f rm 0x44858efc, rn 0x9002bc30 rs 0x390d2c2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0x7f33d7e4 rm 0xbea121ab, rn 0x953ff6ec rs 0x80657c40, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0x0666387a rm 0x6ffed89f, rn 0x3e8c49b7 rs 0x11bd07d1, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0xf8578d3b rm 0x7795635d, rn 0x5e6e32dd rs 0xe4999bf2, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0x1f9f9fe0 rm 0xec0c2f30, rn 0x5736ed46 rs 0x231348c0, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0x63afa7cb rm 0x4f9ddd1b, rn 0x95bca5d8 rs 0x5765b203, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0x5960736c rm 0xc1553709, rn 0x0112b30a rs 0x69ec0212, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0x88c74551 rm 0x74bd0223, rn 0x03fa9bb5 rs 0x899d9192, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0x79890b42 rm 0xf52e9fbf, rn 0xb4c510a7 rs 0x7fcbe5a9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0xff6a0b78 rm 0x64a365ef, rn 0x2dd01366 rs 0xf7b0b13e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0x50b1bfe3 rm 0x5e4b1cbf, rn 0x44de5ca9 rs 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0x1badfbcb rm 0x299da970, rn 0xe8108f1b rs 0xf5818cfb, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0x93c2e0ef rm 0xcd90d604, rn 0xaa5e9444 rs 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0x88604d49 rm 0xe60743c3, rn 0x7acb4de3 rs 0x73c29060, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0x458622b3 rm 0x868e7c7d, rn 0x5f77532e rs 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0x232dd133 rm 0x4e5e0760, rn 0x8f6d3264 rs 0x21ba2fb3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0xc928c69c rm 0xde99ac2f, rn 0x0be36f70 rs 0xeda5110c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabb  r0, r1, r2, r3 :: rd 0x04300a90 rm 0xc57243b7, rn 0xcf1e4487 rs 0xf20fb90f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt r0, r1, r2, r3 :: rd 0x00000000 rm 0x00000003, rn 0x00000004 rs 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt r0, r1, r2, r3 :: rd 0x00008001 rm 0x00010003, rn 0x00020004 rs 0x00007fff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt r0, r1, r2, r3 :: rd 0xc0015ffe rm 0x80010003, rn 0x7fff0004 rs 0x00005fff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt r0, r1, r2, r3 :: rd 0x3fff8000 rm 0x7fff0003, rn 0x7fff0004 rs 0x00007fff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt r0, r1, r2, r3 :: rd 0x7fff8000 rm 0xffff0003, rn 0xffff0004 rs 0x7fff7fff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt r0, r1, r2, r3 :: rd 0x00000003 rm 0xfffc0003, rn 0xffff0004 rs 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0x6da4788c rm 0xb8035b5b, rn 0xce0ce1ed rs 0x5f986e68, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0xaf1e56a5 rm 0x35232047, rn 0x146275d8 rs 0xaae3433f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0x29fc0b5c rm 0xe7aa57b4, rn 0x1584bd74 rs 0x2c07a5b4, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0x94c3dbda rm 0x32fa0095, rn 0x36f26261 rs 0x89d2ef86, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0xd37b24ec rm 0x8ed8287c, rn 0x02c90120 rs 0xd4b64d54, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0x018e0a6a rm 0xc53aaba9, rn 0x29300837 rs 0x0b02c58a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0xbc3f81fc rm 0x216158cb, rn 0x57a50a01 rs 0xb0d20777, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0x8cfe240c rm 0x3e2e1bd7, rn 0x3cd6cd94 rs 0x7e376198, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0xdb82cee5 rm 0xd5fe2dc4, rn 0xdd914bf7 rs 0xd5dc5407, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0xf1d93837 rm 0xf87b961e, rn 0x1d66879f rs 0xf2b64835, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0xb7fd93e9 rm 0xd65db979, rn 0xc61b323b rs 0xae930a1a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0x17c68a0c rm 0x5ef1f1a8, rn 0xbf73f0a5 rs 0x2fb714c9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0x9352e808 rm 0x1ffe53d9, rn 0x815bb75b rs 0xa3268abe, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0xf3cfe6ad rm 0xed2cbf78, rn 0xc6ffabb6 rs 0xef9e9fd9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0x3c1a768e rm 0xeaa652c7, rn 0x137741f4 rs 0x3dba1164, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0xf5d9aae3 rm 0x3ada0280, rn 0x71fbde8b rs 0xdba5bd25, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0x98a68dcb rm 0xda4ba05b, rn 0x90f9833d rs 0x884c0ad8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0x7a6d2da3 rm 0xc00b821a, rn 0x7fa1d5a6 rs 0x9a4ff1b8, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0x76f4dc06 rm 0xe1bb8606, rn 0x58293969 rs 0x81616d13, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0x42f4f79c rm 0x51f31d95, rn 0xa3cfd624 rs 0x6077fb1f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0x40f68d64 rm 0x0849a0c2, rn 0x0872f25a rs 0x40b094e2, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0x90a0e1fd rm 0x17913309, rn 0xf1e03d7e rs 0x91edc21d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0x3881ee4d rm 0x5388b5cd, rn 0x86582032 rs 0x6034078d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0xd5d1c16e rm 0x181c436b, rn 0x5de41558 rs 0xccfa1c7e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0x52557a3f rm 0x23ba1b46, rn 0x4437983c rs 0x48d06549, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0xc625b6c1 rm 0xa9085781, rn 0xc6b4ac58 rs 0xb2aead21, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0x8d588b8f rm 0xc2bdf597, rn 0xdde1e6a4 rs 0x852e3a72, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0xe672ad90 rm 0x157b0dea, rn 0xf0d5ff94 rs 0xe7b87e39, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0xe692b574 rm 0x3edad6b6, rn 0x82aceb7a rs 0x0557c6fc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0xb7b56582 rm 0x6cc9bfa8, rn 0x7f808c15 rs 0x81874a02, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0x525ce15f rm 0x6b1422c7, rn 0x33921b00 rs 0x3ccad3f7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0x7c355080 rm 0xd7ce1909, rn 0x3e435701 rs 0x85fbf196, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0x68f68a3b rm 0xb4e16b6e, rn 0x6e13680a rs 0x89436f88, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0x1b138539 rm 0x44858efc, rn 0x9002bc30 rs 0x390d2c2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0x9ba81adf rm 0xbea121ab, rn 0x953ff6ec rs 0x80657c40, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0x2d19cab9 rm 0x6ffed89f, rn 0x3e8c49b7 rs 0x11bd07d1, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0x10b5b3f8 rm 0x7795635d, rn 0x5e6e32dd rs 0xe4999bf2, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0x1c472748 rm 0xec0c2f30, rn 0x5736ed46 rs 0x231348c0, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0x36598a4f rm 0x4f9ddd1b, rn 0x95bca5d8 rs 0x5765b203, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0x69a8ef0c rm 0xc1553709, rn 0x0112b30a rs 0x69ec0212, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0x8b6dc924 rm 0x74bd0223, rn 0x03fa9bb5 rs 0x899d9192, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0x82f9ea0f rm 0xf52e9fbf, rn 0xb4c510a7 rs 0x7fcbe5a9, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0x09b31cae rm 0x64a365ef, rn 0x2dd01366 rs 0xf7b0b13e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0x5fa7d2d6 rm 0x5e4b1cbf, rn 0x44de5ca9 rs 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0xf19d6ecb rm 0x299da970, rn 0xe8108f1b rs 0xf5818cfb, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0x92f6d2bf rm 0xcd90d604, rn 0xaa5e9444 rs 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0x674d4ded rm 0xe60743c3, rn 0x7acb4de3 rs 0x73c29060, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0xefc97b3f rm 0x868e7c7d, rn 0x5f77532e rs 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0xff440fb9 rm 0x4e5e0760, rn 0x8f6d3264 rs 0x21ba2fb3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0xec1805b7 rm 0xde99ac2f, rn 0x0be36f70 rs 0xeda5110c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatt  r0, r1, r2, r3 :: rd 0xfd3e0a6b rm 0xc57243b7, rn 0xcf1e4487 rs 0xf20fb90f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb r0, r1, r2, r3 :: rd 0x00000000 rm 0x00000003, rn 0x00040000 rs 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb r0, r1, r2, r3 :: rd 0x00008001 rm 0x00010003, rn 0x00040002 rs 0x00007fff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb r0, r1, r2, r3 :: rd 0xc0015ffe rm 0x80010003, rn 0x00047fff rs 0x00005fff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb r0, r1, r2, r3 :: rd 0x3fff8000 rm 0x7fff0003, rn 0x00047fff rs 0x00007fff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb r0, r1, r2, r3 :: rd 0x7fff8000 rm 0xffff0003, rn 0x0004ffff rs 0x7fff7fff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb r0, r1, r2, r3 :: rd 0x00000003 rm 0xfffc0003, rn 0x0004ffff rs 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0x680d6c2f rm 0xb8035b5b, rn 0xce0ce1ed rs 0x5f986e68, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0xc35917c7 rm 0x35232047, rn 0x146275d8 rs 0xaae3433f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0x325b20bc rm 0xe7aa57b4, rn 0x1584bd74 rs 0x2c07a5b4, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0x9d69f440 rm 0x32fa0095, rn 0x36f26261 rs 0x89d2ef86, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0xd4370054 rm 0x8ed8287c, rn 0x02c90120 rs 0xd4b64d54, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0x091ff500 rm 0xc53aaba9, rn 0x29300837 rs 0x0b02c58a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0xb21ff2d8 rm 0x216158cb, rn 0x57a50a01 rs 0xb0d20777, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0x71f82a30 rm 0x3e2e1bd7, rn 0x3cd6cd94 rs 0x7e376198, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0xc9653619 rm 0xd5fe2dc4, rn 0xdd914bf7 rs 0xd5dc5407, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0xf63f799a rm 0xf87b961e, rn 0x1d66879f rs 0xf2b64835, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0xa6679b89 rm 0xd65db979, rn 0xc61b323b rs 0xae930a1a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0x2a05361e rm 0x5ef1f1a8, rn 0xbf73f0a5 rs 0x2fb714c9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0x9a127c08 rm 0x1ffe53d9, rn 0x815bb75b rs 0xa3268abe, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0xf5d1a121 rm 0xed2cbf78, rn 0xc6ffabb6 rs 0xef9e9fd9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0x3839dd9c rm 0xeaa652c7, rn 0x137741f4 rs 0x3dba1164, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0xd3f4bd83 rm 0x3ada0280, rn 0x71fbde8b rs 0xdba5bd25, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0x9aac6fb7 rm 0xda4ba05b, rn 0x90f9833d rs 0x884c0ad8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0xa4e49fda rm 0xc00b821a, rn 0x7fa1d5a6 rs 0x9a4ff1b8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0x7a97a5c6 rm 0xe1bb8606, rn 0x58293969 rs 0x81616d13, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0x5311a34b rm 0x51f31d95, rn 0xa3cfd624 rs 0x6077fb1f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0x403f808c rm 0x0849a0c2, rn 0x0872f25a rs 0x40b094e2, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0x9796e87b rm 0x17913309, rn 0xf1e03d7e rs 0x91edc21d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0x6ab5581d rm 0x5388b5cd, rn 0x86582032 rs 0x6034078d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0xcefcb21e rm 0x181c436b, rn 0x5de41558 rs 0xccfa1c7e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0x3a5534e1 rm 0x23ba1b46, rn 0x4437983c rs 0x48d06549, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0xcf1a27e1 rm 0xa9085781, rn 0xc6b4ac58 rs 0xb2aead21, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0x8b3fc986 rm 0xc2bdf597, rn 0xdde1e6a4 rs 0x852e3a72, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0xe7af6e55 rm 0x157b0dea, rn 0xf0d5ff94 rs 0xe7b87e39, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0x004dd8e0 rm 0x3edad6b6, rn 0x82aceb7a rs 0x0557c6fc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0x5045227f rm 0x6cc9bfa8, rn 0x7f808c15 rs 0x81874a02, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0x4815eff7 rm 0x6b1422c7, rn 0x33921b00 rs 0x3ccad3f7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0x7852cb64 rm 0xd7ce1909, rn 0x3e435701 rs 0x85fbf196, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0x6abbe852 rm 0xb4e16b6e, rn 0x6e13680a rs 0x89436f88, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0x26e6b11f rm 0x44858efc, rn 0x9002bc30 rs 0x390d2c2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0x82b6eeac rm 0xbea121ab, rn 0x953ff6ec rs 0x80657c40, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0x31fc8463 rm 0x6ffed89f, rn 0x3e8c49b7 rs 0x11bd07d1, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0xfc5bf193 rm 0x7795635d, rn 0x5e6e32dd rs 0xe4999bf2, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0x2488f008 rm 0xec0c2f30, rn 0x5736ed46 rs 0x231348c0, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0x3b5c0f7b rm 0x4f9ddd1b, rn 0x95bca5d8 rs 0x5765b203, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0x7cc2fe64 rm 0xc1553709, rn 0x0112b30a rs 0x69ec0212, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0x5be18a33 rm 0x74bd0223, rn 0x03fa9bb5 rs 0x899d9192, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0x7f17b6ab rm 0xf52e9fbf, rn 0xb4c510a7 rs 0x7fcbe5a9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0xff50e330 rm 0x64a365ef, rn 0x2dd01366 rs 0xf7b0b13e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0x686b554f rm 0x5e4b1cbf, rn 0x44de5ca9 rs 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0xe327a38a rm 0x299da970, rn 0xe8108f1b rs 0xf5818cfb, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0x9751921f rm 0xcd90d604, rn 0xaa5e9444 rs 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0x6bdba395 rm 0xe60743c3, rn 0x7acb4de3 rs 0x73c29060, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0xf59d74c1 rm 0x868e7c7d, rn 0x5f77532e rs 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0x3127286b rm 0x4e5e0760, rn 0x8f6d3264 rs 0x21ba2fb3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0xdf1acafc rm 0xde99ac2f, rn 0x0be36f70 rs 0xeda5110c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlatb  r0, r1, r2, r3 :: rd 0xe263202d rm 0xc57243b7, rn 0xcf1e4487 rs 0xf20fb90f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt r0, r1, r2, r3 :: rd 0x00000000 rm 0x00030000, rn 0x00000004 rs 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt r0, r1, r2, r3 :: rd 0x00008001 rm 0x00030001, rn 0x00020004 rs 0x00007fff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt r0, r1, r2, r3 :: rd 0xc0015ffe rm 0x00038001, rn 0x7fff0004 rs 0x00005fff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt r0, r1, r2, r3 :: rd 0x3fff8000 rm 0x00037fff, rn 0x7fff0004 rs 0x00007fff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt r0, r1, r2, r3 :: rd 0x7fff8000 rm 0x0003ffff, rn 0xffff0004 rs 0x7fff7fff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt r0, r1, r2, r3 :: rd 0x00000003 rm 0x0003fffc, rn 0xffff0004 rs 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0x4dc4f0ac rm 0xb8035b5b, rn 0xce0ce1ed rs 0x5f986e68, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0xad752a6d rm 0x35232047, rn 0x146275d8 rs 0xaae3433f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0x3366a284 rm 0xe7aa57b4, rn 0x1584bd74 rs 0x2c07a5b4, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0x89f2ea60 rm 0x32fa0095, rn 0x36f26261 rs 0x89d2ef86, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0xd5270eb0 rm 0x8ed8287c, rn 0x02c90120 rs 0xd4b64d54, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0xfd71063a rm 0xc53aaba9, rn 0x29300837 rs 0x0b02c58a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0xcf383f4e rm 0x216158cb, rn 0x57a50a01 rs 0xb0d20777, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0x84d50b52 rm 0x3e2e1bd7, rn 0x3cd6cd94 rs 0x7e376198, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0xcfb4740b rm 0xd5fe2dc4, rn 0xdd914bf7 rs 0xd5dc5407, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0xe68d7e29 rm 0xf87b961e, rn 0x1d66879f rs 0xf2b64835, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0xbe862fdd rm 0xd65db979, rn 0xc61b323b rs 0xae930a1a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0x3354fb41 rm 0x5ef1f1a8, rn 0xbf73f0a5 rs 0x2fb714c9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0x79abb1e1 rm 0x1ffe53d9, rn 0x815bb75b rs 0xa3268abe, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0xfdfd2861 rm 0xed2cbf78, rn 0xc6ffabb6 rs 0xef9e9fd9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0x440550e5 rm 0xeaa652c7, rn 0x137741f4 rs 0x3dba1164, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0xdcc2b0a5 rm 0x3ada0280, rn 0x71fbde8b rs 0xdba5bd25, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0xb1c7335b rm 0xda4ba05b, rn 0x90f9833d rs 0x884c0ad8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0x5b8baa12 rm 0xc00b821a, rn 0x7fa1d5a6 rs 0x9a4ff1b8, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0x575ff409 rm 0xe1bb8606, rn 0x58293969 rs 0x81616d13, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0x55d0c59a rm 0x51f31d95, rn 0xa3cfd624 rs 0x6077fb1f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0x3d8c3b46 rm 0x0849a0c2, rn 0x0872f25a rs 0x40b094e2, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0x8f1ce2fd rm 0x17913309, rn 0xf1e03d7e rs 0x91edc21d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0x8376d405 rm 0x5388b5cd, rn 0x86582032 rs 0x6034078d, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0xe5b406ca rm 0x181c436b, rn 0x5de41558 rs 0xccfa1c7e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0x5014d953 rm 0x23ba1b46, rn 0x4437983c rs 0x48d06549, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0x9f18f9d5 rm 0xa9085781, rn 0xc6b4ac58 rs 0xb2aead21, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0x86916f29 rm 0xc2bdf597, rn 0xdde1e6a4 rs 0x852e3a72, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0xe6e571eb rm 0x157b0dea, rn 0xf0d5ff94 rs 0xe7b87e39, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0x198e7544 rm 0x3edad6b6, rn 0x82aceb7a rs 0x0557c6fc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0x617b7602 rm 0x6cc9bfa8, rn 0x7f808c15 rs 0x81874a02, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0x43cc4e75 rm 0x6b1422c7, rn 0x33921b00 rs 0x3ccad3f7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0x8c12acf1 rm 0xd7ce1909, rn 0x3e435701 rs 0x85fbf196, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0xb774acb2 rm 0xb4e16b6e, rn 0x6e13680a rs 0x89436f88, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0x6a7e0a27 rm 0x44858efc, rn 0x9002bc30 rs 0x390d2c2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0x725b4c55 rm 0xbea121ab, rn 0x953ff6ec rs 0x80657c40, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0x081e00c5 rm 0x6ffed89f, rn 0x3e8c49b7 rs 0x11bd07d1, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0x094073e8 rm 0x7795635d, rn 0x5e6e32dd rs 0xe4999bf2, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0x33268ce0 rm 0xec0c2f30, rn 0x5736ed46 rs 0x231348c0, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0x65e1c8d7 rm 0x4f9ddd1b, rn 0x95bca5d8 rs 0x5765b203, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0x6a26e9b4 rm 0xc1553709, rn 0x0112b30a rs 0x69ec0212, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0x89a610c0 rm 0x74bd0223, rn 0x03fa9bb5 rs 0x899d9192, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0x9c151fa4 rm 0xf52e9fbf, rn 0xb4c510a7 rs 0x7fcbe5a9, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0x09ee866e rm 0x64a365ef, rn 0x2dd01366 rs 0xf7b0b13e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0x4e05cb6e rm 0x5e4b1cbf, rn 0x44de5ca9 rs 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0xfd99a3fb rm 0x299da970, rn 0xe8108f1b rs 0xf5818cfb, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0x9022f557 rm 0xcd90d604, rn 0xaa5e9444 rs 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0x94433a01 rm 0xe60743c3, rn 0x7acb4de3 rs 0x73c29060, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0x4b7f7e58 rm 0x868e7c7d, rn 0x5f77532e rs 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0x1e7bf393 rm 0x4e5e0760, rn 0x8f6d3264 rs 0x21ba2fb3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0xe9c0c3b9 rm 0xde99ac2f, rn 0x0be36f70 rs 0xeda5110c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlabt  r0, r1, r2, r3 :: rd 0xe521a181 rm 0xc57243b7, rn 0xcf1e4487 rs 0xf20fb90f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+------------ UQSUB8 -----------------------------------
+uqsub8 r0, r1, r2 :: rd 0x0000fffc rm 0x0009ffff, rn 0x00180003, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x000f0000 rm 0x00180003, rn 0x0009ffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x0000000f rm 0x00030018, rn 0xffff0009, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0xfffc0000 rm 0xffff0009, rn 0x00030018, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x0000000f rm 0x00000318, rn 0xff00ff09, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0xfffc0000 rm 0xffff0009, rn 0x00030018, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x0000000f rm 0x00020318, rn 0xff07ff09, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0xff05fc00 rm 0xff07ff09, rn 0x00020318, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x00000000 rm 0xb8035b5b, rn 0xce0ce1ed, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x00003299 rm 0x146275d8, rn 0xaae3433f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x0000a51f rm 0x2c07a5b4, rn 0x32fa0095, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x8c0f275c rm 0x8ed8287c, rn 0x02c90120, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x1e2e0000 rm 0x29300837, rn 0x0b02c58a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x72a40000 rm 0xb0d20777, rn 0x3e2e1bd7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x006d0000 rm 0xd5fe2dc4, rn 0xdd914bf7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x00003f6a rm 0x1d66879f, rn 0xf2b64835, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x50000000 rm 0xae930a1a, rn 0x5ef1f1a8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x00a3007e rm 0x1ffe53d9, rn 0x815bb75b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x00610c00 rm 0xc6ffabb6, rn 0xef9e9fd9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x03000f00 rm 0x3dba1164, rn 0x3ada0280, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x4a001d1e rm 0xda4ba05b, rn 0x90f9833d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x00520000 rm 0x7fa1d5a6, rn 0x9a4ff1b8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x30005000 rm 0x81616d13, rn 0x51f31d95, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x00000068 rm 0x0849a0c2, rn 0x0872f25a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x60000061 rm 0xf1e03d7e, rn 0x91edc21d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x48180022 rm 0x6034078d, rn 0x181c436b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x091d815b rm 0xf0d5ff94, rn 0xe7b87e39, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x002e003c rm 0x3edad6b6, rn 0x82aceb7a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x00000754 rm 0x0557c6fc, rn 0x6cc9bfa8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x00004213 rm 0x7f808c15, rn 0x81874a02, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x380007c7 rm 0x6b1422c7, rn 0x33921b00, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x0000baee rm 0x3ccad3f7, rn 0xd7ce1909, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x00000000 rm 0x3e435701, rn 0x85fbf196, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x46ce0364 rm 0xb4e16b6e, rn 0x6e13680a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x45000000 rm 0x89436f88, rn 0x44858efc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x57009001 rm 0x9002bc30, rn 0x390d2c2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x29620000 rm 0xbea121ab, rn 0x953ff6ec, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x11000000 rm 0x80657c40, rn 0x6ffed89f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x2d004200 rm 0x3e8c49b7, rn 0x11bd07d1, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x19273100 rm 0x7795635d, rn 0x5e6e32dd, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x008d6cc2 rm 0xe4999bf2, rn 0xec0c2f30, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x3423a500 rm 0x5736ed46, rn 0x231348c0, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x00003800 rm 0x4f9ddd1b, rn 0x95bca5d8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x00107b00 rm 0x5765b203, rn 0xc1553709, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x0000b100 rm 0x0112b30a, rn 0x69ec0212, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x71000000 rm 0x74bd0223, rn 0x03fa9bb5, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x006f0000 rm 0x899d9192, rn 0xf52e9fbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x35000000 rm 0xb4c510a7, rn 0x7fcbe5a9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x37005289 rm 0x64a365ef, rn 0x2dd01366, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x99659500 rm 0xf7b0b13e, rn 0x5e4b1cbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x00943b00 rm 0x44de5ca9, rn 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x008d1a55 rm 0x299da970, rn 0xe8108f1b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x280000f7 rm 0xf5818cfb, rn 0xcd90d604, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x28470000 rm 0xaa5e9444, rn 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x6c000000 rm 0xe60743c3, rn 0x7acb4de3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x00341400 rm 0x73c29060, rn 0x868e7c7d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x42641600 rm 0x5f77532e, rn 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x00000000 rm 0x4e5e0760, rn 0x8f6d3264, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsub8 r0, r1, r2 :: rd 0x00210084 rm 0x21ba2fb3, rn 0xde99ac2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+------------ UQADD8 -----------------------------------
+uqadd8 r0, r1, r2 :: rd 0x0021ffff rm 0x0009ffff, rn 0x001800aa, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0x0021ffff rm 0x00180003, rn 0x0009ffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0xffff0021 rm 0x00aa0018, rn 0xffff0009, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0xffff0021 rm 0xffff0009, rn 0x00030018, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0xff00ff21 rm 0x0000aa18, rn 0xff00ff09, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0xffff0021 rm 0xffff0009, rn 0x00030018, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0xffffffff rm 0xff9fefcc, rn 0xff9ffedd, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0xff09ff21 rm 0xff07ff09, rn 0xaa020318, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0xff0fffff rm 0xb8035b5b, rn 0xce0ce1ed, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0xbeffb8ff rm 0x146275d8, rn 0xaae3433f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0x5effa5ff rm 0x2c07a5b4, rn 0x32fa0095, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0x90ff299c rm 0x8ed8287c, rn 0x02c90120, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0x3432cdc1 rm 0x29300837, rn 0x0b02c58a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0xeeff22ff rm 0xb0d20777, rn 0x3e2e1bd7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0xffff78ff rm 0xd5fe2dc4, rn 0xdd914bf7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0xffffcfd4 rm 0x1d66879f, rn 0xf2b64835, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0xfffffbc2 rm 0xae930a1a, rn 0x5ef1f1a8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0xa0ffffff rm 0x1ffe53d9, rn 0x815bb75b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0xffffffff rm 0xc6ffabb6, rn 0xef9e9fd9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0x77ff13e4 rm 0x3dba1164, rn 0x3ada0280, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0xffffff98 rm 0xda4ba05b, rn 0x90f9833d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0xfff0ffff rm 0x7fa1d5a6, rn 0x9a4ff1b8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0xd2ff8aa8 rm 0x81616d13, rn 0x51f31d95, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0x10bbffff rm 0x0849a0c2, rn 0x0872f25a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0xffffff9b rm 0xf1e03d7e, rn 0x91edc21d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0x78504af8 rm 0x6034078d, rn 0x181c436b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0xffffffcd rm 0xf0d5ff94, rn 0xe7b87e39, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0xc0ffffff rm 0x3edad6b6, rn 0x82aceb7a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0x71ffffff rm 0x0557c6fc, rn 0x6cc9bfa8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0xffffd617 rm 0x7f808c15, rn 0x81874a02, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0x9ea63dc7 rm 0x6b1422c7, rn 0x33921b00, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0xffffecff rm 0x3ccad3f7, rn 0xd7ce1909, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0xc3ffff97 rm 0x3e435701, rn 0x85fbf196, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0xfff4d378 rm 0xb4e16b6e, rn 0x6e13680a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0xcdc8fdff rm 0x89436f88, rn 0x44858efc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0xc90fe85f rm 0x9002bc30, rn 0x390d2c2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0xffe0ffff rm 0xbea121ab, rn 0x953ff6ec, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0xefffffdf rm 0x80657c40, rn 0x6ffed89f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0x4fff50ff rm 0x3e8c49b7, rn 0x11bd07d1, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0xd5ff95ff rm 0x7795635d, rn 0x5e6e32dd, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0xffa5caff rm 0xe4999bf2, rn 0xec0c2f30, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0x7a49ffff rm 0x5736ed46, rn 0x231348c0, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0xe4fffff3 rm 0x4f9ddd1b, rn 0x95bca5d8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0xffbae90c rm 0x5765b203, rn 0xc1553709, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0x6afeb51c rm 0x0112b30a, rn 0x69ec0212, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0x77ff9dd8 rm 0x74bd0223, rn 0x03fa9bb5, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0xffcbffff rm 0x899d9192, rn 0xf52e9fbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0xfffff5ff rm 0xb4c510a7, rn 0x7fcbe5a9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0x91ff78ff rm 0x64a365ef, rn 0x2dd01366, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0xfffbcdfd rm 0xf7b0b13e, rn 0x5e4b1cbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0x8aff7dff rm 0x44de5ca9, rn 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0xffadff8b rm 0x299da970, rn 0xe8108f1b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0xffffffff rm 0xf5818cfb, rn 0xcd90d604, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0xff75ffff rm 0xaa5e9444, rn 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0xffd290ff rm 0xe60743c3, rn 0x7acb4de3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0xf9ffffdd rm 0x73c29060, rn 0x868e7c7d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0x7c8a906b rm 0x5f77532e, rn 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0xddcb39c4 rm 0x4e5e0760, rn 0x8f6d3264, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd8 r0, r1, r2 :: rd 0xffffdbe2 rm 0x21ba2fb3, rn 0xde99ac2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+------------ SEL --------------------------------------
+sel r0, r1, r2 :: rd 0x00000000 rm 0x7fff7fff, rn 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0x00010001 rm 0x7fff7fff, rn 0x00010001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0xffffffff rm 0x80008000, rn 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0x00030003 rm 0x00640064, rn 0x00030003, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0xffff0001 rm 0xfffcffff, rn 0xffff0001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0x00030003 rm 0xfff70fff, rn 0x00030003, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0xce0ce1ed rm 0xb8035b5b, rn 0xce0ce1ed, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0xaae3433f rm 0x146275d8, rn 0xaae3433f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0x32fa0095 rm 0x2c07a5b4, rn 0x32fa0095, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0x02c90120 rm 0x8ed8287c, rn 0x02c90120, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0x0b02c58a rm 0x29300837, rn 0x0b02c58a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0x3e2e1bd7 rm 0xb0d20777, rn 0x3e2e1bd7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0xdd914bf7 rm 0xd5fe2dc4, rn 0xdd914bf7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0xf2b64835 rm 0x1d66879f, rn 0xf2b64835, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0x5ef1f1a8 rm 0xae930a1a, rn 0x5ef1f1a8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0x815bb75b rm 0x1ffe53d9, rn 0x815bb75b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0xef9e9fd9 rm 0xc6ffabb6, rn 0xef9e9fd9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0x3ada0280 rm 0x3dba1164, rn 0x3ada0280, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0x90f9833d rm 0xda4ba05b, rn 0x90f9833d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0x9a4ff1b8 rm 0x7fa1d5a6, rn 0x9a4ff1b8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0x51f31d95 rm 0x81616d13, rn 0x51f31d95, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0x0872f25a rm 0x0849a0c2, rn 0x0872f25a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0x91edc21d rm 0xf1e03d7e, rn 0x91edc21d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0x181c436b rm 0x6034078d, rn 0x181c436b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0xe7b87e39 rm 0xf0d5ff94, rn 0xe7b87e39, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0x82aceb7a rm 0x3edad6b6, rn 0x82aceb7a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0x6cc9bfa8 rm 0x0557c6fc, rn 0x6cc9bfa8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0x81874a02 rm 0x7f808c15, rn 0x81874a02, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0x33921b00 rm 0x6b1422c7, rn 0x33921b00, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0xd7ce1909 rm 0x3ccad3f7, rn 0xd7ce1909, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0x85fbf196 rm 0x3e435701, rn 0x85fbf196, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0x6e13680a rm 0xb4e16b6e, rn 0x6e13680a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0x44858efc rm 0x89436f88, rn 0x44858efc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0x390d2c2f rm 0x9002bc30, rn 0x390d2c2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0x953ff6ec rm 0xbea121ab, rn 0x953ff6ec, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0x6ffed89f rm 0x80657c40, rn 0x6ffed89f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0x11bd07d1 rm 0x3e8c49b7, rn 0x11bd07d1, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0x5e6e32dd rm 0x7795635d, rn 0x5e6e32dd, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0xec0c2f30 rm 0xe4999bf2, rn 0xec0c2f30, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0x231348c0 rm 0x5736ed46, rn 0x231348c0, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0x95bca5d8 rm 0x4f9ddd1b, rn 0x95bca5d8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0xc1553709 rm 0x5765b203, rn 0xc1553709, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0x69ec0212 rm 0x0112b30a, rn 0x69ec0212, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0x03fa9bb5 rm 0x74bd0223, rn 0x03fa9bb5, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0xf52e9fbf rm 0x899d9192, rn 0xf52e9fbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0x7fcbe5a9 rm 0xb4c510a7, rn 0x7fcbe5a9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0x2dd01366 rm 0x64a365ef, rn 0x2dd01366, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0x5e4b1cbf rm 0xf7b0b13e, rn 0x5e4b1cbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0x464a21cc rm 0x44de5ca9, rn 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0xe8108f1b rm 0x299da970, rn 0xe8108f1b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0xcd90d604 rm 0xf5818cfb, rn 0xcd90d604, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0x8217b7df rm 0xaa5e9444, rn 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0x7acb4de3 rm 0xe60743c3, rn 0x7acb4de3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0x868e7c7d rm 0x73c29060, rn 0x868e7c7d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0x1d133d3d rm 0x5f77532e, rn 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0x8f6d3264 rm 0x4e5e0760, rn 0x8f6d3264, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sel r0, r1, r2 :: rd 0xde99ac2f rm 0x21ba2fb3, rn 0xde99ac2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+------------ QSUB8-------------------------------------
+qsub8 r0, r1, r2 :: rd 0x00f1fffc rm 0x0009ffff, rn 0x00180003, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x000f0104 rm 0x00180003, rn 0x0009ffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x0104000f rm 0x00030018, rn 0xffff0009, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0xfffc00f1 rm 0xffff0009, rn 0x00030018, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x7fff7fff rm 0x7fff7fff, rn 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x7ffe81fe rm 0x7fff00ff, rn 0x80017f01, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x80008000 rm 0x80008000, rn 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x81018101 rm 0x80008000, rn 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0xeaf77a6e rm 0xb8035b5b, rn 0xce0ce1ed, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x6a7f3299 rm 0x146275d8, rn 0xaae3433f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0xfa0da51f rm 0x2c07a5b4, rn 0x32fa0095, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x8c0f275c rm 0x8ed8287c, rn 0x02c90120, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x1e2e437f rm 0x29300837, rn 0x0b02c58a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x80a4ec7f rm 0xb0d20777, rn 0x3e2e1bd7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0xf86de2cd rm 0xd5fe2dc4, rn 0xdd914bf7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x2b7f8080 rm 0x1d66879f, rn 0xf2b64835, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x80a21972 rm 0xae930a1a, rn 0x5ef1f1a8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x7fa37f80 rm 0x1ffe53d9, rn 0x815bb75b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0xd7610cdd rm 0xc6ffabb6, rn 0xef9e9fd9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x03e00f7f rm 0x3dba1164, rn 0x3ada0280, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x4a521d1e rm 0xda4ba05b, rn 0x90f9833d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x7f80e4ee rm 0x7fa1d5a6, rn 0x9a4ff1b8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x806e507e rm 0x81616d13, rn 0x51f31d95, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x00d7ae80 rm 0x0849a0c2, rn 0x0872f25a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x60f37b61 rm 0xf1e03d7e, rn 0x91edc21d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x4818c480 rm 0x6034078d, rn 0x181c436b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x091d8180 rm 0xf0d5ff94, rn 0xe7b87e39, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x7f2eeb80 rm 0x3edad6b6, rn 0x82aceb7a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x997f0754 rm 0x0557c6fc, rn 0x6cc9bfa8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x7ff98013 rm 0x7f808c15, rn 0x81874a02, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x387f07c7 rm 0x6b1422c7, rn 0x33921b00, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x65fcbaee rm 0x3ccad3f7, rn 0xd7ce1909, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x7f48666b rm 0x3e435701, rn 0x85fbf196, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x80ce0364 rm 0xb4e16b6e, rn 0x6e13680a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x807f7f8c rm 0x89436f88, rn 0x44858efc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x80f59001 rm 0x9002bc30, rn 0x390d2c2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x29802bbf rm 0xbea121ab, rn 0x953ff6ec, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x80677f7f rm 0x80657c40, rn 0x6ffed89f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x2dcf42e6 rm 0x3e8c49b7, rn 0x11bd07d1, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x1980317f rm 0x7795635d, rn 0x5e6e32dd, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0xf88d80c2 rm 0xe4999bf2, rn 0xec0c2f30, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x3423a57f rm 0x5736ed46, rn 0x231348c0, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x7fe13843 rm 0x4f9ddd1b, rn 0x95bca5d8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x7f1080fa rm 0x5765b203, rn 0xc1553709, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x9826b1f8 rm 0x0112b30a, rn 0x69ec0212, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x71c3676e rm 0x74bd0223, rn 0x03fa9bb5, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x9480f2d3 rm 0x899d9192, rn 0xf52e9fbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x80fa2bfe rm 0xb4c510a7, rn 0x7fcbe5a9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x37d35289 rm 0x64a365ef, rn 0x2dd01366, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x9980957f rm 0xf7b0b13e, rn 0x5e4b1cbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0xfe943bdd rm 0x44de5ca9, rn 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x418d1a55 rm 0x299da970, rn 0xe8108f1b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x28f1b6f7 rm 0xf5818cfb, rn 0xcd90d604, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x2847dd65 rm 0xaa5e9444, rn 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x803cf6e0 rm 0xe60743c3, rn 0x7acb4de3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x7f3480e3 rm 0x73c29060, rn 0x868e7c7d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x426416f1 rm 0x5f77532e, rn 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x7ff1d5fc rm 0x4e5e0760, rn 0x8f6d3264, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qsub8 r0, r1, r2 :: rd 0x43217f84 rm 0x21ba2fb3, rn 0xde99ac2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+------------ QADD8-------------------------------------
+qadd8 r0, r1, r2 :: rd 0x0021ff02 rm 0x0009ffff, rn 0x00180003, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0x0021ff02 rm 0x00180003, rn 0x0009ffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0xff020021 rm 0x00030018, rn 0xffff0009, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0xff020021 rm 0xffff0009, rn 0x00030018, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0x7fff7fff rm 0x7fff7fff, rn 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0xff007f00 rm 0x7fff00ff, rn 0x80017f01, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0x80008000 rm 0x80008000, rn 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0x80ff80ff rm 0x80008000, rn 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0x860f3c48 rm 0xb8035b5b, rn 0xce0ce1ed, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0xbe457f17 rm 0x146275d8, rn 0xaae3433f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0x5e01a580 rm 0x2c07a5b4, rn 0x32fa0095, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0x90a1297f rm 0x8ed8287c, rn 0x02c90120, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0x3432cdc1 rm 0x29300837, rn 0x0b02c58a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0xee00224e rm 0xb0d20777, rn 0x3e2e1bd7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0xb28f78bb rm 0xd5fe2dc4, rn 0xdd914bf7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0x0f1ccfd4 rm 0x1d66879f, rn 0xf2b64835, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0x0c84fbc2 rm 0xae930a1a, rn 0x5ef1f1a8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0xa0590a34 rm 0x1ffe53d9, rn 0x815bb75b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0xb59d808f rm 0xc6ffabb6, rn 0xef9e9fd9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0x779413e4 rm 0x3dba1164, rn 0x3ada0280, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0x8044807f rm 0xda4ba05b, rn 0x90f9833d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0x19f0c680 rm 0x7fa1d5a6, rn 0x9a4ff1b8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0xd2547fa8 rm 0x81616d13, rn 0x51f31d95, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0x107f921c rm 0x0849a0c2, rn 0x0872f25a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0x82cdff7f rm 0xf1e03d7e, rn 0x91edc21d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0x78504af8 rm 0x6034078d, rn 0x181c436b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0xd78d7dcd rm 0xf0d5ff94, rn 0xe7b87e39, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0xc086c130 rm 0x3edad6b6, rn 0x82aceb7a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0x712085a4 rm 0x0557c6fc, rn 0x6cc9bfa8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0x0080d617 rm 0x7f808c15, rn 0x81874a02, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0x7fa63dc7 rm 0x6b1422c7, rn 0x33921b00, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0x1398ec00 rm 0x3ccad3f7, rn 0xd7ce1909, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0xc33e4897 rm 0x3e435701, rn 0x85fbf196, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0x22f47f78 rm 0xb4e16b6e, rn 0x6e13680a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0xcdc8fd84 rm 0x89436f88, rn 0x44858efc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0xc90fe85f rm 0x9002bc30, rn 0x390d2c2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0x80e01797 rm 0xbea121ab, rn 0x953ff6ec, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0xef6354df rm 0x80657c40, rn 0x6ffed89f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0x4f805088 rm 0x3e8c49b7, rn 0x11bd07d1, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0x7f037f3a rm 0x7795635d, rn 0x5e6e32dd, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0xd0a5ca22 rm 0xe4999bf2, rn 0xec0c2f30, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0x7a493506 rm 0x5736ed46, rn 0x231348c0, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0xe48082f3 rm 0x4f9ddd1b, rn 0x95bca5d8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0x187fe90c rm 0x5765b203, rn 0xc1553709, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0x6afeb51c rm 0x0112b30a, rn 0x69ec0212, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0x77b79dd8 rm 0x74bd0223, rn 0x03fa9bb5, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0x80cb8080 rm 0x899d9192, rn 0xf52e9fbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0x3390f580 rm 0xb4c510a7, rn 0x7fcbe5a9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0x7f807855 rm 0x64a365ef, rn 0x2dd01366, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0x55fbcdfd rm 0xf7b0b13e, rn 0x5e4b1cbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0x7f287d80 rm 0x44de5ca9, rn 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0x11ad807f rm 0x299da970, rn 0xe8108f1b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0xc28080ff rm 0xf5818cfb, rn 0xcd90d604, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0x80758023 rm 0xaa5e9444, rn 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0x60d27fa6 rm 0xe60743c3, rn 0x7acb4de3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0xf9800c7f rm 0x73c29060, rn 0x868e7c7d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0x7c7f7f6b rm 0x5f77532e, rn 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0xdd7f397f rm 0x4e5e0760, rn 0x8f6d3264, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+qadd8 r0, r1, r2 :: rd 0xff80dbe2 rm 0x21ba2fb3, rn 0xde99ac2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+------------ SHADD8 -----------------------------------
+shadd8 r0, r1, r2 :: rd 0x0010ff01 rm 0x0009ffff, rn 0x00180003, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0x0010ff01 rm 0x00180003, rn 0x0009ffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0xff010010 rm 0x00030018, rn 0xffff0009, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0xff010010 rm 0xffff0009, rn 0x00030018, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0x3fff3fff rm 0x7fff7fff, rn 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0xff003f00 rm 0x7fff00ff, rn 0x80017f01, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0xc000c000 rm 0x80008000, rn 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0xbfffbfff rm 0x80008000, rn 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0xc3071e24 rm 0xb8035b5b, rn 0xce0ce1ed, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0xdf225c0b rm 0x146275d8, rn 0xaae3433f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0x2f00d2a4 rm 0x2c07a5b4, rn 0x32fa0095, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0xc8d0144e rm 0x8ed8287c, rn 0x02c90120, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0x1a19e6e0 rm 0x29300837, rn 0x0b02c58a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0xf7001127 rm 0xb0d20777, rn 0x3e2e1bd7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0xd9c73cdd rm 0xd5fe2dc4, rn 0xdd914bf7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0x070ee7ea rm 0x1d66879f, rn 0xf2b64835, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0x06c2fde1 rm 0xae930a1a, rn 0x5ef1f1a8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0xd02c051a rm 0x1ffe53d9, rn 0x815bb75b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0xdacea5c7 rm 0xc6ffabb6, rn 0xef9e9fd9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0x3bca09f2 rm 0x3dba1164, rn 0x3ada0280, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0xb522914c rm 0xda4ba05b, rn 0x90f9833d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0x0cf8e3af rm 0x7fa1d5a6, rn 0x9a4ff1b8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0xe92a45d4 rm 0x81616d13, rn 0x51f31d95, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0x085dc90e rm 0x0849a0c2, rn 0x0872f25a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0xc1e6ff4d rm 0xf1e03d7e, rn 0x91edc21d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0x3c2825fc rm 0x6034078d, rn 0x181c436b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0xebc63ee6 rm 0xf0d5ff94, rn 0xe7b87e39, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0xe0c3e018 rm 0x3edad6b6, rn 0x82aceb7a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0x3810c2d2 rm 0x0557c6fc, rn 0x6cc9bfa8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0x0083eb0b rm 0x7f808c15, rn 0x81874a02, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0x4fd31ee3 rm 0x6b1422c7, rn 0x33921b00, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0x09ccf600 rm 0x3ccad3f7, rn 0xd7ce1909, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0xe11f24cb rm 0x3e435701, rn 0x85fbf196, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0x11fa693c rm 0xb4e16b6e, rn 0x6e13680a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0xe6e4fec2 rm 0x89436f88, rn 0x44858efc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0xe407f42f rm 0x9002bc30, rn 0x390d2c2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0xa9f00bcb rm 0xbea121ab, rn 0x953ff6ec, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0xf7312aef rm 0x80657c40, rn 0x6ffed89f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0x27a428c4 rm 0x3e8c49b7, rn 0x11bd07d1, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0x6a014a1d rm 0x7795635d, rn 0x5e6e32dd, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0xe8d2e511 rm 0xe4999bf2, rn 0xec0c2f30, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0x3d241a03 rm 0x5736ed46, rn 0x231348c0, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0xf2acc1f9 rm 0x4f9ddd1b, rn 0x95bca5d8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0x0c5df406 rm 0x5765b203, rn 0xc1553709, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0x35ffda0e rm 0x0112b30a, rn 0x69ec0212, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0x3bdbceec rm 0x74bd0223, rn 0x03fa9bb5, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0xbfe598a8 rm 0x899d9192, rn 0xf52e9fbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0x19c8faa8 rm 0xb4c510a7, rn 0x7fcbe5a9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0x48b93c2a rm 0x64a365ef, rn 0x2dd01366, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0x2afde6fe rm 0xf7b0b13e, rn 0x5e4b1cbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0x45143eba rm 0x44de5ca9, rn 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0x08d69c45 rm 0x299da970, rn 0xe8108f1b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0xe188b1ff rm 0xf5818cfb, rn 0xcd90d604, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0x963aa511 rm 0xaa5e9444, rn 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0x30e948d3 rm 0xe60743c3, rn 0x7acb4de3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0xfca8066e rm 0x73c29060, rn 0x868e7c7d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0x3e454835 rm 0x5f77532e, rn 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0xee651c62 rm 0x4e5e0760, rn 0x8f6d3264, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shadd8 r0, r1, r2 :: rd 0xffa9edf1 rm 0x21ba2fb3, rn 0xde99ac2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+----------------- SSAT ----------------- 
+ssat  r0, #1,  r1, LSL #31 :: rd 0x00000000 rm 0x80008000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat  r0, #6,  r1, LSL #24 :: rd 0x00000000 rm 0x80008000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat  r0, #8,  r1, ASR #18 :: rd 0xffffff80 rm 0x80008000, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #12, r1, ASR #16 :: rd 0xfffff800 rm 0x80008000, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #16, r1, LSL #12 :: rd 0xffff8000 rm 0xffff0009, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #18, r1, LSL #8 :: rd 0xfffe0000 rm 0xffff0009, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #24, r1, ASR #6 :: rd 0xfffffc00 rm 0xffff0009, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat  r0, #31, r1, ASR #1 :: rd 0xffff8004 rm 0xffff0009, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat  r0, #1,   r1 :: rd 0x00000000 rm 0x256bfdd6, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #1,   r1 :: rd 0xffffffff rm 0xc02a0c05, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #1,   r1 :: rd 0xffffffff rm 0xee2fa46e, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #1,   r1 :: rd 0xffffffff rm 0x97a7da20, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #32,  r1 :: rd 0xa231d5e6 rm 0xa231d5e6, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat  r0, #32,  r1 :: rd 0x10e1968a rm 0x10e1968a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat  r0, #32,  r1 :: rd 0x0e089270 rm 0x0e089270, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat  r0, #32,  r1 :: rd 0x9e8e0185 rm 0x9e8e0185, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat  r0, #32,  r1 :: rd 0x3096f12e rm 0x3096f12e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat  r0, #32,  r1 :: rd 0xffc134df rm 0xffc134df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat  r0, #1,  r1, LSL #31 :: rd 0x00000000 rm 0x256bfdd6, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat  r0, #1,  r1, LSL #31 :: rd 0xffffffff rm 0xc02a0c05, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #1,  r1, LSL #31 :: rd 0x00000000 rm 0xee2fa46e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat  r0, #1,  r1, LSL #31 :: rd 0x00000000 rm 0x97a7da20, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat  r0, #1,  r1, LSL #31 :: rd 0x00000000 rm 0xa231d5e6, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat  r0, #1,  r1, LSL #31 :: rd 0x00000000 rm 0x10e1968a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat  r0, #1,  r1, LSL #31 :: rd 0x00000000 rm 0x0e089270, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat  r0, #1,  r1, LSL #31 :: rd 0xffffffff rm 0x9e8e0185, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #1,  r1, LSL #31 :: rd 0x00000000 rm 0x3096f12e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat  r0, #1,  r1, LSL #31 :: rd 0xffffffff rm 0xffc134df, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #3,  r1, LSL #28 :: rd 0x00000003 rm 0x256bfdd6, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #3,  r1, LSL #28 :: rd 0x00000003 rm 0xc02a0c05, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #3,  r1, LSL #28 :: rd 0xfffffffc rm 0xee2fa46e, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #3,  r1, LSL #28 :: rd 0x00000000 rm 0x97a7da20, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat  r0, #3,  r1, LSL #28 :: rd 0x00000003 rm 0xa231d5e6, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #3,  r1, LSL #28 :: rd 0xfffffffc rm 0x10e1968a, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #3,  r1, LSL #28 :: rd 0x00000000 rm 0x0e089270, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat  r0, #3,  r1, LSL #28 :: rd 0x00000003 rm 0x9e8e0185, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #3,  r1, LSL #28 :: rd 0xfffffffc rm 0x3096f12e, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #3,  r1, LSL #28 :: rd 0xfffffffc rm 0xffc134df, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #6,  r1, LSL #24 :: rd 0xffffffe0 rm 0x256bfdd6, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #6,  r1, LSL #24 :: rd 0x0000001f rm 0xc02a0c05, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #6,  r1, LSL #24 :: rd 0x0000001f rm 0xee2fa46e, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #6,  r1, LSL #24 :: rd 0x0000001f rm 0x97a7da20, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #6,  r1, LSL #24 :: rd 0xffffffe0 rm 0xa231d5e6, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #6,  r1, LSL #24 :: rd 0xffffffe0 rm 0x10e1968a, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #6,  r1, LSL #24 :: rd 0x0000001f rm 0x0e089270, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #6,  r1, LSL #24 :: rd 0xffffffe0 rm 0x9e8e0185, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #6,  r1, LSL #24 :: rd 0x0000001f rm 0x3096f12e, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #6,  r1, LSL #24 :: rd 0xffffffe0 rm 0xffc134df, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #8,  r1, ASR #18 :: rd 0x0000007f rm 0x256bfdd6, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #8,  r1, ASR #18 :: rd 0xffffff80 rm 0xc02a0c05, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #8,  r1, ASR #18 :: rd 0xffffff80 rm 0xee2fa46e, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #8,  r1, ASR #18 :: rd 0xffffff80 rm 0x97a7da20, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #8,  r1, ASR #18 :: rd 0xffffff80 rm 0xa231d5e6, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #8,  r1, ASR #18 :: rd 0x0000007f rm 0x10e1968a, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #8,  r1, ASR #18 :: rd 0x0000007f rm 0x0e089270, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #8,  r1, ASR #18 :: rd 0xffffff80 rm 0x9e8e0185, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #8,  r1, ASR #18 :: rd 0x0000007f rm 0x3096f12e, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #8,  r1, ASR #18 :: rd 0xfffffff0 rm 0xffc134df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat  r0, #12, r1, ASR #16 :: rd 0x000007ff rm 0x256bfdd6, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #12, r1, ASR #16 :: rd 0xfffff800 rm 0xc02a0c05, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #12, r1, ASR #16 :: rd 0xfffff800 rm 0xee2fa46e, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #12, r1, ASR #16 :: rd 0xfffff800 rm 0x97a7da20, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #12, r1, ASR #16 :: rd 0xfffff800 rm 0xa231d5e6, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #12, r1, ASR #16 :: rd 0x000007ff rm 0x10e1968a, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #12, r1, ASR #16 :: rd 0x000007ff rm 0x0e089270, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #12, r1, ASR #16 :: rd 0xfffff800 rm 0x9e8e0185, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #12, r1, ASR #16 :: rd 0x000007ff rm 0x3096f12e, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #12, r1, ASR #16 :: rd 0xffffffc1 rm 0xffc134df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat  r0, #16, r1, LSL #12 :: rd 0xffff8000 rm 0x256bfdd6, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #16, r1, LSL #12 :: rd 0xffff8000 rm 0xc02a0c05, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #16, r1, LSL #12 :: rd 0xffff8000 rm 0xee2fa46e, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #16, r1, LSL #12 :: rd 0x00007fff rm 0x97a7da20, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #16, r1, LSL #12 :: rd 0x00007fff rm 0xa231d5e6, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #16, r1, LSL #12 :: rd 0x00007fff rm 0x10e1968a, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #16, r1, LSL #12 :: rd 0xffff8000 rm 0x0e089270, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #16, r1, LSL #12 :: rd 0xffff8000 rm 0x9e8e0185, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #16, r1, LSL #12 :: rd 0x00007fff rm 0x3096f12e, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #16, r1, LSL #12 :: rd 0x00007fff rm 0xffc134df, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #18, r1, LSL #8 :: rd 0x0001ffff rm 0x256bfdd6, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #18, r1, LSL #8 :: rd 0x0001ffff rm 0xc02a0c05, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #18, r1, LSL #8 :: rd 0x0001ffff rm 0xee2fa46e, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #18, r1, LSL #8 :: rd 0xfffe0000 rm 0x97a7da20, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #18, r1, LSL #8 :: rd 0x0001ffff rm 0xa231d5e6, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #18, r1, LSL #8 :: rd 0xfffe0000 rm 0x10e1968a, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #18, r1, LSL #8 :: rd 0x0001ffff rm 0x0e089270, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #18, r1, LSL #8 :: rd 0xfffe0000 rm 0x9e8e0185, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #18, r1, LSL #8 :: rd 0xfffe0000 rm 0x3096f12e, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #18, r1, LSL #8 :: rd 0xfffe0000 rm 0xffc134df, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #24, r1, ASR #6 :: rd 0x007fffff rm 0x256bfdd6, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #24, r1, ASR #6 :: rd 0xff800000 rm 0xc02a0c05, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #24, r1, ASR #6 :: rd 0xffb8be91 rm 0xee2fa46e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat  r0, #24, r1, ASR #6 :: rd 0xff800000 rm 0x97a7da20, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #24, r1, ASR #6 :: rd 0xff800000 rm 0xa231d5e6, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #24, r1, ASR #6 :: rd 0x0043865a rm 0x10e1968a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat  r0, #24, r1, ASR #6 :: rd 0x00382249 rm 0x0e089270, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat  r0, #24, r1, ASR #6 :: rd 0xff800000 rm 0x9e8e0185, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #24, r1, ASR #6 :: rd 0x007fffff rm 0x3096f12e, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #24, r1, ASR #6 :: rd 0xffff04d3 rm 0xffc134df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat  r0, #28, r1, ASR #3 :: rd 0x04ad7fba rm 0x256bfdd6, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat  r0, #28, r1, ASR #3 :: rd 0xf8054180 rm 0xc02a0c05, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat  r0, #28, r1, ASR #3 :: rd 0xfdc5f48d rm 0xee2fa46e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat  r0, #28, r1, ASR #3 :: rd 0xf8000000 rm 0x97a7da20, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #28, r1, ASR #3 :: rd 0xf8000000 rm 0xa231d5e6, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #28, r1, ASR #3 :: rd 0x021c32d1 rm 0x10e1968a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat  r0, #28, r1, ASR #3 :: rd 0x01c1124e rm 0x0e089270, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat  r0, #28, r1, ASR #3 :: rd 0xf8000000 rm 0x9e8e0185, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+ssat  r0, #28, r1, ASR #3 :: rd 0x0612de25 rm 0x3096f12e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat  r0, #28, r1, ASR #3 :: rd 0xfff8269b rm 0xffc134df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat  r0, #31, r1, ASR #1 :: rd 0x12b5feeb rm 0x256bfdd6, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat  r0, #31, r1, ASR #1 :: rd 0xe0150602 rm 0xc02a0c05, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat  r0, #31, r1, ASR #1 :: rd 0xf717d237 rm 0xee2fa46e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat  r0, #31, r1, ASR #1 :: rd 0xcbd3ed10 rm 0x97a7da20, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat  r0, #31, r1, ASR #1 :: rd 0xd118eaf3 rm 0xa231d5e6, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat  r0, #31, r1, ASR #1 :: rd 0x0870cb45 rm 0x10e1968a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat  r0, #31, r1, ASR #1 :: rd 0x07044938 rm 0x0e089270, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat  r0, #31, r1, ASR #1 :: rd 0xcf4700c2 rm 0x9e8e0185, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat  r0, #31, r1, ASR #1 :: rd 0x184b7897 rm 0x3096f12e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssat  r0, #31, r1, ASR #1 :: rd 0xffe09a6f rm 0xffc134df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+---------------- SADD8 ----------------- 
+sadd8 r0, r1, r2 :: rd 0x00dffffc rm 0x00f7ffff, rn 0x00e800fd, carryin 0, cpsr 0x00080000       ge[3:0]=1000
+sadd8 r0, r1, r2 :: rd 0x00dffffc rm 0x00e800fd, rn 0x00f7ffff, carryin 0, cpsr 0x00080000       ge[3:0]=1000
+sadd8 r0, r1, r2 :: rd 0xfffc00df rm 0x00fd00e8, rn 0xffff00f7, carryin 0, cpsr 0x00020000       ge[3:0]=0010
+sadd8 r0, r1, r2 :: rd 0xfffc000f rm 0xffff00f7, rn 0x00fd0018, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+sadd8 r0, r1, r2 :: rd 0xff00fc0f rm 0x0000fd18, rn 0xff00fff7, carryin 0, cpsr 0x00050000       ge[3:0]=0101
+sadd8 r0, r1, r2 :: rd 0xfffc00df rm 0xffff00f7, rn 0x00fd00e8, carryin 0, cpsr 0x00020000       ge[3:0]=0010
+sadd8 r0, r1, r2 :: rd 0xff05fc0f rm 0x00fefd18, rn 0xff07fff7, carryin 0, cpsr 0x00050000       ge[3:0]=0101
+sadd8 r0, r1, r2 :: rd 0xff05fcdf rm 0xff07fff7, rn 0x00fefde8, carryin 0, cpsr 0x00040000       ge[3:0]=0100
+sadd8 r0, r1, r2 :: rd 0x860f3c48 rm 0xb8035b5b, rn 0xce0ce1ed, carryin 0, cpsr 0x00070000       ge[3:0]=0111
+sadd8 r0, r1, r2 :: rd 0xbe45b817 rm 0x146275d8, rn 0xaae3433f, carryin 0, cpsr 0x00070000       ge[3:0]=0111
+sadd8 r0, r1, r2 :: rd 0x5e01a549 rm 0x2c07a5b4, rn 0x32fa0095, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+sadd8 r0, r1, r2 :: rd 0x90a1299c rm 0x8ed8287c, rn 0x02c90120, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+sadd8 r0, r1, r2 :: rd 0x3432cdc1 rm 0x29300837, rn 0x0b02c58a, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+sadd8 r0, r1, r2 :: rd 0xee00224e rm 0xb0d20777, rn 0x3e2e1bd7, carryin 0, cpsr 0x00070000       ge[3:0]=0111
+sadd8 r0, r1, r2 :: rd 0xb28f78bb rm 0xd5fe2dc4, rn 0xdd914bf7, carryin 0, cpsr 0x00020000       ge[3:0]=0010
+sadd8 r0, r1, r2 :: rd 0x0f1ccfd4 rm 0x1d66879f, rn 0xf2b64835, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+sadd8 r0, r1, r2 :: rd 0x0c84fbc2 rm 0xae930a1a, rn 0x5ef1f1a8, carryin 0, cpsr 0x00080000       ge[3:0]=1000
+sadd8 r0, r1, r2 :: rd 0xa0590a34 rm 0x1ffe53d9, rn 0x815bb75b, carryin 0, cpsr 0x00070000       ge[3:0]=0111
+sadd8 r0, r1, r2 :: rd 0xb59d4a8f rm 0xc6ffabb6, rn 0xef9e9fd9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sadd8 r0, r1, r2 :: rd 0x779413e4 rm 0x3dba1164, rn 0x3ada0280, carryin 0, cpsr 0x000a0000       ge[3:0]=1010
+sadd8 r0, r1, r2 :: rd 0x6a442398 rm 0xda4ba05b, rn 0x90f9833d, carryin 0, cpsr 0x00050000       ge[3:0]=0101
+sadd8 r0, r1, r2 :: rd 0x19f0c65e rm 0x7fa1d5a6, rn 0x9a4ff1b8, carryin 0, cpsr 0x00080000       ge[3:0]=1000
+sadd8 r0, r1, r2 :: rd 0xd2548aa8 rm 0x81616d13, rn 0x51f31d95, carryin 0, cpsr 0x00060000       ge[3:0]=0110
+sadd8 r0, r1, r2 :: rd 0x10bb921c rm 0x0849a0c2, rn 0x0872f25a, carryin 0, cpsr 0x000d0000       ge[3:0]=1101
+sadd8 r0, r1, r2 :: rd 0x82cdff9b rm 0xf1e03d7e, rn 0x91edc21d, carryin 0, cpsr 0x00010000       ge[3:0]=0001
+sadd8 r0, r1, r2 :: rd 0x78504af8 rm 0x6034078d, rn 0x181c436b, carryin 0, cpsr 0x000e0000       ge[3:0]=1110
+sadd8 r0, r1, r2 :: rd 0xd78d7dcd rm 0xf0d5ff94, rn 0xe7b87e39, carryin 0, cpsr 0x00020000       ge[3:0]=0010
+sadd8 r0, r1, r2 :: rd 0xc086c130 rm 0x3edad6b6, rn 0x82aceb7a, carryin 0, cpsr 0x00010000       ge[3:0]=0001
+sadd8 r0, r1, r2 :: rd 0x712085a4 rm 0x0557c6fc, rn 0x6cc9bfa8, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+sadd8 r0, r1, r2 :: rd 0x0007d617 rm 0x7f808c15, rn 0x81874a02, carryin 0, cpsr 0x00090000       ge[3:0]=1001
+sadd8 r0, r1, r2 :: rd 0x9ea63dc7 rm 0x6b1422c7, rn 0x33921b00, carryin 0, cpsr 0x000a0000       ge[3:0]=1010
+sadd8 r0, r1, r2 :: rd 0x1398ec00 rm 0x3ccad3f7, rn 0xd7ce1909, carryin 0, cpsr 0x00090000       ge[3:0]=1001
+sadd8 r0, r1, r2 :: rd 0xc33e4897 rm 0x3e435701, rn 0x85fbf196, carryin 0, cpsr 0x00060000       ge[3:0]=0110
+sadd8 r0, r1, r2 :: rd 0x22f4d378 rm 0xb4e16b6e, rn 0x6e13680a, carryin 0, cpsr 0x000b0000       ge[3:0]=1011
+sadd8 r0, r1, r2 :: rd 0xcdc8fd84 rm 0x89436f88, rn 0x44858efc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sadd8 r0, r1, r2 :: rd 0xc90fe85f rm 0x9002bc30, rn 0x390d2c2f, carryin 0, cpsr 0x00050000       ge[3:0]=0101
+sadd8 r0, r1, r2 :: rd 0x53e01797 rm 0xbea121ab, rn 0x953ff6ec, carryin 0, cpsr 0x00020000       ge[3:0]=0010
+sadd8 r0, r1, r2 :: rd 0xef6354df rm 0x80657c40, rn 0x6ffed89f, carryin 0, cpsr 0x00060000       ge[3:0]=0110
+sadd8 r0, r1, r2 :: rd 0x4f495088 rm 0x3e8c49b7, rn 0x11bd07d1, carryin 0, cpsr 0x000a0000       ge[3:0]=1010
+sadd8 r0, r1, r2 :: rd 0xd503953a rm 0x7795635d, rn 0x5e6e32dd, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+sadd8 r0, r1, r2 :: rd 0xd0a5ca22 rm 0xe4999bf2, rn 0xec0c2f30, carryin 0, cpsr 0x00010000       ge[3:0]=0001
+sadd8 r0, r1, r2 :: rd 0x7a493506 rm 0x5736ed46, rn 0x231348c0, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+sadd8 r0, r1, r2 :: rd 0xe45982f3 rm 0x4f9ddd1b, rn 0x95bca5d8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sadd8 r0, r1, r2 :: rd 0x18bae90c rm 0x5765b203, rn 0xc1553709, carryin 0, cpsr 0x000d0000       ge[3:0]=1101
+sadd8 r0, r1, r2 :: rd 0x6afeb51c rm 0x0112b30a, rn 0x69ec0212, carryin 0, cpsr 0x00090000       ge[3:0]=1001
+sadd8 r0, r1, r2 :: rd 0x77b79dd8 rm 0x74bd0223, rn 0x03fa9bb5, carryin 0, cpsr 0x00080000       ge[3:0]=1000
+sadd8 r0, r1, r2 :: rd 0x7ecb3051 rm 0x899d9192, rn 0xf52e9fbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sadd8 r0, r1, r2 :: rd 0x3390f550 rm 0xb4c510a7, rn 0x7fcbe5a9, carryin 0, cpsr 0x00080000       ge[3:0]=1000
+sadd8 r0, r1, r2 :: rd 0x91737855 rm 0x64a365ef, rn 0x2dd01366, carryin 0, cpsr 0x000b0000       ge[3:0]=1011
+sadd8 r0, r1, r2 :: rd 0x55fbcdfd rm 0xf7b0b13e, rn 0x5e4b1cbf, carryin 0, cpsr 0x00080000       ge[3:0]=1000
+sadd8 r0, r1, r2 :: rd 0x8a287d75 rm 0x44de5ca9, rn 0x464a21cc, carryin 0, cpsr 0x000e0000       ge[3:0]=1110
+sadd8 r0, r1, r2 :: rd 0x11ad388b rm 0x299da970, rn 0xe8108f1b, carryin 0, cpsr 0x00090000       ge[3:0]=1001
+sadd8 r0, r1, r2 :: rd 0xc21162ff rm 0xf5818cfb, rn 0xcd90d604, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sadd8 r0, r1, r2 :: rd 0x2c754b23 rm 0xaa5e9444, rn 0x8217b7df, carryin 0, cpsr 0x00050000       ge[3:0]=0101
+sadd8 r0, r1, r2 :: rd 0x60d290a6 rm 0xe60743c3, rn 0x7acb4de3, carryin 0, cpsr 0x000a0000       ge[3:0]=1010
+sadd8 r0, r1, r2 :: rd 0xf9500cdd rm 0x73c29060, rn 0x868e7c7d, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+sadd8 r0, r1, r2 :: rd 0x7c8a906b rm 0x5f77532e, rn 0x1d133d3d, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+sadd8 r0, r1, r2 :: rd 0xddcb39c4 rm 0x4e5e0760, rn 0x8f6d3264, carryin 0, cpsr 0x00070000       ge[3:0]=0111
+sadd8 r0, r1, r2 :: rd 0xff53dbe2 rm 0x21ba2fb3, rn 0xde99ac2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+------------ SXTAB ------------
+sxtab r0, r1, r2, ROR #24 :: rd 0x3141594e rm 0x31415927, rn 0x27182819, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #16 :: rd 0x3141593f rm 0x31415927, rn 0x27182819, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #8 :: rd 0x3141594f rm 0x31415927, rn 0x27182819, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #0 :: rd 0x31415940 rm 0x31415927, rn 0x27182819, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #24 :: rd 0x3141594e rm 0x31415927, rn 0x27182899, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #16 :: rd 0x3141593f rm 0x31415927, rn 0x27182899, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #8 :: rd 0x3141594f rm 0x31415927, rn 0x27182899, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #0 :: rd 0x314158c0 rm 0x31415927, rn 0x27182899, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #24 :: rd 0xf7b0b19c rm 0xf7b0b13e, rn 0x5e4b1cbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #24 :: rd 0x44de5cef rm 0x44de5ca9, rn 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #24 :: rd 0x299da958 rm 0x299da970, rn 0xe8108f1b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #24 :: rd 0xf5818cc8 rm 0xf5818cfb, rn 0xcd90d604, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #24 :: rd 0xaa5e93c6 rm 0xaa5e9444, rn 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #24 :: rd 0xe607443d rm 0xe60743c3, rn 0x7acb4de3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #24 :: rd 0x73c28fe6 rm 0x73c29060, rn 0x868e7c7d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #24 :: rd 0x5f77534b rm 0x5f77532e, rn 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #24 :: rd 0x4e5e06ef rm 0x4e5e0760, rn 0x8f6d3264, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #24 :: rd 0x21ba2f91 rm 0x21ba2fb3, rn 0xde99ac2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #16 :: rd 0xf7b0b189 rm 0xf7b0b13e, rn 0x5e4b1cbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #16 :: rd 0x44de5cf3 rm 0x44de5ca9, rn 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #16 :: rd 0x299da980 rm 0x299da970, rn 0xe8108f1b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #16 :: rd 0xf5818c8b rm 0xf5818cfb, rn 0xcd90d604, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #16 :: rd 0xaa5e945b rm 0xaa5e9444, rn 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #16 :: rd 0xe607438e rm 0xe60743c3, rn 0x7acb4de3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #16 :: rd 0x73c28fee rm 0x73c29060, rn 0x868e7c7d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #16 :: rd 0x5f775341 rm 0x5f77532e, rn 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #16 :: rd 0x4e5e07cd rm 0x4e5e0760, rn 0x8f6d3264, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #16 :: rd 0x21ba2f4c rm 0x21ba2fb3, rn 0xde99ac2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #8 :: rd 0xf7b0b15a rm 0xf7b0b13e, rn 0x5e4b1cbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #8 :: rd 0x44de5cca rm 0x44de5ca9, rn 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #8 :: rd 0x299da8ff rm 0x299da970, rn 0xe8108f1b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #8 :: rd 0xf5818cd1 rm 0xf5818cfb, rn 0xcd90d604, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #8 :: rd 0xaa5e93fb rm 0xaa5e9444, rn 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #8 :: rd 0xe6074410 rm 0xe60743c3, rn 0x7acb4de3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #8 :: rd 0x73c290dc rm 0x73c29060, rn 0x868e7c7d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #8 :: rd 0x5f77536b rm 0x5f77532e, rn 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #8 :: rd 0x4e5e0792 rm 0x4e5e0760, rn 0x8f6d3264, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #8 :: rd 0x21ba2f5f rm 0x21ba2fb3, rn 0xde99ac2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #0 :: rd 0xf7b0b0fd rm 0xf7b0b13e, rn 0x5e4b1cbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #0 :: rd 0x44de5c75 rm 0x44de5ca9, rn 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #0 :: rd 0x299da98b rm 0x299da970, rn 0xe8108f1b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #0 :: rd 0xf5818cff rm 0xf5818cfb, rn 0xcd90d604, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #0 :: rd 0xaa5e9423 rm 0xaa5e9444, rn 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #0 :: rd 0xe60743a6 rm 0xe60743c3, rn 0x7acb4de3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #0 :: rd 0x73c290dd rm 0x73c29060, rn 0x868e7c7d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #0 :: rd 0x5f77536b rm 0x5f77532e, rn 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #0 :: rd 0x4e5e07c4 rm 0x4e5e0760, rn 0x8f6d3264, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab r0, r1, r2, ROR #0 :: rd 0x21ba2fe2 rm 0x21ba2fb3, rn 0xde99ac2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+------------ UXTAB ------------
+uxtab r0, r1, r2, ROR #24 :: rd 0x3141594e rm 0x31415927, rn 0x27182819, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #16 :: rd 0x3141593f rm 0x31415927, rn 0x27182819, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #8 :: rd 0x3141594f rm 0x31415927, rn 0x27182819, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #0 :: rd 0x31415940 rm 0x31415927, rn 0x27182819, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #24 :: rd 0x3141594e rm 0x31415927, rn 0x27182899, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #16 :: rd 0x3141593f rm 0x31415927, rn 0x27182899, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #8 :: rd 0x3141594f rm 0x31415927, rn 0x27182899, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #0 :: rd 0x314159c0 rm 0x31415927, rn 0x27182899, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #24 :: rd 0xf7b0b19c rm 0xf7b0b13e, rn 0x5e4b1cbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #24 :: rd 0x44de5cef rm 0x44de5ca9, rn 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #24 :: rd 0x299daa58 rm 0x299da970, rn 0xe8108f1b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #24 :: rd 0xf5818dc8 rm 0xf5818cfb, rn 0xcd90d604, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #24 :: rd 0xaa5e94c6 rm 0xaa5e9444, rn 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #24 :: rd 0xe607443d rm 0xe60743c3, rn 0x7acb4de3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #24 :: rd 0x73c290e6 rm 0x73c29060, rn 0x868e7c7d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #24 :: rd 0x5f77534b rm 0x5f77532e, rn 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #24 :: rd 0x4e5e07ef rm 0x4e5e0760, rn 0x8f6d3264, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #24 :: rd 0x21ba3091 rm 0x21ba2fb3, rn 0xde99ac2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #16 :: rd 0xf7b0b189 rm 0xf7b0b13e, rn 0x5e4b1cbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #16 :: rd 0x44de5cf3 rm 0x44de5ca9, rn 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #16 :: rd 0x299da980 rm 0x299da970, rn 0xe8108f1b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #16 :: rd 0xf5818d8b rm 0xf5818cfb, rn 0xcd90d604, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #16 :: rd 0xaa5e945b rm 0xaa5e9444, rn 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #16 :: rd 0xe607448e rm 0xe60743c3, rn 0x7acb4de3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #16 :: rd 0x73c290ee rm 0x73c29060, rn 0x868e7c7d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #16 :: rd 0x5f775341 rm 0x5f77532e, rn 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #16 :: rd 0x4e5e07cd rm 0x4e5e0760, rn 0x8f6d3264, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #16 :: rd 0x21ba304c rm 0x21ba2fb3, rn 0xde99ac2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #8 :: rd 0xf7b0b15a rm 0xf7b0b13e, rn 0x5e4b1cbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #8 :: rd 0x44de5cca rm 0x44de5ca9, rn 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #8 :: rd 0x299da9ff rm 0x299da970, rn 0xe8108f1b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #8 :: rd 0xf5818dd1 rm 0xf5818cfb, rn 0xcd90d604, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #8 :: rd 0xaa5e94fb rm 0xaa5e9444, rn 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #8 :: rd 0xe6074410 rm 0xe60743c3, rn 0x7acb4de3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #8 :: rd 0x73c290dc rm 0x73c29060, rn 0x868e7c7d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #8 :: rd 0x5f77536b rm 0x5f77532e, rn 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #8 :: rd 0x4e5e0792 rm 0x4e5e0760, rn 0x8f6d3264, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #8 :: rd 0x21ba305f rm 0x21ba2fb3, rn 0xde99ac2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #0 :: rd 0xf7b0b1fd rm 0xf7b0b13e, rn 0x5e4b1cbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #0 :: rd 0x44de5d75 rm 0x44de5ca9, rn 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #0 :: rd 0x299da98b rm 0x299da970, rn 0xe8108f1b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #0 :: rd 0xf5818cff rm 0xf5818cfb, rn 0xcd90d604, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #0 :: rd 0xaa5e9523 rm 0xaa5e9444, rn 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #0 :: rd 0xe60744a6 rm 0xe60743c3, rn 0x7acb4de3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #0 :: rd 0x73c290dd rm 0x73c29060, rn 0x868e7c7d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #0 :: rd 0x5f77536b rm 0x5f77532e, rn 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #0 :: rd 0x4e5e07c4 rm 0x4e5e0760, rn 0x8f6d3264, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab r0, r1, r2, ROR #0 :: rd 0x21ba2fe2 rm 0x21ba2fb3, rn 0xde99ac2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+----------- UXTAB16 -----------
+uxtab16 r0, r1, r2, ROR #24 :: rd 0x3169594e rm 0x31415927, rn 0x27182819, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #16 :: rd 0x315a593f rm 0x31415927, rn 0x27182819, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #8 :: rd 0x3168594f rm 0x31415927, rn 0x27182819, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #0 :: rd 0x31595940 rm 0x31415927, rn 0x27182819, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #24 :: rd 0x3169594e rm 0x31415927, rn 0x27182899, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #16 :: rd 0x31da593f rm 0x31415927, rn 0x27182899, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #8 :: rd 0x3168594f rm 0x31415927, rn 0x27182899, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #0 :: rd 0x315959c0 rm 0x31415927, rn 0x27182899, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #0 :: rd 0x31590098 rm 0x3141ffff, rn 0x27182899, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #24 :: rd 0xf7ccb19c rm 0xf7b0b13e, rn 0x5e4b1cbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #24 :: rd 0x44ff5cef rm 0x44de5ca9, rn 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #24 :: rd 0x2a2caa58 rm 0x299da970, rn 0xe8108f1b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #24 :: rd 0xf6578dc8 rm 0xf5818cfb, rn 0xcd90d604, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #24 :: rd 0xab1594c6 rm 0xaa5e9444, rn 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #24 :: rd 0xe654443d rm 0xe60743c3, rn 0x7acb4de3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #24 :: rd 0x743e90e6 rm 0x73c29060, rn 0x868e7c7d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #24 :: rd 0x5fb4534b rm 0x5f77532e, rn 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #24 :: rd 0x4e9007ef rm 0x4e5e0760, rn 0x8f6d3264, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #24 :: rd 0x22663091 rm 0x21ba2fb3, rn 0xde99ac2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #16 :: rd 0xf86fb189 rm 0xf7b0b13e, rn 0x5e4b1cbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #16 :: rd 0x45aa5cf3 rm 0x44de5ca9, rn 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #16 :: rd 0x29b8a980 rm 0x299da970, rn 0xe8108f1b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #16 :: rd 0xf5858d8b rm 0xf5818cfb, rn 0xcd90d604, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #16 :: rd 0xab3d945b rm 0xaa5e9444, rn 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #16 :: rd 0xe6ea448e rm 0xe60743c3, rn 0x7acb4de3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #16 :: rd 0x743f90ee rm 0x73c29060, rn 0x868e7c7d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #16 :: rd 0x5fb45341 rm 0x5f77532e, rn 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #16 :: rd 0x4ec207cd rm 0x4e5e0760, rn 0x8f6d3264, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #16 :: rd 0x21e9304c rm 0x21ba2fb3, rn 0xde99ac2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #8 :: rd 0xf80eb15a rm 0xf7b0b13e, rn 0x5e4b1cbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #8 :: rd 0x45245cca rm 0x44de5ca9, rn 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #8 :: rd 0x2a85a9ff rm 0x299da970, rn 0xe8108f1b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #8 :: rd 0xf64e8dd1 rm 0xf5818cfb, rn 0xcd90d604, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #8 :: rd 0xaae094fb rm 0xaa5e9444, rn 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #8 :: rd 0xe6814410 rm 0xe60743c3, rn 0x7acb4de3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #8 :: rd 0x744890dc rm 0x73c29060, rn 0x868e7c7d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #8 :: rd 0x5f94536b rm 0x5f77532e, rn 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #8 :: rd 0x4eed0792 rm 0x4e5e0760, rn 0x8f6d3264, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #8 :: rd 0x2298305f rm 0x21ba2fb3, rn 0xde99ac2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #0 :: rd 0xf7fbb1fd rm 0xf7b0b13e, rn 0x5e4b1cbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #0 :: rd 0x45285d75 rm 0x44de5ca9, rn 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #0 :: rd 0x29ada98b rm 0x299da970, rn 0xe8108f1b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #0 :: rd 0xf6118cff rm 0xf5818cfb, rn 0xcd90d604, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #0 :: rd 0xaa759523 rm 0xaa5e9444, rn 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #0 :: rd 0xe6d244a6 rm 0xe60743c3, rn 0x7acb4de3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #0 :: rd 0x745090dd rm 0x73c29060, rn 0x868e7c7d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #0 :: rd 0x5f8a536b rm 0x5f77532e, rn 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #0 :: rd 0x4ecb07c4 rm 0x4e5e0760, rn 0x8f6d3264, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtab16 r0, r1, r2, ROR #0 :: rd 0x22532fe2 rm 0x21ba2fb3, rn 0xde99ac2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+------------ SXTAH ------------
+sxtah r0, r1, r2, ROR #24 :: rd 0x3141724e rm 0x31415927, rn 0x27182819, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #16 :: rd 0x3141803f rm 0x31415927, rn 0x27182819, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #8  :: rd 0x3141714f rm 0x31415927, rn 0x27182819, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #0  :: rd 0x31418140 rm 0x31415927, rn 0x27182819, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #24 :: rd 0x3141724e rm 0x31415927, rn 0x27189819, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #16 :: rd 0x3141803f rm 0x31415927, rn 0x27189819, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #8  :: rd 0x314171bf rm 0x31415927, rn 0x27189819, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #0  :: rd 0x3140f140 rm 0x31415927, rn 0x27189819, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #24 :: rd 0xf7b0709c rm 0xf7b0b13e, rn 0x5e4b1cbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #24 :: rd 0x44de28ef rm 0x44de5ca9, rn 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #24 :: rd 0x299dc558 rm 0x299da970, rn 0xe8108f1b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #24 :: rd 0xf58191c8 rm 0xf5818cfb, rn 0xcd90d604, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #24 :: rd 0xaa5e73c6 rm 0xaa5e9444, rn 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #24 :: rd 0xe607273d rm 0xe60743c3, rn 0x7acb4de3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #24 :: rd 0x73c30de6 rm 0x73c29060, rn 0x868e7c7d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #24 :: rd 0x5f77904b rm 0x5f77532e, rn 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #24 :: rd 0x4e5e6bef rm 0x4e5e0760, rn 0x8f6d3264, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #24 :: rd 0x21ba5f91 rm 0x21ba2fb3, rn 0xde99ac2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #16 :: rd 0xf7b10f89 rm 0xf7b0b13e, rn 0x5e4b1cbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #16 :: rd 0x44dea2f3 rm 0x44de5ca9, rn 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #16 :: rd 0x299d9180 rm 0x299da970, rn 0xe8108f1b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #16 :: rd 0xf5815a8b rm 0xf5818cfb, rn 0xcd90d604, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #16 :: rd 0xaa5e165b rm 0xaa5e9444, rn 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #16 :: rd 0xe607be8e rm 0xe60743c3, rn 0x7acb4de3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #16 :: rd 0x73c216ee rm 0x73c29060, rn 0x868e7c7d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #16 :: rd 0x5f777041 rm 0x5f77532e, rn 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #16 :: rd 0x4e5d96cd rm 0x4e5e0760, rn 0x8f6d3264, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #16 :: rd 0x21ba0e4c rm 0x21ba2fb3, rn 0xde99ac2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #8 :: rd 0xf7b0fc5a rm 0xf7b0b13e, rn 0x5e4b1cbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #8 :: rd 0x44dea6ca rm 0x44de5ca9, rn 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #8 :: rd 0x299db9ff rm 0x299da970, rn 0xe8108f1b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #8 :: rd 0xf5811dd1 rm 0xf5818cfb, rn 0xcd90d604, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #8 :: rd 0xaa5eabfb rm 0xaa5e9444, rn 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #8 :: rd 0xe6070f10 rm 0xe60743c3, rn 0x7acb4de3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #8 :: rd 0x73c21edc rm 0x73c29060, rn 0x868e7c7d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #8 :: rd 0x5f77666b rm 0x5f77532e, rn 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #8 :: rd 0x4e5e7492 rm 0x4e5e0760, rn 0x8f6d3264, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #8 :: rd 0x21b9c95f rm 0x21ba2fb3, rn 0xde99ac2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #0 :: rd 0xf7b0cdfd rm 0xf7b0b13e, rn 0x5e4b1cbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #0 :: rd 0x44de7e75 rm 0x44de5ca9, rn 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #0 :: rd 0x299d388b rm 0x299da970, rn 0xe8108f1b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #0 :: rd 0xf58162ff rm 0xf5818cfb, rn 0xcd90d604, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #0 :: rd 0xaa5e4c23 rm 0xaa5e9444, rn 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #0 :: rd 0xe60791a6 rm 0xe60743c3, rn 0x7acb4de3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #0 :: rd 0x73c30cdd rm 0x73c29060, rn 0x868e7c7d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #0 :: rd 0x5f77906b rm 0x5f77532e, rn 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #0 :: rd 0x4e5e39c4 rm 0x4e5e0760, rn 0x8f6d3264, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtah r0, r1, r2, ROR #0 :: rd 0x21b9dbe2 rm 0x21ba2fb3, rn 0xde99ac2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+------------ UXTAH ------------
+uxtah r0, r1, r2, ROR #24 :: rd 0x3141724e rm 0x31415927, rn 0x27182819, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #16 :: rd 0x3141803f rm 0x31415927, rn 0x27182819, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #8  :: rd 0x3141714f rm 0x31415927, rn 0x27182819, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #0  :: rd 0x31418140 rm 0x31415927, rn 0x27182819, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #24 :: rd 0x3141724e rm 0x31415927, rn 0x27189819, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #16 :: rd 0x3141803f rm 0x31415927, rn 0x27189819, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #8  :: rd 0x314171bf rm 0x31415927, rn 0x27189819, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #0  :: rd 0x3141f140 rm 0x31415927, rn 0x27189819, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #24 :: rd 0xf7b1709c rm 0xf7b0b13e, rn 0x5e4b1cbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #24 :: rd 0x44df28ef rm 0x44de5ca9, rn 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #24 :: rd 0x299dc558 rm 0x299da970, rn 0xe8108f1b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #24 :: rd 0xf58191c8 rm 0xf5818cfb, rn 0xcd90d604, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #24 :: rd 0xaa5f73c6 rm 0xaa5e9444, rn 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #24 :: rd 0xe608273d rm 0xe60743c3, rn 0x7acb4de3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #24 :: rd 0x73c30de6 rm 0x73c29060, rn 0x868e7c7d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #24 :: rd 0x5f77904b rm 0x5f77532e, rn 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #24 :: rd 0x4e5e6bef rm 0x4e5e0760, rn 0x8f6d3264, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #24 :: rd 0x21ba5f91 rm 0x21ba2fb3, rn 0xde99ac2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #16 :: rd 0xf7b10f89 rm 0xf7b0b13e, rn 0x5e4b1cbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #16 :: rd 0x44dea2f3 rm 0x44de5ca9, rn 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #16 :: rd 0x299e9180 rm 0x299da970, rn 0xe8108f1b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #16 :: rd 0xf5825a8b rm 0xf5818cfb, rn 0xcd90d604, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #16 :: rd 0xaa5f165b rm 0xaa5e9444, rn 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #16 :: rd 0xe607be8e rm 0xe60743c3, rn 0x7acb4de3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #16 :: rd 0x73c316ee rm 0x73c29060, rn 0x868e7c7d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #16 :: rd 0x5f777041 rm 0x5f77532e, rn 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #16 :: rd 0x4e5e96cd rm 0x4e5e0760, rn 0x8f6d3264, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #16 :: rd 0x21bb0e4c rm 0x21ba2fb3, rn 0xde99ac2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #8 :: rd 0xf7b0fc5a rm 0xf7b0b13e, rn 0x5e4b1cbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #8 :: rd 0x44dea6ca rm 0x44de5ca9, rn 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #8 :: rd 0x299db9ff rm 0x299da970, rn 0xe8108f1b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #8 :: rd 0xf5821dd1 rm 0xf5818cfb, rn 0xcd90d604, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #8 :: rd 0xaa5eabfb rm 0xaa5e9444, rn 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #8 :: rd 0xe6080f10 rm 0xe60743c3, rn 0x7acb4de3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #8 :: rd 0x73c31edc rm 0x73c29060, rn 0x868e7c7d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #8 :: rd 0x5f77666b rm 0x5f77532e, rn 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #8 :: rd 0x4e5e7492 rm 0x4e5e0760, rn 0x8f6d3264, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #8 :: rd 0x21bac95f rm 0x21ba2fb3, rn 0xde99ac2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #0 :: rd 0xf7b0cdfd rm 0xf7b0b13e, rn 0x5e4b1cbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #0 :: rd 0x44de7e75 rm 0x44de5ca9, rn 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #0 :: rd 0x299e388b rm 0x299da970, rn 0xe8108f1b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #0 :: rd 0xf58262ff rm 0xf5818cfb, rn 0xcd90d604, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #0 :: rd 0xaa5f4c23 rm 0xaa5e9444, rn 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #0 :: rd 0xe60791a6 rm 0xe60743c3, rn 0x7acb4de3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #0 :: rd 0x73c30cdd rm 0x73c29060, rn 0x868e7c7d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #0 :: rd 0x5f77906b rm 0x5f77532e, rn 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #0 :: rd 0x4e5e39c4 rm 0x4e5e0760, rn 0x8f6d3264, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uxtah r0, r1, r2, ROR #0 :: rd 0x21badbe2 rm 0x21ba2fb3, rn 0xde99ac2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
diff --git a/none/tests/arm/v6media.vgtest b/none/tests/arm/v6media.vgtest
new file mode 100644 (file)
index 0000000..275239d
--- /dev/null
@@ -0,0 +1,2 @@
+prog: v6media
+vgopts: -q