]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Fix none/tests/amd64/pcmpxstrx64.c
authorMartin Cermak <mcermak@redhat.com>
Thu, 23 Jul 2026 12:10:02 +0000 (14:10 +0200)
committerMartin Cermak <mcermak@redhat.com>
Thu, 23 Jul 2026 12:10:02 +0000 (14:10 +0200)
Fix the way blockC is populated within individual subtests of
none/tests/amd64/pcmpxstrx64.c where both argL and argN are 128
bit long and so the value of rdxIN partially overwrites argR as
discussed in Bug 521413#c2. Also, avoid code duplication.

https://bugs.kde.org/show_bug.cgi?id=523375

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

diff --git a/NEWS b/NEWS
index ebf074594a371d2067ad6088870126e81b1bbdc5..cb4f4f1d8ed6b3e528f08eb191f25aa03ccd9fa8 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -53,6 +53,7 @@ are not entered into bugzilla tend to get forgotten about or ignored.
 521332  vex x86->IR: unhandled instruction bytes: 66 0F 38 37 (PCMPGTQ)
 522160  Robustify the flags check in the none/tests/x86/crc32 test
 522533  Valgrind can't handle some encoding from gas trunk with -Wa,-O2
+523375  Fix none/tests/amd64/pcmpxstrx64.c
 
 To see details of a given bug, visit
   https://bugs.kde.org/show_bug.cgi?id=XXXXXX
index 006a4963672f0a5feeecddcd2475a006fb271fe9..15829a88afed156855bf43f9d5e002b4f865980d 100644 (file)
@@ -41,6 +41,35 @@ void expand ( V128* dst, char* summary )
    }
 }
 
