From: Julian Seward Date: Wed, 22 Sep 2010 01:00:06 +0000 (+0000) Subject: Add more test cases for {U,S}{ADD,SUB}16. X-Git-Tag: svn/VALGRIND_3_6_0~85 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0bbcbaab6370ef1e56c889184b77fd2c95ae02e3;p=thirdparty%2Fvalgrind.git Add more test cases for {U,S}{ADD,SUB}16. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11372 --- diff --git a/none/tests/arm/v6media.c b/none/tests/arm/v6media.c index d87be64a54..3036c0e816 100644 --- a/none/tests/arm/v6media.c +++ b/none/tests/arm/v6media.c @@ -1022,6 +1022,23 @@ TESTINST2("usat16 r0, #15, r1", 0xca5e5605, r0, r1, 0); TESTINST3("uadd16 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0); TESTINST3("uadd16 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0); TESTINST3("uadd16 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0); + + TESTINST3("uadd16 r0, r1, r2", 0x00000000, 0x00000000, r0, r1, r2, 0); + TESTINST3("uadd16 r0, r1, r2", 0x00000001, 0x00000000, r0, r1, r2, 0); + TESTINST3("uadd16 r0, r1, r2", 0x00000000, 0x00000001, r0, r1, r2, 0); + TESTINST3("uadd16 r0, r1, r2", 0x00000001, 0x00000001, r0, r1, r2, 0); + TESTINST3("uadd16 r0, r1, r2", 0x00000000, 0x0000ffff, r0, r1, r2, 0); + TESTINST3("uadd16 r0, r1, r2", 0x0000ffff, 0x00000000, r0, r1, r2, 0); + TESTINST3("uadd16 r0, r1, r2", 0x0000ffff, 0x0000ffff, r0, r1, r2, 0); + + TESTINST3("uadd16 r0, r1, r2", 0x00000000, 0x00000000, r0, r1, r2, 0); + TESTINST3("uadd16 r0, r1, r2", 0x00010000, 0x00000000, r0, r1, r2, 0); + TESTINST3("uadd16 r0, r1, r2", 0x00000000, 0x00010000, r0, r1, r2, 0); + TESTINST3("uadd16 r0, r1, r2", 0x00010000, 0x00010000, r0, r1, r2, 0); + TESTINST3("uadd16 r0, r1, r2", 0x00000000, 0xffff0000, r0, r1, r2, 0); + TESTINST3("uadd16 r0, r1, r2", 0xffff0000, 0x00000000, r0, r1, r2, 0); + TESTINST3("uadd16 r0, r1, r2", 0xffff0000, 0xffff0000, r0, r1, r2, 0); + TESTINST3("uadd16 r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0); TESTINST3("uadd16 r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0); TESTINST3("uadd16 r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0); @@ -1078,6 +1095,23 @@ TESTINST3("uadd16 r0, r1, r2", 0xf808434e, 0xefeab836, 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", 0x00000000, 0x00000000, r0, r1, r2, 0); + TESTINST3("sadd16 r0, r1, r2", 0x00000001, 0x00000000, r0, r1, r2, 0); + TESTINST3("sadd16 r0, r1, r2", 0x00000000, 0x00000001, r0, r1, r2, 0); + TESTINST3("sadd16 r0, r1, r2", 0x00000001, 0x00000001, r0, r1, r2, 0); + TESTINST3("sadd16 r0, r1, r2", 0x00000000, 0x0000ffff, r0, r1, r2, 0); + TESTINST3("sadd16 r0, r1, r2", 0x0000ffff, 0x00000000, r0, r1, r2, 0); + TESTINST3("sadd16 r0, r1, r2", 0x0000ffff, 0x0000ffff, r0, r1, r2, 0); + + TESTINST3("sadd16 r0, r1, r2", 0x00000000, 0x00000000, r0, r1, r2, 0); + TESTINST3("sadd16 r0, r1, r2", 0x00010000, 0x00000000, r0, r1, r2, 0); + TESTINST3("sadd16 r0, r1, r2", 0x00000000, 0x00010000, r0, r1, r2, 0); + TESTINST3("sadd16 r0, r1, r2", 0x00010000, 0x00010000, r0, r1, r2, 0); + TESTINST3("sadd16 r0, r1, r2", 0x00000000, 0xffff0000, r0, r1, r2, 0); + TESTINST3("sadd16 r0, r1, r2", 0xffff0000, 0x00000000, r0, r1, r2, 0); + TESTINST3("sadd16 r0, r1, r2", 0xffff0000, 0xffff0000, 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); @@ -1135,6 +1169,23 @@ TESTINST3("sadd16 r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0); TESTINST3("usub16 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0); TESTINST3("usub16 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0); TESTINST3("usub16 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0); + + TESTINST3("usub16 r0, r1, r2", 0x00000000, 0x00000000, r0, r1, r2, 0); + TESTINST3("usub16 r0, r1, r2", 0x00000001, 0x00000000, r0, r1, r2, 0); + TESTINST3("usub16 r0, r1, r2", 0x00000000, 0x00000001, r0, r1, r2, 0); + TESTINST3("usub16 r0, r1, r2", 0x00000001, 0x00000001, r0, r1, r2, 0); + TESTINST3("usub16 r0, r1, r2", 0x00000000, 0x0000ffff, r0, r1, r2, 0); + TESTINST3("usub16 r0, r1, r2", 0x0000ffff, 0x00000000, r0, r1, r2, 0); + TESTINST3("usub16 r0, r1, r2", 0x0000ffff, 0x0000ffff, r0, r1, r2, 0); + + TESTINST3("usub16 r0, r1, r2", 0x00000000, 0x00000000, r0, r1, r2, 0); + TESTINST3("usub16 r0, r1, r2", 0x00010000, 0x00000000, r0, r1, r2, 0); + TESTINST3("usub16 r0, r1, r2", 0x00000000, 0x00010000, r0, r1, r2, 0); + TESTINST3("usub16 r0, r1, r2", 0x00010000, 0x00010000, r0, r1, r2, 0); + TESTINST3("usub16 r0, r1, r2", 0x00000000, 0xffff0000, r0, r1, r2, 0); + TESTINST3("usub16 r0, r1, r2", 0xffff0000, 0x00000000, r0, r1, r2, 0); + TESTINST3("usub16 r0, r1, r2", 0xffff0000, 0xffff0000, r0, r1, r2, 0); + TESTINST3("usub16 r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0); TESTINST3("usub16 r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0); TESTINST3("usub16 r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0); @@ -1192,6 +1243,23 @@ TESTINST3("usub16 r0, r1, r2", 0xf808434e, 0xefeab836, 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", 0x00000000, 0x00000000, r0, r1, r2, 0); + TESTINST3("ssub16 r0, r1, r2", 0x00000001, 0x00000000, r0, r1, r2, 0); + TESTINST3("ssub16 r0, r1, r2", 0x00000000, 0x00000001, r0, r1, r2, 0); + TESTINST3("ssub16 r0, r1, r2", 0x00000001, 0x00000001, r0, r1, r2, 0); + TESTINST3("ssub16 r0, r1, r2", 0x00000000, 0x0000ffff, r0, r1, r2, 0); + TESTINST3("ssub16 r0, r1, r2", 0x0000ffff, 0x00000000, r0, r1, r2, 0); + TESTINST3("ssub16 r0, r1, r2", 0x0000ffff, 0x0000ffff, r0, r1, r2, 0); + + TESTINST3("ssub16 r0, r1, r2", 0x00000000, 0x00000000, r0, r1, r2, 0); + TESTINST3("ssub16 r0, r1, r2", 0x00010000, 0x00000000, r0, r1, r2, 0); + TESTINST3("ssub16 r0, r1, r2", 0x00000000, 0x00010000, r0, r1, r2, 0); + TESTINST3("ssub16 r0, r1, r2", 0x00010000, 0x00010000, r0, r1, r2, 0); + TESTINST3("ssub16 r0, r1, r2", 0x00000000, 0xffff0000, r0, r1, r2, 0); + TESTINST3("ssub16 r0, r1, r2", 0xffff0000, 0x00000000, r0, r1, r2, 0); + TESTINST3("ssub16 r0, r1, r2", 0xffff0000, 0xffff0000, 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); diff --git a/none/tests/arm/v6media.stdout.exp b/none/tests/arm/v6media.stdout.exp index 99ba5369b8..41c0d17510 100644 --- a/none/tests/arm/v6media.stdout.exp +++ b/none/tests/arm/v6media.stdout.exp @@ -762,6 +762,20 @@ uadd16 r0, r1, r2 :: rd 0x00210002 rm 0x0009ffff, rn 0x00180003, carryin 0, cpsr uadd16 r0, r1, r2 :: rd 0x00210002 rm 0x00180003, rn 0x0009ffff, carryin 0, cpsr 0x00030000 ge[3:0]=0011 uadd16 r0, r1, r2 :: rd 0x00020021 rm 0x00030018, rn 0xffff0009, carryin 0, cpsr 0x000c0000 ge[3:0]=1100 uadd16 r0, r1, r2 :: rd 0x00020021 rm 0xffff0009, rn 0x00030018, carryin 0, cpsr 0x000c0000 ge[3:0]=1100 +uadd16 r0, r1, r2 :: rd 0x00000000 rm 0x00000000, rn 0x00000000, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +uadd16 r0, r1, r2 :: rd 0x00000001 rm 0x00000001, rn 0x00000000, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +uadd16 r0, r1, r2 :: rd 0x00000001 rm 0x00000000, rn 0x00000001, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +uadd16 r0, r1, r2 :: rd 0x00000002 rm 0x00000001, rn 0x00000001, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +uadd16 r0, r1, r2 :: rd 0x0000ffff rm 0x00000000, rn 0x0000ffff, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +uadd16 r0, r1, r2 :: rd 0x0000ffff rm 0x0000ffff, rn 0x00000000, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +uadd16 r0, r1, r2 :: rd 0x0000fffe rm 0x0000ffff, rn 0x0000ffff, carryin 0, cpsr 0x00030000 ge[3:0]=0011 +uadd16 r0, r1, r2 :: rd 0x00000000 rm 0x00000000, rn 0x00000000, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +uadd16 r0, r1, r2 :: rd 0x00010000 rm 0x00010000, rn 0x00000000, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +uadd16 r0, r1, r2 :: rd 0x00010000 rm 0x00000000, rn 0x00010000, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +uadd16 r0, r1, r2 :: rd 0x00020000 rm 0x00010000, rn 0x00010000, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +uadd16 r0, r1, r2 :: rd 0xffff0000 rm 0x00000000, rn 0xffff0000, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +uadd16 r0, r1, r2 :: rd 0xffff0000 rm 0xffff0000, rn 0x00000000, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +uadd16 r0, r1, r2 :: rd 0xfffe0000 rm 0xffff0000, rn 0xffff0000, carryin 0, cpsr 0x000c0000 ge[3:0]=1100 uadd16 r0, r1, r2 :: rd 0xa299daa0 rm 0xd83b849b, rn 0xca5e5605, carryin 0, cpsr 0x000c0000 ge[3:0]=1100 uadd16 r0, r1, r2 :: rd 0x5d604bd2 rm 0x0cdafabe, rn 0x50865114, carryin 0, cpsr 0x00030000 ge[3:0]=0011 uadd16 r0, r1, r2 :: rd 0x915a7c18 rm 0x2738f0ff, rn 0x6a228b19, carryin 0, cpsr 0x00030000 ge[3:0]=0011 @@ -817,6 +831,20 @@ sadd16 r0, r1, r2 :: rd 0x00210002 rm 0x0009ffff, rn 0x00180003, carryin 0, cpsr 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 0x00000000 rm 0x00000000, rn 0x00000000, carryin 0, cpsr 0x000f0000 ge[3:0]=1111 +sadd16 r0, r1, r2 :: rd 0x00000001 rm 0x00000001, rn 0x00000000, carryin 0, cpsr 0x000f0000 ge[3:0]=1111 +sadd16 r0, r1, r2 :: rd 0x00000001 rm 0x00000000, rn 0x00000001, carryin 0, cpsr 0x000f0000 ge[3:0]=1111 +sadd16 r0, r1, r2 :: rd 0x00000002 rm 0x00000001, rn 0x00000001, carryin 0, cpsr 0x000f0000 ge[3:0]=1111 +sadd16 r0, r1, r2 :: rd 0x0000ffff rm 0x00000000, rn 0x0000ffff, carryin 0, cpsr 0x000c0000 ge[3:0]=1100 +sadd16 r0, r1, r2 :: rd 0x0000ffff rm 0x0000ffff, rn 0x00000000, carryin 0, cpsr 0x000c0000 ge[3:0]=1100 +sadd16 r0, r1, r2 :: rd 0x0000fffe rm 0x0000ffff, rn 0x0000ffff, carryin 0, cpsr 0x000c0000 ge[3:0]=1100 +sadd16 r0, r1, r2 :: rd 0x00000000 rm 0x00000000, rn 0x00000000, carryin 0, cpsr 0x000f0000 ge[3:0]=1111 +sadd16 r0, r1, r2 :: rd 0x00010000 rm 0x00010000, rn 0x00000000, carryin 0, cpsr 0x000f0000 ge[3:0]=1111 +sadd16 r0, r1, r2 :: rd 0x00010000 rm 0x00000000, rn 0x00010000, carryin 0, cpsr 0x000f0000 ge[3:0]=1111 +sadd16 r0, r1, r2 :: rd 0x00020000 rm 0x00010000, rn 0x00010000, carryin 0, cpsr 0x000f0000 ge[3:0]=1111 +sadd16 r0, r1, r2 :: rd 0xffff0000 rm 0x00000000, rn 0xffff0000, carryin 0, cpsr 0x00030000 ge[3:0]=0011 +sadd16 r0, r1, r2 :: rd 0xffff0000 rm 0xffff0000, rn 0x00000000, carryin 0, cpsr 0x00030000 ge[3:0]=0011 +sadd16 r0, r1, r2 :: rd 0xfffe0000 rm 0xffff0000, rn 0xffff0000, carryin 0, cpsr 0x00030000 ge[3:0]=0011 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 @@ -873,6 +901,20 @@ usub16 r0, r1, r2 :: rd 0xfff1fffc rm 0x0009ffff, rn 0x00180003, carryin 0, cpsr usub16 r0, r1, r2 :: rd 0x000f0004 rm 0x00180003, rn 0x0009ffff, carryin 0, cpsr 0x000c0000 ge[3:0]=1100 usub16 r0, r1, r2 :: rd 0x0004000f rm 0x00030018, rn 0xffff0009, carryin 0, cpsr 0x00030000 ge[3:0]=0011 usub16 r0, r1, r2 :: rd 0xfffcfff1 rm 0xffff0009, rn 0x00030018, carryin 0, cpsr 0x000c0000 ge[3:0]=1100 +usub16 r0, r1, r2 :: rd 0x00000000 rm 0x00000000, rn 0x00000000, carryin 0, cpsr 0x000f0000 ge[3:0]=1111 +usub16 r0, r1, r2 :: rd 0x00000001 rm 0x00000001, rn 0x00000000, carryin 0, cpsr 0x000f0000 ge[3:0]=1111 +usub16 r0, r1, r2 :: rd 0x0000ffff rm 0x00000000, rn 0x00000001, carryin 0, cpsr 0x000c0000 ge[3:0]=1100 +usub16 r0, r1, r2 :: rd 0x00000000 rm 0x00000001, rn 0x00000001, carryin 0, cpsr 0x000f0000 ge[3:0]=1111 +usub16 r0, r1, r2 :: rd 0x00000001 rm 0x00000000, rn 0x0000ffff, carryin 0, cpsr 0x000c0000 ge[3:0]=1100 +usub16 r0, r1, r2 :: rd 0x0000ffff rm 0x0000ffff, rn 0x00000000, carryin 0, cpsr 0x000f0000 ge[3:0]=1111 +usub16 r0, r1, r2 :: rd 0x00000000 rm 0x0000ffff, rn 0x0000ffff, carryin 0, cpsr 0x000f0000 ge[3:0]=1111 +usub16 r0, r1, r2 :: rd 0x00000000 rm 0x00000000, rn 0x00000000, carryin 0, cpsr 0x000f0000 ge[3:0]=1111 +usub16 r0, r1, r2 :: rd 0x00010000 rm 0x00010000, rn 0x00000000, carryin 0, cpsr 0x000f0000 ge[3:0]=1111 +usub16 r0, r1, r2 :: rd 0xffff0000 rm 0x00000000, rn 0x00010000, carryin 0, cpsr 0x00030000 ge[3:0]=0011 +usub16 r0, r1, r2 :: rd 0x00000000 rm 0x00010000, rn 0x00010000, carryin 0, cpsr 0x000f0000 ge[3:0]=1111 +usub16 r0, r1, r2 :: rd 0x00010000 rm 0x00000000, rn 0xffff0000, carryin 0, cpsr 0x00030000 ge[3:0]=0011 +usub16 r0, r1, r2 :: rd 0xffff0000 rm 0xffff0000, rn 0x00000000, carryin 0, cpsr 0x000f0000 ge[3:0]=1111 +usub16 r0, r1, r2 :: rd 0x00000000 rm 0xffff0000, rn 0xffff0000, carryin 0, cpsr 0x000f0000 ge[3:0]=1111 usub16 r0, r1, r2 :: rd 0x0ddd2e96 rm 0xd83b849b, rn 0xca5e5605, carryin 0, cpsr 0x000f0000 ge[3:0]=1111 usub16 r0, r1, r2 :: rd 0xbc54a9aa rm 0x0cdafabe, rn 0x50865114, carryin 0, cpsr 0x00030000 ge[3:0]=0011 usub16 r0, r1, r2 :: rd 0xbd1665e6 rm 0x2738f0ff, rn 0x6a228b19, carryin 0, cpsr 0x00030000 ge[3:0]=0011 @@ -929,6 +971,20 @@ ssub16 r0, r1, r2 :: rd 0xfff1fffc rm 0x0009ffff, rn 0x00180003, carryin 0, cpsr 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 0x00000000 rm 0x00000000, rn 0x00000000, carryin 0, cpsr 0x000f0000 ge[3:0]=1111 +ssub16 r0, r1, r2 :: rd 0x00000001 rm 0x00000001, rn 0x00000000, carryin 0, cpsr 0x000f0000 ge[3:0]=1111 +ssub16 r0, r1, r2 :: rd 0x0000ffff rm 0x00000000, rn 0x00000001, carryin 0, cpsr 0x000c0000 ge[3:0]=1100 +ssub16 r0, r1, r2 :: rd 0x00000000 rm 0x00000001, rn 0x00000001, carryin 0, cpsr 0x000f0000 ge[3:0]=1111 +ssub16 r0, r1, r2 :: rd 0x00000001 rm 0x00000000, rn 0x0000ffff, carryin 0, cpsr 0x000f0000 ge[3:0]=1111 +ssub16 r0, r1, r2 :: rd 0x0000ffff rm 0x0000ffff, rn 0x00000000, carryin 0, cpsr 0x000c0000 ge[3:0]=1100 +ssub16 r0, r1, r2 :: rd 0x00000000 rm 0x0000ffff, rn 0x0000ffff, carryin 0, cpsr 0x000f0000 ge[3:0]=1111 +ssub16 r0, r1, r2 :: rd 0x00000000 rm 0x00000000, rn 0x00000000, carryin 0, cpsr 0x000f0000 ge[3:0]=1111 +ssub16 r0, r1, r2 :: rd 0x00010000 rm 0x00010000, rn 0x00000000, carryin 0, cpsr 0x000f0000 ge[3:0]=1111 +ssub16 r0, r1, r2 :: rd 0xffff0000 rm 0x00000000, rn 0x00010000, carryin 0, cpsr 0x00030000 ge[3:0]=0011 +ssub16 r0, r1, r2 :: rd 0x00000000 rm 0x00010000, rn 0x00010000, carryin 0, cpsr 0x000f0000 ge[3:0]=1111 +ssub16 r0, r1, r2 :: rd 0x00010000 rm 0x00000000, rn 0xffff0000, carryin 0, cpsr 0x000f0000 ge[3:0]=1111 +ssub16 r0, r1, r2 :: rd 0xffff0000 rm 0xffff0000, rn 0x00000000, carryin 0, cpsr 0x00030000 ge[3:0]=0011 +ssub16 r0, r1, r2 :: rd 0x00000000 rm 0xffff0000, rn 0xffff0000, carryin 0, cpsr 0x000f0000 ge[3:0]=1111 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