Add test cases for UHADD16.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12659 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/none/tests/arm/v6media.c b/none/tests/arm/v6media.c
index af2ae8b..2828a88 100644
--- a/none/tests/arm/v6media.c
+++ b/none/tests/arm/v6media.c
@@ -2863,6 +2863,67 @@
 TESTINST3("uhadd8 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
 TESTINST3("uhadd8 r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
 
+  printf("------------ UHADD16 -----------------------------------\n");
+  TESTINST3("uhadd16 r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0);
+  TESTINST3("uhadd16 r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0);
+  TESTINST3("uhadd16 r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0);
+  TESTINST3("uhadd16 r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0);
+  TESTINST3("uhadd16 r0, r1, r2", 0x7fff7fff, 0x00000000, r0, r1, r2, 0);
+  TESTINST3("uhadd16 r0, r1, r2", 0x7fff00ff, 0x80017f01, r0, r1, r2, 0);
+  TESTINST3("uhadd16 r0, r1, r2", 0x80008000, 0x00000000, r0, r1, r2, 0);
+  TESTINST3("uhadd16 r0, r1, r2", 0x80008000, 0xffffffff, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0xb8035b5b, 0xce0ce1ed, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0x146275d8, 0xaae3433f, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0x2c07a5b4, 0x32fa0095, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0x8ed8287c, 0x02c90120, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0x29300837, 0x0b02c58a, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0xb0d20777, 0x3e2e1bd7, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0xd5fe2dc4, 0xdd914bf7, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0x1d66879f, 0xf2b64835, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0xae930a1a, 0x5ef1f1a8, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0x1ffe53d9, 0x815bb75b, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0x3dba1164, 0x3ada0280, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0xda4ba05b, 0x90f9833d, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0x81616d13, 0x51f31d95, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0x0849a0c2, 0x0872f25a, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0xf1e03d7e, 0x91edc21d, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0x6034078d, 0x181c436b, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0x3edad6b6, 0x82aceb7a, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0x0557c6fc, 0x6cc9bfa8, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0x7f808c15, 0x81874a02, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0x6b1422c7, 0x33921b00, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0x3ccad3f7, 0xd7ce1909, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0x3e435701, 0x85fbf196, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0xb4e16b6e, 0x6e13680a, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0x89436f88, 0x44858efc, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0x9002bc30, 0x390d2c2f, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0xbea121ab, 0x953ff6ec, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0x80657c40, 0x6ffed89f, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0x7795635d, 0x5e6e32dd, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0xe4999bf2, 0xec0c2f30, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0x5736ed46, 0x231348c0, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0x4f9ddd1b, 0x95bca5d8, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0x5765b203, 0xc1553709, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0x0112b30a, 0x69ec0212, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0x74bd0223, 0x03fa9bb5, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0x899d9192, 0xf52e9fbf, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0x64a365ef, 0x2dd01366, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0x44de5ca9, 0x464a21cc, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0x299da970, 0xe8108f1b, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0xf5818cfb, 0xcd90d604, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0xaa5e9444, 0x8217b7df, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0xe60743c3, 0x7acb4de3, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0x73c29060, 0x868e7c7d, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0x5f77532e, 0x1d133d3d, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0x4e5e0760, 0x8f6d3264, r0, r1, r2, 0);
+TESTINST3("uhadd16 r0, r1, r2", 0x21ba2fb3, 0xde99ac2f, r0, r1, r2, 0);
+
   printf("----------------- SSAT ----------------- \n");
   TESTINST2("ssat  r0, #1,  r1, LSL #31", 0x80008000, r0, r1, 0);
   TESTINST2("ssat  r0, #6,  r1, LSL #24", 0x80008000, r0, r1, 0);
diff --git a/none/tests/arm/v6media.stdout.exp b/none/tests/arm/v6media.stdout.exp
index 2e8e9d8..3ddf6fd 100644
--- a/none/tests/arm/v6media.stdout.exp
+++ b/none/tests/arm/v6media.stdout.exp
@@ -2267,6 +2267,66 @@
 uhadd8 r0, r1, r2 :: rd 0x3e454835 rm 0x5f77532e, rn 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
 uhadd8 r0, r1, r2 :: rd 0x6e651c62 rm 0x4e5e0760, rn 0x8f6d3264, carryin 0, cpsr 0x00000000       ge[3:0]=0000
 uhadd8 r0, r1, r2 :: rd 0x7fa96d71 rm 0x21ba2fb3, rn 0xde99ac2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+------------ UHADD16 -----------------------------------
+uhadd16 r0, r1, r2 :: rd 0x00108001 rm 0x0009ffff, rn 0x00180003, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x00108001 rm 0x00180003, rn 0x0009ffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x80010010 rm 0x00030018, rn 0xffff0009, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x80010010 rm 0xffff0009, rn 0x00030018, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x3fff3fff rm 0x7fff7fff, rn 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x80004000 rm 0x7fff00ff, rn 0x80017f01, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x40004000 rm 0x80008000, rn 0x00000000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0xbfffbfff rm 0x80008000, rn 0xffffffff, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0xc3079ea4 rm 0xb8035b5b, rn 0xce0ce1ed, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x5fa25c8b rm 0x146275d8, rn 0xaae3433f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x2f805324 rm 0x2c07a5b4, rn 0x32fa0095, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x48d014ce rm 0x8ed8287c, rn 0x02c90120, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x1a1966e0 rm 0x29300837, rn 0x0b02c58a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x778011a7 rm 0xb0d20777, rn 0x3e2e1bd7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0xd9c73cdd rm 0xd5fe2dc4, rn 0xdd914bf7, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x880e67ea rm 0x1d66879f, rn 0xf2b64835, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x86c27de1 rm 0xae930a1a, rn 0x5ef1f1a8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x50ac859a rm 0x1ffe53d9, rn 0x815bb75b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0xdb4ea5c7 rm 0xc6ffabb6, rn 0xef9e9fd9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x3c4a09f2 rm 0x3dba1164, rn 0x3ada0280, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0xb5a291cc rm 0xda4ba05b, rn 0x90f9833d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x8cf8e3af rm 0x7fa1d5a6, rn 0x9a4ff1b8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x69aa4554 rm 0x81616d13, rn 0x51f31d95, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x085dc98e rm 0x0849a0c2, rn 0x0872f25a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0xc1e67fcd rm 0xf1e03d7e, rn 0x91edc21d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x3c28257c rm 0x6034078d, rn 0x181c436b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0xec46bee6 rm 0xf0d5ff94, rn 0xe7b87e39, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x60c3e118 rm 0x3edad6b6, rn 0x82aceb7a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x3910c352 rm 0x0557c6fc, rn 0x6cc9bfa8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x80836b0b rm 0x7f808c15, rn 0x81874a02, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x4f531ee3 rm 0x6b1422c7, rn 0x33921b00, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x8a4c7680 rm 0x3ccad3f7, rn 0xd7ce1909, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x621fa44b rm 0x3e435701, rn 0x85fbf196, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x917a69bc rm 0xb4e16b6e, rn 0x6e13680a, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x66e47f42 rm 0x89436f88, rn 0x44858efc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x6487742f rm 0x9002bc30, rn 0x390d2c2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0xa9f08c4b rm 0xbea121ab, rn 0x953ff6ec, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x7831aa6f rm 0x80657c40, rn 0x6ffed89f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x282428c4 rm 0x3e8c49b7, rn 0x11bd07d1, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x6b014b1d rm 0x7795635d, rn 0x5e6e32dd, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0xe8526591 rm 0xe4999bf2, rn 0xec0c2f30, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x3d249b03 rm 0x5736ed46, rn 0x231348c0, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x72acc179 rm 0x4f9ddd1b, rn 0x95bca5d8, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x8c5d7486 rm 0x5765b203, rn 0xc1553709, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x357f5a8e rm 0x0112b30a, rn 0x69ec0212, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x3c5b4eec rm 0x74bd0223, rn 0x03fa9bb5, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0xbf6598a8 rm 0x899d9192, rn 0xf52e9fbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x9a487b28 rm 0xb4c510a7, rn 0x7fcbe5a9, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x49393caa rm 0x64a365ef, rn 0x2dd01366, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0xaafd66fe rm 0xf7b0b13e, rn 0x5e4b1cbf, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x45943f3a rm 0x44de5ca9, rn 0x464a21cc, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x88d69c45 rm 0x299da970, rn 0xe8108f1b, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0xe188b17f rm 0xf5818cfb, rn 0xcd90d604, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x963aa611 rm 0xaa5e9444, rn 0x8217b7df, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0xb06948d3 rm 0xe60743c3, rn 0x7acb4de3, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x7d28866e rm 0x73c29060, rn 0x868e7c7d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x3e454835 rm 0x5f77532e, rn 0x1d133d3d, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x6ee51ce2 rm 0x4e5e0760, rn 0x8f6d3264, carryin 0, cpsr 0x00000000       ge[3:0]=0000
+uhadd16 r0, r1, r2 :: rd 0x80296df1 rm 0x21ba2fb3, rn 0xde99ac2f, carryin 0, cpsr 0x00000000       ge[3:0]=0000
 ----------------- SSAT ----------------- 
 ssat  r0, #1,  r1, LSL #31 :: rd 0x00000000 rm 0x80008000, carryin 0, cpsr 0x00000000       ge[3:0]=0000
 ssat  r0, #6,  r1, LSL #24 :: rd 0x00000000 rm 0x80008000, carryin 0, cpsr 0x00000000       ge[3:0]=0000