]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Add test cases pertaining to vex r2731, for the following instructions:
authorJulian Seward <jseward@acm.org>
Thu, 4 Jul 2013 20:39:53 +0000 (20:39 +0000)
committerJulian Seward <jseward@acm.org>
Thu, 4 Jul 2013 20:39:53 +0000 (20:39 +0000)
  SSAX SXTAB16 SHASX SHSAX SHSUB16 SHSUB8
  UASX USAX UQADD16 UQASX UQSAX UHASX UHSAX REVSH

Pertaining to
  321363 321364 321466 321467 321468 321619 321704
  321620 321621 321692 321694 321696 321697 321703

(Vasily, w.golubev@mail.ru)

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

none/tests/arm/v6intARM.c
none/tests/arm/v6intARM.stdout.exp
none/tests/arm/v6intThumb.c
none/tests/arm/v6intThumb.stdout.exp
none/tests/arm/v6media.c
none/tests/arm/v6media.stdout.exp

index fa3e45d741541fd1056133ae5c37a21af1408bcc..3a4e375655c83073738fa2c085fe70f374fe17eb 100644 (file)
@@ -905,6 +905,26 @@ int main(int argc, char **argv)
    TESTINST2("rev16 r0, r1", 0xbb6d14ec, r0, r1, 0);
    TESTINST2("rev16 r0, r1", 0x68983cc9, r0, r1, 0);
 
+        printf("------------ REVSH ------------\n");
+        TESTINST2("revsh r0, r1", 0x00000000, r0, r1, 0);
+        TESTINST2("revsh r0, r1", 0xFFFFFFFF, r0, r1, 0);
+        TESTINST2("revsh r0, r1", 0x80000000, r0, r1, 0);
+        TESTINST2("revsh r0, r1", 0x00000001, r0, r1, 0);
+        TESTINST2("revsh r0, r1", 0x31415927, r0, r1, 0);
+        TESTINST2("revsh r0, r1", 0x14141562, r0, r1, 0);
+   TESTINST2("revsh r0, r1", 0xabe8391f, r0, r1, 0);
+   TESTINST2("revsh r0, r1", 0x9028aa80, r0, r1, 0);
+   TESTINST2("revsh r0, r1", 0xead1fc6d, r0, r1, 0);
+   TESTINST2("revsh r0, r1", 0x35c98c55, r0, r1, 0);
+   TESTINST2("revsh r0, r1", 0x534af1eb, r0, r1, 0);
+   TESTINST2("revsh r0, r1", 0x45511b08, r0, r1, 0);
+   TESTINST2("revsh r0, r1", 0x90077f71, r0, r1, 0);
+   TESTINST2("revsh r0, r1", 0xde8ca84b, r0, r1, 0);
+   TESTINST2("revsh r0, r1", 0xe37a0dda, r0, r1, 0);
+   TESTINST2("revsh r0, r1", 0xe5b83d4b, r0, r1, 0);
+   TESTINST2("revsh r0, r1", 0xbb6d14ec, r0, r1, 0);
+   TESTINST2("revsh r0, r1", 0x68983cc9, r0, r1, 0);
+
        printf("------------ NOP (begin) ------------\n");
         printf("nop\n");
         __asm__ __volatile__("nop" ::: "memory","cc");
index 7f17e5a7f9cbc7c0f5dee6fa3b590f8eb27f39e7..b5d18e642b754697457e530a607a737404c48d88 100644 (file)
@@ -794,6 +794,25 @@ rev16 r0, r1 :: rd 0x7ae3da0d rm 0xe37a0dda, carryin 0, cpsr 0x00000000
 rev16 r0, r1 :: rd 0xb8e54b3d rm 0xe5b83d4b, carryin 0, cpsr 0x00000000     
 rev16 r0, r1 :: rd 0x6dbbec14 rm 0xbb6d14ec, carryin 0, cpsr 0x00000000     
 rev16 r0, r1 :: rd 0x9868c93c rm 0x68983cc9, carryin 0, cpsr 0x00000000     
+------------ REVSH ------------
+revsh r0, r1 :: rd 0x00000000 rm 0x00000000, carryin 0, cpsr 0x00000000     
+revsh r0, r1 :: rd 0xffffffff rm 0xffffffff, carryin 0, cpsr 0x00000000     
+revsh r0, r1 :: rd 0x00000000 rm 0x80000000, carryin 0, cpsr 0x00000000     
+revsh r0, r1 :: rd 0x00000100 rm 0x00000001, carryin 0, cpsr 0x00000000     
+revsh r0, r1 :: rd 0x00002759 rm 0x31415927, carryin 0, cpsr 0x00000000     
+revsh r0, r1 :: rd 0x00006215 rm 0x14141562, carryin 0, cpsr 0x00000000     
+revsh r0, r1 :: rd 0x00001f39 rm 0xabe8391f, carryin 0, cpsr 0x00000000     
+revsh r0, r1 :: rd 0xffff80aa rm 0x9028aa80, carryin 0, cpsr 0x00000000     
+revsh r0, r1 :: rd 0x00006dfc rm 0xead1fc6d, carryin 0, cpsr 0x00000000     
+revsh r0, r1 :: rd 0x0000558c rm 0x35c98c55, carryin 0, cpsr 0x00000000     
+revsh r0, r1 :: rd 0xffffebf1 rm 0x534af1eb, carryin 0, cpsr 0x00000000     
+revsh r0, r1 :: rd 0x0000081b rm 0x45511b08, carryin 0, cpsr 0x00000000     
+revsh r0, r1 :: rd 0x0000717f rm 0x90077f71, carryin 0, cpsr 0x00000000     
+revsh r0, r1 :: rd 0x00004ba8 rm 0xde8ca84b, carryin 0, cpsr 0x00000000     
+revsh r0, r1 :: rd 0xffffda0d rm 0xe37a0dda, carryin 0, cpsr 0x00000000     
+revsh r0, r1 :: rd 0x00004b3d rm 0xe5b83d4b, carryin 0, cpsr 0x00000000     
+revsh r0, r1 :: rd 0xffffec14 rm 0xbb6d14ec, carryin 0, cpsr 0x00000000     
+revsh r0, r1 :: rd 0xffffc93c rm 0x68983cc9, carryin 0, cpsr 0x00000000     
 ------------ NOP (begin) ------------
 nop
 nopeq
index b2bb3e699eec3d8e68ba9e94afac706cb5d95359..8ec3fdbd84a6669d004e84d21e48fea3ed386162 100644 (file)
@@ -5859,6 +5859,46 @@ int main ( void )
    TESTINST2("rev16 r8, r9", 0xbb6d14ec, r8, r9, 0);
    TESTINST2("rev16 r8, r9", 0x68983cc9, r8, r9, 0);
 
+        printf("(T1) REVSH Rd, Rm ------------\n");
+        TESTINST2("revsh r0, r1", 0x00000000, r0, r1, 0);
+        TESTINST2("revsh r0, r1", 0xFFFFFFFF, r0, r1, 0);
+        TESTINST2("revsh r0, r1", 0x80000000, r0, r1, 0);
+        TESTINST2("revsh r0, r1", 0x00000001, r0, r1, 0);
+        TESTINST2("revsh r0, r1", 0x31415927, r0, r1, 0);
+        TESTINST2("revsh r0, r1", 0x14141562, r0, r1, 0);
+   TESTINST2("revsh r0, r1", 0xabe8391f, r0, r1, 0);
+   TESTINST2("revsh r0, r1", 0x9028aa80, r0, r1, 0);
+   TESTINST2("revsh r0, r1", 0xead1fc6d, r0, r1, 0);
+   TESTINST2("revsh r0, r1", 0x35c98c55, r0, r1, 0);
+   TESTINST2("revsh r0, r1", 0x534af1eb, r0, r1, 0);
+   TESTINST2("revsh r0, r1", 0x45511b08, r0, r1, 0);
+   TESTINST2("revsh r0, r1", 0x90077f71, r0, r1, 0);
+   TESTINST2("revsh r0, r1", 0xde8ca84b, r0, r1, 0);
+   TESTINST2("revsh r0, r1", 0xe37a0dda, r0, r1, 0);
+   TESTINST2("revsh r0, r1", 0xe5b83d4b, r0, r1, 0);
+   TESTINST2("revsh r0, r1", 0xbb6d14ec, r0, r1, 0);
+   TESTINST2("revsh r0, r1", 0x68983cc9, r0, r1, 0);
+
+        printf("(T2) REVSH Rd, Rm ------------\n");
+        TESTINST2("revsh r8, r9", 0x00000000, r8, r9, 0);
+        TESTINST2("revsh r8, r9", 0xFFFFFFFF, r8, r9, 0);
+        TESTINST2("revsh r8, r9", 0x80000000, r8, r9, 0);
+        TESTINST2("revsh r8, r9", 0x00000001, r8, r9, 0);
+        TESTINST2("revsh r8, r9", 0x31415927, r8, r9, 0);
+        TESTINST2("revsh r8, r9", 0x14141562, r8, r9, 0);
+   TESTINST2("revsh r8, r9", 0xabe8391f, r8, r9, 0);
+   TESTINST2("revsh r8, r9", 0x9028aa80, r8, r9, 0);
+   TESTINST2("revsh r8, r9", 0xead1fc6d, r8, r9, 0);
+   TESTINST2("revsh r8, r9", 0x35c98c55, r8, r9, 0);
+   TESTINST2("revsh r8, r9", 0x534af1eb, r8, r9, 0);
+   TESTINST2("revsh r8, r9", 0x45511b08, r8, r9, 0);
+   TESTINST2("revsh r8, r9", 0x90077f71, r8, r9, 0);
+   TESTINST2("revsh r8, r9", 0xde8ca84b, r8, r9, 0);
+   TESTINST2("revsh r8, r9", 0xe37a0dda, r8, r9, 0);
+   TESTINST2("revsh r8, r9", 0xe5b83d4b, r8, r9, 0);
+   TESTINST2("revsh r8, r9", 0xbb6d14ec, r8, r9, 0);
+   TESTINST2("revsh r8, r9", 0x68983cc9, r8, r9, 0);
+
        printf("------------ NOP (begin) ------------\n");
         printf("nop\n");
         __asm__ __volatile__("nop" ::: "memory","cc");
index 16ea5e83d36265604a409cefda3198b9edc31367..6f97a4c0453e15523dbb9d61c0b7a37ac1794d35 100644 (file)
@@ -16753,6 +16753,44 @@ rev16 r8, r9 :: rd 0x7ae3da0d rm 0xe37a0dda, c:v-in 0, cpsr 0xc0000000 NZ
 rev16 r8, r9 :: rd 0xb8e54b3d rm 0xe5b83d4b, c:v-in 0, cpsr 0xc0000000 NZ  
 rev16 r8, r9 :: rd 0x6dbbec14 rm 0xbb6d14ec, c:v-in 0, cpsr 0xc0000000 NZ  
 rev16 r8, r9 :: rd 0x9868c93c rm 0x68983cc9, c:v-in 0, cpsr 0xc0000000 NZ  
