Add test cases for SSUB8 and UHADD8.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11370 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/none/tests/arm/v6media.c b/none/tests/arm/v6media.c
index ee15350..d87be64 100644
--- a/none/tests/arm/v6media.c
+++ b/none/tests/arm/v6media.c
@@ -2708,6 +2708,67 @@
 TESTINST3("shadd8 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
 TESTINST3("shadd8 r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
 
+  printf("------------ UHADD8 -----------------------------------\n");
+  TESTINST3("uhadd8 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
+  TESTINST3("uhadd8 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
+  TESTINST3("uhadd8 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
+  TESTINST3("uhadd8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
+  TESTINST3("uhadd8 r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
+  TESTINST3("uhadd8 r0, r1, r2", 0x7fff00ff, 0x80017f01, r0, r1, r2, 0);
+  TESTINST3("uhadd8 r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
+  TESTINST3("uhadd8 r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
+TESTINST3("uhadd8 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
+TESTINST3("uhadd8 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);
@@ -2911,6 +2972,67 @@
 TESTINST3("sadd8 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
 TESTINST3("sadd8 r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
 
+  printf("---------------- SSUB8 ----------------- \n");
+  TESTINST3("ssub8 r0, r1, r2", 0x00f7ffff, 0x00e800fd, r0, r1, r2, 0);
+  TESTINST3("ssub8 r0, r1, r2", 0x00e800fd, 0x00f7ffff, r0, r1, r2, 0);
+  TESTINST3("ssub8 r0, r1, r2", 0x00fd00e8, 0xffff00f7, r0, r1, r2, 0);
+  TESTINST3("ssub8 r0, r1, r2", 0xffff00f7, 0x00fd0018, r0, r1, r2, 0);
+  TESTINST3("ssub8 r0, r1, r2", 0x0000fd18, 0xff00fff7, r0, r1, r2, 0);
+  TESTINST3("ssub8 r0, r1, r2", 0xffff00f7, 0x00fd00e8, r0, r1, r2, 0);
+  TESTINST3("ssub8 r0, r1, r2", 0x00fefd18, 0xff07fff7, r0, r1, r2, 0);
+  TESTINST3("ssub8 r0, r1, r2", 0xff07fff7, 0x00fefde8, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
+TESTINST3("ssub8 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
+TESTINST3("ssub8 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);
diff --git a/none/tests/arm/v6media.stdout.exp b/none/tests/arm/v6media.stdout.exp
index 5522e95..99ba536 100644
--- a/none/tests/arm/v6media.stdout.exp
+++ b/none/tests/arm/v6media.stdout.exp
@@ -2139,6 +2139,66 @@
 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
+------------ UHADD8 -----------------------------------
+uhadd8 r0, r1, r2 :: rd 0x00107f81 rm 0x0009ffff, rn 0x00180003, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x00107f81 rm 0x00180003, rn 0x0009ffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x7f810010 rm 0x00030018, rn 0xffff0009, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x7f810010 rm 0xffff0009, rn 0x00030018, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x3f7f3f7f rm 0x7fff7fff, rn 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x7f803f80 rm 0x7fff00ff, rn 0x80017f01, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x40004000 rm 0x80008000, rn 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0xbf7fbf7f rm 0x80008000, rn 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0xc3079ea4 rm 0xb8035b5b, rn 0xce0ce1ed, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x5fa25c8b rm 0x146275d8, rn 0xaae3433f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x2f8052a4 rm 0x2c07a5b4, rn 0x32fa0095, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x48d0144e rm 0x8ed8287c, rn 0x02c90120, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x1a196660 rm 0x29300837, rn 0x0b02c58a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x778011a7 rm 0xb0d20777, rn 0x3e2e1bd7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0xd9c73cdd rm 0xd5fe2dc4, rn 0xdd914bf7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x878e676a rm 0x1d66879f, rn 0xf2b64835, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x86c27d61 rm 0xae930a1a, rn 0x5ef1f1a8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x50ac859a rm 0x1ffe53d9, rn 0x815bb75b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0xdacea5c7 rm 0xc6ffabb6, rn 0xef9e9fd9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x3bca0972 rm 0x3dba1164, rn 0x3ada0280, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0xb5a2914c rm 0xda4ba05b, rn 0x90f9833d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x8c78e3af rm 0x7fa1d5a6, rn 0x9a4ff1b8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x69aa4554 rm 0x81616d13, rn 0x51f31d95, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x085dc98e rm 0x0849a0c2, rn 0x0872f25a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0xc1e67f4d rm 0xf1e03d7e, rn 0x91edc21d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x3c28257c rm 0x6034078d, rn 0x181c436b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0xebc6be66 rm 0xf0d5ff94, rn 0xe7b87e39, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x60c3e098 rm 0x3edad6b6, rn 0x82aceb7a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x3890c2d2 rm 0x0557c6fc, rn 0x6cc9bfa8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x80836b0b rm 0x7f808c15, rn 0x81874a02, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x4f531e63 rm 0x6b1422c7, rn 0x33921b00, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x89cc7680 rm 0x3ccad3f7, rn 0xd7ce1909, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x619fa44b rm 0x3e435701, rn 0x85fbf196, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x917a693c rm 0xb4e16b6e, rn 0x6e13680a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x66647ec2 rm 0x89436f88, rn 0x44858efc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x6407742f rm 0x9002bc30, rn 0x390d2c2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0xa9708bcb rm 0xbea121ab, rn 0x953ff6ec, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x77b1aa6f rm 0x80657c40, rn 0x6ffed89f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x27a428c4 rm 0x3e8c49b7, rn 0x11bd07d1, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x6a814a9d rm 0x7795635d, rn 0x5e6e32dd, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0xe8526591 rm 0xe4999bf2, rn 0xec0c2f30, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x3d249a83 rm 0x5736ed46, rn 0x231348c0, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x72acc179 rm 0x4f9ddd1b, rn 0x95bca5d8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x8c5d7406 rm 0x5765b203, rn 0xc1553709, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x357f5a0e rm 0x0112b30a, rn 0x69ec0212, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x3bdb4e6c rm 0x74bd0223, rn 0x03fa9bb5, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0xbf6598a8 rm 0x899d9192, rn 0xf52e9fbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x99c87aa8 rm 0xb4c510a7, rn 0x7fcbe5a9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x48b93caa rm 0x64a365ef, rn 0x2dd01366, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0xaa7d667e rm 0xf7b0b13e, rn 0x5e4b1cbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x45943eba rm 0x44de5ca9, rn 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x88569c45 rm 0x299da970, rn 0xe8108f1b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0xe188b17f rm 0xf5818cfb, rn 0xcd90d604, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x963aa591 rm 0xaa5e9444, rn 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0xb06948d3 rm 0xe60743c3, rn 0x7acb4de3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x7ca8866e rm 0x73c29060, rn 0x868e7c7d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x3e454835 rm 0x5f77532e, rn 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x6e651c62 rm 0x4e5e0760, rn 0x8f6d3264, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd8 r0, r1, r2 :: rd 0x7fa96d71 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
@@ -2318,6 +2378,66 @@
 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
+---------------- SSUB8 ----------------- 
+ssub8 r0, r1, r2 :: rd 0x000fff02 rm 0x00f7ffff, rn 0x00e800fd, carryin 0, cpsr 0x000d0000       ge[3:0]=1101
+ssub8 r0, r1, r2 :: rd 0x00f101fe rm 0x00e800fd, rn 0x00f7ffff, carryin 0, cpsr 0x000a0000       ge[3:0]=1010
+ssub8 r0, r1, r2 :: rd 0x01fe00f1 rm 0x00fd00e8, rn 0xffff00f7, carryin 0, cpsr 0x000a0000       ge[3:0]=1010
+ssub8 r0, r1, r2 :: rd 0xff0200df rm 0xffff00f7, rn 0x00fd0018, carryin 0, cpsr 0x00060000       ge[3:0]=0110
+ssub8 r0, r1, r2 :: rd 0x0100fe21 rm 0x0000fd18, rn 0xff00fff7, carryin 0, cpsr 0x000d0000       ge[3:0]=1101
+ssub8 r0, r1, r2 :: rd 0xff02000f rm 0xffff00f7, rn 0x00fd00e8, carryin 0, cpsr 0x00070000       ge[3:0]=0111
+ssub8 r0, r1, r2 :: rd 0x01f7fe21 rm 0x00fefd18, rn 0xff07fff7, carryin 0, cpsr 0x00090000       ge[3:0]=1001
+ssub8 r0, r1, r2 :: rd 0xff09020f rm 0xff07fff7, rn 0x00fefde8, carryin 0, cpsr 0x00070000       ge[3:0]=0111
+ssub8 r0, r1, r2 :: rd 0xeaf77a6e rm 0xb8035b5b, rn 0xce0ce1ed, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+ssub8 r0, r1, r2 :: rd 0x6a7f3299 rm 0x146275d8, rn 0xaae3433f, carryin 0, cpsr 0x000e0000       ge[3:0]=1110
+ssub8 r0, r1, r2 :: rd 0xfa0da51f rm 0x2c07a5b4, rn 0x32fa0095, carryin 0, cpsr 0x00050000       ge[3:0]=0101
+ssub8 r0, r1, r2 :: rd 0x8c0f275c rm 0x8ed8287c, rn 0x02c90120, carryin 0, cpsr 0x00070000       ge[3:0]=0111
+ssub8 r0, r1, r2 :: rd 0x1e2e43ad rm 0x29300837, rn 0x0b02c58a, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+ssub8 r0, r1, r2 :: rd 0x72a4eca0 rm 0xb0d20777, rn 0x3e2e1bd7, carryin 0, cpsr 0x00010000       ge[3:0]=0001
+ssub8 r0, r1, r2 :: rd 0xf86de2cd rm 0xd5fe2dc4, rn 0xdd914bf7, carryin 0, cpsr 0x00040000       ge[3:0]=0100
+ssub8 r0, r1, r2 :: rd 0x2bb03f6a rm 0x1d66879f, rn 0xf2b64835, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+ssub8 r0, r1, r2 :: rd 0x50a21972 rm 0xae930a1a, rn 0x5ef1f1a8, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+ssub8 r0, r1, r2 :: rd 0x9ea39c7e rm 0x1ffe53d9, rn 0x815bb75b, carryin 0, cpsr 0x000a0000       ge[3:0]=1010
+ssub8 r0, r1, r2 :: rd 0xd7610cdd rm 0xc6ffabb6, rn 0xef9e9fd9, carryin 0, cpsr 0x00060000       ge[3:0]=0110
+ssub8 r0, r1, r2 :: rd 0x03e00fe4 rm 0x3dba1164, rn 0x3ada0280, carryin 0, cpsr 0x000b0000       ge[3:0]=1011
+ssub8 r0, r1, r2 :: rd 0x4a521d1e rm 0xda4ba05b, rn 0x90f9833d, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+ssub8 r0, r1, r2 :: rd 0xe552e4ee rm 0x7fa1d5a6, rn 0x9a4ff1b8, carryin 0, cpsr 0x00080000       ge[3:0]=1000
+ssub8 r0, r1, r2 :: rd 0x306e507e rm 0x81616d13, rn 0x51f31d95, carryin 0, cpsr 0x00070000       ge[3:0]=0111
+ssub8 r0, r1, r2 :: rd 0x00d7ae68 rm 0x0849a0c2, rn 0x0872f25a, carryin 0, cpsr 0x00080000       ge[3:0]=1000
+ssub8 r0, r1, r2 :: rd 0x60f37b61 rm 0xf1e03d7e, rn 0x91edc21d, carryin 0, cpsr 0x000b0000       ge[3:0]=1011
+ssub8 r0, r1, r2 :: rd 0x4818c422 rm 0x6034078d, rn 0x181c436b, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+ssub8 r0, r1, r2 :: rd 0x091d815b rm 0xf0d5ff94, rn 0xe7b87e39, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+ssub8 r0, r1, r2 :: rd 0xbc2eeb3c rm 0x3edad6b6, rn 0x82aceb7a, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+ssub8 r0, r1, r2 :: rd 0x998e0754 rm 0x0557c6fc, rn 0x6cc9bfa8, carryin 0, cpsr 0x00070000       ge[3:0]=0111
+ssub8 r0, r1, r2 :: rd 0xfef94213 rm 0x7f808c15, rn 0x81874a02, carryin 0, cpsr 0x00090000       ge[3:0]=1001
+ssub8 r0, r1, r2 :: rd 0x388207c7 rm 0x6b1422c7, rn 0x33921b00, carryin 0, cpsr 0x000e0000       ge[3:0]=1110
+ssub8 r0, r1, r2 :: rd 0x65fcbaee rm 0x3ccad3f7, rn 0xd7ce1909, carryin 0, cpsr 0x00080000       ge[3:0]=1000
+ssub8 r0, r1, r2 :: rd 0xb948666b rm 0x3e435701, rn 0x85fbf196, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+ssub8 r0, r1, r2 :: rd 0x46ce0364 rm 0xb4e16b6e, rn 0x6e13680a, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+ssub8 r0, r1, r2 :: rd 0x45bee18c rm 0x89436f88, rn 0x44858efc, carryin 0, cpsr 0x00060000       ge[3:0]=0110
+ssub8 r0, r1, r2 :: rd 0x57f59001 rm 0x9002bc30, rn 0x390d2c2f, carryin 0, cpsr 0x00010000       ge[3:0]=0001
+ssub8 r0, r1, r2 :: rd 0x29622bbf rm 0xbea121ab, rn 0x953ff6ec, carryin 0, cpsr 0x000a0000       ge[3:0]=1010
+ssub8 r0, r1, r2 :: rd 0x1167a4a1 rm 0x80657c40, rn 0x6ffed89f, carryin 0, cpsr 0x00070000       ge[3:0]=0111
+ssub8 r0, r1, r2 :: rd 0x2dcf42e6 rm 0x3e8c49b7, rn 0x11bd07d1, carryin 0, cpsr 0x000a0000       ge[3:0]=1010
+ssub8 r0, r1, r2 :: rd 0x19273180 rm 0x7795635d, rn 0x5e6e32dd, carryin 0, cpsr 0x000b0000       ge[3:0]=1011
+ssub8 r0, r1, r2 :: rd 0xf88d6cc2 rm 0xe4999bf2, rn 0xec0c2f30, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssub8 r0, r1, r2 :: rd 0x3423a586 rm 0x5736ed46, rn 0x231348c0, carryin 0, cpsr 0x000d0000       ge[3:0]=1101
+ssub8 r0, r1, r2 :: rd 0xbae13843 rm 0x4f9ddd1b, rn 0x95bca5d8, carryin 0, cpsr 0x000b0000       ge[3:0]=1011
+ssub8 r0, r1, r2 :: rd 0x96107bfa rm 0x5765b203, rn 0xc1553709, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+ssub8 r0, r1, r2 :: rd 0x9826b1f8 rm 0x0112b30a, rn 0x69ec0212, carryin 0, cpsr 0x00040000       ge[3:0]=0100
+ssub8 r0, r1, r2 :: rd 0x71c3676e rm 0x74bd0223, rn 0x03fa9bb5, carryin 0, cpsr 0x000b0000       ge[3:0]=1011
+ssub8 r0, r1, r2 :: rd 0x946ff2d3 rm 0x899d9192, rn 0xf52e9fbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssub8 r0, r1, r2 :: rd 0x35fa2bfe rm 0xb4c510a7, rn 0x7fcbe5a9, carryin 0, cpsr 0x00020000       ge[3:0]=0010
+ssub8 r0, r1, r2 :: rd 0x37d35289 rm 0x64a365ef, rn 0x2dd01366, carryin 0, cpsr 0x000a0000       ge[3:0]=1010
+ssub8 r0, r1, r2 :: rd 0x9965957f rm 0xf7b0b13e, rn 0x5e4b1cbf, carryin 0, cpsr 0x00010000       ge[3:0]=0001
+ssub8 r0, r1, r2 :: rd 0xfe943bdd rm 0x44de5ca9, rn 0x464a21cc, carryin 0, cpsr 0x00020000       ge[3:0]=0010
+ssub8 r0, r1, r2 :: rd 0x418d1a55 rm 0x299da970, rn 0xe8108f1b, carryin 0, cpsr 0x000b0000       ge[3:0]=1011
+ssub8 r0, r1, r2 :: rd 0x28f1b6f7 rm 0xf5818cfb, rn 0xcd90d604, carryin 0, cpsr 0x00080000       ge[3:0]=1000
+ssub8 r0, r1, r2 :: rd 0x2847dd65 rm 0xaa5e9444, rn 0x8217b7df, carryin 0, cpsr 0x000d0000       ge[3:0]=1101
+ssub8 r0, r1, r2 :: rd 0x6c3cf6e0 rm 0xe60743c3, rn 0x7acb4de3, carryin 0, cpsr 0x00040000       ge[3:0]=0100
+ssub8 r0, r1, r2 :: rd 0xed3414e3 rm 0x73c29060, rn 0x868e7c7d, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+ssub8 r0, r1, r2 :: rd 0x426416f1 rm 0x5f77532e, rn 0x1d133d3d, carryin 0, cpsr 0x000e0000       ge[3:0]=1110
+ssub8 r0, r1, r2 :: rd 0xbff1d5fc rm 0x4e5e0760, rn 0x8f6d3264, carryin 0, cpsr 0x00080000       ge[3:0]=1000
+ssub8 r0, r1, r2 :: rd 0x43218384 rm 0x21ba2fb3, rn 0xde99ac2f, carryin 0, cpsr 0x000e0000       ge[3:0]=1110
 ------------ 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