From: Mark Wielaard Date: Mon, 12 Oct 2015 14:32:03 +0000 (+0000) Subject: Bug #278744 cvtps2pd with redundant RexW. X-Git-Tag: svn/VALGRIND_3_12_0~324 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=26cbea87122538a3c8cb7348774bcaa0effad54f;p=thirdparty%2Fvalgrind.git Bug #278744 cvtps2pd with redundant RexW. Add testcase for VEX svn r3198. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15699 --- diff --git a/NEWS b/NEWS index b983a94854..0662e7d5ed 100644 --- a/NEWS +++ b/NEWS @@ -30,6 +30,7 @@ To see details of a given bug, visit https://bugs.kde.org/show_bug.cgi?id=XXXXXX where XXXXXX is the bug number as listed below. +278744 cvtps2pd with redundant RexW 353083 arm64 doesn't implement various xattr system calls 353084 arm64 doesn't support sigpending system call 353370 don't advertise RDRAND in cpuid for Core-i7-4910-like avx2 machine diff --git a/none/tests/amd64/redundantRexW.c b/none/tests/amd64/redundantRexW.c index e1892677f6..0a50c3bbba 100644 --- a/none/tests/amd64/redundantRexW.c +++ b/none/tests/amd64/redundantRexW.c @@ -596,6 +596,23 @@ int main ( void ) after_test( "rex.WB subsd -0x8(%r13),%xmm1", regs, mem ); } + /* cvtps2pd mem, reg 48 0f 5a 07 rex.W cvtps2pd (%rdi),%xmm0 */ + { + before_test( regs, mem ); + __asm__ __volatile__( + "movq %0, %%r14\n" + "\tmovq %1, %%r15\n" + LOAD_XMMREGS_from_r14 + "\tmovq %%r15, %%rdi\n" + "\t.byte 0x48,0x0f,0x5a,0x07\n" + SAVE_XMMREGS_to_r14 + : /*out*/ : /*in*/ "r"(regs), "r"( -0 + (char*)&mem->dqw[2] ) + : /*trash*/ "r14","r15","memory", XMMREGS, + "rdi" + ); + after_test( "rex.W cvtps2pd (%rdi),%xmm0", regs, mem ); + } + free(regs); free(mem); return 0; diff --git a/none/tests/amd64/redundantRexW.stdout.exp b/none/tests/amd64/redundantRexW.stdout.exp index dd1697aa98..94b255a774 100644 --- a/none/tests/amd64/redundantRexW.stdout.exp +++ b/none/tests/amd64/redundantRexW.stdout.exp @@ -648,3 +648,29 @@ after "rex.WB subsd -0x8(%r13),%xmm1" (xmms in order [15..0]) { %xmm15 ................................ } +after "rex.W cvtps2pd (%rdi),%xmm0" (dqws in order [15 .. 0]) { + [0] ................................ + [1] ................................ + [2] ................................ + [3] ................................ + [4] ................................ +} +after "rex.W cvtps2pd (%rdi),%xmm0" (xmms in order [15..0]) { + %xmm 0 113a1c7d5554535213bd9cffd4535251 + %xmm 1 ................................ + %xmm 2 ................................ + %xmm 3 ................................ + %xmm 4 ................................ + %xmm 5 ................................ + %xmm 6 ................................ + %xmm 7 ................................ + %xmm 8 ................................ + %xmm 9 ................................ + %xmm10 ................................ + %xmm11 ................................ + %xmm12 ................................ + %xmm13 ................................ + %xmm14 ................................ + %xmm15 ................................ +} +