+(T1) REVSH Rd, Rm ------------
+revsh r0, r1 :: rd 0x00000000 rm 0x00000000, c:v-in 0, cpsr 0xc0000000 NZ  
+revsh r0, r1 :: rd 0xffffffff rm 0xffffffff, c:v-in 0, cpsr 0xc0000000 NZ  
+revsh r0, r1 :: rd 0x00000000 rm 0x80000000, c:v-in 0, cpsr 0xc0000000 NZ  
+revsh r0, r1 :: rd 0x00000100 rm 0x00000001, c:v-in 0, cpsr 0xc0000000 NZ  
+revsh r0, r1 :: rd 0x00002759 rm 0x31415927, c:v-in 0, cpsr 0xc0000000 NZ  
+revsh r0, r1 :: rd 0x00006215 rm 0x14141562, c:v-in 0, cpsr 0xc0000000 NZ  
+revsh r0, r1 :: rd 0x00001f39 rm 0xabe8391f, c:v-in 0, cpsr 0xc0000000 NZ  
+revsh r0, r1 :: rd 0xffff80aa rm 0x9028aa80, c:v-in 0, cpsr 0xc0000000 NZ  
+revsh r0, r1 :: rd 0x00006dfc rm 0xead1fc6d, c:v-in 0, cpsr 0xc0000000 NZ  
+revsh r0, r1 :: rd 0x0000558c rm 0x35c98c55, c:v-in 0, cpsr 0xc0000000 NZ  
+revsh r0, r1 :: rd 0xffffebf1 rm 0x534af1eb, c:v-in 0, cpsr 0xc0000000 NZ  
+revsh r0, r1 :: rd 0x0000081b rm 0x45511b08, c:v-in 0, cpsr 0xc0000000 NZ  
+revsh r0, r1 :: rd 0x0000717f rm 0x90077f71, c:v-in 0, cpsr 0xc0000000 NZ  
+revsh r0, r1 :: rd 0x00004ba8 rm 0xde8ca84b, c:v-in 0, cpsr 0xc0000000 NZ  
+revsh r0, r1 :: rd 0xffffda0d rm 0xe37a0dda, c:v-in 0, cpsr 0xc0000000 NZ  
+revsh r0, r1 :: rd 0x00004b3d rm 0xe5b83d4b, c:v-in 0, cpsr 0xc0000000 NZ  
+revsh r0, r1 :: rd 0xffffec14 rm 0xbb6d14ec, c:v-in 0, cpsr 0xc0000000 NZ  
+revsh r0, r1 :: rd 0xffffc93c rm 0x68983cc9, c:v-in 0, cpsr 0xc0000000 NZ  
+(T2) REVSH Rd, Rm ------------
+revsh r8, r9 :: rd 0x00000000 rm 0x00000000, c:v-in 0, cpsr 0xc0000000 NZ  
+revsh r8, r9 :: rd 0xffffffff rm 0xffffffff, c:v-in 0, cpsr 0xc0000000 NZ  
+revsh r8, r9 :: rd 0x00000000 rm 0x80000000, c:v-in 0, cpsr 0xc0000000 NZ  
+revsh r8, r9 :: rd 0x00000100 rm 0x00000001, c:v-in 0, cpsr 0xc0000000 NZ  
+revsh r8, r9 :: rd 0x00002759 rm 0x31415927, c:v-in 0, cpsr 0xc0000000 NZ  
+revsh r8, r9 :: rd 0x00006215 rm 0x14141562, c:v-in 0, cpsr 0xc0000000 NZ  
+revsh r8, r9 :: rd 0x00001f39 rm 0xabe8391f, c:v-in 0, cpsr 0xc0000000 NZ  
+revsh r8, r9 :: rd 0xffff80aa rm 0x9028aa80, c:v-in 0, cpsr 0xc0000000 NZ  
+revsh r8, r9 :: rd 0x00006dfc rm 0xead1fc6d, c:v-in 0, cpsr 0xc0000000 NZ  
+revsh r8, r9 :: rd 0x0000558c rm 0x35c98c55, c:v-in 0, cpsr 0xc0000000 NZ  
+revsh r8, r9 :: rd 0xffffebf1 rm 0x534af1eb, c:v-in 0, cpsr 0xc0000000 NZ  
+revsh r8, r9 :: rd 0x0000081b rm 0x45511b08, c:v-in 0, cpsr 0xc0000000 NZ  
+revsh r8, r9 :: rd 0x0000717f rm 0x90077f71, c:v-in 0, cpsr 0xc0000000 NZ  
+revsh r8, r9 :: rd 0x00004ba8 rm 0xde8ca84b, c:v-in 0, cpsr 0xc0000000 NZ  
+revsh r8, r9 :: rd 0xffffda0d rm 0xe37a0dda, c:v-in 0, cpsr 0xc0000000 NZ  
+revsh r8, r9 :: rd 0x00004b3d rm 0xe5b83d4b, c:v-in 0, cpsr 0xc0000000 NZ  
+revsh r8, r9 :: rd 0xffffec14 rm 0xbb6d14ec, c:v-in 0, cpsr 0xc0000000 NZ  
+revsh r8, r9 :: rd 0xffffc93c rm 0x68983cc9, c:v-in 0, cpsr 0xc0000000 NZ  
 ------------ NOP (begin) ------------
 nop
 nop.w