+#define one_subtest(name, imm8b6) \
+   memset(blockC, 0x55, 80); \
+   memcpy(blockC + 0,  &argL,  16); \
+   memcpy(blockC + 16, &argR,  16); \
+   memcpy(blockC + 32, &rdxIN, 8); \
+   memcpy(blockC + 40, &raxIN, 8); \
+   memcpy(blockC + 48, &rdxIN, 8); \
+   __asm__ __volatile__( \
+      "movupd     0(%0), %%xmm2"           "\n\t" \
+      "movupd     16(%0), %%xmm13"         "\n\t" \
+      "movq       32(%0), %%rdx"           "\n\t" \
+      "movq       40(%0), %%rax"           "\n\t" \
+      "movupd     48(%0), %%xmm0"          "\n\t" \
+      "movl       64(%0), %%ecx"            "\n\t" \
+      "pcmp" #name " $0x" #imm8b6 ", %%xmm2, %%xmm13"  "\n\t" \
+      "movupd     %%xmm0, 48(%0)"          "\n\t" \
+      "movl       %%ecx, 64(%0)"            "\n\t" \
+      "pushfq"                             "\n\t" \
+      "popq       %%r15"                   "\n\t" \
+      "movq       %%r15, 72(%0)"           "\n\t" \
+      : /*out*/  \
+      : /*in*/"r"(blockC)  \
+      : /*trash*/"memory","cc","xmm2","xmm13","xmm0","rdx","rax","rcx","r15" \
+   ); \
+   printf("  " #name " $0x" #imm8b6 ":  "); \
+   printf("    xmm0 "); \
+   show_V128( (V128*)(blockC+48) ); \
+   printf("  rcx %016llx  flags %08llx\n", block[8], block[9] & 0x8D5);
+
 void one_test ( char* summL, ULong rdxIN, char* summR, ULong raxIN )
 {
    V128 argL, argR;
@@ -64,240 +93,14 @@ void one_test ( char* summL, ULong rdxIN, char* summR, ULong raxIN )
 
    UChar* blockC = (UChar*)&block[0];
 
-   /* ---------------- ISTRI_4A ---------------- */
-   memset(blockC, 0x55, 80);
-   memcpy(blockC + 0,  &argL,  16);
-   memcpy(blockC + 16, &argR,  16);
-   memcpy(blockC + 24, &rdxIN, 8);
-   memcpy(blockC + 32, &raxIN, 8);
-   memcpy(blockC + 40, &rdxIN, 8);
-   __asm__ __volatile__(
-      "movupd    0(%0), %%xmm2"           "\n\t"
-      "movupd    16(%0), %%xmm13"         "\n\t"
-      "movq      32(%0), %%rdx"           "\n\t"
-      "movq      40(%0), %%rax"           "\n\t"
-      "movupd    48(%0), %%xmm0"          "\n\t"
-      "movw      64(%0), %%cx"            "\n\t"
-      "pcmpistri $0x4A, %%xmm2, %%xmm13"  "\n\t"
-      "movupd    %%xmm0, 48(%0)"          "\n\t"
-      "movw      %%cx, 64(%0)"            "\n\t"
-      "pushfq"                            "\n\t"
-      "popq      %%r15"                   "\n\t"
-      "movq      %%r15, 72(%0)"           "\n\t"
-      : /*out*/ 
-      : /*in*/"r"(blockC) 
-      : /*trash*/"memory","cc","xmm2","xmm13","xmm0","rdx","rax","rcx","r15"
-   );
-   printf("  istri $0x4A:  ");
-   printf("    xmm0 ");
-   show_V128( (V128*)(blockC+48) );
-   printf("  rcx %016llx  flags %08llx\n", block[8], block[9] & 0x8D5);
-
-   /* ---------------- ISTRI_0A ---------------- */
-   memset(blockC, 0x55, 80);
-   memcpy(blockC + 0,  &argL,  16);
-   memcpy(blockC + 16, &argR,  16);
-   memcpy(blockC + 24, &rdxIN, 8);
-   memcpy(blockC + 32, &raxIN, 8);
-   memcpy(blockC + 40, &rdxIN, 8);
-   __asm__ __volatile__(
-      "movupd    0(%0), %%xmm2"           "\n\t"
-      "movupd    16(%0), %%xmm13"         "\n\t"
-      "movq      32(%0), %%rdx"           "\n\t"
-      "movq      40(%0), %%rax"           "\n\t"
-      "movupd    48(%0), %%xmm0"          "\n\t"
-      "movw      64(%0), %%cx"            "\n\t"
-      "pcmpistri $0x0A, %%xmm2, %%xmm13"  "\n\t"
-      "movupd    %%xmm0, 48(%0)"          "\n\t"
-      "movw      %%cx, 64(%0)"            "\n\t"
-      "pushfq"                            "\n\t"
-      "popq      %%r15"                   "\n\t"
-      "movq      %%r15, 72(%0)"           "\n\t"
-      : /*out*/ 
-      : /*in*/"r"(blockC) 
-      : /*trash*/"memory","cc","xmm2","xmm13","xmm0","rdx","rax","rcx","r15"
-   );
-   printf("  istri $0x0A:  ");
-   printf("    xmm0 ");
-   show_V128( (V128*)(blockC+48) );
-   printf("  rcx %016llx  flags %08llx\n", block[8], block[9] & 0x8D5);
-
-   /* ---------------- ISTRM_4A ---------------- */
-   memset(blockC, 0x55, 80);
-   memcpy(blockC + 0,  &argL,  16);
-   memcpy(blockC + 16, &argR,  16);
-   memcpy(blockC + 24, &rdxIN, 8);
-   memcpy(blockC + 32, &raxIN, 8);
-   memcpy(blockC + 40, &rdxIN, 8);
-   __asm__ __volatile__(
-      "movupd    0(%0), %%xmm2"           "\n\t"
-      "movupd    16(%0), %%xmm13"         "\n\t"
-      "movq      32(%0), %%rdx"           "\n\t"
-      "movq      40(%0), %%rax"           "\n\t"
-      "movupd    48(%0), %%xmm0"          "\n\t"
-      "movw      64(%0), %%cx"            "\n\t"
-      "pcmpistrm $0x4A, %%xmm2, %%xmm13"  "\n\t"
-      "movupd    %%xmm0, 48(%0)"          "\n\t"
-      "movw      %%cx, 64(%0)"            "\n\t"
-      "pushfq"                            "\n\t"
-      "popq      %%r15"                   "\n\t"
-      "movq      %%r15, 72(%0)"           "\n\t"
-      : /*out*/ 
-      : /*in*/"r"(blockC) 
-      : /*trash*/"memory","cc","xmm2","xmm13","xmm0","rdx","rax","rcx","r15"
-   );
-   printf("  istrm $0x4A:  ");
-   printf("    xmm0 ");
-   show_V128( (V128*)(blockC+48) );
-   printf("  rcx %016llx  flags %08llx\n", block[8], block[9] & 0x8D5);
-
-   /* ---------------- ISTRM_0A ---------------- */
-   memset(blockC, 0x55, 80);
-   memcpy(blockC + 0,  &argL,  16);
-   memcpy(blockC + 16, &argR,  16);
-   memcpy(blockC + 24, &rdxIN, 8);
-   memcpy(blockC + 32, &raxIN, 8);
-   memcpy(blockC + 40, &rdxIN, 8);
-   __asm__ __volatile__(
-      "movupd    0(%0), %%xmm2"           "\n\t"
-      "movupd    16(%0), %%xmm13"         "\n\t"
-      "movq      32(%0), %%rdx"           "\n\t"
-      "movq      40(%0), %%rax"           "\n\t"
-      "movupd    48(%0), %%xmm0"          "\n\t"
-      "movw      64(%0), %%cx"            "\n\t"
-      "pcmpistrm $0x0A, %%xmm2, %%xmm13"  "\n\t"
-      "movupd    %%xmm0, 48(%0)"          "\n\t"
-      "movw      %%cx, 64(%0)"            "\n\t"
-      "pushfq"                            "\n\t"
-      "popq      %%r15"                   "\n\t"
-      "movq      %%r15, 72(%0)"           "\n\t"
-      : /*out*/ 
-      : /*in*/"r"(blockC) 
-      : /*trash*/"memory","cc","xmm2","xmm13","xmm0","rdx","rax","rcx","r15"
-   );
-   printf("  istrm $0x0A:  ");
-   printf("    xmm0 ");
-   show_V128( (V128*)(blockC+48) );
-   printf("  rcx %016llx  flags %08llx\n", block[8], block[9] & 0x8D5);
-
-   /* ---------------- ESTRI_4A ---------------- */
-   memset(blockC, 0x55, 80);
-   memcpy(blockC + 0,  &argL,  16);
-   memcpy(blockC + 16, &argR,  16);
-   memcpy(blockC + 24, &rdxIN, 8);
-   memcpy(blockC + 32, &raxIN, 8);
-   memcpy(blockC + 40, &rdxIN, 8);
-   __asm__ __volatile__(
-      "movupd    0(%0), %%xmm2"           "\n\t"
-      "movupd    16(%0), %%xmm13"         "\n\t"
-      "movq      32(%0), %%rdx"           "\n\t"
-      "movq      40(%0), %%rax"           "\n\t"
-      "movupd    48(%0), %%xmm0"          "\n\t"
-      "movw      64(%0), %%cx"            "\n\t"
-      "pcmpestri $0x4A, %%xmm2, %%xmm13"  "\n\t"
-      "movupd    %%xmm0, 48(%0)"          "\n\t"
-      "movw      %%cx, 64(%0)"            "\n\t"
-      "pushfq"                            "\n\t"
-      "popq      %%r15"                   "\n\t"
-      "movq      %%r15, 72(%0)"           "\n\t"
-      : /*out*/ 
-      : /*in*/"r"(blockC) 
-      : /*trash*/"memory","cc","xmm2","xmm13","xmm0","rdx","rax","rcx","r15"
-   );
-   printf("  estri $0x4A:  ");
-   printf("    xmm0 ");
-   show_V128( (V128*)(blockC+48) );
-   printf("  rcx %016llx  flags %08llx\n", block[8], block[9] & 0x8D5);
-
-   /* ---------------- ESTRI_0A ---------------- */
-   memset(blockC, 0x55, 80);
-   memcpy(blockC + 0,  &argL,  16);
-   memcpy(blockC + 16, &argR,  16);
-   memcpy(blockC + 24, &rdxIN, 8);
-   memcpy(blockC + 32, &raxIN, 8);
-   memcpy(blockC + 40, &rdxIN, 8);
-   __asm__ __volatile__(
-      "movupd    0(%0), %%xmm2"           "\n\t"
-      "movupd    16(%0), %%xmm13"         "\n\t"
-      "movq      32(%0), %%rdx"           "\n\t"
-      "movq      40(%0), %%rax"           "\n\t"
-      "movupd    48(%0), %%xmm0"          "\n\t"
-      "movw      64(%0), %%cx"            "\n\t"
-      "pcmpestri $0x0A, %%xmm2, %%xmm13"  "\n\t"
-      "movupd    %%xmm0, 48(%0)"          "\n\t"
-      "movw      %%cx, 64(%0)"            "\n\t"
-      "pushfq"                            "\n\t"
-      "popq      %%r15"                   "\n\t"
-      "movq      %%r15, 72(%0)"           "\n\t"
-      : /*out*/ 
-      : /*in*/"r"(blockC) 
-      : /*trash*/"memory","cc","xmm2","xmm13","xmm0","rdx","rax","rcx","r15"
-   );
-   printf("  estri $0x0A:  ");
-   printf("    xmm0 ");
-   show_V128( (V128*)(blockC+48) );
-   printf("  rcx %016llx  flags %08llx\n", block[8], block[9] & 0x8D5);
-
-   /* ---------------- ESTRM_4A ---------------- */
-   memset(blockC, 0x55, 80);
-   memcpy(blockC + 0,  &argL,  16);
-   memcpy(blockC + 16, &argR,  16);
-   memcpy(blockC + 24, &rdxIN, 8);
-   memcpy(blockC + 32, &raxIN, 8);
-   memcpy(blockC + 40, &rdxIN, 8);
-   __asm__ __volatile__(
-      "movupd    0(%0), %%xmm2"           "\n\t"
-      "movupd    16(%0), %%xmm13"         "\n\t"
-      "movq      32(%0), %%rdx"           "\n\t"
-      "movq      40(%0), %%rax"           "\n\t"
-      "movupd    48(%0), %%xmm0"          "\n\t"
-      "movw      64(%0), %%cx"            "\n\t"
-      "pcmpestrm $0x4A, %%xmm2, %%xmm13"  "\n\t"
-      "movupd    %%xmm0, 48(%0)"          "\n\t"
-      "movw      %%cx, 64(%0)"            "\n\t"
-      "pushfq"                            "\n\t"
-      "popq      %%r15"                   "\n\t"
-      "movq      %%r15, 72(%0)"           "\n\t"
-      : /*out*/ 
-      : /*in*/"r"(blockC) 
-      : /*trash*/"memory","cc","xmm2","xmm13","xmm0","rdx","rax","rcx","r15"
-   );
-   printf("  estrm $0x4A:  ");
-   printf("    xmm0 ");
-   show_V128( (V128*)(blockC+48) );
-   printf("  rcx %016llx  flags %08llx\n", block[8], block[9] & 0x8D5);
-
-   /* ---------------- ESTRM_0A ---------------- */
-   memset(blockC, 0x55, 80);
-   memcpy(blockC + 0,  &argL,  16);
-   memcpy(blockC + 16, &argR,  16);
-   memcpy(blockC + 24, &rdxIN, 8);
-   memcpy(blockC + 32, &raxIN, 8);
-   memcpy(blockC + 40, &rdxIN, 8);
-   __asm__ __volatile__(
-      "movupd    0(%0), %%xmm2"           "\n\t"
-      "movupd    16(%0), %%xmm13"         "\n\t"
-      "movq      32(%0), %%rdx"           "\n\t"
-      "movq      40(%0), %%rax"           "\n\t"
-      "movupd    48(%0), %%xmm0"          "\n\t"
-      "movw      64(%0), %%cx"            "\n\t"
-      "pcmpestrm $0x0A, %%xmm2, %%xmm13"  "\n\t"
-      "movupd    %%xmm0, 48(%0)"          "\n\t"
-      "movw      %%cx, 64(%0)"            "\n\t"
-      "pushfq"                            "\n\t"
-      "popq      %%r15"                   "\n\t"
-      "movq      %%r15, 72(%0)"           "\n\t"
-      : /*out*/ 
-      : /*in*/"r"(blockC) 
-      : /*trash*/"memory","cc","xmm2","xmm13","xmm0","rdx","rax","rcx","r15"
-   );
-   printf("  estrm $0x0A:  ");
-   printf("    xmm0 ");
-   show_V128( (V128*)(blockC+48) );
-   printf("  rcx %016llx  flags %08llx\n", block[8], block[9] & 0x8D5);
-
-
-
+   one_subtest(istri, 4A)
+   one_subtest(istri, 0A)
+   one_subtest(istrm, 4A)
+   one_subtest(istrm, 0A)
+   one_subtest(estri, 4A)
+   one_subtest(estri, 0A)
+   one_subtest(estrm, 4A)
+   one_subtest(estrm, 0A)
 
 }
 
index 720c7976f467db4b9b424dfff0d9a7a33e4dbbe8..308edf52779a9fb929ea767c6b1f8890a78fc206 100644 (file)
 
 rdx 0000000000000000  argL aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa  rax 0000000000000000  argR aaaaaaaaaaaaaaaa00aaaaaaaaaaaaaa
-  istri $0x4A:      xmm0 55555555555555555555555555555555  rcx 5555555555550006  flags 00000881
-  istri $0x0A:      xmm0 55555555555555555555555555555555  rcx 5555555555550000  flags 00000881
+  istri $0x4A:      xmm0 55555555555555550000000000000000  rcx 5555555500000006  flags 00000881
+  istri $0x0A:      xmm0 55555555555555550000000000000000  rcx 5555555500000000  flags 00000881
   istrm $0x4A:      xmm0 000000000000000000ffffffffffffff  rcx 5555555555555555  flags 00000881
   istrm $0x0A:      xmm0 0000000000000000000000000000007f  rcx 5555555555555555  flags 00000881
-  estri $0x4A:      xmm0 55555555555555555555555555555555  rcx 555555555555000f  flags 000008c1
-  estri $0x0A:      xmm0 55555555555555555555555555555555  rcx 5555555555550000  flags 000008c1
+  estri $0x4A:      xmm0 55555555555555550000000000000000  rcx 555555550000000f  flags 000008c1
+  estri $0x0A:      xmm0 55555555555555550000000000000000  rcx 5555555500000000  flags 000008c1
   estrm $0x4A:      xmm0 ffffffffffffffffffffffffffffffff  rcx 5555555555555555  flags 000008c1
   estrm $0x0A:      xmm0 0000000000000000000000000000ffff  rcx 5555555555555555  flags 000008c1
 
 rdx 0000000000000000  argL 00000000000000000000000000000000  rax 0000000000000000  argR aaaaaaaaaaaaaaaa00aaaaaaaaaaaaaa
-  istri $0x4A:      xmm0 55555555555555555555555555555555  rcx 555555555555000f  flags 000000c1
-  istri $0x0A:      xmm0 55555555555555555555555555555555  rcx 5555555555550007  flags 000000c1
+  istri $0x4A:      xmm0 55555555555555550000000000000000  rcx 555555550000000f  flags 000000c1
+  istri $0x0A:      xmm0 55555555555555550000000000000000  rcx 5555555500000007  flags 000000c1
   istrm $0x4A:      xmm0 ffffffffffffffffff00000000000000  rcx 5555555555555555  flags 000000c1
   istrm $0x0A:      xmm0 0000000000000000000000000000ff80  rcx 5555555555555555  flags 000000c1
-  estri $0x4A:      xmm0 55555555555555555555555555555555  rcx 555555555555000f  flags 000008c1
-  estri $0x0A:      xmm0 55555555555555555555555555555555  rcx 5555555555550000  flags 000008c1
+  estri $0x4A:      xmm0 55555555555555550000000000000000  rcx 555555550000000f  flags 000008c1
+  estri $0x0A:      xmm0 55555555555555550000000000000000  rcx 5555555500000000  flags 000008c1
   estrm $0x4A:      xmm0 ffffffffffffffffffffffffffffffff  rcx 5555555555555555  flags 000008c1
   estrm $0x0A:      xmm0 0000000000000000000000000000ffff  rcx 5555555555555555  flags 000008c1
 
 rdx 0000000000000000  argL aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa  rax 0000000000000000  argR aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-  istri $0x4A:      xmm0 55555555555555555555555555555555  rcx 5555555555550007  flags 00000881
-  istri $0x0A:      xmm0 55555555555555555555555555555555  rcx 5555555555550000  flags 00000881
-  istrm $0x4A:      xmm0 0000000000000000ffffffffffffffff  rcx 5555555555555555  flags 00000881
-  istrm $0x0A:      xmm0 000000000000000000000000000000ff  rcx 5555555555555555  flags 00000881
-  estri $0x4A:      xmm0 55555555555555555555555555555555  rcx 555555555555000f  flags 000008c1
-  estri $0x0A:      xmm0 55555555555555555555555555555555  rcx 5555555555550000  flags 000008c1
+  istri $0x4A:      xmm0 55555555555555550000000000000000  rcx 555555550000000f  flags 00000801
+  istri $0x0A:      xmm0 55555555555555550000000000000000  rcx 5555555500000000  flags 00000801
+  istrm $0x4A:      xmm0 ffffffffffffffffffffffffffffffff  rcx 5555555555555555  flags 00000801
+  istrm $0x0A:      xmm0 0000000000000000000000000000ffff  rcx 5555555555555555  flags 00000801
+  estri $0x4A:      xmm0 55555555555555550000000000000000  rcx 555555550000000f  flags 000008c1
+  estri $0x0A:      xmm0 55555555555555550000000000000000  rcx 5555555500000000  flags 000008c1
   estrm $0x4A:      xmm0 ffffffffffffffffffffffffffffffff  rcx 5555555555555555  flags 000008c1
   estrm $0x0A:      xmm0 0000000000000000000000000000ffff  rcx 5555555555555555  flags 000008c1
 
 rdx 0000000000000005  argL aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa  rax 0000000000000000  argR aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-  istri $0x4A:      xmm0 55555555555555555555555555555555  rcx 5555555555550007  flags 00000881
-  istri $0x0A:      xmm0 55555555555555555555555555555555  rcx 5555555555550000  flags 00000881
-  istrm $0x4A:      xmm0 0000000000000000ffffffffffffffff  rcx 5555555555555555  flags 00000881
-  istrm $0x0A:      xmm0 000000000000000000000000000000ff  rcx 5555555555555555  flags 00000881
-  estri $0x4A:      xmm0 55555555555555555555555555555555  rcx 555555555555000f  flags 000000c1
-  estri $0x0A:      xmm0 55555555555555555555555555555555  rcx 5555555555550005  flags 000000c1
+  istri $0x4A:      xmm0 55555555555555550000000000000005  rcx 555555550000000f  flags 00000801
+  istri $0x0A:      xmm0 55555555555555550000000000000005  rcx 5555555500000000  flags 00000801
+  istrm $0x4A:      xmm0 ffffffffffffffffffffffffffffffff  rcx 5555555555555555  flags 00000801
+  istrm $0x0A:      xmm0 0000000000000000000000000000ffff  rcx 5555555555555555  flags 00000801
+  estri $0x4A:      xmm0 55555555555555550000000000000005  rcx 555555550000000f  flags 000000c1
+  estri $0x0A:      xmm0 55555555555555550000000000000005  rcx 5555555500000005  flags 000000c1
   estrm $0x4A:      xmm0 ffffffffffffffffffffff0000000000  rcx 5555555555555555  flags 000000c1
   estrm $0x0A:      xmm0 0000000000000000000000000000ffe0  rcx 5555555555555555  flags 000000c1
 
 rdx 0000000000000000  argL aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa  rax 0000000000000006  argR aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-  istri $0x4A:      xmm0 55555555555555555555555555555555  rcx 5555555555550007  flags 00000881
-  istri $0x0A:      xmm0 55555555555555555555555555555555  rcx 5555555555550000  flags 00000881
-  istrm $0x4A:      xmm0 0000000000000000ffffffffffffffff  rcx 5555555555555555  flags 00000881
-  istrm $0x0A:      xmm0 000000000000000000000000000000ff  rcx 5555555555555555  flags 00000881
-  estri $0x4A:      xmm0 55555555555555555555555555555555  rcx 555555555555000f  flags 000000c1
-  estri $0x0A:      xmm0 55555555555555555555555555555555  rcx 5555555555550006  flags 000000c1
+  istri $0x4A:      xmm0 55555555555555550000000000000000  rcx 555555550000000f  flags 00000801
+  istri $0x0A:      xmm0 55555555555555550000000000000000  rcx 5555555500000000  flags 00000801
+  istrm $0x4A:      xmm0 ffffffffffffffffffffffffffffffff  rcx 5555555555555555  flags 00000801
+  istrm $0x0A:      xmm0 0000000000000000000000000000ffff  rcx 5555555555555555  flags 00000801
+  estri $0x4A:      xmm0 55555555555555550000000000000000  rcx 555555550000000f  flags 000000c1
+  estri $0x0A:      xmm0 55555555555555550000000000000000  rcx 5555555500000006  flags 000000c1
   estrm $0x4A:      xmm0 ffffffffffffffffffff000000000000  rcx 5555555555555555  flags 000000c1
   estrm $0x0A:      xmm0 0000000000000000000000000000ffc0  rcx 5555555555555555  flags 000000c1
 
 rdx 0000000000000005  argL aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa  rax 0000000000000006  argR aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-  istri $0x4A:      xmm0 55555555555555555555555555555555  rcx 5555555555550007  flags 00000881
-  istri $0x0A:      xmm0 55555555555555555555555555555555  rcx 5555555555550000  flags 00000881
-  istrm $0x4A:      xmm0 0000000000000000ffffffffffffffff  rcx 5555555555555555  flags 00000881
-  istrm $0x0A:      xmm0 000000000000000000000000000000ff  rcx 5555555555555555  flags 00000881
-  estri $0x4A:      xmm0 55555555555555555555555555555555  rcx 555555555555000f  flags 000008c1
-  estri $0x0A:      xmm0 55555555555555555555555555555555  rcx 5555555555550000  flags 000008c1
+  istri $0x4A:      xmm0 55555555555555550000000000000005  rcx 555555550000000f  flags 00000801
+  istri $0x0A:      xmm0 55555555555555550000000000000005  rcx 5555555500000000  flags 00000801
+  istrm $0x4A:      xmm0 ffffffffffffffffffffffffffffffff  rcx 5555555555555555  flags 00000801
+  istrm $0x0A:      xmm0 0000000000000000000000000000ffff  rcx 5555555555555555  flags 00000801
+  estri $0x4A:      xmm0 55555555555555550000000000000005  rcx 555555550000000f  flags 000008c1
+  estri $0x0A:      xmm0 55555555555555550000000000000005  rcx 5555555500000000  flags 000008c1
   estrm $0x4A:      xmm0 ffffffffffffffffffff00ffffffffff  rcx 5555555555555555  flags 000008c1
   estrm $0x0A:      xmm0 0000000000000000000000000000ffdf  rcx 5555555555555555  flags 000008c1
 
 rdx 0000000000000005  argL aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa  rax 000000000000000f  argR aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-  istri $0x4A:      xmm0 55555555555555555555555555555555  rcx 5555555555550007  flags 00000881
-  istri $0x0A:      xmm0 55555555555555555555555555555555  rcx 5555555555550000  flags 00000881
-  istrm $0x4A:      xmm0 0000000000000000ffffffffffffffff  rcx 5555555555555555  flags 00000881
-  istrm $0x0A:      xmm0 000000000000000000000000000000ff  rcx 5555555555555555  flags 00000881
-  estri $0x4A:      xmm0 55555555555555555555555555555555  rcx 555555555555000f  flags 000008c1
-  estri $0x0A:      xmm0 55555555555555555555555555555555  rcx 5555555555550000  flags 000008c1
+  istri $0x4A:      xmm0 55555555555555550000000000000005  rcx 555555550000000f  flags 00000801
+  istri $0x0A:      xmm0 55555555555555550000000000000005  rcx 5555555500000000  flags 00000801
+  istrm $0x4A:      xmm0 ffffffffffffffffffffffffffffffff  rcx 5555555555555555  flags 00000801
+  istrm $0x0A:      xmm0 0000000000000000000000000000ffff  rcx 5555555555555555  flags 00000801
+  estri $0x4A:      xmm0 55555555555555550000000000000005  rcx 555555550000000f  flags 000008c1
+  estri $0x0A:      xmm0 55555555555555550000000000000005  rcx 5555555500000000  flags 000008c1
   estrm $0x4A:      xmm0 ff00000000000000000000ffffffffff  rcx 5555555555555555  flags 000008c1
   estrm $0x0A:      xmm0 0000000000000000000000000000801f  rcx 5555555555555555  flags 000008c1
 
 rdx 0000000000000005  argL aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa  rax 0000000000000010  argR aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-  istri $0x4A:      xmm0 55555555555555555555555555555555  rcx 5555555555550007  flags 00000881
-  istri $0x0A:      xmm0 55555555555555555555555555555555  rcx 5555555555550000  flags 00000881
-  istrm $0x4A:      xmm0 0000000000000000ffffffffffffffff  rcx 5555555555555555  flags 00000881
-  istrm $0x0A:      xmm0 000000000000000000000000000000ff  rcx 5555555555555555  flags 00000881
-  estri $0x4A:      xmm0 55555555555555555555555555555555  rcx 5555555555550004  flags 00000881
-  estri $0x0A:      xmm0 55555555555555555555555555555555  rcx 5555555555550000  flags 00000881
-  estrm $0x4A:      xmm0 0000000000000000000000ffffffffff  rcx 5555555555555555  flags 00000881
-  estrm $0x0A:      xmm0 0000000000000000000000000000001f  rcx 5555555555555555  flags 00000881
+  istri $0x4A:      xmm0 55555555555555550000000000000005  rcx 555555550000000f  flags 00000801
+  istri $0x0A:      xmm0 55555555555555550000000000000005  rcx 5555555500000000  flags 00000801
+  istrm $0x4A:      xmm0 ffffffffffffffffffffffffffffffff  rcx 5555555555555555  flags 00000801
+  istrm $0x0A:      xmm0 0000000000000000000000000000ffff  rcx 5555555555555555  flags 00000801
+  estri $0x4A:      xmm0 55555555555555550000000000000005  rcx 5555555500000004  flags 00000841
+  estri $0x0A:      xmm0 55555555555555550000000000000005  rcx 5555555500000000  flags 00000841
+  estrm $0x4A:      xmm0 0000000000000000000000ffffffffff  rcx 5555555555555555  flags 00000841
+  estrm $0x0A:      xmm0 0000000000000000000000000000001f  rcx 5555555555555555  flags 00000841
 
 rdx 0000000000000005  argL aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa  rax 0000000000000011  argR aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-  istri $0x4A:      xmm0 55555555555555555555555555555555  rcx 5555555555550007  flags 00000881
-  istri $0x0A:      xmm0 55555555555555555555555555555555  rcx 5555555555550000  flags 00000881
-  istrm $0x4A:      xmm0 0000000000000000ffffffffffffffff  rcx 5555555555555555  flags 00000881
-  istrm $0x0A:      xmm0 000000000000000000000000000000ff  rcx 5555555555555555  flags 00000881
-  estri $0x4A:      xmm0 55555555555555555555555555555555  rcx 5555555555550004  flags 00000881
-  estri $0x0A:      xmm0 55555555555555555555555555555555  rcx 5555555555550000  flags 00000881
-  estrm $0x4A:      xmm0 0000000000000000000000ffffffffff  rcx 5555555555555555  flags 00000881
-  estrm $0x0A:      xmm0 0000000000000000000000000000001f  rcx 5555555555555555  flags 00000881
+  istri $0x4A:      xmm0 55555555555555550000000000000005  rcx 555555550000000f  flags 00000801
+  istri $0x0A:      xmm0 55555555555555550000000000000005  rcx 5555555500000000  flags 00000801
+  istrm $0x4A:      xmm0 ffffffffffffffffffffffffffffffff  rcx 5555555555555555  flags 00000801
+  istrm $0x0A:      xmm0 0000000000000000000000000000ffff  rcx 5555555555555555  flags 00000801
+  estri $0x4A:      xmm0 55555555555555550000000000000005  rcx 5555555500000004  flags 00000841
+  estri $0x0A:      xmm0 55555555555555550000000000000005  rcx 5555555500000000  flags 00000841
+  estrm $0x4A:      xmm0 0000000000000000000000ffffffffff  rcx 5555555555555555  flags 00000841
+  estrm $0x0A:      xmm0 0000000000000000000000000000001f  rcx 5555555555555555  flags 00000841
 
 rdx 0000000000000005  argL aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa  rax fffffffffffffffa  argR aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-  istri $0x4A:      xmm0 55555555555555555555555555555555  rcx 5555555555550007  flags 00000881
-  istri $0x0A:      xmm0 55555555555555555555555555555555  rcx 5555555555550000  flags 00000881
-  istrm $0x4A:      xmm0 0000000000000000ffffffffffffffff  rcx 5555555555555555  flags 00000881
-  istrm $0x0A:      xmm0 000000000000000000000000000000ff  rcx 5555555555555555  flags 00000881
-  estri $0x4A:      xmm0 55555555555555555555555555555555  rcx 555555555555000f  flags 000008c1
-  estri $0x0A:      xmm0 55555555555555555555555555555555  rcx 5555555555550000  flags 000008c1
+  istri $0x4A:      xmm0 55555555555555550000000000000005  rcx 555555550000000f  flags 00000801
+  istri $0x0A:      xmm0 55555555555555550000000000000005  rcx 5555555500000000  flags 00000801
+  istrm $0x4A:      xmm0 ffffffffffffffffffffffffffffffff  rcx 5555555555555555  flags 00000801
+  istrm $0x0A:      xmm0 0000000000000000000000000000ffff  rcx 5555555555555555  flags 00000801
+  estri $0x4A:      xmm0 55555555555555550000000000000005  rcx 555555550000000f  flags 000008c1
+  estri $0x0A:      xmm0 55555555555555550000000000000005  rcx 5555555500000000  flags 000008c1
   estrm $0x4A:      xmm0 ffffffffffffffffffff00ffffffffff  rcx 5555555555555555  flags 000008c1
   estrm $0x0A:      xmm0 0000000000000000000000000000ffdf  rcx 5555555555555555  flags 000008c1
 
 rdx 0000000000000005  argL aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa  rax fffffffffffffff1  argR aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-  istri $0x4A:      xmm0 55555555555555555555555555555555  rcx 5555555555550007  flags 00000881
-  istri $0x0A:      xmm0 55555555555555555555555555555555  rcx 5555555555550000  flags 00000881
-  istrm $0x4A:      xmm0 0000000000000000ffffffffffffffff  rcx 5555555555555555  flags 00000881
-  istrm $0x0A:      xmm0 000000000000000000000000000000ff  rcx 5555555555555555  flags 00000881
-  estri $0x4A:      xmm0 55555555555555555555555555555555  rcx 555555555555000f  flags 000008c1
-  estri $0x0A:      xmm0 55555555555555555555555555555555  rcx 5555555555550000  flags 000008c1
+  istri $0x4A:      xmm0 55555555555555550000000000000005  rcx 555555550000000f  flags 00000801
+  istri $0x0A:      xmm0 55555555555555550000000000000005  rcx 5555555500000000  flags 00000801
+  istrm $0x4A:      xmm0 ffffffffffffffffffffffffffffffff  rcx 5555555555555555  flags 00000801
+  istrm $0x0A:      xmm0 0000000000000000000000000000ffff  rcx 5555555555555555  flags 00000801
+  estri $0x4A:      xmm0 55555555555555550000000000000005  rcx 555555550000000f  flags 000008c1
+  estri $0x0A:      xmm0 55555555555555550000000000000005  rcx 5555555500000000  flags 000008c1
   estrm $0x4A:      xmm0 ff00000000000000000000ffffffffff  rcx 5555555555555555  flags 000008c1
   estrm $0x0A:      xmm0 0000000000000000000000000000801f  rcx 5555555555555555  flags 000008c1
 
 rdx 0000000000000005  argL aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa  rax fffffffffffffff0  argR aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-  istri $0x4A:      xmm0 55555555555555555555555555555555  rcx 5555555555550007  flags 00000881
-  istri $0x0A:      xmm0 55555555555555555555555555555555  rcx 5555555555550000  flags 00000881
-  istrm $0x4A:      xmm0 0000000000000000ffffffffffffffff  rcx 5555555555555555  flags 00000881
-  istrm $0x0A:      xmm0 000000000000000000000000000000ff  rcx 5555555555555555  flags 00000881
-  estri $0x4A:      xmm0 55555555555555555555555555555555  rcx 5555555555550004  flags 00000881
-  estri $0x0A:      xmm0 55555555555555555555555555555555  rcx 5555555555550000  flags 00000881
-  estrm $0x4A:      xmm0 0000000000000000000000ffffffffff  rcx 5555555555555555  flags 00000881
-  estrm $0x0A:      xmm0 0000000000000000000000000000001f  rcx 5555555555555555  flags 00000881
+  istri $0x4A:      xmm0 55555555555555550000000000000005  rcx 555555550000000f  flags 00000801
+  istri $0x0A:      xmm0 55555555555555550000000000000005  rcx 5555555500000000  flags 00000801
+  istrm $0x4A:      xmm0 ffffffffffffffffffffffffffffffff  rcx 5555555555555555  flags 00000801
+  istrm $0x0A:      xmm0 0000000000000000000000000000ffff  rcx 5555555555555555  flags 00000801
+  estri $0x4A:      xmm0 55555555555555550000000000000005  rcx 5555555500000004  flags 00000841
+  estri $0x0A:      xmm0 55555555555555550000000000000005  rcx 5555555500000000  flags 00000841
+  estrm $0x4A:      xmm0 0000000000000000000000ffffffffff  rcx 5555555555555555  flags 00000841
+  estrm $0x0A:      xmm0 0000000000000000000000000000001f  rcx 5555555555555555  flags 00000841
 
 rdx 0000000000000005  argL aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa  rax ffffffffffffffef  argR aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-  istri $0x4A:      xmm0 55555555555555555555555555555555  rcx 5555555555550007  flags 00000881
-  istri $0x0A:      xmm0 55555555555555555555555555555555  rcx 5555555555550000  flags 00000881
-  istrm $0x4A:      xmm0 0000000000000000ffffffffffffffff  rcx 5555555555555555  flags 00000881
-  istrm $0x0A:      xmm0 000000000000000000000000000000ff  rcx 5555555555555555  flags 00000881
-  estri $0x4A:      xmm0 55555555555555555555555555555555  rcx 5555555555550004  flags 00000881
-  estri $0x0A:      xmm0 55555555555555555555555555555555  rcx 5555555555550000  flags 00000881
-  estrm $0x4A:      xmm0 0000000000000000000000ffffffffff  rcx 5555555555555555  flags 00000881
-  estrm $0x0A:      xmm0 0000000000000000000000000000001f  rcx 5555555555555555  flags 00000881
+  istri $0x4A:      xmm0 55555555555555550000000000000005  rcx 555555550000000f  flags 00000801
+  istri $0x0A:      xmm0 55555555555555550000000000000005  rcx 5555555500000000  flags 00000801
+  istrm $0x4A:      xmm0 ffffffffffffffffffffffffffffffff  rcx 5555555555555555  flags 00000801
+  istrm $0x0A:      xmm0 0000000000000000000000000000ffff  rcx 5555555555555555  flags 00000801
+  estri $0x4A:      xmm0 55555555555555550000000000000005  rcx 5555555500000004  flags 00000841
+  estri $0x0A:      xmm0 55555555555555550000000000000005  rcx 5555555500000000  flags 00000841
+  estrm $0x4A:      xmm0 0000000000000000000000ffffffffff  rcx 5555555555555555  flags 00000841
+  estrm $0x0A:      xmm0 0000000000000000000000000000001f  rcx 5555555555555555  flags 00000841
 
 rdx 0000000000000005  argL aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa  rax 0000000000000006  argR aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-  istri $0x4A:      xmm0 55555555555555555555555555555555  rcx 5555555555550007  flags 00000881
-  istri $0x0A:      xmm0 55555555555555555555555555555555  rcx 5555555555550000  flags 00000881
-  istrm $0x4A:      xmm0 0000000000000000ffffffffffffffff  rcx 5555555555555555  flags 00000881
-  istrm $0x0A:      xmm0 000000000000000000000000000000ff  rcx 5555555555555555  flags 00000881
-  estri $0x4A:      xmm0 55555555555555555555555555555555  rcx 555555555555000f  flags 000008c1
-  estri $0x0A:      xmm0 55555555555555555555555555555555  rcx 5555555555550000  flags 000008c1
+  istri $0x4A:      xmm0 55555555555555550000000000000005  rcx 555555550000000f  flags 00000801
+  istri $0x0A:      xmm0 55555555555555550000000000000005  rcx 5555555500000000  flags 00000801
+  istrm $0x4A:      xmm0 ffffffffffffffffffffffffffffffff  rcx 5555555555555555  flags 00000801
+  istrm $0x0A:      xmm0 0000000000000000000000000000ffff  rcx 5555555555555555  flags 00000801
+  estri $0x4A:      xmm0 55555555555555550000000000000005  rcx 555555550000000f  flags 000008c1
+  estri $0x0A:      xmm0 55555555555555550000000000000005  rcx 5555555500000000  flags 000008c1
   estrm $0x4A:      xmm0 ffffffffffffffffffff00ffffffffff  rcx 5555555555555555  flags 000008c1
   estrm $0x0A:      xmm0 0000000000000000000000000000ffdf  rcx 5555555555555555  flags 000008c1
 
 rdx 000000000000000f  argL aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa  rax 0000000000000006  argR aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-  istri $0x4A:      xmm0 55555555555555555555555555555555  rcx 5555555555550007  flags 00000881
-  istri $0x0A:      xmm0 55555555555555555555555555555555  rcx 5555555555550000  flags 00000881
-  istrm $0x4A:      xmm0 0000000000000000ffffffffffffffff  rcx 5555555555555555  flags 00000881
-  istrm $0x0A:      xmm0 000000000000000000000000000000ff  rcx 5555555555555555  flags 00000881
-  estri $0x4A:      xmm0 55555555555555555555555555555555  rcx 555555555555000f  flags 000008c1
-  estri $0x0A:      xmm0 55555555555555555555555555555555  rcx 5555555555550000  flags 000008c1
+  istri $0x4A:      xmm0 5555555555555555000000000000000f  rcx 555555550000000f  flags 00000801
+  istri $0x0A:      xmm0 5555555555555555000000000000000f  rcx 5555555500000000  flags 00000801
+  istrm $0x4A:      xmm0 ffffffffffffffffffffffffffffffff  rcx 5555555555555555  flags 00000801
+  istrm $0x0A:      xmm0 0000000000000000000000000000ffff  rcx 5555555555555555  flags 00000801
+  estri $0x4A:      xmm0 5555555555555555000000000000000f  rcx 555555550000000f  flags 000008c1
+  estri $0x0A:      xmm0 5555555555555555000000000000000f  rcx 5555555500000000  flags 000008c1
   estrm $0x4A:      xmm0 ff000000000000000000ffffffffffff  rcx 5555555555555555  flags 000008c1
   estrm $0x0A:      xmm0 0000000000000000000000000000803f  rcx 5555555555555555  flags 000008c1
 
 rdx 0000000000000010  argL aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa  rax 0000000000000006  argR aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-  istri $0x4A:      xmm0 55555555555555555555555555555555  rcx 5555555555550007  flags 00000881
-  istri $0x0A:      xmm0 55555555555555555555555555555555  rcx 5555555555550000  flags 00000881
-  istrm $0x4A:      xmm0 0000000000000000ffffffffffffffff  rcx 5555555555555555  flags 00000881
-  istrm $0x0A:      xmm0 000000000000000000000000000000ff  rcx 5555555555555555  flags 00000881
-  estri $0x4A:      xmm0 55555555555555555555555555555555  rcx 5555555555550005  flags 00000841
-  estri $0x0A:      xmm0 55555555555555555555555555555555  rcx 5555555555550000  flags 00000841
-  estrm $0x4A:      xmm0 00000000000000000000ffffffffffff  rcx 5555555555555555  flags 00000841
-  estrm $0x0A:      xmm0 0000000000000000000000000000003f  rcx 5555555555555555  flags 00000841
+  istri $0x4A:      xmm0 55555555555555550000000000000010  rcx 555555550000000f  flags 00000801
+  istri $0x0A:      xmm0 55555555555555550000000000000010  rcx 5555555500000000  flags 00000801
+  istrm $0x4A:      xmm0 ffffffffffffffffffffffffffffffff  rcx 5555555555555555  flags 00000801
+  istrm $0x0A:      xmm0 0000000000000000000000000000ffff  rcx 5555555555555555  flags 00000801
+  estri $0x4A:      xmm0 55555555555555550000000000000010  rcx 5555555500000005  flags 00000881
+  estri $0x0A:      xmm0 55555555555555550000000000000010  rcx 5555555500000000  flags 00000881
+  estrm $0x4A:      xmm0 00000000000000000000ffffffffffff  rcx 5555555555555555  flags 00000881
+  estrm $0x0A:      xmm0 0000000000000000000000000000003f  rcx 5555555555555555  flags 00000881
 
 rdx 0000000000000011  argL aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa  rax 0000000000000006  argR aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-  istri $0x4A:      xmm0 55555555555555555555555555555555  rcx 5555555555550007  flags 00000881
-  istri $0x0A:      xmm0 55555555555555555555555555555555  rcx 5555555555550000  flags 00000881
-  istrm $0x4A:      xmm0 0000000000000000ffffffffffffffff  rcx 5555555555555555  flags 00000881
-  istrm $0x0A:      xmm0 000000000000000000000000000000ff  rcx 5555555555555555  flags 00000881
-  estri $0x4A:      xmm0 55555555555555555555555555555555  rcx 5555555555550005  flags 00000841
-  estri $0x0A:      xmm0 55555555555555555555555555555555  rcx 5555555555550000  flags 00000841
-  estrm $0x4A:      xmm0 00000000000000000000ffffffffffff  rcx 5555555555555555  flags 00000841
-  estrm $0x0A:      xmm0 0000000000000000000000000000003f  rcx 5555555555555555  flags 00000841
+  istri $0x4A:      xmm0 55555555555555550000000000000011  rcx 555555550000000f  flags 00000801
+  istri $0x0A:      xmm0 55555555555555550000000000000011  rcx 5555555500000000  flags 00000801
+  istrm $0x4A:      xmm0 ffffffffffffffffffffffffffffffff  rcx 5555555555555555  flags 00000801
+  istrm $0x0A:      xmm0 0000000000000000000000000000ffff  rcx 5555555555555555  flags 00000801
+  estri $0x4A:      xmm0 55555555555555550000000000000011  rcx 5555555500000005  flags 00000881
+  estri $0x0A:      xmm0 55555555555555550000000000000011  rcx 5555555500000000  flags 00000881
+  estrm $0x4A:      xmm0 00000000000000000000ffffffffffff  rcx 5555555555555555  flags 00000881
+  estrm $0x0A:      xmm0 0000000000000000000000000000003f  rcx 5555555555555555  flags 00000881
 
 rdx fffffffffffffffb  argL aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa  rax 0000000000000006  argR aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-  istri $0x4A:      xmm0 55555555555555555555555555555555  rcx 5555555555550007  flags 00000801
-  istri $0x0A:      xmm0 55555555555555555555555555555555  rcx 5555555555550000  flags 00000801
-  istrm $0x4A:      xmm0 0000000000000000ffffffffffffffff  rcx 5555555555555555  flags 00000801
-  istrm $0x0A:      xmm0 000000000000000000000000000000ff  rcx 5555555555555555  flags 00000801
-  estri $0x4A:      xmm0 55555555555555555555555555555555  rcx 555555555555000f  flags 000008c1
-  estri $0x0A:      xmm0 55555555555555555555555555555555  rcx 5555555555550000  flags 000008c1
+  istri $0x4A:      xmm0 5555555555555555fffffffffffffffb  rcx 555555550000000f  flags 00000801
+  istri $0x0A:      xmm0 5555555555555555fffffffffffffffb  rcx 5555555500000000  flags 00000801
+  istrm $0x4A:      xmm0 ffffffffffffffffffffffffffffffff  rcx 5555555555555555  flags 00000801
+  istrm $0x0A:      xmm0 0000000000000000000000000000ffff  rcx 5555555555555555  flags 00000801
+  estri $0x4A:      xmm0 5555555555555555fffffffffffffffb  rcx 555555550000000f  flags 000008c1
+  estri $0x0A:      xmm0 5555555555555555fffffffffffffffb  rcx 5555555500000000  flags 000008c1
   estrm $0x4A:      xmm0 ffffffffffffffffffff00ffffffffff  rcx 5555555555555555  flags 000008c1
   estrm $0x0A:      xmm0 0000000000000000000000000000ffdf  rcx 5555555555555555  flags 000008c1
 
 rdx fffffffffffffff1  argL aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa  rax 0000000000000006  argR aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-  istri $0x4A:      xmm0 55555555555555555555555555555555  rcx 5555555555550007  flags 00000801
-  istri $0x0A:      xmm0 55555555555555555555555555555555  rcx 5555555555550000  flags 00000801
-  istrm $0x4A:      xmm0 0000000000000000ffffffffffffffff  rcx 5555555555555555  flags 00000801
-  istrm $0x0A:      xmm0 000000000000000000000000000000ff  rcx 5555555555555555  flags 00000801
-  estri $0x4A:      xmm0 55555555555555555555555555555555  rcx 555555555555000f  flags 000008c1
-  estri $0x0A:      xmm0 55555555555555555555555555555555  rcx 5555555555550000  flags 000008c1
+  istri $0x4A:      xmm0 5555555555555555fffffffffffffff1  rcx 555555550000000f  flags 00000801
+  istri $0x0A:      xmm0 5555555555555555fffffffffffffff1  rcx 5555555500000000  flags 00000801
+  istrm $0x4A:      xmm0 ffffffffffffffffffffffffffffffff  rcx 5555555555555555  flags 00000801
+  istrm $0x0A:      xmm0 0000000000000000000000000000ffff  rcx 5555555555555555  flags 00000801
+  estri $0x4A:      xmm0 5555555555555555fffffffffffffff1  rcx 555555550000000f  flags 000008c1
+  estri $0x0A:      xmm0 5555555555555555fffffffffffffff1  rcx 5555555500000000  flags 000008c1
   estrm $0x4A:      xmm0 ff000000000000000000ffffffffffff  rcx 5555555555555555  flags 000008c1
   estrm $0x0A:      xmm0 0000000000000000000000000000803f  rcx 5555555555555555  flags 000008c1
 
 rdx fffffffffffffff0  argL aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa  rax 0000000000000006  argR aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-  istri $0x4A:      xmm0 55555555555555555555555555555555  rcx 5555555555550007  flags 00000801
-  istri $0x0A:      xmm0 55555555555555555555555555555555  rcx 5555555555550000  flags 00000801
-  istrm $0x4A:      xmm0 0000000000000000ffffffffffffffff  rcx 5555555555555555  flags 00000801
-  istrm $0x0A:      xmm0 000000000000000000000000000000ff  rcx 5555555555555555  flags 00000801
-  estri $0x4A:      xmm0 55555555555555555555555555555555  rcx 5555555555550005  flags 00000841
-  estri $0x0A:      xmm0 55555555555555555555555555555555  rcx 5555555555550000  flags 00000841
-  estrm $0x4A:      xmm0 00000000000000000000ffffffffffff  rcx 5555555555555555  flags 00000841
-  estrm $0x0A:      xmm0 0000000000000000000000000000003f  rcx 5555555555555555  flags 00000841
+  istri $0x4A:      xmm0 5555555555555555fffffffffffffff0  rcx 555555550000000f  flags 00000801
+  istri $0x0A:      xmm0 5555555555555555fffffffffffffff0  rcx 5555555500000000  flags 00000801
+  istrm $0x4A:      xmm0 ffffffffffffffffffffffffffffffff  rcx 5555555555555555  flags 00000801
+  istrm $0x0A:      xmm0 0000000000000000000000000000ffff  rcx 5555555555555555  flags 00000801
+  estri $0x4A:      xmm0 5555555555555555fffffffffffffff0  rcx 5555555500000005  flags 00000881
+  estri $0x0A:      xmm0 5555555555555555fffffffffffffff0  rcx 5555555500000000  flags 00000881
+  estrm $0x4A:      xmm0 00000000000000000000ffffffffffff  rcx 5555555555555555  flags 00000881
+  estrm $0x0A:      xmm0 0000000000000000000000000000003f  rcx 5555555555555555  flags 00000881
 
 rdx ffffffffffffffef  argL aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa  rax 0000000000000006  argR aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-  istri $0x4A:      xmm0 55555555555555555555555555555555  rcx 5555555555550007  flags 00000801
-  istri $0x0A:      xmm0 55555555555555555555555555555555  rcx 5555555555550000  flags 00000801
-  istrm $0x4A:      xmm0 0000000000000000ffffffffffffffff  rcx 5555555555555555  flags 00000801
-  istrm $0x0A:      xmm0 000000000000000000000000000000ff  rcx 5555555555555555  flags 00000801
-  estri $0x4A:      xmm0 55555555555555555555555555555555  rcx 5555555555550005  flags 00000841
-  estri $0x0A:      xmm0 55555555555555555555555555555555  rcx 5555555555550000  flags 00000841
-  estrm $0x4A:      xmm0 00000000000000000000ffffffffffff  rcx 5555555555555555  flags 00000841
-  estrm $0x0A:      xmm0 0000000000000000000000000000003f  rcx 5555555555555555  flags 00000841
+  istri $0x4A:      xmm0 5555555555555555ffffffffffffffef  rcx 555555550000000f  flags 00000801
+  istri $0x0A:      xmm0 5555555555555555ffffffffffffffef  rcx 5555555500000000  flags 00000801
+  istrm $0x4A:      xmm0 ffffffffffffffffffffffffffffffff  rcx 5555555555555555  flags 00000801
+  istrm $0x0A:      xmm0 0000000000000000000000000000ffff  rcx 5555555555555555  flags 00000801
+  estri $0x4A:      xmm0 5555555555555555ffffffffffffffef  rcx 5555555500000005  flags 00000881
+  estri $0x0A:      xmm0 5555555555555555ffffffffffffffef  rcx 5555555500000000  flags 00000881
+  estrm $0x4A:      xmm0 00000000000000000000ffffffffffff  rcx 5555555555555555  flags 00000881
+  estrm $0x0A:      xmm0 0000000000000000000000000000003f  rcx 5555555555555555  flags 00000881