From: Julian Seward Date: Wed, 15 Jun 2011 16:07:15 +0000 (+0000) Subject: Valgrind-side fixes and tests for PACKUSDW, to track r2160. X-Git-Tag: svn/VALGRIND_3_7_0~421 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0ff7a2f47e1a4c44d428b8d1c9b0522fa9a926f7;p=thirdparty%2Fvalgrind.git Valgrind-side fixes and tests for PACKUSDW, to track r2160. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11816 --- diff --git a/memcheck/mc_translate.c b/memcheck/mc_translate.c index 0fdd2a5297..0b5e410426 100644 --- a/memcheck/mc_translate.c +++ b/memcheck/mc_translate.c @@ -1989,6 +1989,7 @@ IRAtom* vectorNarrowV128 ( MCEnv* mce, IROp narrow_op, switch (narrow_op) { case Iop_QNarrow32Sto16Sx8: pcast = mkPCast32x4; break; case Iop_QNarrow32Uto16Ux8: pcast = mkPCast32x4; break; + case Iop_QNarrow32Sto16Ux8: pcast = mkPCast32x4; break; case Iop_QNarrow16Sto8Sx16: pcast = mkPCast16x8; break; case Iop_QNarrow16Sto8Ux16: pcast = mkPCast16x8; break; default: VG_(tool_panic)("vectorNarrowV128"); @@ -2705,6 +2706,7 @@ IRAtom* expr2vbits_Binop ( MCEnv* mce, case Iop_QNarrow32Sto16Sx8: case Iop_QNarrow32Uto16Ux8: + case Iop_QNarrow32Sto16Ux8: case Iop_QNarrow16Sto8Sx16: case Iop_QNarrow16Sto8Ux16: return vectorNarrowV128(mce, op, vatom1, vatom2); diff --git a/none/tests/amd64/sse4-64.c b/none/tests/amd64/sse4-64.c index 105def9523..8602eaaef3 100644 --- a/none/tests/amd64/sse4-64.c +++ b/none/tests/amd64/sse4-64.c @@ -3791,7 +3791,6 @@ int main ( int argc, char** argv ) test_INSERTPS(); // done Apr.01.2010 // MOVNTDQA *** //test_MPSADBW(); - //test_PACKUSDW(); //test_PCMPEQQ(); test_PEXTRB(); // done Apr.15.2010 test_PEXTRD(); // done Apr.14.2010 @@ -3839,11 +3838,11 @@ int main ( int argc, char** argv ) // ------ SSE 4.2 ------ test_PCMPGTQ(); // CRC32B,Q + test_PACKUSDW(); #else #if 0 test_MPSADBW(); - test_PACKUSDW(); test_PCMPEQQ(); test_PHMINPOSUW(); test_PMULDQ(); diff --git a/none/tests/amd64/sse4-64.stdout.exp b/none/tests/amd64/sse4-64.stdout.exp index afa8f6bed2..1eb7ee7051 100644 --- a/none/tests/amd64/sse4-64.stdout.exp +++ b/none/tests/amd64/sse4-64.stdout.exp @@ -4704,3 +4704,23 @@ r pcmpgtq ffffffffffffffff0000000000000000 fffffffffffffffe0000000000000001 0 m pcmpgtq ffffffffffffffff0000000000000000 fffffffffffffffe0000000000000001 0000000000000000ffffffffffffffff r pcmpgtq ffffffffffffffff0000000000000000 ffffffffffffffff0000000000000000 00000000000000000000000000000000 m pcmpgtq ffffffffffffffff0000000000000000 ffffffffffffffff0000000000000000 00000000000000000000000000000000 +r packusdw 53bb728e020c15a5c22982db4a24e5a7 d9ae1386622d3d7a2db15a13bf7970b0 ffffffff0000ffff0000ffffffff0000 +m packusdw 53bb728e020c15a5c22982db4a24e5a7 d9ae1386622d3d7a2db15a13bf7970b0 ffffffff0000ffff0000ffffffff0000 +r packusdw a1bcb4ea56fa55737eac60eb8aded33c c43f261642363414e2c3f191206475a2 0000ffffffff00000000ffff0000ffff +m packusdw a1bcb4ea56fa55737eac60eb8aded33c c43f261642363414e2c3f191206475a2 0000ffffffff00000000ffff0000ffff +r packusdw 3ef118c86a00924363014f93d37d9f97 eceb191ff1dc0745eece99ded8fa7731 ffffffffffff00000000000000000000 +m packusdw 3ef118c86a00924363014f93d37d9f97 eceb191ff1dc0745eece99ded8fa7731 ffffffffffff00000000000000000000 +r packusdw 88a79996daaa09c04df3cdbf420d06e5 aefee70d0aabf1ba2d9ccce404463289 00000000ffffffff0000ffffffffffff +m packusdw 88a79996daaa09c04df3cdbf420d06e5 aefee70d0aabf1ba2d9ccce404463289 00000000ffffffff0000ffffffffffff +r packusdw d92a33bf4382f6971850565bf298c352 66c48c4b2a302f1e7bfa0890c05462d6 0000ffffffff0000ffffffffffff0000 +m packusdw d92a33bf4382f6971850565bf298c352 66c48c4b2a302f1e7bfa0890c05462d6 0000ffffffff0000ffffffffffff0000 +r packusdw 8fc5e2af41169474a0e26453002c9409 70880548ecf6fd1eb4b3c8cf2731c242 0000ffff0000ffffffff00000000ffff +m packusdw 8fc5e2af41169474a0e26453002c9409 70880548ecf6fd1eb4b3c8cf2731c242 0000ffff0000ffffffff00000000ffff +r packusdw 04c6a3d26ff12002c176759387d43337 28984c6ded8a9666b495898c55e80ffc ffffffff00000000ffff00000000ffff +m packusdw 04c6a3d26ff12002c176759387d43337 28984c6ded8a9666b495898c55e80ffc ffffffff00000000ffff00000000ffff +r packusdw 9677719469a0d6ee57d80407a49d5d07 ea3e5f27c87637a1566ac5b36785042e 0000ffffffff000000000000ffffffff +m packusdw 9677719469a0d6ee57d80407a49d5d07 ea3e5f27c87637a1566ac5b36785042e 0000ffffffff000000000000ffffffff +r packusdw 9f264862ccaef2e43ed48d9c7292cda6 11c739e219481c7c7800fa3079155f05 00000000ffffffffffffffffffffffff +m packusdw 9f264862ccaef2e43ed48d9c7292cda6 11c739e219481c7c7800fa3079155f05 00000000ffffffffffffffffffffffff +r packusdw 00008877000066550000443300002211 0000b2a10000ffee0000ddcc0000bbaa 8877665544332211b2a1ffeeddccbbaa +m packusdw 00008877000066550000443300002211 0000b2a10000ffee0000ddcc0000bbaa 8877665544332211b2a1ffeeddccbbaa