index 21490d1be3a150b0c0196f1809ce2d3085fe8da1..44aba5d17323eb7161330929a4a0557146e32b63 100644 (file)
@@ -1489,6 +1489,62 @@ 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("---------------- UQADD16 ---------------- \n");
+  TESTINST3("uqadd16 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
+  TESTINST3("uqadd16 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
+  TESTINST3("uqadd16 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
+  TESTINST3("uqadd16 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
+TESTINST3("uqadd16 r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
+TESTINST3("uqadd16 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);
@@ -1603,6 +1659,64 @@ 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("----------------- UQSAX ----------------- \n");
+  TESTINST3("uqsax r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
+  TESTINST3("uqsax r0, r1, r2", 0x7fff7fff, 0x00010001, r0, r1, r2, 0);
+  TESTINST3("uqsax r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
+  TESTINST3("uqsax r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
+  TESTINST3("uqsax r0, r1, r2", 0x00640064, 0x00030003, r0, r1, r2, 0);
+  TESTINST3("uqsax r0, r1, r2", 0x00030003, 0x00640064, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
+TESTINST3("uqsax r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
+TESTINST3("uqsax 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);
@@ -1661,6 +1775,64 @@ 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("----------------- UQASX ----------------- \n");
+  TESTINST3("uqasx r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
+  TESTINST3("uqasx r0, r1, r2", 0x7fff7fff, 0x00010001, r0, r1, r2, 0);
+  TESTINST3("uqasx r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
+  TESTINST3("uqasx r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
+  TESTINST3("uqasx r0, r1, r2", 0x00640064, 0x00030003, r0, r1, r2, 0);
+  TESTINST3("uqasx r0, r1, r2", 0x00030003, 0x00640064, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
+TESTINST3("uqasx r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
+
   printf("----------------- SASX ----------------- \n");
   TESTINST3("sasx r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
   TESTINST3("sasx r0, r1, r2", 0x7fff7fff, 0x00010001, r0, r1, r2, 0);
@@ -1719,6 +1891,180 @@ TESTINST3("sasx r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
 TESTINST3("sasx r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
 TESTINST3("sasx r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
 
+  printf("----------------- USAX ----------------- \n");
+  TESTINST3("usax r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
+  TESTINST3("usax r0, r1, r2", 0x7fff7fff, 0x00010001, r0, r1, r2, 0);
+  TESTINST3("usax r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
+  TESTINST3("usax r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
+  TESTINST3("usax r0, r1, r2", 0x00640064, 0x00030003, r0, r1, r2, 0);
+  TESTINST3("usax r0, r1, r2", 0x00030003, 0x00640064, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
+TESTINST3("usax r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
+
+  printf("----------------- UASX ----------------- \n");
+  TESTINST3("uasx r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
+  TESTINST3("uasx r0, r1, r2", 0x7fff7fff, 0x00010001, r0, r1, r2, 0);
+  TESTINST3("uasx r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
+  TESTINST3("uasx r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
+  TESTINST3("uasx r0, r1, r2", 0x00640064, 0x00030003, r0, r1, r2, 0);
+  TESTINST3("uasx r0, r1, r2", 0x00030003, 0x00640064, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
+TESTINST3("uasx r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
+
+  printf("----------------- SSAX ----------------- \n");
+  TESTINST3("ssax r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
+  TESTINST3("ssax r0, r1, r2", 0x7fff7fff, 0x00010001, r0, r1, r2, 0);
+  TESTINST3("ssax r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
+  TESTINST3("ssax r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
+  TESTINST3("ssax r0, r1, r2", 0x00640064, 0x00030003, r0, r1, r2, 0);
+  TESTINST3("ssax r0, r1, r2", 0x00030003, 0x00640064, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
+TESTINST3("ssax r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
+TESTINST3("ssax 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);
@@ -2802,6 +3148,67 @@ 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("------------ SHSUB8 -----------------------------------\n");
+  TESTINST3("shsub8 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
+  TESTINST3("shsub8 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
+  TESTINST3("shsub8 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
+  TESTINST3("shsub8 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
+  TESTINST3("shsub8 r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
+  TESTINST3("shsub8 r0, r1, r2", 0x7fff00ff, 0x80017f01, r0, r1, r2, 0);
+  TESTINST3("shsub8 r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
+  TESTINST3("shsub8 r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
+TESTINST3("shsub8 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
+TESTINST3("shsub8 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);
@@ -3427,6 +3834,62 @@ 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("----------- SXTAB16 -----------\n");
+  TESTINST3("sxtab16 r0, r1, r2, ROR #24", 0x31415927, 0x27182819, r0, r1, r2, 0);
+  TESTINST3("sxtab16 r0, r1, r2, ROR #16", 0x31415927, 0x27182819, r0, r1, r2, 0);
+  TESTINST3("sxtab16 r0, r1, r2, ROR #8",  0x31415927, 0x27182819, r0, r1, r2, 0);
+  TESTINST3("sxtab16 r0, r1, r2, ROR #0",  0x31415927, 0x27182819, r0, r1, r2, 0);
+
+  TESTINST3("sxtab16 r0, r1, r2, ROR #24", 0x31415927, 0x27182899, r0, r1, r2, 0);
+  TESTINST3("sxtab16 r0, r1, r2, ROR #16", 0x31415927, 0x27182899, r0, r1, r2, 0);
+  TESTINST3("sxtab16 r0, r1, r2, ROR #8",  0x31415927, 0x27182899, r0, r1, r2, 0);
+  TESTINST3("sxtab16 r0, r1, r2, ROR #0",  0x31415927, 0x27182899, r0, r1, r2, 0);
+  TESTINST3("sxtab16 r0, r1, r2, ROR #0",  0x3141FFFF, 0x27182899, r0, r1, r2, 0);
+
+TESTINST3("sxtab16 r0, r1, r2, ROR #24", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
+TESTINST3("sxtab16 r0, r1, r2, ROR #24", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
+TESTINST3("sxtab16 r0, r1, r2, ROR #24", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
+TESTINST3("sxtab16 r0, r1, r2, ROR #24", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
+TESTINST3("sxtab16 r0, r1, r2, ROR #24", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
+TESTINST3("sxtab16 r0, r1, r2, ROR #24", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
+TESTINST3("sxtab16 r0, r1, r2, ROR #24", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
+TESTINST3("sxtab16 r0, r1, r2, ROR #24", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
+TESTINST3("sxtab16 r0, r1, r2, ROR #24", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
+TESTINST3("sxtab16 r0, r1, r2, ROR #24", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
+
+TESTINST3("sxtab16 r0, r1, r2, ROR #16", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
+TESTINST3("sxtab16 r0, r1, r2, ROR #16", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
+TESTINST3("sxtab16 r0, r1, r2, ROR #16", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
+TESTINST3("sxtab16 r0, r1, r2, ROR #16", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
+TESTINST3("sxtab16 r0, r1, r2, ROR #16", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
+TESTINST3("sxtab16 r0, r1, r2, ROR #16", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
+TESTINST3("sxtab16 r0, r1, r2, ROR #16", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
+TESTINST3("sxtab16 r0, r1, r2, ROR #16", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
+TESTINST3("sxtab16 r0, r1, r2, ROR #16", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
+TESTINST3("sxtab16 r0, r1, r2, ROR #16", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
+
+TESTINST3("sxtab16 r0, r1, r2, ROR #8", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
+TESTINST3("sxtab16 r0, r1, r2, ROR #8", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
+TESTINST3("sxtab16 r0, r1, r2, ROR #8", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
+TESTINST3("sxtab16 r0, r1, r2, ROR #8", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
+TESTINST3("sxtab16 r0, r1, r2, ROR #8", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
+TESTINST3("sxtab16 r0, r1, r2, ROR #8", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
+TESTINST3("sxtab16 r0, r1, r2, ROR #8", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
+TESTINST3("sxtab16 r0, r1, r2, ROR #8", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
+TESTINST3("sxtab16 r0, r1, r2, ROR #8", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
+TESTINST3("sxtab16 r0, r1, r2, ROR #8", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
+
+TESTINST3("sxtab16 r0, r1, r2, ROR #0", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
+TESTINST3("sxtab16 r0, r1, r2, ROR #0", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
+TESTINST3("sxtab16 r0, r1, r2, ROR #0", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
+TESTINST3("sxtab16 r0, r1, r2, ROR #0", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
+TESTINST3("sxtab16 r0, r1, r2, ROR #0", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
+TESTINST3("sxtab16 r0, r1, r2, ROR #0", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
+TESTINST3("sxtab16 r0, r1, r2, ROR #0", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
+TESTINST3("sxtab16 r0, r1, r2, ROR #0", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
+TESTINST3("sxtab16 r0, r1, r2, ROR #0", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
+TESTINST3("sxtab16 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);
@@ -4561,6 +5024,250 @@ TESTINST3("shadd16 r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
 TESTINST3("shadd16 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
 TESTINST3("shadd16 r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
 
+  printf("------------ SHASX -----------------------------------\n");
+  TESTINST3("shasx r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
+  TESTINST3("shasx r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
+  TESTINST3("shasx r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
+  TESTINST3("shasx r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
+  TESTINST3("shasx r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
+  TESTINST3("shasx r0, r1, r2", 0x7fff00ff, 0x80017f01, r0, r1, r2, 0);
+  TESTINST3("shasx r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
+  TESTINST3("shasx r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
+TESTINST3("shasx r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
+
+  printf("------------ UHASX -----------------------------------\n");
+  TESTINST3("uhasx r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
+  TESTINST3("uhasx r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
+  TESTINST3("uhasx r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
+  TESTINST3("uhasx r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
+  TESTINST3("uhasx r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
+  TESTINST3("uhasx r0, r1, r2", 0x7fff00ff, 0x80017f01, r0, r1, r2, 0);
+  TESTINST3("uhasx r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
+  TESTINST3("uhasx r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
+TESTINST3("uhasx r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
+
+  printf("------------ SHSAX -----------------------------------\n");
+  TESTINST3("shsax r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
+  TESTINST3("shsax r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
+  TESTINST3("shsax r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
+  TESTINST3("shsax r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
+  TESTINST3("shsax r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
+  TESTINST3("shsax r0, r1, r2", 0x7fff00ff, 0x80017f01, r0, r1, r2, 0);
+  TESTINST3("shsax r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
+  TESTINST3("shsax r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
+TESTINST3("shsax r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
+
+  printf("------------ UHSAX -----------------------------------\n");
+  TESTINST3("uhsax r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
+  TESTINST3("uhsax r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
+  TESTINST3("uhsax r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
+  TESTINST3("uhsax r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
+  TESTINST3("uhsax r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
+  TESTINST3("uhsax r0, r1, r2", 0x7fff00ff, 0x80017f01, r0, r1, r2, 0);
+  TESTINST3("uhsax r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
+  TESTINST3("uhsax r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
+TESTINST3("uhsax r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
+
   printf("------------ UHSUB8 -----------------------------------\n");
   TESTINST3("uhsub8 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
   TESTINST3("uhsub8 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
@@ -4683,6 +5390,67 @@ TESTINST3("uhsub16 r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
 TESTINST3("uhsub16 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
 TESTINST3("uhsub16 r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
 
+  printf("------------ SHSUB16 -----------------------------------\n");
+  TESTINST3("shsub16 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
+  TESTINST3("shsub16 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
+  TESTINST3("shsub16 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
+  TESTINST3("shsub16 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
+  TESTINST3("shsub16 r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
+  TESTINST3("shsub16 r0, r1, r2", 0x7fff00ff, 0x80017f01, r0, r1, r2, 0);
+  TESTINST3("shsub16 r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
+  TESTINST3("shsub16 r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
+TESTINST3("shsub16 r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
+
   printf("----------------- SMLALBB ----------------- \n");
   TESTINST4("smlalbb  r0, r1, r2, r3", 
                   0x80008000, 0x80008000, 0x00000000, r0, r1, r2, r3, 0);
index f51b313ce7793792c1524d62babf344605a5e5a1..f30f263a7dec9d338f65903a54d32da953b47844 100644 (file)
@@ -1208,6 +1208,61 @@ qadd16 r0, r1, r2 :: rd 0x5c3d09b6 rm 0x448f3a5f, rn 0x17aecf57, carryin 0, cpsr
 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
+---------------- UQADD16 ---------------- 
+uqadd16 r0, r1, r2 :: rd 0x0021ffff rm 0x0009ffff, rn 0x00180003, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0x0021ffff rm 0x00180003, rn 0x0009ffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xffff0021 rm 0x00030018, rn 0xffff0009, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xffff0021 rm 0xffff0009, rn 0x00030018, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xffffdaa0 rm 0xd83b849b, rn 0xca5e5605, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0x5d60ffff rm 0x0cdafabe, rn 0x50865114, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0x915affff rm 0x2738f0ff, rn 0x6a228b19, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xffffffff rm 0xfaceab39, rn 0x2973c051, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xf962ffff rm 0xa3e6f759, rn 0x557c7ba2, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xfffff4ba rm 0x72f33509, rn 0x9b41bfb1, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xd14ed502 rm 0xa5ec1aa8, rn 0x2b62ba5a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xc4a74327 rm 0x6ebd04d9, rn 0x55ea3e4e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xffffffff rm 0x2eaea305, rn 0xe79fd570, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xf06dffff rm 0x22b65db1, rn 0xcdb7ed11, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xa622c6c7 rm 0x776c41c7, rn 0x2eb68500, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xffffffff rm 0xe50dd77c, rn 0xd6f9a698, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xf988807c rm 0x0be36f70, rn 0xeda5110c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xffffffff rm 0xebbff82b, rn 0xd759eb72, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xffffffff rm 0x50c28082, rn 0xd9c4b1f4, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xba34e1af rm 0x17962e8f, rn 0xa29eb320, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xffff883e rm 0xc57243b7, rn 0xcf1e4487, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xffffdfbb rm 0x7eb226ac, rn 0xf20fb90f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xffffffff rm 0xbce0f026, rn 0xbb151055, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xffffb324 rm 0xa5757252, rn 0x957440d2, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xffffef32 rm 0xf4a477c1, rn 0x728b7771, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xffff5b14 rm 0x76723a21, rn 0xf13c20f3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xfb099476 rm 0x74d01105, rn 0x86398371, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xc4f7ffff rm 0xc1273e2c, rn 0x03d0fb78, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xffffffff rm 0xdd9b7653, rn 0xd0d49b7c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xffff7a29 rm 0xdde62fd1, rn 0x76354a58, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xffffaa4d rm 0xc3fb4a96, rn 0x9fa45fb7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xffffcd42 rm 0xa1a10f56, rn 0x7572bdec, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xffffee8f rm 0x4b7d4fd9, rn 0xfea59eb6, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xffffffff rm 0x9d0ddffc, rn 0xf2669090, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xffffffff rm 0x4f82d17c, rn 0xbc1ff573, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0x3c80c488 rm 0x08215ca2, rn 0x345f67e6, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xffffffff rm 0xf23595d0, rn 0x3f39d77e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xffffffff rm 0xf244c158, rn 0xfb2db55b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0x3919ffff rm 0x256bfdd6, rn 0x13aebedf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xffff3c05 rm 0xc02a0c05, rn 0x5b013000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xffffffff rm 0xee2fa46e, rn 0xed95b542, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xf862ffff rm 0x97a7da20, rn 0x60bb5ee8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xffffe04a rm 0xa231d5e6, rn 0xd9000a64, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0x7330ffff rm 0x10e1968a, rn 0x624f9467, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xb6cee004 rm 0x0e089270, rn 0xa8c64d94, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xffff64ff rm 0x9e8e0185, rn 0x6b4f637a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0x428bffff rm 0x3096f12e, rn 0x11f5f4b9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xffffffff rm 0xffc134df, rn 0x0b02eb0c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xffffffff rm 0xe444dc25, rn 0xd5eef620, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xa8faffff rm 0x06ea9b2a, rn 0xa2108661, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0x5c3dffff rm 0x448f3a5f, rn 0x17aecf57, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xffff60a3 rm 0x4b0c2337, rn 0xffa63d6c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xffffffff rm 0xf91d5f56, rn 0x088bc0f9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqadd16 r0, r1, r2 :: rd 0xfffffb84 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
@@ -1320,6 +1375,63 @@ qsax r0, r1, r2 :: rd 0x7538520d rm 0x448f3a5f, rn 0x17aecf57, carryin 0, cpsr 0
 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
+----------------- UQSAX ----------------- 
+uqsax r0, r1, r2 :: rd 0x7fff7fff rm 0x7fff7fff, rn 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x7ffe8000 rm 0x7fff7fff, rn 0x00010001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x80008000 rm 0x80008000, rn 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x0000ffff rm 0x80008000, rn 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x00610067 rm 0x00640064, rn 0x00030003, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x00000067 rm 0x00030003, rn 0x00640064, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x8236ffff rm 0xd83b849b, rn 0xca5e5605, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x0000ffff rm 0x0cdafabe, rn 0x50865114, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x0000ffff rm 0x2738f0ff, rn 0x6a228b19, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x3a7dd4ac rm 0xfaceab39, rn 0x2973c051, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x2844ffff rm 0xa3e6f759, rn 0x557c7ba2, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x0000d04a rm 0x72f33509, rn 0x9b41bfb1, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x0000460a rm 0xa5ec1aa8, rn 0x2b62ba5a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x306f5ac3 rm 0x6ebd04d9, rn 0x55ea3e4e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x0000ffff rm 0x2eaea305, rn 0xe79fd570, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x0000ffff rm 0x22b65db1, rn 0xcdb7ed11, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x0000707d rm 0x776c41c7, rn 0x2eb68500, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x3e75ffff rm 0xe50dd77c, rn 0xd6f9a698, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x0000ffff rm 0x0be36f70, rn 0xeda5110c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x004dffff rm 0xebbff82b, rn 0xd759eb72, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x0000ffff rm 0x50c28082, rn 0xd9c4b1f4, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x0000d12d rm 0x17962e8f, rn 0xa29eb320, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x80ebffff rm 0xc57243b7, rn 0xcf1e4487, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x0000ffff rm 0x7eb226ac, rn 0xf20fb90f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0xac8bffff rm 0xbce0f026, rn 0xbb151055, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x64a3ffff rm 0xa5757252, rn 0x957440d2, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x7d33ea4c rm 0xf4a477c1, rn 0x728b7771, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x557fffff rm 0x76723a21, rn 0xf13c20f3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x0000973e rm 0x74d01105, rn 0x86398371, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x000041fc rm 0xc1273e2c, rn 0x03d0fb78, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x421fffff rm 0xdd9b7653, rn 0xd0d49b7c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x938ea606 rm 0xdde62fd1, rn 0x76354a58, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x6444ea3a rm 0xc3fb4a96, rn 0x9fa45fb7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x000084c8 rm 0xa1a10f56, rn 0x7572bdec, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x0000ffff rm 0x4b7d4fd9, rn 0xfea59eb6, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x0c7dffff rm 0x9d0ddffc, rn 0xf2669090, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x0000ffff rm 0x4f82d17c, rn 0xbc1ff573, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x00009101 rm 0x08215ca2, rn 0x345f67e6, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x1ab7d509 rm 0xf23595d0, rn 0x3f39d77e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x3ce9ffff rm 0xf244c158, rn 0xfb2db55b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x0000ffff rm 0x256bfdd6, rn 0x13aebedf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x902a6706 rm 0xc02a0c05, rn 0x5b013000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x38edffff rm 0xee2fa46e, rn 0xed95b542, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x38bfffff rm 0x97a7da20, rn 0x60bb5ee8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x97cdffff rm 0xa231d5e6, rn 0xd9000a64, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x0000f8d9 rm 0x10e1968a, rn 0x624f9467, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x0000ffff rm 0x0e089270, rn 0xa8c64d94, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x3b146cd4 rm 0x9e8e0185, rn 0x6b4f637a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x0000ffff rm 0x3096f12e, rn 0x11f5f4b9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x14b53fe1 rm 0xffc134df, rn 0x0b02eb0c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x0000ffff rm 0xe444dc25, rn 0xd5eef620, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x0000ffff rm 0x06ea9b2a, rn 0xa2108661, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x0000520d rm 0x448f3a5f, rn 0x17aecf57, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x0da0ffff rm 0x4b0c2337, rn 0xffa63d6c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x382467e1 rm 0xf91d5f56, rn 0x088bc0f9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqsax r0, r1, r2 :: rd 0x3fd2ffff 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
@@ -1377,6 +1489,63 @@ qasx r0, r1, r2 :: rd 0x13e622b1 rm 0x448f3a5f, rn 0x17aecf57, carryin 0, cpsr 0
 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
+----------------- UQASX ----------------- 
+uqasx r0, r1, r2 :: rd 0x7fff7fff rm 0x7fff7fff, rn 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0x80007ffe rm 0x7fff7fff, rn 0x00010001, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0x80008000 rm 0x80008000, rn 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0xffff0000 rm 0x80008000, rn 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0x00670061 rm 0x00640064, rn 0x00030003, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0x00670000 rm 0x00030003, rn 0x00640064, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0xffff0000 rm 0xd83b849b, rn 0xca5e5605, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0x5deeaa38 rm 0x0cdafabe, rn 0x50865114, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0xb25186dd rm 0x2738f0ff, rn 0x6a228b19, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0xffff81c6 rm 0xfaceab39, rn 0x2973c051, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0xffffa1dd rm 0xa3e6f759, rn 0x557c7ba2, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0xffff0000 rm 0x72f33509, rn 0x9b41bfb1, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0xffff0000 rm 0xa5ec1aa8, rn 0x2b62ba5a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0xad0b0000 rm 0x6ebd04d9, rn 0x55ea3e4e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0xffff0000 rm 0x2eaea305, rn 0xe79fd570, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0xffff0000 rm 0x22b65db1, rn 0xcdb7ed11, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0xfc6c1311 rm 0x776c41c7, rn 0x2eb68500, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0xffff0083 rm 0xe50dd77c, rn 0xd6f9a698, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0x1cef0000 rm 0x0be36f70, rn 0xeda5110c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0xffff20d2 rm 0xebbff82b, rn 0xd759eb72, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0xffff0000 rm 0x50c28082, rn 0xd9c4b1f4, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0xcab60000 rm 0x17962e8f, rn 0xa29eb320, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0xffff0000 rm 0xc57243b7, rn 0xcf1e4487, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0xffff0000 rm 0x7eb226ac, rn 0xf20fb90f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0xcd353511 rm 0xbce0f026, rn 0xbb151055, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0xe6470000 rm 0xa5757252, rn 0x957440d2, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0xffff0536 rm 0xf4a477c1, rn 0x728b7771, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0x97650000 rm 0x76723a21, rn 0xf13c20f3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0xf8410000 rm 0x74d01105, rn 0x86398371, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0xffff3a5c rm 0xc1273e2c, rn 0x03d0fb78, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0xffff0000 rm 0xdd9b7653, rn 0xd0d49b7c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0xffff0000 rm 0xdde62fd1, rn 0x76354a58, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0xffff0000 rm 0xc3fb4a96, rn 0x9fa45fb7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0xffff0000 rm 0xa1a10f56, rn 0x7572bdec, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0xea330000 rm 0x4b7d4fd9, rn 0xfea59eb6, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0xffff0000 rm 0x9d0ddffc, rn 0xf2669090, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0xffff155d rm 0x4f82d17c, rn 0xbc1ff573, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0x70072843 rm 0x08215ca2, rn 0x345f67e6, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0xffff5697 rm 0xf23595d0, rn 0x3f39d77e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0xffff0000 rm 0xf244c158, rn 0xfb2db55b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0xe44aea28 rm 0x256bfdd6, rn 0x13aebedf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0xf02a0000 rm 0xc02a0c05, rn 0x5b013000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0xffff0000 rm 0xee2fa46e, rn 0xed95b542, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0xf68f7965 rm 0x97a7da20, rn 0x60bb5ee8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0xac950000 rm 0xa231d5e6, rn 0xd9000a64, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0xa548343b rm 0x10e1968a, rn 0x624f9467, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0x5b9c0000 rm 0x0e089270, rn 0xa8c64d94, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0xffff0000 rm 0x9e8e0185, rn 0x6b4f637a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0xffffdf39 rm 0x3096f12e, rn 0x11f5f4b9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0xffff29dd rm 0xffc134df, rn 0x0b02eb0c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0xffff0637 rm 0xe444dc25, rn 0xd5eef620, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0x8d4b0000 rm 0x06ea9b2a, rn 0xa2108661, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0xffff22b1 rm 0x448f3a5f, rn 0x17aecf57, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0x88780000 rm 0x4b0c2337, rn 0xffa63d6c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0xffff56cb rm 0xf91d5f56, rn 0x088bc0f9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uqasx r0, r1, r2 :: rd 0xffff0000 rm 0xf808434e, rn 0xefeab836, carryin 0, cpsr 0x00000000       ge[3:0]=0000
 ----------------- SASX ----------------- 
 sasx r0, r1, r2 :: rd 0x7fff7fff rm 0x7fff7fff, rn 0x00000000, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
 sasx r0, r1, r2 :: rd 0x80007ffe rm 0x7fff7fff, rn 0x00010001, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
@@ -1434,6 +1603,177 @@ sasx r0, r1, r2 :: rd 0x13e622b1 rm 0x448f3a5f, rn 0x17aecf57, carryin 0, cpsr 0
 sasx r0, r1, r2 :: rd 0x88782391 rm 0x4b0c2337, rn 0xffa63d6c, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
 sasx r0, r1, r2 :: rd 0xba1656cb rm 0xf91d5f56, rn 0x088bc0f9, carryin 0, cpsr 0x00030000       ge[3:0]=0011
 sasx r0, r1, r2 :: rd 0xb03e5364 rm 0xf808434e, rn 0xefeab836, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+----------------- USAX ----------------- 
+usax r0, r1, r2 :: rd 0x7fff7fff rm 0x7fff7fff, rn 0x00000000, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+usax r0, r1, r2 :: rd 0x7ffe8000 rm 0x7fff7fff, rn 0x00010001, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+usax r0, r1, r2 :: rd 0x80008000 rm 0x80008000, rn 0x00000000, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+usax r0, r1, r2 :: rd 0x80017fff rm 0x80008000, rn 0xffffffff, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+usax r0, r1, r2 :: rd 0x00610067 rm 0x00640064, rn 0x00030003, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+usax r0, r1, r2 :: rd 0xff9f0067 rm 0x00030003, rn 0x00640064, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+usax r0, r1, r2 :: rd 0x82364ef9 rm 0xd83b849b, rn 0xca5e5605, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+usax r0, r1, r2 :: rd 0xbbc64b44 rm 0x0cdafabe, rn 0x50865114, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+usax r0, r1, r2 :: rd 0x9c1f5b21 rm 0x2738f0ff, rn 0x6a228b19, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+usax r0, r1, r2 :: rd 0x3a7dd4ac rm 0xfaceab39, rn 0x2973c051, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+usax r0, r1, r2 :: rd 0x28444cd5 rm 0xa3e6f759, rn 0x557c7ba2, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+usax r0, r1, r2 :: rd 0xb342d04a rm 0x72f33509, rn 0x9b41bfb1, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+usax r0, r1, r2 :: rd 0xeb92460a rm 0xa5ec1aa8, rn 0x2b62ba5a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+usax r0, r1, r2 :: rd 0x306f5ac3 rm 0x6ebd04d9, rn 0x55ea3e4e, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+usax r0, r1, r2 :: rd 0x593e8aa4 rm 0x2eaea305, rn 0xe79fd570, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+usax r0, r1, r2 :: rd 0x35a52b68 rm 0x22b65db1, rn 0xcdb7ed11, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+usax r0, r1, r2 :: rd 0xf26c707d rm 0x776c41c7, rn 0x2eb68500, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+usax r0, r1, r2 :: rd 0x3e75ae75 rm 0xe50dd77c, rn 0xd6f9a698, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+usax r0, r1, r2 :: rd 0xfad75d15 rm 0x0be36f70, rn 0xeda5110c, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+usax r0, r1, r2 :: rd 0x004dcf84 rm 0xebbff82b, rn 0xd759eb72, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+usax r0, r1, r2 :: rd 0x9ece5a46 rm 0x50c28082, rn 0xd9c4b1f4, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+usax r0, r1, r2 :: rd 0x6476d12d rm 0x17962e8f, rn 0xa29eb320, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+usax r0, r1, r2 :: rd 0x80eb12d5 rm 0xc57243b7, rn 0xcf1e4487, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+usax r0, r1, r2 :: rd 0xc5a318bb rm 0x7eb226ac, rn 0xf20fb90f, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+usax r0, r1, r2 :: rd 0xac8bab3b rm 0xbce0f026, rn 0xbb151055, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+usax r0, r1, r2 :: rd 0x64a307c6 rm 0xa5757252, rn 0x957440d2, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+usax r0, r1, r2 :: rd 0x7d33ea4c rm 0xf4a477c1, rn 0x728b7771, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+usax r0, r1, r2 :: rd 0x557f2b5d rm 0x76723a21, rn 0xf13c20f3, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+usax r0, r1, r2 :: rd 0xf15f973e rm 0x74d01105, rn 0x86398371, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+usax r0, r1, r2 :: rd 0xc5af41fc rm 0xc1273e2c, rn 0x03d0fb78, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+usax r0, r1, r2 :: rd 0x421f4727 rm 0xdd9b7653, rn 0xd0d49b7c, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+usax r0, r1, r2 :: rd 0x938ea606 rm 0xdde62fd1, rn 0x76354a58, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+usax r0, r1, r2 :: rd 0x6444ea3a rm 0xc3fb4a96, rn 0x9fa45fb7, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+usax r0, r1, r2 :: rd 0xe3b584c8 rm 0xa1a10f56, rn 0x7572bdec, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+usax r0, r1, r2 :: rd 0xacc74e7e rm 0x4b7d4fd9, rn 0xfea59eb6, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+usax r0, r1, r2 :: rd 0x0c7dd262 rm 0x9d0ddffc, rn 0xf2669090, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+usax r0, r1, r2 :: rd 0x5a0f8d9b rm 0x4f82d17c, rn 0xbc1ff573, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+usax r0, r1, r2 :: rd 0xa03b9101 rm 0x08215ca2, rn 0x345f67e6, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+usax r0, r1, r2 :: rd 0x1ab7d509 rm 0xf23595d0, rn 0x3f39d77e, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+usax r0, r1, r2 :: rd 0x3ce9bc85 rm 0xf244c158, rn 0xfb2db55b, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+usax r0, r1, r2 :: rd 0x668c1184 rm 0x256bfdd6, rn 0x13aebedf, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+usax r0, r1, r2 :: rd 0x902a6706 rm 0xc02a0c05, rn 0x5b013000, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+usax r0, r1, r2 :: rd 0x38ed9203 rm 0xee2fa46e, rn 0xed95b542, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+usax r0, r1, r2 :: rd 0x38bf3adb rm 0x97a7da20, rn 0x60bb5ee8, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+usax r0, r1, r2 :: rd 0x97cdaee6 rm 0xa231d5e6, rn 0xd9000a64, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+usax r0, r1, r2 :: rd 0x7c7af8d9 rm 0x10e1968a, rn 0x624f9467, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+usax r0, r1, r2 :: rd 0xc0743b36 rm 0x0e089270, rn 0xa8c64d94, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+usax r0, r1, r2 :: rd 0x3b146cd4 rm 0x9e8e0185, rn 0x6b4f637a, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+usax r0, r1, r2 :: rd 0x3bdd0323 rm 0x3096f12e, rn 0x11f5f4b9, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+usax r0, r1, r2 :: rd 0x14b53fe1 rm 0xffc134df, rn 0x0b02eb0c, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+usax r0, r1, r2 :: rd 0xee24b213 rm 0xe444dc25, rn 0xd5eef620, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+usax r0, r1, r2 :: rd 0x80893d3a rm 0x06ea9b2a, rn 0xa2108661, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+usax r0, r1, r2 :: rd 0x7538520d rm 0x448f3a5f, rn 0x17aecf57, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+usax r0, r1, r2 :: rd 0x0da022dd rm 0x4b0c2337, rn 0xffa63d6c, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+usax r0, r1, r2 :: rd 0x382467e1 rm 0xf91d5f56, rn 0x088bc0f9, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+usax r0, r1, r2 :: rd 0x3fd23338 rm 0xf808434e, rn 0xefeab836, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+----------------- UASX ----------------- 
+uasx r0, r1, r2 :: rd 0x7fff7fff rm 0x7fff7fff, rn 0x00000000, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+uasx r0, r1, r2 :: rd 0x80007ffe rm 0x7fff7fff, rn 0x00010001, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+uasx r0, r1, r2 :: rd 0x80008000 rm 0x80008000, rn 0x00000000, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+uasx r0, r1, r2 :: rd 0x7fff8001 rm 0x80008000, rn 0xffffffff, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+uasx r0, r1, r2 :: rd 0x00670061 rm 0x00640064, rn 0x00030003, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+uasx r0, r1, r2 :: rd 0x0067ff9f rm 0x00030003, rn 0x00640064, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uasx r0, r1, r2 :: rd 0x2e40ba3d rm 0xd83b849b, rn 0xca5e5605, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+uasx r0, r1, r2 :: rd 0x5deeaa38 rm 0x0cdafabe, rn 0x50865114, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+uasx r0, r1, r2 :: rd 0xb25186dd rm 0x2738f0ff, rn 0x6a228b19, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+uasx r0, r1, r2 :: rd 0xbb1f81c6 rm 0xfaceab39, rn 0x2973c051, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+uasx r0, r1, r2 :: rd 0x1f88a1dd rm 0xa3e6f759, rn 0x557c7ba2, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+uasx r0, r1, r2 :: rd 0x32a499c8 rm 0x72f33509, rn 0x9b41bfb1, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+uasx r0, r1, r2 :: rd 0x6046ef46 rm 0xa5ec1aa8, rn 0x2b62ba5a, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+uasx r0, r1, r2 :: rd 0xad0baeef rm 0x6ebd04d9, rn 0x55ea3e4e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uasx r0, r1, r2 :: rd 0x041ebb66 rm 0x2eaea305, rn 0xe79fd570, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+uasx r0, r1, r2 :: rd 0x0fc78ffa rm 0x22b65db1, rn 0xcdb7ed11, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+uasx r0, r1, r2 :: rd 0xfc6c1311 rm 0x776c41c7, rn 0x2eb68500, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+uasx r0, r1, r2 :: rd 0x8ba50083 rm 0xe50dd77c, rn 0xd6f9a698, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+uasx r0, r1, r2 :: rd 0x1cef81cb rm 0x0be36f70, rn 0xeda5110c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uasx r0, r1, r2 :: rd 0xd73120d2 rm 0xebbff82b, rn 0xd759eb72, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+uasx r0, r1, r2 :: rd 0x02b6a6be rm 0x50c28082, rn 0xd9c4b1f4, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+uasx r0, r1, r2 :: rd 0xcab68bf1 rm 0x17962e8f, rn 0xa29eb320, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uasx r0, r1, r2 :: rd 0x09f97499 rm 0xc57243b7, rn 0xcf1e4487, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+uasx r0, r1, r2 :: rd 0x37c1349d rm 0x7eb226ac, rn 0xf20fb90f, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+uasx r0, r1, r2 :: rd 0xcd353511 rm 0xbce0f026, rn 0xbb151055, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+uasx r0, r1, r2 :: rd 0xe647dcde rm 0xa5757252, rn 0x957440d2, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uasx r0, r1, r2 :: rd 0x6c150536 rm 0xf4a477c1, rn 0x728b7771, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+uasx r0, r1, r2 :: rd 0x976548e5 rm 0x76723a21, rn 0xf13c20f3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uasx r0, r1, r2 :: rd 0xf8418acc rm 0x74d01105, rn 0x86398371, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uasx r0, r1, r2 :: rd 0xbc9f3a5c rm 0xc1273e2c, rn 0x03d0fb78, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+uasx r0, r1, r2 :: rd 0x7917a57f rm 0xdd9b7653, rn 0xd0d49b7c, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+uasx r0, r1, r2 :: rd 0x283eb99c rm 0xdde62fd1, rn 0x76354a58, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+uasx r0, r1, r2 :: rd 0x23b2aaf2 rm 0xc3fb4a96, rn 0x9fa45fb7, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+uasx r0, r1, r2 :: rd 0x5f8d99e4 rm 0xa1a10f56, rn 0x7572bdec, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+uasx r0, r1, r2 :: rd 0xea335134 rm 0x4b7d4fd9, rn 0xfea59eb6, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uasx r0, r1, r2 :: rd 0x2d9ded96 rm 0x9d0ddffc, rn 0xf2669090, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+uasx r0, r1, r2 :: rd 0x44f5155d rm 0x4f82d17c, rn 0xbc1ff573, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+uasx r0, r1, r2 :: rd 0x70072843 rm 0x08215ca2, rn 0x345f67e6, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+uasx r0, r1, r2 :: rd 0xc9b35697 rm 0xf23595d0, rn 0x3f39d77e, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+uasx r0, r1, r2 :: rd 0xa79fc62b rm 0xf244c158, rn 0xfb2db55b, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+uasx r0, r1, r2 :: rd 0xe44aea28 rm 0x256bfdd6, rn 0x13aebedf, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+uasx r0, r1, r2 :: rd 0xf02ab104 rm 0xc02a0c05, rn 0x5b013000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uasx r0, r1, r2 :: rd 0xa371b6d9 rm 0xee2fa46e, rn 0xed95b542, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+uasx r0, r1, r2 :: rd 0xf68f7965 rm 0x97a7da20, rn 0x60bb5ee8, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+uasx r0, r1, r2 :: rd 0xac95fce6 rm 0xa231d5e6, rn 0xd9000a64, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uasx r0, r1, r2 :: rd 0xa548343b rm 0x10e1968a, rn 0x624f9467, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+uasx r0, r1, r2 :: rd 0x5b9ce9aa rm 0x0e089270, rn 0xa8c64d94, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uasx r0, r1, r2 :: rd 0x02089636 rm 0x9e8e0185, rn 0x6b4f637a, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+uasx r0, r1, r2 :: rd 0x254fdf39 rm 0x3096f12e, rn 0x11f5f4b9, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+uasx r0, r1, r2 :: rd 0xeacd29dd rm 0xffc134df, rn 0x0b02eb0c, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+uasx r0, r1, r2 :: rd 0xda640637 rm 0xe444dc25, rn 0xd5eef620, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+uasx r0, r1, r2 :: rd 0x8d4bf91a rm 0x06ea9b2a, rn 0xa2108661, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uasx r0, r1, r2 :: rd 0x13e622b1 rm 0x448f3a5f, rn 0x17aecf57, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+uasx r0, r1, r2 :: rd 0x88782391 rm 0x4b0c2337, rn 0xffa63d6c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uasx r0, r1, r2 :: rd 0xba1656cb rm 0xf91d5f56, rn 0x088bc0f9, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+uasx r0, r1, r2 :: rd 0xb03e5364 rm 0xf808434e, rn 0xefeab836, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+----------------- SSAX ----------------- 
+ssax r0, r1, r2 :: rd 0x7fff7fff rm 0x7fff7fff, rn 0x00000000, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+ssax r0, r1, r2 :: rd 0x7ffe8000 rm 0x7fff7fff, rn 0x00010001, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+ssax r0, r1, r2 :: rd 0x80008000 rm 0x80008000, rn 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssax r0, r1, r2 :: rd 0x80017fff rm 0x80008000, rn 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssax r0, r1, r2 :: rd 0x00610067 rm 0x00640064, rn 0x00030003, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+ssax r0, r1, r2 :: rd 0xff9f0067 rm 0x00030003, rn 0x00640064, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+ssax r0, r1, r2 :: rd 0x82364ef9 rm 0xd83b849b, rn 0xca5e5605, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssax r0, r1, r2 :: rd 0xbbc64b44 rm 0x0cdafabe, rn 0x50865114, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+ssax r0, r1, r2 :: rd 0x9c1f5b21 rm 0x2738f0ff, rn 0x6a228b19, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+ssax r0, r1, r2 :: rd 0x3a7dd4ac rm 0xfaceab39, rn 0x2973c051, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+ssax r0, r1, r2 :: rd 0x28444cd5 rm 0xa3e6f759, rn 0x557c7ba2, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+ssax r0, r1, r2 :: rd 0xb342d04a rm 0x72f33509, rn 0x9b41bfb1, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+ssax r0, r1, r2 :: rd 0xeb92460a rm 0xa5ec1aa8, rn 0x2b62ba5a, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+ssax r0, r1, r2 :: rd 0x306f5ac3 rm 0x6ebd04d9, rn 0x55ea3e4e, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+ssax r0, r1, r2 :: rd 0x593e8aa4 rm 0x2eaea305, rn 0xe79fd570, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+ssax r0, r1, r2 :: rd 0x35a52b68 rm 0x22b65db1, rn 0xcdb7ed11, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+ssax r0, r1, r2 :: rd 0xf26c707d rm 0x776c41c7, rn 0x2eb68500, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+ssax r0, r1, r2 :: rd 0x3e75ae75 rm 0xe50dd77c, rn 0xd6f9a698, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+ssax r0, r1, r2 :: rd 0xfad75d15 rm 0x0be36f70, rn 0xeda5110c, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+ssax r0, r1, r2 :: rd 0x004dcf84 rm 0xebbff82b, rn 0xd759eb72, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+ssax r0, r1, r2 :: rd 0x9ece5a46 rm 0x50c28082, rn 0xd9c4b1f4, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+ssax r0, r1, r2 :: rd 0x6476d12d rm 0x17962e8f, rn 0xa29eb320, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+ssax r0, r1, r2 :: rd 0x80eb12d5 rm 0xc57243b7, rn 0xcf1e4487, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+ssax r0, r1, r2 :: rd 0xc5a318bb rm 0x7eb226ac, rn 0xf20fb90f, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+ssax r0, r1, r2 :: rd 0xac8bab3b rm 0xbce0f026, rn 0xbb151055, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssax r0, r1, r2 :: rd 0x64a307c6 rm 0xa5757252, rn 0x957440d2, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+ssax r0, r1, r2 :: rd 0x7d33ea4c rm 0xf4a477c1, rn 0x728b7771, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+ssax r0, r1, r2 :: rd 0x557f2b5d rm 0x76723a21, rn 0xf13c20f3, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+ssax r0, r1, r2 :: rd 0xf15f973e rm 0x74d01105, rn 0x86398371, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+ssax r0, r1, r2 :: rd 0xc5af41fc rm 0xc1273e2c, rn 0x03d0fb78, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+ssax r0, r1, r2 :: rd 0x421f4727 rm 0xdd9b7653, rn 0xd0d49b7c, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+ssax r0, r1, r2 :: rd 0x938ea606 rm 0xdde62fd1, rn 0x76354a58, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+ssax r0, r1, r2 :: rd 0x6444ea3a rm 0xc3fb4a96, rn 0x9fa45fb7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssax r0, r1, r2 :: rd 0xe3b584c8 rm 0xa1a10f56, rn 0x7572bdec, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+ssax r0, r1, r2 :: rd 0xacc74e7e rm 0x4b7d4fd9, rn 0xfea59eb6, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+ssax r0, r1, r2 :: rd 0x0c7dd262 rm 0x9d0ddffc, rn 0xf2669090, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+ssax r0, r1, r2 :: rd 0x5a0f8d9b rm 0x4f82d17c, rn 0xbc1ff573, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+ssax r0, r1, r2 :: rd 0xa03b9101 rm 0x08215ca2, rn 0x345f67e6, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+ssax r0, r1, r2 :: rd 0x1ab7d509 rm 0xf23595d0, rn 0x3f39d77e, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+ssax r0, r1, r2 :: rd 0x3ce9bc85 rm 0xf244c158, rn 0xfb2db55b, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+ssax r0, r1, r2 :: rd 0x668c1184 rm 0x256bfdd6, rn 0x13aebedf, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+ssax r0, r1, r2 :: rd 0x902a6706 rm 0xc02a0c05, rn 0x5b013000, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+ssax r0, r1, r2 :: rd 0x38ed9203 rm 0xee2fa46e, rn 0xed95b542, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+ssax r0, r1, r2 :: rd 0x38bf3adb rm 0x97a7da20, rn 0x60bb5ee8, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+ssax r0, r1, r2 :: rd 0x97cdaee6 rm 0xa231d5e6, rn 0xd9000a64, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssax r0, r1, r2 :: rd 0x7c7af8d9 rm 0x10e1968a, rn 0x624f9467, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+ssax r0, r1, r2 :: rd 0xc0743b36 rm 0x0e089270, rn 0xa8c64d94, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssax r0, r1, r2 :: rd 0x3b146cd4 rm 0x9e8e0185, rn 0x6b4f637a, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+ssax r0, r1, r2 :: rd 0x3bdd0323 rm 0x3096f12e, rn 0x11f5f4b9, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+ssax r0, r1, r2 :: rd 0x14b53fe1 rm 0xffc134df, rn 0x0b02eb0c, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+ssax r0, r1, r2 :: rd 0xee24b213 rm 0xe444dc25, rn 0xd5eef620, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssax r0, r1, r2 :: rd 0x80893d3a rm 0x06ea9b2a, rn 0xa2108661, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+ssax r0, r1, r2 :: rd 0x7538520d rm 0x448f3a5f, rn 0x17aecf57, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+ssax r0, r1, r2 :: rd 0x0da022dd rm 0x4b0c2337, rn 0xffa63d6c, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+ssax r0, r1, r2 :: rd 0x382467e1 rm 0xf91d5f56, rn 0x088bc0f9, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+ssax r0, r1, r2 :: rd 0x3fd23338 rm 0xf808434e, rn 0xefeab836, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
 ----------------- 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
@@ -2207,6 +2547,66 @@ shadd8 r0, r1, r2 :: rd 0xfca8066e rm 0x73c29060, rn 0x868e7c7d, carryin 0, cpsr
 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
+------------ SHSUB8 -----------------------------------
+shsub8 r0, r1, r2 :: rd 0x00f8fffe rm 0x0009ffff, rn 0x00180003, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0x00070002 rm 0x00180003, rn 0x0009ffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0x00020007 rm 0x00030018, rn 0xffff0009, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0xfffe00f8 rm 0xffff0009, rn 0x00030018, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0x3fff3fff rm 0x7fff7fff, rn 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0x7fffc0ff rm 0x7fff00ff, rn 0x80017f01, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0xc000c000 rm 0x80008000, rn 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0xc000c000 rm 0x80008000, rn 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0xf5fb3d37 rm 0xb8035b5b, rn 0xce0ce1ed, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0x353f19cc rm 0x146275d8, rn 0xaae3433f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0xfd06d20f rm 0x2c07a5b4, rn 0x32fa0095, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0xc607132e rm 0x8ed8287c, rn 0x02c90120, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0x0f172156 rm 0x29300837, rn 0x0b02c58a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0xb9d2f650 rm 0xb0d20777, rn 0x3e2e1bd7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0xfc36f1e6 rm 0xd5fe2dc4, rn 0xdd914bf7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0x15589fb5 rm 0x1d66879f, rn 0xf2b64835, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0xa8d10c39 rm 0xae930a1a, rn 0x5ef1f1a8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0x4fd14ebf rm 0x1ffe53d9, rn 0x815bb75b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0xeb3006ee rm 0xc6ffabb6, rn 0xef9e9fd9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0x01f00772 rm 0x3dba1164, rn 0x3ada0280, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0x25290e0f rm 0xda4ba05b, rn 0x90f9833d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0x72a9f2f7 rm 0x7fa1d5a6, rn 0x9a4ff1b8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0x9837283f rm 0x81616d13, rn 0x51f31d95, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0x00ebd7b4 rm 0x0849a0c2, rn 0x0872f25a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0x30f93d30 rm 0xf1e03d7e, rn 0x91edc21d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0x240ce291 rm 0x6034078d, rn 0x181c436b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0x040ec0ad rm 0xf0d5ff94, rn 0xe7b87e39, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0x5e17f59e rm 0x3edad6b6, rn 0x82aceb7a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0xcc47032a rm 0x0557c6fc, rn 0x6cc9bfa8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0x7ffca109 rm 0x7f808c15, rn 0x81874a02, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0x1c4103e3 rm 0x6b1422c7, rn 0x33921b00, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0x32feddf7 rm 0x3ccad3f7, rn 0xd7ce1909, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0x5c243335 rm 0x3e435701, rn 0x85fbf196, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0xa3e70132 rm 0xb4e16b6e, rn 0x6e13680a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0xa25f70c6 rm 0x89436f88, rn 0x44858efc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0xabfac800 rm 0x9002bc30, rn 0x390d2c2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0x14b115df rm 0xbea121ab, rn 0x953ff6ec, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0x88335250 rm 0x80657c40, rn 0x6ffed89f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0x16e721f3 rm 0x3e8c49b7, rn 0x11bd07d1, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0x0c931840 rm 0x7795635d, rn 0x5e6e32dd, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0xfcc6b6e1 rm 0xe4999bf2, rn 0xec0c2f30, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0x1a11d243 rm 0x5736ed46, rn 0x231348c0, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0x5df01c21 rm 0x4f9ddd1b, rn 0x95bca5d8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0x4b08bdfd rm 0x5765b203, rn 0xc1553709, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0xcc13d8fc rm 0x0112b30a, rn 0x69ec0212, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0x38e13337 rm 0x74bd0223, rn 0x03fa9bb5, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0xcab7f9e9 rm 0x899d9192, rn 0xf52e9fbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0x9afd15ff rm 0xb4c510a7, rn 0x7fcbe5a9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0x1be929c4 rm 0x64a365ef, rn 0x2dd01366, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0xccb2ca3f rm 0xf7b0b13e, rn 0x5e4b1cbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0xffca1dee rm 0x44de5ca9, rn 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0x20c60d2a rm 0x299da970, rn 0xe8108f1b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0x14f8dbfb rm 0xf5818cfb, rn 0xcd90d604, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0x1423ee32 rm 0xaa5e9444, rn 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0xb61efbf0 rm 0xe60743c3, rn 0x7acb4de3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0x761a8af1 rm 0x73c29060, rn 0x868e7c7d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0x21320bf8 rm 0x5f77532e, rn 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0x5ff8eafe rm 0x4e5e0760, rn 0x8f6d3264, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub8 r0, r1, r2 :: rd 0x211041c2 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
@@ -2786,6 +3186,56 @@ uxtab16 r0, r1, r2, ROR #0 :: rd 0x745090dd rm 0x73c29060, rn 0x868e7c7d, carryi
 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
+----------- SXTAB16 -----------
+sxtab16 r0, r1, r2, ROR #24 :: rd 0x3169594e rm 0x31415927, rn 0x27182819, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #16 :: rd 0x315a593f rm 0x31415927, rn 0x27182819, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #8 :: rd 0x3168594f rm 0x31415927, rn 0x27182819, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #0 :: rd 0x31595940 rm 0x31415927, rn 0x27182819, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #24 :: rd 0x3169594e rm 0x31415927, rn 0x27182899, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #16 :: rd 0x30da593f rm 0x31415927, rn 0x27182899, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #8 :: rd 0x3168594f rm 0x31415927, rn 0x27182899, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #0 :: rd 0x315958c0 rm 0x31415927, rn 0x27182899, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #0 :: rd 0x3159ff98 rm 0x3141ffff, rn 0x27182899, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #24 :: rd 0xf7ccb19c rm 0xf7b0b13e, rn 0x5e4b1cbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #24 :: rd 0x44ff5cef rm 0x44de5ca9, rn 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #24 :: rd 0x292ca958 rm 0x299da970, rn 0xe8108f1b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #24 :: rd 0xf5578cc8 rm 0xf5818cfb, rn 0xcd90d604, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #24 :: rd 0xaa1593c6 rm 0xaa5e9444, rn 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #24 :: rd 0xe654443d rm 0xe60743c3, rn 0x7acb4de3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #24 :: rd 0x743e8fe6 rm 0x73c29060, rn 0x868e7c7d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #24 :: rd 0x5fb4534b rm 0x5f77532e, rn 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #24 :: rd 0x4e9006ef rm 0x4e5e0760, rn 0x8f6d3264, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #24 :: rd 0x21662f91 rm 0x21ba2fb3, rn 0xde99ac2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #16 :: rd 0xf76fb189 rm 0xf7b0b13e, rn 0x5e4b1cbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #16 :: rd 0x44aa5cf3 rm 0x44de5ca9, rn 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #16 :: rd 0x29b8a980 rm 0x299da970, rn 0xe8108f1b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #16 :: rd 0xf5858c8b rm 0xf5818cfb, rn 0xcd90d604, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #16 :: rd 0xaa3d945b rm 0xaa5e9444, rn 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #16 :: rd 0xe5ea438e rm 0xe60743c3, rn 0x7acb4de3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #16 :: rd 0x743f8fee rm 0x73c29060, rn 0x868e7c7d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #16 :: rd 0x5fb45341 rm 0x5f77532e, rn 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #16 :: rd 0x4ec207cd rm 0x4e5e0760, rn 0x8f6d3264, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #16 :: rd 0x21e92f4c rm 0x21ba2fb3, rn 0xde99ac2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #8 :: rd 0xf80eb15a rm 0xf7b0b13e, rn 0x5e4b1cbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #8 :: rd 0x45245cca rm 0x44de5ca9, rn 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #8 :: rd 0x2985a8ff rm 0x299da970, rn 0xe8108f1b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #8 :: rd 0xf54e8cd1 rm 0xf5818cfb, rn 0xcd90d604, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #8 :: rd 0xa9e093fb rm 0xaa5e9444, rn 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #8 :: rd 0xe6814410 rm 0xe60743c3, rn 0x7acb4de3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #8 :: rd 0x734890dc rm 0x73c29060, rn 0x868e7c7d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #8 :: rd 0x5f94536b rm 0x5f77532e, rn 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #8 :: rd 0x4ded0792 rm 0x4e5e0760, rn 0x8f6d3264, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #8 :: rd 0x21982f5f rm 0x21ba2fb3, rn 0xde99ac2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #0 :: rd 0xf7fbb0fd rm 0xf7b0b13e, rn 0x5e4b1cbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #0 :: rd 0x45285c75 rm 0x44de5ca9, rn 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #0 :: rd 0x29ada98b rm 0x299da970, rn 0xe8108f1b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #0 :: rd 0xf5118cff rm 0xf5818cfb, rn 0xcd90d604, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #0 :: rd 0xaa759423 rm 0xaa5e9444, rn 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #0 :: rd 0xe5d243a6 rm 0xe60743c3, rn 0x7acb4de3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #0 :: rd 0x735090dd rm 0x73c29060, rn 0x868e7c7d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #0 :: rd 0x5f8a536b rm 0x5f77532e, rn 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #0 :: rd 0x4ecb07c4 rm 0x4e5e0760, rn 0x8f6d3264, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sxtab16 r0, r1, r2, ROR #0 :: rd 0x21532fe2 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
@@ -3651,6 +4101,246 @@ shadd16 r0, r1, r2 :: rd 0xfd28066e rm 0x73c29060, rn 0x868e7c7d, carryin 0, cps
 shadd16 r0, r1, r2 :: rd 0x3e454835 rm 0x5f77532e, rn 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
 shadd16 r0, r1, r2 :: rd 0xeee51ce2 rm 0x4e5e0760, rn 0x8f6d3264, carryin 0, cpsr 0x00000000       ge[3:0]=0000
 shadd16 r0, r1, r2 :: rd 0x0029edf1 rm 0x21ba2fb3, rn 0xde99ac2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+------------ SHASX -----------------------------------
+shasx r0, r1, r2 :: rd 0x0006fff3 rm 0x0009ffff, rn 0x00180003, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0x000bfffd rm 0x00180003, rn 0x0009ffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0x0006000c rm 0x00030018, rn 0xffff0009, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0x000b0003 rm 0xffff0009, rn 0x00030018, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0x3fff3fff rm 0x7fff7fff, rn 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0x7f80407f rm 0x7fff00ff, rn 0x80017f01, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0xc000c000 rm 0x80008000, rn 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0xbfffc000 rm 0x80008000, rn 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0xccf846a7 rm 0xb8035b5b, rn 0xce0ce1ed, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0x2bd0657a rm 0x146275d8, rn 0xaae3433f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0x164eb95d rm 0x2c07a5b4, rn 0x32fa0095, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0xc7fc12d9 rm 0x8ed8287c, rn 0x02c90120, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0xf75dfe9a rm 0x29300837, rn 0x0b02c58a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0xe654e4a4 rm 0xb0d20777, rn 0x3e2e1bd7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0x10fa2819 rm 0xd5fe2dc4, rn 0xdd914bf7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0x32cdca74 rm 0x1d66879f, rn 0xf2b64835, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0xd01dd594 rm 0xae930a1a, rn 0x5ef1f1a8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0xebac693f rm 0x1ffe53d9, rn 0x815bb75b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0xb36cde0c rm 0xc6ffabb6, rn 0xef9e9fd9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0x201deb45 rm 0x3dba1164, rn 0x3ada0280, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0xaec407b1 rm 0xda4ba05b, rn 0x90f9833d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0x38ac1dab rm 0x7fa1d5a6, rn 0x9a4ff1b8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0xcf7b0d90 rm 0x81616d13, rn 0x51f31d95, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0xfd51cc28 rm 0x0849a0c2, rn 0x0872f25a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0xd9fe55c8 rm 0xf1e03d7e, rn 0x91edc21d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0x51cff7b8 rm 0x6034078d, rn 0x181c436b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0x37870bee rm 0xf0d5ff94, rn 0xe7b87e39, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0x152a2a05 rm 0x3edad6b6, rn 0x82aceb7a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0xe27fad19 rm 0x0557c6fc, rn 0x6cc9bfa8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0x64c10547 rm 0x7f808c15, rn 0x81874a02, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0x430af79a rm 0x6b1422c7, rn 0x33921b00, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0x2ae9fe14 rm 0x3ccad3f7, rn 0xd7ce1909, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0x17ec6883 rm 0x3e435701, rn 0x85fbf196, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0x0e75fead rm 0xb4e16b6e, rn 0x6e13680a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0x8c1f1581 rm 0x89436f88, rn 0x44858efc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0xde18c191 rm 0x9002bc30, rn 0x390d2c2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0xdac64636 rm 0xbea121ab, rn 0x953ff6ec, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0xac820621 rm 0x80657c40, rn 0x6ffed89f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0x232e1bfd rm 0x3e8c49b7, rn 0x11bd07d1, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0x55390277 rm 0x7795635d, rn 0x5e6e32dd, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0x09e4d7f3 rm 0xe4999bf2, rn 0xec0c2f30, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0x4ffbe519 rm 0x5736ed46, rn 0x231348c0, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0xfaba23af rm 0x4f9ddd1b, rn 0x95bca5d8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0x4737f857 rm 0x5765b203, rn 0xc1553709, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0x0192a48f rm 0x0112b30a, rn 0x69ec0212, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0x0839ff14 rm 0x74bd0223, rn 0x03fa9bb5, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0x94aece32 rm 0x899d9192, rn 0xf52e9fbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0xcd37c86e rm 0xb4c510a7, rn 0x7fcbe5a9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0x3c041c0f rm 0x64a365ef, rn 0x2dd01366, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0x0a37a979 rm 0xf7b0b13e, rn 0x5e4b1cbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0x33550b2f rm 0x44de5ca9, rn 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0xdc5ce0b0 rm 0x299da970, rn 0xe8108f1b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0xe5c2dfb5 rm 0xf5818cfb, rn 0xcd90d604, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0xb11e0916 rm 0xaa5e9444, rn 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0x19f5e47c rm 0xe60743c3, rn 0x7acb4de3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0x781f04e9 rm 0x73c29060, rn 0x868e7c7d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0x4e5a1b0d rm 0x5f77532e, rn 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0x40613bf9 rm 0x4e5e0760, rn 0x8f6d3264, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shasx r0, r1, r2 :: rd 0xe6f4288d rm 0x21ba2fb3, rn 0xde99ac2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+------------ UHASX -----------------------------------
+uhasx r0, r1, r2 :: rd 0x00067ff3 rm 0x0009ffff, rn 0x00180003, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x800bfffd rm 0x00180003, rn 0x0009ffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x0006800c rm 0x00030018, rn 0xffff0009, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x800b0003 rm 0xffff0009, rn 0x00030018, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x3fff3fff rm 0x7fff7fff, rn 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x7f80c07f rm 0x7fff00ff, rn 0x80017f01, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x40004000 rm 0x80008000, rn 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0xbfffc000 rm 0x80008000, rn 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0xccf8c6a7 rm 0xb8035b5b, rn 0xce0ce1ed, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x2bd0e57a rm 0x146275d8, rn 0xaae3433f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x164e395d rm 0x2c07a5b4, rn 0x32fa0095, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x47fc12d9 rm 0x8ed8287c, rn 0x02c90120, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x775dfe9a rm 0x29300837, rn 0x0b02c58a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x6654e4a4 rm 0xb0d20777, rn 0x3e2e1bd7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x90faa819 rm 0xd5fe2dc4, rn 0xdd914bf7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x32cdca74 rm 0x1d66879f, rn 0xf2b64835, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0xd01dd594 rm 0xae930a1a, rn 0x5ef1f1a8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x6bace93f rm 0x1ffe53d9, rn 0x815bb75b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0xb36cde0c rm 0xc6ffabb6, rn 0xef9e9fd9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x201deb45 rm 0x3dba1164, rn 0x3ada0280, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0xaec407b1 rm 0xda4ba05b, rn 0x90f9833d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0xb8ac1dab rm 0x7fa1d5a6, rn 0x9a4ff1b8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x4f7b0d90 rm 0x81616d13, rn 0x51f31d95, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x7d514c28 rm 0x0849a0c2, rn 0x0872f25a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0xd9fed5c8 rm 0xf1e03d7e, rn 0x91edc21d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x51cff7b8 rm 0x6034078d, rn 0x181c436b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0xb7870bee rm 0xf0d5ff94, rn 0xe7b87e39, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x952a2a05 rm 0x3edad6b6, rn 0x82aceb7a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x627f2d19 rm 0x0557c6fc, rn 0x6cc9bfa8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x64c10547 rm 0x7f808c15, rn 0x81874a02, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x430af79a rm 0x6b1422c7, rn 0x33921b00, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x2ae9fe14 rm 0x3ccad3f7, rn 0xd7ce1909, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x97ece883 rm 0x3e435701, rn 0x85fbf196, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x8e75fead rm 0xb4e16b6e, rn 0x6e13680a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x8c1f1581 rm 0x89436f88, rn 0x44858efc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x5e184191 rm 0x9002bc30, rn 0x390d2c2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0xdac6c636 rm 0xbea121ab, rn 0x953ff6ec, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0xac820621 rm 0x80657c40, rn 0x6ffed89f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x232e1bfd rm 0x3e8c49b7, rn 0x11bd07d1, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x55390277 rm 0x7795635d, rn 0x5e6e32dd, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x89e4d7f3 rm 0xe4999bf2, rn 0xec0c2f30, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x4ffb6519 rm 0x5736ed46, rn 0x231348c0, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x7aba23af rm 0x4f9ddd1b, rn 0x95bca5d8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x4737f857 rm 0x5765b203, rn 0xc1553709, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x0192248f rm 0x0112b30a, rn 0x69ec0212, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x8839ff14 rm 0x74bd0223, rn 0x03fa9bb5, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x94aece32 rm 0x899d9192, rn 0xf52e9fbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0xcd37c86e rm 0xb4c510a7, rn 0x7fcbe5a9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x3c041c0f rm 0x64a365ef, rn 0x2dd01366, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x8a372979 rm 0xf7b0b13e, rn 0x5e4b1cbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x33550b2f rm 0x44de5ca9, rn 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x5c5ce0b0 rm 0x299da970, rn 0xe8108f1b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0xe5c2dfb5 rm 0xf5818cfb, rn 0xcd90d604, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0xb11e0916 rm 0xaa5e9444, rn 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x99f5e47c rm 0xe60743c3, rn 0x7acb4de3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x781f04e9 rm 0x73c29060, rn 0x868e7c7d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x4e5a1b0d rm 0x5f77532e, rn 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x4061bbf9 rm 0x4e5e0760, rn 0x8f6d3264, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhasx r0, r1, r2 :: rd 0x66f4a88d rm 0x21ba2fb3, rn 0xde99ac2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+------------ SHSAX -----------------------------------
+shsax r0, r1, r2 :: rd 0x0003000b rm 0x0009ffff, rn 0x00180003, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0x000c0006 rm 0x00180003, rn 0x0009ffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0xfffd000b rm 0x00030018, rn 0xffff0009, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0xfff30006 rm 0xffff0009, rn 0x00030018, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0x3fff3fff rm 0x7fff7fff, rn 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0x007fc080 rm 0x7fff00ff, rn 0x80017f01, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0xc000c000 rm 0x80008000, rn 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0xc000bfff rm 0x80008000, rn 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0xeb0b14b3 rm 0xb8035b5b, rn 0xce0ce1ed, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0xe891105d rm 0x146275d8, rn 0xaae3433f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0x15b9ec57 rm 0x2c07a5b4, rn 0x32fa0095, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0xc6dc15a2 rm 0x8ed8287c, rn 0x02c90120, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0x31d3099c rm 0x29300837, rn 0x0b02c58a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0xca7d22d2 rm 0xb0d20777, rn 0x3e2e1bd7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0xc50305aa rm 0xd5fe2dc4, rn 0xdd914bf7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0xea98bd2a rm 0x1d66879f, rn 0xf2b64835, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0xde753485 rm 0xae930a1a, rn 0x5ef1f1a8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0x3451ea9a rm 0x1ffe53d9, rn 0x815bb75b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0x1393cdaa rm 0xc6ffabb6, rn 0xef9e9fd9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0x1d9d261f rm 0x3dba1164, rn 0x3ada0280, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0x2b8798aa rm 0xda4ba05b, rn 0x90f9833d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0x46f4b7fa rm 0x7fa1d5a6, rn 0x9a4ff1b8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0xb1e65f83 rm 0x81616d13, rn 0x51f31d95, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0x0af7d49a rm 0x0849a0c2, rn 0x0872f25a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0x17e1e7b5 rm 0xf1e03d7e, rn 0x91edc21d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0x0e640fd4 rm 0x6034078d, rn 0x181c436b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0xb94ef3a6 rm 0xf0d5ff94, rn 0xe7b87e39, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0x29b0acb1 rm 0x3edad6b6, rn 0x82aceb7a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0x22d719e2 rm 0x0557c6fc, rn 0x6cc9bfa8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0x1abf86ce rm 0x7f808c15, rn 0x81874a02, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0x280a2b2c rm 0x6b1422c7, rn 0x33921b00, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0x11e0d5e2 rm 0x3ccad3f7, rn 0xd7ce1909, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0x2656ee7e rm 0x3e435701, rn 0x85fbf196, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0xa66b6cc0 rm 0xb4e16b6e, rn 0x6e13680a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0xfd235a06 rm 0x89436f88, rn 0x44858efc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0xb1e9fa9e rm 0x9002bc30, rn 0x390d2c2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0xe3dadb75 rm 0xbea121ab, rn 0x953ff6ec, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0xd3e3761f rm 0x80657c40, rn 0x6ffed89f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0x1b5d2dba rm 0x3e8c49b7, rn 0x11bd07d1, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0x225c60e5 rm 0x7795635d, rn 0x5e6e32dd, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0xdab4c3ff rm 0xe4999bf2, rn 0xec0c2f30, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0x073b082c rm 0x5736ed46, rn 0x231348c0, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0x54e2b96b rm 0x4f9ddd1b, rn 0x95bca5d8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0x102eb9ac rm 0x5765b203, rn 0xc1553709, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0xff800e7b rm 0x0112b30a, rn 0x69ec0212, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0x6c84030e rm 0x74bd0223, rn 0x03fa9bb5, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0xf4efc360 rm 0x899d9192, rn 0xf52e9fbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0xe78e4839 rm 0xb4c510a7, rn 0x7fcbe5a9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0x289e49df rm 0x64a365ef, rn 0x2dd01366, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0xed7807c4 rm 0xf7b0b13e, rn 0x5e4b1cbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0x11895179 rm 0x44de5ca9, rn 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0x4d41c8c0 rm 0x299da970, rn 0xe8108f1b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0x0fbead45 rm 0xf5818cfb, rn 0xcd90d604, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0xf93f8b2d rm 0xaa5e9444, rn 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0xcc125f47 rm 0xe60743c3, rn 0x7acb4de3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0xfba28b77 rm 0x73c29060, rn 0x868e7c7d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0x111d3820 rm 0x5f77532e, rn 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0x0dfdcb66 rm 0x4e5e0760, rn 0x8f6d3264, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsax r0, r1, r2 :: rd 0x3ac50726 rm 0x21ba2fb3, rn 0xde99ac2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+------------ UHSAX -----------------------------------
+uhsax r0, r1, r2 :: rd 0x0003800b rm 0x0009ffff, rn 0x00180003, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0x800c0006 rm 0x00180003, rn 0x0009ffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0xfffd800b rm 0x00030018, rn 0xffff0009, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0x7ff30006 rm 0xffff0009, rn 0x00030018, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0x3fff3fff rm 0x7fff7fff, rn 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0x007f4080 rm 0x7fff00ff, rn 0x80017f01, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0x40004000 rm 0x80008000, rn 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0xc000bfff rm 0x80008000, rn 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0xeb0b94b3 rm 0xb8035b5b, rn 0xce0ce1ed, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0xe891905d rm 0x146275d8, rn 0xaae3433f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0x15b96c57 rm 0x2c07a5b4, rn 0x32fa0095, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0x46dc15a2 rm 0x8ed8287c, rn 0x02c90120, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0xb1d3099c rm 0x29300837, rn 0x0b02c58a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0x4a7d22d2 rm 0xb0d20777, rn 0x3e2e1bd7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0x450385aa rm 0xd5fe2dc4, rn 0xdd914bf7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0xea98bd2a rm 0x1d66879f, rn 0xf2b64835, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0xde753485 rm 0xae930a1a, rn 0x5ef1f1a8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0xb4516a9a rm 0x1ffe53d9, rn 0x815bb75b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0x1393cdaa rm 0xc6ffabb6, rn 0xef9e9fd9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0x1d9d261f rm 0x3dba1164, rn 0x3ada0280, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0x2b8798aa rm 0xda4ba05b, rn 0x90f9833d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0xc6f4b7fa rm 0x7fa1d5a6, rn 0x9a4ff1b8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0x31e65f83 rm 0x81616d13, rn 0x51f31d95, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0x8af7549a rm 0x0849a0c2, rn 0x0872f25a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0x17e167b5 rm 0xf1e03d7e, rn 0x91edc21d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0x0e640fd4 rm 0x6034078d, rn 0x181c436b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0x394ef3a6 rm 0xf0d5ff94, rn 0xe7b87e39, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0xa9b0acb1 rm 0x3edad6b6, rn 0x82aceb7a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0xa2d799e2 rm 0x0557c6fc, rn 0x6cc9bfa8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0x1abf86ce rm 0x7f808c15, rn 0x81874a02, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0x280a2b2c rm 0x6b1422c7, rn 0x33921b00, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0x11e0d5e2 rm 0x3ccad3f7, rn 0xd7ce1909, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0xa6566e7e rm 0x3e435701, rn 0x85fbf196, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0x266b6cc0 rm 0xb4e16b6e, rn 0x6e13680a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0xfd235a06 rm 0x89436f88, rn 0x44858efc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0x31e97a9e rm 0x9002bc30, rn 0x390d2c2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0xe3da5b75 rm 0xbea121ab, rn 0x953ff6ec, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0xd3e3761f rm 0x80657c40, rn 0x6ffed89f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0x1b5d2dba rm 0x3e8c49b7, rn 0x11bd07d1, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0x225c60e5 rm 0x7795635d, rn 0x5e6e32dd, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0x5ab4c3ff rm 0xe4999bf2, rn 0xec0c2f30, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0x073b882c rm 0x5736ed46, rn 0x231348c0, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0xd4e2b96b rm 0x4f9ddd1b, rn 0x95bca5d8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0x102eb9ac rm 0x5765b203, rn 0xc1553709, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0xff808e7b rm 0x0112b30a, rn 0x69ec0212, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0xec84030e rm 0x74bd0223, rn 0x03fa9bb5, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0xf4efc360 rm 0x899d9192, rn 0xf52e9fbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0xe78e4839 rm 0xb4c510a7, rn 0x7fcbe5a9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0x289e49df rm 0x64a365ef, rn 0x2dd01366, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0x6d7887c4 rm 0xf7b0b13e, rn 0x5e4b1cbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0x11895179 rm 0x44de5ca9, rn 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0xcd41c8c0 rm 0x299da970, rn 0xe8108f1b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0x0fbead45 rm 0xf5818cfb, rn 0xcd90d604, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0xf93f8b2d rm 0xaa5e9444, rn 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0x4c125f47 rm 0xe60743c3, rn 0x7acb4de3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0xfba28b77 rm 0x73c29060, rn 0x868e7c7d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0x111d3820 rm 0x5f77532e, rn 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0x0dfd4b66 rm 0x4e5e0760, rn 0x8f6d3264, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhsax r0, r1, r2 :: rd 0xbac58726 rm 0x21ba2fb3, rn 0xde99ac2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
 ------------ UHSUB8 -----------------------------------
 uhsub8 r0, r1, r2 :: rd 0x00f87f7e rm 0x0009ffff, rn 0x00180003, carryin 0, cpsr 0x00000000       ge[3:0]=0000
 uhsub8 r0, r1, r2 :: rd 0x00078082 rm 0x00180003, rn 0x0009ffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
@@ -3771,6 +4461,66 @@ uhsub16 r0, r1, r2 :: rd 0xf69a09f1 rm 0x73c29060, rn 0x868e7c7d, carryin 0, cps
 uhsub16 r0, r1, r2 :: rd 0x21320af8 rm 0x5f77532e, rn 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
 uhsub16 r0, r1, r2 :: rd 0xdf78ea7e rm 0x4e5e0760, rn 0x8f6d3264, carryin 0, cpsr 0x00000000       ge[3:0]=0000
 uhsub16 r0, r1, r2 :: rd 0xa190c1c2 rm 0x21ba2fb3, rn 0xde99ac2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+------------ SHSUB16 -----------------------------------
+shsub16 r0, r1, r2 :: rd 0xfff8fffe rm 0x0009ffff, rn 0x00180003, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0x00070002 rm 0x00180003, rn 0x0009ffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0x00020007 rm 0x00030018, rn 0xffff0009, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0xfffefff8 rm 0xffff0009, rn 0x00030018, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0x3fff3fff rm 0x7fff7fff, rn 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0x7fffc0ff rm 0x7fff00ff, rn 0x80017f01, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0xc000c000 rm 0x80008000, rn 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0xc000c000 rm 0x80008000, rn 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0xf4fb3cb7 rm 0xb8035b5b, rn 0xce0ce1ed, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0x34bf194c rm 0x146275d8, rn 0xaae3433f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0xfc86d28f rm 0x2c07a5b4, rn 0x32fa0095, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0xc60713ae rm 0x8ed8287c, rn 0x02c90120, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0x0f172156 rm 0x29300837, rn 0x0b02c58a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0xb952f5d0 rm 0xb0d20777, rn 0x3e2e1bd7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0xfc36f0e6 rm 0xd5fe2dc4, rn 0xdd914bf7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0x15589fb5 rm 0x1d66879f, rn 0xf2b64835, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0xa7d10c39 rm 0xae930a1a, rn 0x5ef1f1a8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0x4f514e3f rm 0x1ffe53d9, rn 0x815bb75b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0xebb005ee rm 0xc6ffabb6, rn 0xef9e9fd9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0x01700772 rm 0x3dba1164, rn 0x3ada0280, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0x24a90e8f rm 0xda4ba05b, rn 0x90f9833d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0x72a9f1f7 rm 0x7fa1d5a6, rn 0x9a4ff1b8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0x97b727bf rm 0x81616d13, rn 0x51f31d95, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0xffebd734 rm 0x0849a0c2, rn 0x0872f25a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0x2ff93db0 rm 0xf1e03d7e, rn 0x91edc21d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0x240ce211 rm 0x6034078d, rn 0x181c436b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0x048ec0ad rm 0xf0d5ff94, rn 0xe7b87e39, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0x5e17f59e rm 0x3edad6b6, rn 0x82aceb7a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0xcc4703aa rm 0x0557c6fc, rn 0x6cc9bfa8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0x7efca109 rm 0x7f808c15, rn 0x81874a02, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0x1bc103e3 rm 0x6b1422c7, rn 0x33921b00, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0x327edd77 rm 0x3ccad3f7, rn 0xd7ce1909, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0x5c2432b5 rm 0x3e435701, rn 0x85fbf196, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0xa36701b2 rm 0xb4e16b6e, rn 0x6e13680a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0xa25f7046 rm 0x89436f88, rn 0x44858efc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0xab7ac800 rm 0x9002bc30, rn 0x390d2c2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0x14b1155f rm 0xbea121ab, rn 0x953ff6ec, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0x883351d0 rm 0x80657c40, rn 0x6ffed89f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0x166720f3 rm 0x3e8c49b7, rn 0x11bd07d1, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0x0c931840 rm 0x7795635d, rn 0x5e6e32dd, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0xfc46b661 rm 0xe4999bf2, rn 0xec0c2f30, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0x1a11d243 rm 0x5736ed46, rn 0x231348c0, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0x5cf01ba1 rm 0x4f9ddd1b, rn 0x95bca5d8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0x4b08bd7d rm 0x5765b203, rn 0xc1553709, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0xcb93d87c rm 0x0112b30a, rn 0x69ec0212, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0x38613337 rm 0x74bd0223, rn 0x03fa9bb5, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0xca37f8e9 rm 0x899d9192, rn 0xf52e9fbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0x9a7d157f rm 0xb4c510a7, rn 0x7fcbe5a9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0x1b692944 rm 0x64a365ef, rn 0x2dd01366, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0xccb2ca3f rm 0xf7b0b13e, rn 0x5e4b1cbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0xff4a1d6e rm 0x44de5ca9, rn 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0x20c60d2a rm 0x299da970, rn 0xe8108f1b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0x13f8db7b rm 0xf5818cfb, rn 0xcd90d604, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0x1423ee32 rm 0xaa5e9444, rn 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0xb59efaf0 rm 0xe60743c3, rn 0x7acb4de3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0x769a89f1 rm 0x73c29060, rn 0x868e7c7d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0x21320af8 rm 0x5f77532e, rn 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0x5f78ea7e rm 0x4e5e0760, rn 0x8f6d3264, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+shsub16 r0, r1, r2 :: rd 0x219041c2 rm 0x21ba2fb3, rn 0xde99ac2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
 ----------------- SMLALBB ----------------- 
 smlalbb  r0, r1, r2, r3 :: rd 0x00000000 rm 0x80008000, rn 0x80008000 rs 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
 smlalbb  r0, r1, r2, r3 :: rd 0x00000000 rm 0x7fff7fff, rn 0x00000000 rs 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000