]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Add tests for new insns in vex r2033 (SADD16, SSUB16, SASX, SMLAWB, SMLAWT)
authorJulian Seward <jseward@acm.org>
Mon, 20 Sep 2010 22:54:25 +0000 (22:54 +0000)
committerJulian Seward <jseward@acm.org>
Mon, 20 Sep 2010 22:54:25 +0000 (22:54 +0000)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11369

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

index 3ccc856ba3ea7b30430af7bba2ff30f7f6c3a005..ee153503ed337f206e030e8475fbfd24e9a8a83c 100644 (file)
@@ -1073,6 +1073,62 @@ TESTINST3("uadd16 r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
 TESTINST3("uadd16 r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
 TESTINST3("uadd16 r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
 
+  printf("---------------- SADD16 ---------------- \n");
+  TESTINST3("sadd16 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
+  TESTINST3("sadd16 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
+  TESTINST3("sadd16 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
+  TESTINST3("sadd16 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
+TESTINST3("sadd16 r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
+
   printf("---------------- USUB16 ---------------- \n");
   TESTINST3("usub16 r0, r1, r2", 0x04000022, 0x03000011, r0, r1, r2, 0);
   TESTINST3("usub16 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
@@ -1130,6 +1186,63 @@ TESTINST3("usub16 r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
 TESTINST3("usub16 r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
 TESTINST3("usub16 r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
 
+  printf("---------------- SSUB16 ---------------- \n");
+  TESTINST3("ssub16 r0, r1, r2", 0x04000022, 0x03000011, r0, r1, r2, 0);
+  TESTINST3("ssub16 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
+  TESTINST3("ssub16 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
+  TESTINST3("ssub16 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
+  TESTINST3("ssub16 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
+TESTINST3("ssub16 r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0);
+
   printf("---------------- UADD8 ----------------- \n");
   TESTINST3("uadd8 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
   TESTINST3("uadd8 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
@@ -1478,6 +1591,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("----------------- SASX ----------------- \n");
+  TESTINST3("sasx r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
+  TESTINST3("sasx r0, r1, r2", 0x7fff7fff, 0x00010001, r0, r1, r2, 0);
+  TESTINST3("sasx r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
+  TESTINST3("sasx r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
+  TESTINST3("sasx r0, r1, r2", 0x00640064, 0x00030003, r0, r1, r2, 0);
+  TESTINST3("sasx r0, r1, r2", 0x00030003, 0x00640064, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0);
+TESTINST3("sasx r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0);
+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("----------------- SMUAD ----------------- \n");
   TESTINST3("smuad r0, r1, r2", 0x80008000, 0x80008000, r0, r1, r2, 0);
   TESTINST3("smuad r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
@@ -3016,6 +3187,240 @@ TESTINST3("uxtah r0, r1, r2, ROR #0", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
 TESTINST3("uxtah r0, r1, r2, ROR #0", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
 TESTINST3("uxtah r0, r1, r2, ROR #0", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
 
+  printf("------------ SMLAWB ------------\n");
+  /* smlawb rD, rN, rM, rA */
+  TESTINST4("smlawb r0, r1, r2, r3", 
+            0x00030000, 0x00040000, 0x00000000, r0,r1,r2,r3, 0);
+  TESTINST4("smlawb r0, r1, r2, r3", 
+            0x00030001, 0x00040002, 0x00007fff, r0,r1,r2,r3, 0);
+  TESTINST4("smlawb r0, r1, r2, r3", 
+            0x00038001, 0x00047fff, 0x00005fff, r0,r1,r2,r3, 0);
+  TESTINST4("smlawb r0, r1, r2, r3", 
+            0x00037fff, 0x00047fff, 0x00007fff, r0,r1,r2,r3, 0);
+  TESTINST4("smlawb r0, r1, r2, r3", 
+            0x0003ffff, 0x0004ffff, 0x7fff7fff, r0,r1,r2,r3, 0);
+  TESTINST4("smlawb r0, r1, r2, r3", 
+            0x0003fffc, 0x0004ffff, 0xffffffff, r0,r1,r2,r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0x32fa0095, 0x36f26261, 0x89d2ef86, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0x8ed8287c, 0x02c90120, 0xd4b64d54, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0xc53aaba9, 0x29300837, 0x0b02c58a, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0x216158cb, 0x57a50a01, 0xb0d20777, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0xf87b961e, 0x1d66879f, 0xf2b64835, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0xd65db979, 0xc61b323b, 0xae930a1a, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0xeaa652c7, 0x137741f4, 0x3dba1164, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0xe1bb8606, 0x58293969, 0x81616d13, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0x0849a0c2, 0x0872f25a, 0x40b094e2, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0x17913309, 0xf1e03d7e, 0x91edc21d, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0x5388b5cd, 0x86582032, 0x6034078d, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0x181c436b, 0x5de41558, 0xccfa1c7e, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0x23ba1b46, 0x4437983c, 0x48d06549, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0xa9085781, 0xc6b4ac58, 0xb2aead21, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0xd7ce1909, 0x3e435701, 0x85fbf196, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0xb4e16b6e, 0x6e13680a, 0x89436f88, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0x44858efc, 0x9002bc30, 0x390d2c2f, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0xbea121ab, 0x953ff6ec, 0x80657c40, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0xec0c2f30, 0x5736ed46, 0x231348c0, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0xc1553709, 0x0112b30a, 0x69ec0212, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0x74bd0223, 0x03fa9bb5, 0x899d9192, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0x299da970, 0xe8108f1b, 0xf5818cfb, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0xcd90d604, 0xaa5e9444, 0x8217b7df, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0xe60743c3, 0x7acb4de3, 0x73c29060, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0xde99ac2f, 0x0be36f70, 0xeda5110c, r0, r1, r2, r3, 0);
+TESTINST4("smlawb  r0, r1, r2, r3", 
+          0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0);
+
+  printf("------------ SMLAWT ------------\n");
+  /* smlawt rD, rN, rM, rA */
+  TESTINST4("smlawt r0, r1, r2, r3", 
+            0x00030000, 0x00040000, 0x00000000, r0,r1,r2,r3, 0);
+  TESTINST4("smlawt r0, r1, r2, r3", 
+            0x00030001, 0x00040002, 0x00007fff, r0,r1,r2,r3, 0);
+  TESTINST4("smlawt r0, r1, r2, r3", 
+            0x00038001, 0x00047fff, 0x00005fff, r0,r1,r2,r3, 0);
+  TESTINST4("smlawt r0, r1, r2, r3", 
+            0x00037fff, 0x00047fff, 0x00007fff, r0,r1,r2,r3, 0);
+  TESTINST4("smlawt r0, r1, r2, r3", 
+            0x0003ffff, 0x0004ffff, 0x7fff7fff, r0,r1,r2,r3, 0);
+  TESTINST4("smlawt r0, r1, r2, r3", 
+            0x0003fffc, 0x0004ffff, 0xffffffff, r0,r1,r2,r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0x32fa0095, 0x36f26261, 0x89d2ef86, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0x8ed8287c, 0x02c90120, 0xd4b64d54, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0xc53aaba9, 0x29300837, 0x0b02c58a, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0x216158cb, 0x57a50a01, 0xb0d20777, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0xf87b961e, 0x1d66879f, 0xf2b64835, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0xd65db979, 0xc61b323b, 0xae930a1a, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0xeaa652c7, 0x137741f4, 0x3dba1164, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0xe1bb8606, 0x58293969, 0x81616d13, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0x0849a0c2, 0x0872f25a, 0x40b094e2, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0x17913309, 0xf1e03d7e, 0x91edc21d, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0x5388b5cd, 0x86582032, 0x6034078d, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0x181c436b, 0x5de41558, 0xccfa1c7e, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0x23ba1b46, 0x4437983c, 0x48d06549, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0xa9085781, 0xc6b4ac58, 0xb2aead21, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0xd7ce1909, 0x3e435701, 0x85fbf196, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0xb4e16b6e, 0x6e13680a, 0x89436f88, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0x44858efc, 0x9002bc30, 0x390d2c2f, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0xbea121ab, 0x953ff6ec, 0x80657c40, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0xec0c2f30, 0x5736ed46, 0x231348c0, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0xc1553709, 0x0112b30a, 0x69ec0212, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0x74bd0223, 0x03fa9bb5, 0x899d9192, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0x299da970, 0xe8108f1b, 0xf5818cfb, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0xcd90d604, 0xaa5e9444, 0x8217b7df, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0xe60743c3, 0x7acb4de3, 0x73c29060, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0xde99ac2f, 0x0be36f70, 0xeda5110c, r0, r1, r2, r3, 0);
+TESTINST4("smlawt  r0, r1, r2, r3", 
+          0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0);
+
 /*
 TESTINST3("theinsn", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
 TESTINST3("theinsn", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
index 33f19f78d9459a4d3c24f4dcf2eb414167849576..5522e95c85c1324d3fbc06db7c45e6e659ea89cc 100644 (file)
@@ -812,6 +812,61 @@ uadd16 r0, r1, r2 :: rd 0x5c3d09b6 rm 0x448f3a5f, rn 0x17aecf57, carryin 0, cpsr
 uadd16 r0, r1, r2 :: rd 0x4ab260a3 rm 0x4b0c2337, rn 0xffa63d6c, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
 uadd16 r0, r1, r2 :: rd 0x01a8204f rm 0xf91d5f56, rn 0x088bc0f9, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
 uadd16 r0, r1, r2 :: rd 0xe7f2fb84 rm 0xf808434e, rn 0xefeab836, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+---------------- SADD16 ---------------- 
+sadd16 r0, r1, r2 :: rd 0x00210002 rm 0x0009ffff, rn 0x00180003, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+sadd16 r0, r1, r2 :: rd 0x00210002 rm 0x00180003, rn 0x0009ffff, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+sadd16 r0, r1, r2 :: rd 0x00020021 rm 0x00030018, rn 0xffff0009, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+sadd16 r0, r1, r2 :: rd 0x00020021 rm 0xffff0009, rn 0x00030018, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+sadd16 r0, r1, r2 :: rd 0xa299daa0 rm 0xd83b849b, rn 0xca5e5605, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sadd16 r0, r1, r2 :: rd 0x5d604bd2 rm 0x0cdafabe, rn 0x50865114, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+sadd16 r0, r1, r2 :: rd 0x915a7c18 rm 0x2738f0ff, rn 0x6a228b19, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+sadd16 r0, r1, r2 :: rd 0x24416b8a rm 0xfaceab39, rn 0x2973c051, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+sadd16 r0, r1, r2 :: rd 0xf96272fb rm 0xa3e6f759, rn 0x557c7ba2, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+sadd16 r0, r1, r2 :: rd 0x0e34f4ba rm 0x72f33509, rn 0x9b41bfb1, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+sadd16 r0, r1, r2 :: rd 0xd14ed502 rm 0xa5ec1aa8, rn 0x2b62ba5a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sadd16 r0, r1, r2 :: rd 0xc4a74327 rm 0x6ebd04d9, rn 0x55ea3e4e, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+sadd16 r0, r1, r2 :: rd 0x164d7875 rm 0x2eaea305, rn 0xe79fd570, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+sadd16 r0, r1, r2 :: rd 0xf06d4ac2 rm 0x22b65db1, rn 0xcdb7ed11, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+sadd16 r0, r1, r2 :: rd 0xa622c6c7 rm 0x776c41c7, rn 0x2eb68500, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+sadd16 r0, r1, r2 :: rd 0xbc067e14 rm 0xe50dd77c, rn 0xd6f9a698, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sadd16 r0, r1, r2 :: rd 0xf988807c rm 0x0be36f70, rn 0xeda5110c, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+sadd16 r0, r1, r2 :: rd 0xc318e39d rm 0xebbff82b, rn 0xd759eb72, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sadd16 r0, r1, r2 :: rd 0x2a863276 rm 0x50c28082, rn 0xd9c4b1f4, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+sadd16 r0, r1, r2 :: rd 0xba34e1af rm 0x17962e8f, rn 0xa29eb320, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sadd16 r0, r1, r2 :: rd 0x9490883e rm 0xc57243b7, rn 0xcf1e4487, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+sadd16 r0, r1, r2 :: rd 0x70c1dfbb rm 0x7eb226ac, rn 0xf20fb90f, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+sadd16 r0, r1, r2 :: rd 0x77f5007b rm 0xbce0f026, rn 0xbb151055, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+sadd16 r0, r1, r2 :: rd 0x3ae9b324 rm 0xa5757252, rn 0x957440d2, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+sadd16 r0, r1, r2 :: rd 0x672fef32 rm 0xf4a477c1, rn 0x728b7771, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+sadd16 r0, r1, r2 :: rd 0x67ae5b14 rm 0x76723a21, rn 0xf13c20f3, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+sadd16 r0, r1, r2 :: rd 0xfb099476 rm 0x74d01105, rn 0x86398371, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sadd16 r0, r1, r2 :: rd 0xc4f739a4 rm 0xc1273e2c, rn 0x03d0fb78, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+sadd16 r0, r1, r2 :: rd 0xae6f11cf rm 0xdd9b7653, rn 0xd0d49b7c, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+sadd16 r0, r1, r2 :: rd 0x541b7a29 rm 0xdde62fd1, rn 0x76354a58, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+sadd16 r0, r1, r2 :: rd 0x639faa4d rm 0xc3fb4a96, rn 0x9fa45fb7, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+sadd16 r0, r1, r2 :: rd 0x1713cd42 rm 0xa1a10f56, rn 0x7572bdec, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+sadd16 r0, r1, r2 :: rd 0x4a22ee8f rm 0x4b7d4fd9, rn 0xfea59eb6, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+sadd16 r0, r1, r2 :: rd 0x8f73708c rm 0x9d0ddffc, rn 0xf2669090, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sadd16 r0, r1, r2 :: rd 0x0ba1c6ef rm 0x4f82d17c, rn 0xbc1ff573, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+sadd16 r0, r1, r2 :: rd 0x3c80c488 rm 0x08215ca2, rn 0x345f67e6, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+sadd16 r0, r1, r2 :: rd 0x316e6d4e rm 0xf23595d0, rn 0x3f39d77e, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+sadd16 r0, r1, r2 :: rd 0xed7176b3 rm 0xf244c158, rn 0xfb2db55b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sadd16 r0, r1, r2 :: rd 0x3919bcb5 rm 0x256bfdd6, rn 0x13aebedf, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+sadd16 r0, r1, r2 :: rd 0x1b2b3c05 rm 0xc02a0c05, rn 0x5b013000, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+sadd16 r0, r1, r2 :: rd 0xdbc459b0 rm 0xee2fa46e, rn 0xed95b542, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sadd16 r0, r1, r2 :: rd 0xf8623908 rm 0x97a7da20, rn 0x60bb5ee8, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+sadd16 r0, r1, r2 :: rd 0x7b31e04a rm 0xa231d5e6, rn 0xd9000a64, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sadd16 r0, r1, r2 :: rd 0x73302af1 rm 0x10e1968a, rn 0x624f9467, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+sadd16 r0, r1, r2 :: rd 0xb6cee004 rm 0x0e089270, rn 0xa8c64d94, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sadd16 r0, r1, r2 :: rd 0x09dd64ff rm 0x9e8e0185, rn 0x6b4f637a, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+sadd16 r0, r1, r2 :: rd 0x428be5e7 rm 0x3096f12e, rn 0x11f5f4b9, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+sadd16 r0, r1, r2 :: rd 0x0ac31feb rm 0xffc134df, rn 0x0b02eb0c, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+sadd16 r0, r1, r2 :: rd 0xba32d245 rm 0xe444dc25, rn 0xd5eef620, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sadd16 r0, r1, r2 :: rd 0xa8fa218b rm 0x06ea9b2a, rn 0xa2108661, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sadd16 r0, r1, r2 :: rd 0x5c3d09b6 rm 0x448f3a5f, rn 0x17aecf57, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+sadd16 r0, r1, r2 :: rd 0x4ab260a3 rm 0x4b0c2337, rn 0xffa63d6c, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+sadd16 r0, r1, r2 :: rd 0x01a8204f rm 0xf91d5f56, rn 0x088bc0f9, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+sadd16 r0, r1, r2 :: rd 0xe7f2fb84 rm 0xf808434e, rn 0xefeab836, carryin 0, cpsr 0x00000000       ge[3:0]=0000
 ---------------- USUB16 ---------------- 
 usub16 r0, r1, r2 :: rd 0x01000011 rm 0x04000022, rn 0x03000011, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
 usub16 r0, r1, r2 :: rd 0xfff1fffc rm 0x0009ffff, rn 0x00180003, carryin 0, cpsr 0x00030000       ge[3:0]=0011
@@ -868,6 +923,62 @@ usub16 r0, r1, r2 :: rd 0x2ce16b08 rm 0x448f3a5f, rn 0x17aecf57, carryin 0, cpsr
 usub16 r0, r1, r2 :: rd 0x4b66e5cb rm 0x4b0c2337, rn 0xffa63d6c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
 usub16 r0, r1, r2 :: rd 0xf0929e5d rm 0xf91d5f56, rn 0x088bc0f9, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
 usub16 r0, r1, r2 :: rd 0x081e8b18 rm 0xf808434e, rn 0xefeab836, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+---------------- SSUB16 ---------------- 
+ssub16 r0, r1, r2 :: rd 0x01000011 rm 0x04000022, rn 0x03000011, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+ssub16 r0, r1, r2 :: rd 0xfff1fffc rm 0x0009ffff, rn 0x00180003, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssub16 r0, r1, r2 :: rd 0x000f0004 rm 0x00180003, rn 0x0009ffff, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+ssub16 r0, r1, r2 :: rd 0x0004000f rm 0x00030018, rn 0xffff0009, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+ssub16 r0, r1, r2 :: rd 0xfffcfff1 rm 0xffff0009, rn 0x00030018, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssub16 r0, r1, r2 :: rd 0x0ddd2e96 rm 0xd83b849b, rn 0xca5e5605, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+ssub16 r0, r1, r2 :: rd 0xbc54a9aa rm 0x0cdafabe, rn 0x50865114, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssub16 r0, r1, r2 :: rd 0xbd1665e6 rm 0x2738f0ff, rn 0x6a228b19, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+ssub16 r0, r1, r2 :: rd 0xd15beae8 rm 0xfaceab39, rn 0x2973c051, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssub16 r0, r1, r2 :: rd 0x4e6a7bb7 rm 0xa3e6f759, rn 0x557c7ba2, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssub16 r0, r1, r2 :: rd 0xd7b27558 rm 0x72f33509, rn 0x9b41bfb1, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+ssub16 r0, r1, r2 :: rd 0x7a8a604e rm 0xa5ec1aa8, rn 0x2b62ba5a, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+ssub16 r0, r1, r2 :: rd 0x18d3c68b rm 0x6ebd04d9, rn 0x55ea3e4e, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+ssub16 r0, r1, r2 :: rd 0x470fcd95 rm 0x2eaea305, rn 0xe79fd570, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+ssub16 r0, r1, r2 :: rd 0x54ff70a0 rm 0x22b65db1, rn 0xcdb7ed11, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+ssub16 r0, r1, r2 :: rd 0x48b6bcc7 rm 0x776c41c7, rn 0x2eb68500, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+ssub16 r0, r1, r2 :: rd 0x0e1430e4 rm 0xe50dd77c, rn 0xd6f9a698, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+ssub16 r0, r1, r2 :: rd 0x1e3e5e64 rm 0x0be36f70, rn 0xeda5110c, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+ssub16 r0, r1, r2 :: rd 0x14660cb9 rm 0xebbff82b, rn 0xd759eb72, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+ssub16 r0, r1, r2 :: rd 0x76fece8e rm 0x50c28082, rn 0xd9c4b1f4, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+ssub16 r0, r1, r2 :: rd 0x74f87b6f rm 0x17962e8f, rn 0xa29eb320, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+ssub16 r0, r1, r2 :: rd 0xf654ff30 rm 0xc57243b7, rn 0xcf1e4487, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssub16 r0, r1, r2 :: rd 0x8ca36d9d rm 0x7eb226ac, rn 0xf20fb90f, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+ssub16 r0, r1, r2 :: rd 0x01cbdfd1 rm 0xbce0f026, rn 0xbb151055, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+ssub16 r0, r1, r2 :: rd 0x10013180 rm 0xa5757252, rn 0x957440d2, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+ssub16 r0, r1, r2 :: rd 0x82190050 rm 0xf4a477c1, rn 0x728b7771, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+ssub16 r0, r1, r2 :: rd 0x8536192e rm 0x76723a21, rn 0xf13c20f3, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+ssub16 r0, r1, r2 :: rd 0xee978d94 rm 0x74d01105, rn 0x86398371, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+ssub16 r0, r1, r2 :: rd 0xbd5742b4 rm 0xc1273e2c, rn 0x03d0fb78, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+ssub16 r0, r1, r2 :: rd 0x0cc7dad7 rm 0xdd9b7653, rn 0xd0d49b7c, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+ssub16 r0, r1, r2 :: rd 0x67b1e579 rm 0xdde62fd1, rn 0x76354a58, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssub16 r0, r1, r2 :: rd 0x2457eadf rm 0xc3fb4a96, rn 0x9fa45fb7, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+ssub16 r0, r1, r2 :: rd 0x2c2f516a rm 0xa1a10f56, rn 0x7572bdec, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+ssub16 r0, r1, r2 :: rd 0x4cd8b123 rm 0x4b7d4fd9, rn 0xfea59eb6, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+ssub16 r0, r1, r2 :: rd 0xaaa74f6c rm 0x9d0ddffc, rn 0xf2669090, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+ssub16 r0, r1, r2 :: rd 0x9363dc09 rm 0x4f82d17c, rn 0xbc1ff573, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+ssub16 r0, r1, r2 :: rd 0xd3c2f4bc rm 0x08215ca2, rn 0x345f67e6, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssub16 r0, r1, r2 :: rd 0xb2fcbe52 rm 0xf23595d0, rn 0x3f39d77e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssub16 r0, r1, r2 :: rd 0xf7170bfd rm 0xf244c158, rn 0xfb2db55b, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+ssub16 r0, r1, r2 :: rd 0x11bd3ef7 rm 0x256bfdd6, rn 0x13aebedf, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+ssub16 r0, r1, r2 :: rd 0x6529dc05 rm 0xc02a0c05, rn 0x5b013000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssub16 r0, r1, r2 :: rd 0x009aef2c rm 0xee2fa46e, rn 0xed95b542, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+ssub16 r0, r1, r2 :: rd 0x36ec7b38 rm 0x97a7da20, rn 0x60bb5ee8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssub16 r0, r1, r2 :: rd 0xc931cb82 rm 0xa231d5e6, rn 0xd9000a64, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssub16 r0, r1, r2 :: rd 0xae920223 rm 0x10e1968a, rn 0x624f9467, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+ssub16 r0, r1, r2 :: rd 0x654244dc rm 0x0e089270, rn 0xa8c64d94, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+ssub16 r0, r1, r2 :: rd 0x333f9e0b rm 0x9e8e0185, rn 0x6b4f637a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+ssub16 r0, r1, r2 :: rd 0x1ea1fc75 rm 0x3096f12e, rn 0x11f5f4b9, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+ssub16 r0, r1, r2 :: rd 0xf4bf49d3 rm 0xffc134df, rn 0x0b02eb0c, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+ssub16 r0, r1, r2 :: rd 0x0e56e605 rm 0xe444dc25, rn 0xd5eef620, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+ssub16 r0, r1, r2 :: rd 0x64da14c9 rm 0x06ea9b2a, rn 0xa2108661, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+ssub16 r0, r1, r2 :: rd 0x2ce16b08 rm 0x448f3a5f, rn 0x17aecf57, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+ssub16 r0, r1, r2 :: rd 0x4b66e5cb rm 0x4b0c2337, rn 0xffa63d6c, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+ssub16 r0, r1, r2 :: rd 0xf0929e5d rm 0xf91d5f56, rn 0x088bc0f9, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+ssub16 r0, r1, r2 :: rd 0x081e8b18 rm 0xf808434e, rn 0xefeab836, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
 ---------------- UADD8 ----------------- 
 uadd8 r0, r1, r2 :: rd 0x0021ff02 rm 0x0009ffff, rn 0x00180003, carryin 0, cpsr 0x00010000       ge[3:0]=0001
 uadd8 r0, r1, r2 :: rd 0x0021ff02 rm 0x00180003, rn 0x0009ffff, carryin 0, cpsr 0x00010000       ge[3:0]=0001
@@ -1210,6 +1321,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
+----------------- 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
+sasx r0, r1, r2 :: rd 0x80008000 rm 0x80008000, rn 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sasx r0, r1, r2 :: rd 0x7fff8001 rm 0x80008000, rn 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sasx r0, r1, r2 :: rd 0x00670061 rm 0x00640064, rn 0x00030003, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+sasx r0, r1, r2 :: rd 0x0067ff9f rm 0x00030003, rn 0x00640064, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+sasx r0, r1, r2 :: rd 0x2e40ba3d rm 0xd83b849b, rn 0xca5e5605, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+sasx r0, r1, r2 :: rd 0x5deeaa38 rm 0x0cdafabe, rn 0x50865114, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+sasx r0, r1, r2 :: rd 0xb25186dd rm 0x2738f0ff, rn 0x6a228b19, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sasx r0, r1, r2 :: rd 0xbb1f81c6 rm 0xfaceab39, rn 0x2973c051, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sasx r0, r1, r2 :: rd 0x1f88a1dd rm 0xa3e6f759, rn 0x557c7ba2, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+sasx r0, r1, r2 :: rd 0x32a499c8 rm 0x72f33509, rn 0x9b41bfb1, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+sasx r0, r1, r2 :: rd 0x6046ef46 rm 0xa5ec1aa8, rn 0x2b62ba5a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sasx r0, r1, r2 :: rd 0xad0baeef rm 0x6ebd04d9, rn 0x55ea3e4e, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+sasx r0, r1, r2 :: rd 0x041ebb66 rm 0x2eaea305, rn 0xe79fd570, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+sasx r0, r1, r2 :: rd 0x0fc78ffa rm 0x22b65db1, rn 0xcdb7ed11, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+sasx r0, r1, r2 :: rd 0xfc6c1311 rm 0x776c41c7, rn 0x2eb68500, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+sasx r0, r1, r2 :: rd 0x8ba50083 rm 0xe50dd77c, rn 0xd6f9a698, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+sasx r0, r1, r2 :: rd 0x1cef81cb rm 0x0be36f70, rn 0xeda5110c, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+sasx r0, r1, r2 :: rd 0xd73120d2 rm 0xebbff82b, rn 0xd759eb72, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+sasx r0, r1, r2 :: rd 0x02b6a6be rm 0x50c28082, rn 0xd9c4b1f4, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+sasx r0, r1, r2 :: rd 0xcab68bf1 rm 0x17962e8f, rn 0xa29eb320, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+sasx r0, r1, r2 :: rd 0x09f97499 rm 0xc57243b7, rn 0xcf1e4487, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+sasx r0, r1, r2 :: rd 0x37c1349d rm 0x7eb226ac, rn 0xf20fb90f, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+sasx r0, r1, r2 :: rd 0xcd353511 rm 0xbce0f026, rn 0xbb151055, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+sasx r0, r1, r2 :: rd 0xe647dcde rm 0xa5757252, rn 0x957440d2, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+sasx r0, r1, r2 :: rd 0x6c150536 rm 0xf4a477c1, rn 0x728b7771, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+sasx r0, r1, r2 :: rd 0x976548e5 rm 0x76723a21, rn 0xf13c20f3, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+sasx r0, r1, r2 :: rd 0xf8418acc rm 0x74d01105, rn 0x86398371, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+sasx r0, r1, r2 :: rd 0xbc9f3a5c rm 0xc1273e2c, rn 0x03d0fb78, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+sasx r0, r1, r2 :: rd 0x7917a57f rm 0xdd9b7653, rn 0xd0d49b7c, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+sasx r0, r1, r2 :: rd 0x283eb99c rm 0xdde62fd1, rn 0x76354a58, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+sasx r0, r1, r2 :: rd 0x23b2aaf2 rm 0xc3fb4a96, rn 0x9fa45fb7, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+sasx r0, r1, r2 :: rd 0x5f8d99e4 rm 0xa1a10f56, rn 0x7572bdec, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sasx r0, r1, r2 :: rd 0xea335134 rm 0x4b7d4fd9, rn 0xfea59eb6, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+sasx r0, r1, r2 :: rd 0x2d9ded96 rm 0x9d0ddffc, rn 0xf2669090, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sasx r0, r1, r2 :: rd 0x44f5155d rm 0x4f82d17c, rn 0xbc1ff573, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+sasx r0, r1, r2 :: rd 0x70072843 rm 0x08215ca2, rn 0x345f67e6, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+sasx r0, r1, r2 :: rd 0xc9b35697 rm 0xf23595d0, rn 0x3f39d77e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sasx r0, r1, r2 :: rd 0xa79fc62b rm 0xf244c158, rn 0xfb2db55b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sasx r0, r1, r2 :: rd 0xe44aea28 rm 0x256bfdd6, rn 0x13aebedf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sasx r0, r1, r2 :: rd 0xf02ab104 rm 0xc02a0c05, rn 0x5b013000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sasx r0, r1, r2 :: rd 0xa371b6d9 rm 0xee2fa46e, rn 0xed95b542, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sasx r0, r1, r2 :: rd 0xf68f7965 rm 0x97a7da20, rn 0x60bb5ee8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sasx r0, r1, r2 :: rd 0xac95fce6 rm 0xa231d5e6, rn 0xd9000a64, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sasx r0, r1, r2 :: rd 0xa548343b rm 0x10e1968a, rn 0x624f9467, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sasx r0, r1, r2 :: rd 0x5b9ce9aa rm 0x0e089270, rn 0xa8c64d94, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+sasx r0, r1, r2 :: rd 0x02089636 rm 0x9e8e0185, rn 0x6b4f637a, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+sasx r0, r1, r2 :: rd 0x254fdf39 rm 0x3096f12e, rn 0x11f5f4b9, carryin 0, cpsr 0x000c0000       ge[3:0]=1100
+sasx r0, r1, r2 :: rd 0xeacd29dd rm 0xffc134df, rn 0x0b02eb0c, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+sasx r0, r1, r2 :: rd 0xda640637 rm 0xe444dc25, rn 0xd5eef620, carryin 0, cpsr 0x00030000       ge[3:0]=0011
+sasx r0, r1, r2 :: rd 0x8d4bf91a rm 0x06ea9b2a, rn 0xa2108661, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+sasx r0, r1, r2 :: rd 0x13e622b1 rm 0x448f3a5f, rn 0x17aecf57, carryin 0, cpsr 0x000f0000       ge[3:0]=1111
+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
 ----------------- 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
@@ -2396,3 +2564,119 @@ uxtah r0, r1, r2, ROR #0 :: rd 0x73c30cdd rm 0x73c29060, rn 0x868e7c7d, carryin
 uxtah r0, r1, r2, ROR #0 :: rd 0x5f77906b rm 0x5f77532e, rn 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
 uxtah r0, r1, r2, ROR #0 :: rd 0x4e5e39c4 rm 0x4e5e0760, rn 0x8f6d3264, carryin 0, cpsr 0x00000000       ge[3:0]=0000
 uxtah r0, r1, r2, ROR #0 :: rd 0x21badbe2 rm 0x21ba2fb3, rn 0xde99ac2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+------------ SMLAWB ------------
+smlawb r0, r1, r2, r3 :: rd 0x00000000 rm 0x00030000, rn 0x00040000 rs 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb r0, r1, r2, r3 :: rd 0x00008005 rm 0x00030001, rn 0x00040002 rs 0x00007fff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb r0, r1, r2, r3 :: rd 0x00021ffb rm 0x00038001, rn 0x00047fff rs 0x00005fff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb r0, r1, r2, r3 :: rd 0x00023ffb rm 0x00037fff, rn 0x00047fff rs 0x00007fff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb r0, r1, r2, r3 :: rd 0x7fff7ffb rm 0x0003ffff, rn 0x0004ffff rs 0x7fff7fff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb r0, r1, r2, r3 :: rd 0xfffffffb rm 0x0003fffc, rn 0x0004ffff rs 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0x680d6173 rm 0xb8035b5b, rn 0xce0ce1ed rs 0x5f986e68, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0xc35926a2 rm 0x35232047, rn 0x146275d8 rs 0xaae3433f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0x325b09ef rm 0xe7aa57b4, rn 0x1584bd74 rs 0x2c07a5b4, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0x9d69f479 rm 0x32fa0095, rn 0x36f26261 rs 0x89d2ef86, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0xd4370081 rm 0x8ed8287c, rn 0x02c90120 rs 0xd4b64d54, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0x091ffa82 rm 0xc53aaba9, rn 0x29300837 rs 0x0b02c58a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0xb21ff650 rm 0x216158cb, rn 0x57a50a01 rs 0xb0d20777, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0x71f824b4 rm 0x3e2e1bd7, rn 0x3cd6cd94 rs 0x7e376198, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0xc96543ad rm 0xd5fe2dc4, rn 0xdd914bf7 rs 0xd5dc5407, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0xf63f3303 rm 0xf87b961e, rn 0x1d66879f rs 0xf2b64835, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0xa667bfed rm 0xd65db979, rn 0xc61b323b rs 0xae930a1a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0x2a05279f rm 0x5ef1f1a8, rn 0xbf73f0a5 rs 0x2fb714c9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0x9a12643c rm 0x1ffe53d9, rn 0x815bb75b rs 0xa3268abe, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0xf5d16216 rm 0xed2cbf78, rn 0xc6ffabb6 rs 0xef9e9fd9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0x3839f2ef rm 0xeaa652c7, rn 0x137741f4 rs 0x3dba1164, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0xd3f4bd2f rm 0x3ada0280, rn 0x71fbde8b rs 0xdba5bd25, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0x9aac2190 rm 0xda4ba05b, rn 0x90f9833d rs 0x884c0ad8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0xa4e48a53 rm 0xc00b821a, rn 0x7fa1d5a6 rs 0x9a4ff1b8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0x7a97c3d4 rm 0xe1bb8606, rn 0x58293969 rs 0x81616d13, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0x53119e74 rm 0x51f31d95, rn 0xa3cfd624 rs 0x6077fb1f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0x403f77f9 rm 0x0849a0c2, rn 0x0872f25a rs 0x40b094e2, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0x9796f4bd rm 0x17913309, rn 0xf1e03d7e rs 0x91edc21d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0x6ab56efa rm 0x5388b5cd, rn 0x86582032 rs 0x6034078d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0xcefcb7bc rm 0x181c436b, rn 0x5de41558 rs 0xccfa1c7e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0x3a5529d2 rm 0x23ba1b46, rn 0x4437983c rs 0x48d06549, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0xcf1a0b48 rm 0xa9085781, rn 0xc6b4ac58 rs 0xb2aead21, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0x8b3fb131 rm 0xc2bdf597, rn 0xdde1e6a4 rs 0x852e3a72, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0xe7af6e4f rm 0x157b0dea, rn 0xf0d5ff94 rs 0xe7b87e39, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0x004dc7a9 rm 0x3edad6b6, rn 0x82aceb7a rs 0x0557c6fc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0x5044cbb6 rm 0x6cc9bfa8, rn 0x7f808c15 rs 0x81874a02, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0x4815f3a1 rm 0x6b1422c7, rn 0x33921b00 rs 0x3ccad3f7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0x7852d3e6 rm 0xd7ce1909, rn 0x3e435701 rs 0x85fbf196, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0x6abc13fa rm 0xb4e16b6e, rn 0x6e13680a rs 0x89436f88, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0x26e68b3e rm 0x44858efc, rn 0x9002bc30 rs 0x390d2c2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0x82b6ed7a rm 0xbea121ab, rn 0x953ff6ec rs 0x80657c40, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0x31fcc2c3 rm 0x6ffed89f, rn 0x3e8c49b7 rs 0x11bd07d1, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0xfc5c0550 rm 0x7795635d, rn 0x5e6e32dd rs 0xe4999bf2, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0x2488ec94 rm 0xec0c2f30, rn 0x5736ed46 rs 0x231348c0, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0x3b5bc19c rm 0x4f9ddd1b, rn 0x95bca5d8 rs 0x5765b203, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0x7cc2edd8 rm 0xc1553709, rn 0x0112b30a rs 0x69ec0212, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0x5be1895c rm 0x74bd0223, rn 0x03fa9bb5 rs 0x899d9192, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0x7f17c10f rm 0xf52e9fbf, rn 0xb4c510a7 rs 0x7fcbe5a9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0xff50eae9 rm 0x64a365ef, rn 0x2dd01366 rs 0xf7b0b13e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0x686b5fb6 rm 0x5e4b1cbf, rn 0x44de5ca9 rs 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0xe32758d1 rm 0x299da970, rn 0xe8108f1b rs 0xf5818cfb, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0x9751380e rm 0xcd90d604, rn 0xaa5e9444 rs 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0x6bdbb832 rm 0xe60743c3, rn 0x7acb4de3 rs 0x73c29060, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0xf59d9d33 rm 0x868e7c7d, rn 0x5f77532e rs 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0x312729de rm 0x4e5e0760, rn 0x8f6d3264 rs 0x21ba2fb3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0xdf1b15ef rm 0xde99ac2f, rn 0x0be36f70 rs 0xeda5110c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawb  r0, r1, r2, r3 :: rd 0xe263324d rm 0xc57243b7, rn 0xcf1e4487 rs 0xf20fb90f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+------------ SMLAWT ------------
+smlawt r0, r1, r2, r3 :: rd 0x0000000c rm 0x00030000, rn 0x00040000 rs 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt r0, r1, r2, r3 :: rd 0x0000800b rm 0x00030001, rn 0x00040002 rs 0x00007fff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt r0, r1, r2, r3 :: rd 0x0000600d rm 0x00038001, rn 0x00047fff rs 0x00005fff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt r0, r1, r2, r3 :: rd 0x0000800c rm 0x00037fff, rn 0x00047fff rs 0x00007fff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt r0, r1, r2, r3 :: rd 0x7fff800e rm 0x0003ffff, rn 0x0004ffff rs 0x7fff7fff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt r0, r1, r2, r3 :: rd 0x0000000e rm 0x0003fffc, rn 0x0004ffff rs 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0x6da466b8 rm 0xb8035b5b, rn 0xce0ce1ed rs 0x5f986e68, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0xaf1e5936 rm 0x35232047, rn 0x146275d8 rs 0xaae3433f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0x29fc12ba rm 0xe7aa57b4, rn 0x1584bd74 rs 0x2c07a5b4, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0x94c3dbf9 rm 0x32fa0095, rn 0x36f26261 rs 0x89d2ef86, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0xd37b255c rm 0x8ed8287c, rn 0x02c90120 rs 0xd4b64d54, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0x018e2608 rm 0xc53aaba9, rn 0x29300837 rs 0x0b02c58a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0xbc3fa062 rm 0x216158cb, rn 0x57a50a01 rs 0xb0d20777, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0x8cfe2aa9 rm 0x3e2e1bd7, rn 0x3cd6cd94 rs 0x7e376198, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0xdb82c8bd rm 0xd5fe2dc4, rn 0xdd914bf7 rs 0xd5dc5407, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0xf1d94974 rm 0xf87b961e, rn 0x1d66879f rs 0xf2b64835, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0xb7fd69f7 rm 0xd65db979, rn 0xc61b323b rs 0xae930a1a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0x17c64d1c rm 0x5ef1f1a8, rn 0xbf73f0a5 rs 0x2fb714c9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0x9352be8d rm 0x1ffe53d9, rn 0x815bb75b rs 0xa3268abe, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0xf3cfbc0a rm 0xed2cbf78, rn 0xc6ffabb6 rs 0xef9e9fd9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0x3c1a7cd9 rm 0xeaa652c7, rn 0x137741f4 rs 0x3dba1164, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0xf5d9abff rm 0x3ada0280, rn 0x71fbde8b rs 0xdba5bd25, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0x98a6483f rm 0xda4ba05b, rn 0x90f9833d rs 0x884c0ad8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0x7a6d6e7f rm 0xc00b821a, rn 0x7fa1d5a6 rs 0x9a4ff1b8, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0x76f50a2d rm 0xe1bb8606, rn 0x58293969 rs 0x81616d13, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0x42f4ecf4 rm 0x51f31d95, rn 0xa3cfd624 rs 0x6077fb1f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0x40f692b1 rm 0x0849a0c2, rn 0x0872f25a rs 0x40b094e2, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0x90a0df2c rm 0x17913309, rn 0xf1e03d7e rs 0x91edc21d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0x388197e7 rm 0x5388b5cd, rn 0x86582032 rs 0x6034078d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0xd5d1da27 rm 0x181c436b, rn 0x5de41558 rs 0xccfa1c7e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0x52558183 rm 0x23ba1b46, rn 0x4437983c rs 0x48d06549, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0xc625a32b rm 0xa9085781, rn 0xc6b4ac58 rs 0xb2aead21, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0x8d586ad3 rm 0xc2bdf597, rn 0xdde1e6a4 rs 0x852e3a72, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0xe672acbc rm 0x157b0dea, rn 0xf0d5ff94 rs 0xe7b87e39, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0xe6924c56 rm 0x3edad6b6, rn 0x82aceb7a rs 0x0557c6fc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0xb7b5c4f6 rm 0x6cc9bfa8, rn 0x7f808c15 rs 0x81874a02, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0x525ce860 rm 0x6b1422c7, rn 0x33921b00 rs 0x3ccad3f7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0x7c355696 rm 0xd7ce1909, rn 0x3e435701 rs 0x85fbf196, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0x68f6b86c rm 0xb4e16b6e, rn 0x6e13680a rs 0x89436f88, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0x1b1346ab rm 0x44858efc, rn 0x9002bc30 rs 0x390d2c2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0x9ba80cd4 rm 0xbea121ab, rn 0x953ff6ec rs 0x80657c40, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0x2d19ffa5 rm 0x6ffed89f, rn 0x3e8c49b7 rs 0x11bd07d1, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0x10b5d89e rm 0x7795635d, rn 0x5e6e32dd rs 0xe4999bf2, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0x1c47375b rm 0xec0c2f30, rn 0x5736ed46 rs 0x231348c0, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0x36592e87 rm 0x4f9ddd1b, rn 0x95bca5d8 rs 0x5765b203, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0x69a8ef46 rm 0xc1553709, rn 0x0112b30a rs 0x69ec0212, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0x8b6dc92c rm 0x74bd0223, rn 0x03fa9bb5 rs 0x899d9192, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0x82f9bb1d rm 0xf52e9fbf, rn 0xb4c510a7 rs 0x7fcbe5a9, carryin 0, cpsr 0x08000000     Q ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0x09b32eeb rm 0x64a365ef, rn 0x2dd01366 rs 0xf7b0b13e, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0x5fa7da91 rm 0x5e4b1cbf, rn 0x44de5ca9 rs 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0xf19d5ef3 rm 0x299da970, rn 0xe8108f1b rs 0xf5818cfb, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0x92f68b28 rm 0xcd90d604, rn 0xaa5e9444 rs 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0x674d6e6d rm 0xe60743c3, rn 0x7acb4de3 rs 0x73c29060, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0xefc9a9ab rm 0x868e7c7d, rn 0x5f77532e rs 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0xff440c7a rm 0x4e5e0760, rn 0x8f6d3264 rs 0x21ba2fb3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0xec180db5 rm 0xde99ac2f, rn 0x0be36f70 rs 0xeda5110c, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+smlawt  r0, r1, r2, r3 :: rd 0xfd3dfd7c rm 0xc57243b7, rn 0xcf1e4487 rs 0xf20fb90f, carryin 0, cpsr 0x00000000       ge[3:0]=0000