]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Bug #278744 cvtps2pd with redundant RexW.
authorMark Wielaard <mark@klomp.org>
Mon, 12 Oct 2015 14:32:03 +0000 (14:32 +0000)
committerMark Wielaard <mark@klomp.org>
Mon, 12 Oct 2015 14:32:03 +0000 (14:32 +0000)
Add testcase for VEX svn r3198.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15699

NEWS
none/tests/amd64/redundantRexW.c
none/tests/amd64/redundantRexW.stdout.exp

diff --git a/NEWS b/NEWS
index b983a94854ec8f0c5ac1ae6d85438c8d94d78af9..0662e7d5ed86deb9ca2d2cf25f28d80069a5effa 100644 (file)
--- 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
index e1892677f627691dc631d0781cabd635461485bc..0a50c3bbba7d78db971f5514a353ad67f0753ca7 100644 (file)
@@ -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;
index dd1697aa98e0e20c9be08c7273217fb6279095dd..94b255a77449ee79c471ff00feb82d383adb98e2 100644 (file)
@@ -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 ................................
+}
+