]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
VSX Permute Control Vector Generate Operation tests.
authorCarl Love <cel@us.ibm.com>
Tue, 17 Nov 2020 01:09:47 +0000 (19:09 -0600)
committerCarl Love <cel@us.ibm.com>
Tue, 30 Mar 2021 15:38:45 +0000 (10:38 -0500)
NEWS
none/tests/ppc64/test_isa_3_1_XT.c
none/tests/ppc64/test_isa_3_1_XT.stdout.exp

diff --git a/NEWS b/NEWS
index aa398cf54baed7e3ee9f38b92f95c3989066a687..2e42e74b2ecb65d25fd0f60b2770b5dc022af2eb 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -154,6 +154,7 @@ where XXXXXX is the bug number as listed below.
 428909  helgrind: need to intercept duplicate libc definitions for Fedora 33
 429352  PPC ISA 3.1 support is missing, part 7
 429354  PPC ISA 3.1 support is missing, part 8
+429375  PPC ISA 3.1 support is missing, part 9
 429692  unhandled ppc64le-linux syscall: 147 (getsid)
 429864  s390x: C++ atomic test_and_set yields false-positive memcheck
         diagnostics
index c16ddedac371807fade0fec306129beee7038e41..a54e8763a79fa3519d64e806fab1604fc124fdd1 100644 (file)
@@ -491,6 +491,54 @@ static void test_pstxv_4 (void) {
 static void test_pstxv_0 (void) {
   __asm__ __volatile__ ("pstxv %x0, 0(%1), 0" :: "wa" (vec_xs), "r" (ra) );
 }
+static void test_xxgenpcvbm_imm0 (void) {
+  __asm__ __volatile__ ("xxgenpcvbm %x0, %1, 0" : "=wa" (vec_xt) : "v" (vrb) );
+}
+static void test_xxgenpcvbm_imm1 (void) {
+  __asm__ __volatile__ ("xxgenpcvbm %x0, %1, 1" : "=wa" (vec_xt) : "v" (vrb) );
+}
+static void test_xxgenpcvbm_imm2 (void) {
+  __asm__ __volatile__ ("xxgenpcvbm %x0, %1, 2" : "=wa" (vec_xt) : "v" (vrb) );
+}
+static void test_xxgenpcvbm_imm3 (void) {
+  __asm__ __volatile__ ("xxgenpcvbm %x0, %1, 3" : "=wa" (vec_xt) : "v" (vrb) );
+}
+static void test_xxgenpcvhm_imm0 (void) {
+  __asm__ __volatile__ ("xxgenpcvhm %x0, %1, 0" : "=wa" (vec_xt) : "v" (vrb) );
+}
+static void test_xxgenpcvhm_imm1 (void) {
+  __asm__ __volatile__ ("xxgenpcvhm %x0, %1, 1" : "=wa" (vec_xt) : "v" (vrb) );
+}
+static void test_xxgenpcvhm_imm2 (void) {
+  __asm__ __volatile__ ("xxgenpcvhm %x0, %1, 2" : "=wa" (vec_xt) : "v" (vrb) );
+}
+static void test_xxgenpcvhm_imm3 (void) {
+  __asm__ __volatile__ ("xxgenpcvhm %x0, %1, 3" : "=wa" (vec_xt) : "v" (vrb) );
+}
+static void test_xxgenpcvwm_imm0 (void) {
+  __asm__ __volatile__ ("xxgenpcvwm %x0, %1, 0" : "=wa" (vec_xt) : "v" (vrb) );
+}
+static void test_xxgenpcvwm_imm1 (void) {
+  __asm__ __volatile__ ("xxgenpcvwm %x0, %1, 1" : "=wa" (vec_xt) : "v" (vrb) );
+}
+static void test_xxgenpcvwm_imm2 (void) {
+  __asm__ __volatile__ ("xxgenpcvwm %x0, %1, 2" : "=wa" (vec_xt) : "v" (vrb) );
+}
+static void test_xxgenpcvwm_imm3 (void) {
+  __asm__ __volatile__ ("xxgenpcvwm %x0, %1, 3" : "=wa" (vec_xt) : "v" (vrb) );
+}
+static void test_xxgenpcvdm_imm0 (void) {
+  __asm__ __volatile__ ("xxgenpcvdm %x0, %1, 0" : "=wa" (vec_xt) : "v" (vrb) );
+}
+static void test_xxgenpcvdm_imm1 (void) {
+  __asm__ __volatile__ ("xxgenpcvdm %x0, %1, 1" : "=wa" (vec_xt) : "v" (vrb) );
+}
+static void test_xxgenpcvdm_imm2 (void) {
+  __asm__ __volatile__ ("xxgenpcvdm %x0, %1, 2" : "=wa" (vec_xt) : "v" (vrb) );
+}
+static void test_xxgenpcvdm_imm3 (void) {
+  __asm__ __volatile__ ("xxgenpcvdm %x0, %1, 3" : "=wa" (vec_xt) : "v" (vrb) );
+}
 
 static test_list_t testgroup_generic[] = {
   { &test_lxvkq_imm1, "lxvkq imm1", "XT,UIM"}, /* bcwp */
@@ -592,6 +640,22 @@ static test_list_t testgroup_generic[] = {
   { &test_xxblendvw, "xxblendvw", "XT,XA,XB,XC"}, /* bcs */
   { &test_xxeval_imm0, "xxeval imm0", "XT,XA,XB,XC,IMM"}, /* bcwp */
   { &test_xxeval_imm3, "xxeval imm3", "XT,XA,XB,XC,IMM"}, /* bcwp */
+  { &test_xxgenpcvbm_imm0, "xxgenpcvbm imm0", "XT,VRB,IMM"}, /* bcwp */
+  { &test_xxgenpcvbm_imm1, "xxgenpcvbm imm1", "XT,VRB,IMM"}, /* bcwp */
+  { &test_xxgenpcvbm_imm2, "xxgenpcvbm imm2", "XT,VRB,IMM"}, /* bcwp */
+  { &test_xxgenpcvbm_imm3, "xxgenpcvbm imm3", "XT,VRB,IMM"}, /* bcwp */
+  { &test_xxgenpcvdm_imm0, "xxgenpcvdm imm0", "XT,VRB,IMM"}, /* bcwp */
+  { &test_xxgenpcvdm_imm1, "xxgenpcvdm imm1", "XT,VRB,IMM"}, /* bcwp */
+  { &test_xxgenpcvdm_imm2, "xxgenpcvdm imm2", "XT,VRB,IMM"}, /* bcwp */
+  { &test_xxgenpcvdm_imm3, "xxgenpcvdm imm3", "XT,VRB,IMM"}, /* bcwp */
+  { &test_xxgenpcvhm_imm0, "xxgenpcvhm imm0", "XT,VRB,IMM"}, /* bcwp */
+  { &test_xxgenpcvhm_imm1, "xxgenpcvhm imm1", "XT,VRB,IMM"}, /* bcwp */
+  { &test_xxgenpcvhm_imm2, "xxgenpcvhm imm2", "XT,VRB,IMM"}, /* bcwp */
+  { &test_xxgenpcvhm_imm3, "xxgenpcvhm imm3", "XT,VRB,IMM"}, /* bcwp */
+  { &test_xxgenpcvwm_imm0, "xxgenpcvwm imm0", "XT,VRB,IMM"}, /* bcwp */
+  { &test_xxgenpcvwm_imm1, "xxgenpcvwm imm1", "XT,VRB,IMM"}, /* bcwp */
+  { &test_xxgenpcvwm_imm2, "xxgenpcvwm imm2", "XT,VRB,IMM"}, /* bcwp */
+  { &test_xxgenpcvwm_imm3, "xxgenpcvwm imm3", "XT,VRB,IMM"}, /* bcwp */
   { &test_xxpermx_imm0, "xxpermx imm0", "XT,XA,XB,XC,UIM"}, /* bcwp */
   { &test_xxpermx_imm3, "xxpermx imm3", "XT,XA,XB,XC,UIM"}, /* bcwp */
   { &test_xxsplti32dx_ix0_imm0xa5a5a5a5, "xxsplti32dx ix0_imm0xa5a5a5a5", "XT,IX,IMM32"}, /* bcwp */
index efa95884e9d1aa914ba675606473e7f48a6c2227..8b5f1d1a3617abf55a882b3fdab5e1cee5542bcc 100644 (file)
@@ -4644,6 +4644,230 @@ xxeval imm3 8000000000000000,7f800000ff800000 8000000000000000,7f800000ff800000
 xxeval imm3 8000000000000000,7f800000ff800000 8000000000000000,7f800000ff800000 8000000000000000,7f800000ff800000 => 8000000000000000 7f800000ff800000
 xxeval imm3 8000000000000000,7f800000ff800000 8000000000000000,7f800000ff800000 8000000000000000,7f800000ff800000 => 8000000000000000 7f800000ff800000
 
+xxgenpcvbm imm0 7f800000ff800000,ff8000007f800000 => 18031a1b04051e1f    1121314021617
+xxgenpcvbm imm0 ff8000007f800000,ff7ffffe7f7ffffe =>  5061a1b1c071e1f   11010214150304
+xxgenpcvbm imm0 ff7ffffe7f7ffffe,0080000e8080000e =>  31904051c1d0607 1000121301021617
+xxgenpcvbm imm0 0080000e8080000e,0180055e0180077e => 18021a1b03041e1f 1000121314011617
+xxgenpcvbm imm0 0180055e0180077e,0000111e8000222e => 18011a1b1c021e1f 1011121300151617
+xxgenpcvbm imm0 0000111e8000222e,7ff0000000000000 => 18191a1b011d1e1f 1000121314151617
+xxgenpcvbm imm0 7ff0000000000000,fff0000000000000 => 18021a1b1c1d1e1f    1121314151617
+xxgenpcvbm imm0 fff0000000000000,2208400000000000 =>    11a1b1c1d1e1f 1011121314151617
+xxgenpcvbm imm0 2208400000000000,0000000000000009 => 18191a1b1c1d1e1f 1011121314151617
+xxgenpcvbm imm0 0000000000000009,ffff000180000001 => 18191a1b1c1d1e1f    1121302151617
+xxgenpcvbm imm0 ffff000180000001,0000000000000000 =>    11a1b021d1e1f 1011121314151617
+xxgenpcvbm imm0 0000000000000000,8000000000000000 => 18191a1b1c1d1e1f   11121314151617
+xxgenpcvbm imm0 8000000000000000,7f800000ff800000 =>  3191a1b1c1d1e1f 1000121301021617
+
+xxgenpcvbm imm1 7f800000ff800000,ff8000007f800000 =>                0    105090c0d0000
+xxgenpcvbm imm1 ff8000007f800000,ff7ffffe7f7ffffe =>                0    203060708090d
+xxgenpcvbm imm1 ff7ffffe7f7ffffe,0080000e8080000e =>                0  10405080a0b0e0f
+xxgenpcvbm imm1 0080000e8080000e,0180055e0180077e =>                0  105090c0d000000
+xxgenpcvbm imm1 0180055e0180077e,0000111e8000222e =>                0  4090d0000000000
+xxgenpcvbm imm1 0000111e8000222e,7ff0000000000000 =>                0  10c000000000000
+xxgenpcvbm imm1 7ff0000000000000,fff0000000000000 =>                0    1090000000000
+xxgenpcvbm imm1 fff0000000000000,2208400000000000 =>                0  809000000000000
+xxgenpcvbm imm1 2208400000000000,0000000000000009 =>                0                0
+xxgenpcvbm imm1 0000000000000009,ffff000180000001 =>                0    1040000000000
+xxgenpcvbm imm1 ffff000180000001,0000000000000000 =>                0  8090c0000000000
+xxgenpcvbm imm1 0000000000000000,8000000000000000 =>                0                0
+xxgenpcvbm imm1 8000000000000000,7f800000ff800000 =>                0  104050800000000
+
+xxgenpcvbm imm2 7f800000ff800000,ff8000007f800000 => 1702151401001110  5041d1c1b031918
+xxgenpcvbm imm2 ff8000007f800000,ff7ffffe7f7ffffe =>  201151413001110  71e06051b1a0403
+xxgenpcvbm imm2 ff7ffffe7f7ffffe,0080000e8080000e =>  416030213120100 1f071d1c06051918
+xxgenpcvbm imm2 0080000e8080000e,0180055e0180077e => 1702151401001110 1f041d1c1b031918
+xxgenpcvbm imm2 0180055e0180077e,0000111e8000222e => 1701151413001110 1f1e1d1c021a1918
+xxgenpcvbm imm2 0000111e8000222e,7ff0000000000000 => 1716151400121110 1f011d1c1b1a1918
+xxgenpcvbm imm2 7ff0000000000000,fff0000000000000 => 1700151413121110  2011d1c1b1a1918
+xxgenpcvbm imm2 fff0000000000000,2208400000000000 =>  100151413121110 1f1e1d1c1b1a1918
+xxgenpcvbm imm2 2208400000000000,0000000000000009 => 1716151413121110 1f1e1d1c1b1a1918
+xxgenpcvbm imm2 0000000000000009,ffff000180000001 => 1716151413121110  2011d1c001a1918
+xxgenpcvbm imm2 ffff000180000001,0000000000000000 =>  201151400121110 1f1e1d1c1b1a1918
+xxgenpcvbm imm2 0000000000000000,8000000000000000 => 1716151413121110   1e1d1c1b1a1918
+xxgenpcvbm imm2 8000000000000000,7f800000ff800000 =>   16151413121110 1f031d1c02011918
+
+xxgenpcvbm imm3 7f800000ff800000,ff8000007f800000 =>      f0e0a060302                0
+xxgenpcvbm imm3 ff8000007f800000,ff7ffffe7f7ffffe =>  f0d0c0908070602                0
+xxgenpcvbm imm3 ff7ffffe7f7ffffe,0080000e8080000e =>  e0b0a0705040100                0
+xxgenpcvbm imm3 0080000e8080000e,0180055e0180077e =>        e0a060302                0
+xxgenpcvbm imm3 0180055e0180077e,0000111e8000222e =>            b0602                0
+xxgenpcvbm imm3 0000111e8000222e,7ff0000000000000 =>              e03                0
+xxgenpcvbm imm3 7ff0000000000000,fff0000000000000 =>            f0e06                0
+xxgenpcvbm imm3 fff0000000000000,2208400000000000 =>              706                0
+xxgenpcvbm imm3 2208400000000000,0000000000000009 =>                0                0
+xxgenpcvbm imm3 0000000000000009,ffff000180000001 =>            f0e0b                0
+xxgenpcvbm imm3 ffff000180000001,0000000000000000 =>            70603                0
+xxgenpcvbm imm3 0000000000000000,8000000000000000 =>                f                0
+xxgenpcvbm imm3 8000000000000000,7f800000ff800000 =>          e0b0a07                0
+
+xxgenpcvdm imm0 7f800000ff800000,ff8000007f800000 => 18191a1b1c1d1e1f    1020304050607
+xxgenpcvdm imm0 ff8000007f800000,ff7ffffe7f7ffffe =>  8090a0b0c0d0e0f    1020304050607
+xxgenpcvdm imm0 ff7ffffe7f7ffffe,0080000e8080000e =>    1020304050607 1011121314151617
+xxgenpcvdm imm0 0080000e8080000e,0180055e0180077e => 18191a1b1c1d1e1f 1011121314151617
+xxgenpcvdm imm0 0180055e0180077e,0000111e8000222e => 18191a1b1c1d1e1f 1011121314151617
+xxgenpcvdm imm0 0000111e8000222e,7ff0000000000000 => 18191a1b1c1d1e1f 1011121314151617
+xxgenpcvdm imm0 7ff0000000000000,fff0000000000000 => 18191a1b1c1d1e1f    1020304050607
+xxgenpcvdm imm0 fff0000000000000,2208400000000000 =>    1020304050607 1011121314151617
+xxgenpcvdm imm0 2208400000000000,0000000000000009 => 18191a1b1c1d1e1f 1011121314151617
+xxgenpcvdm imm0 0000000000000009,ffff000180000001 => 18191a1b1c1d1e1f    1020304050607
+xxgenpcvdm imm0 ffff000180000001,0000000000000000 =>    1020304050607 1011121314151617
+xxgenpcvdm imm0 0000000000000000,8000000000000000 => 18191a1b1c1d1e1f    1020304050607
+xxgenpcvdm imm0 8000000000000000,7f800000ff800000 =>    1020304050607 1011121314151617
+
+xxgenpcvdm imm1 7f800000ff800000,ff8000007f800000 =>                0    1020304050607
+xxgenpcvdm imm1 ff8000007f800000,ff7ffffe7f7ffffe =>  8090a0b0c0d0e0f    1020304050607
+xxgenpcvdm imm1 ff7ffffe7f7ffffe,0080000e8080000e =>                0  8090a0b0c0d0e0f
+xxgenpcvdm imm1 0080000e8080000e,0180055e0180077e =>                0                0
+xxgenpcvdm imm1 0180055e0180077e,0000111e8000222e =>                0                0
+xxgenpcvdm imm1 0000111e8000222e,7ff0000000000000 =>                0                0
+xxgenpcvdm imm1 7ff0000000000000,fff0000000000000 =>                0    1020304050607
+xxgenpcvdm imm1 fff0000000000000,2208400000000000 =>                0  8090a0b0c0d0e0f
+xxgenpcvdm imm1 2208400000000000,0000000000000009 =>                0                0
+xxgenpcvdm imm1 0000000000000009,ffff000180000001 =>                0    1020304050607
+xxgenpcvdm imm1 ffff000180000001,0000000000000000 =>                0  8090a0b0c0d0e0f
+xxgenpcvdm imm1 0000000000000000,8000000000000000 =>                0    1020304050607
+xxgenpcvdm imm1 8000000000000000,7f800000ff800000 =>                0  8090a0b0c0d0e0f
+
+xxgenpcvdm imm2 7f800000ff800000,ff8000007f800000 => 1716151413121110  706050403020100
+xxgenpcvdm imm2 ff8000007f800000,ff7ffffe7f7ffffe =>  706050403020100  f0e0d0c0b0a0908
+xxgenpcvdm imm2 ff7ffffe7f7ffffe,0080000e8080000e =>  706050403020100 1f1e1d1c1b1a1918
+xxgenpcvdm imm2 0080000e8080000e,0180055e0180077e => 1716151413121110 1f1e1d1c1b1a1918
+xxgenpcvdm imm2 0180055e0180077e,0000111e8000222e => 1716151413121110 1f1e1d1c1b1a1918
+xxgenpcvdm imm2 0000111e8000222e,7ff0000000000000 => 1716151413121110 1f1e1d1c1b1a1918
+xxgenpcvdm imm2 7ff0000000000000,fff0000000000000 => 1716151413121110  706050403020100
+xxgenpcvdm imm2 fff0000000000000,2208400000000000 =>  706050403020100 1f1e1d1c1b1a1918
+xxgenpcvdm imm2 2208400000000000,0000000000000009 => 1716151413121110 1f1e1d1c1b1a1918
+xxgenpcvdm imm2 0000000000000009,ffff000180000001 => 1716151413121110  706050403020100
+xxgenpcvdm imm2 ffff000180000001,0000000000000000 =>  706050403020100 1f1e1d1c1b1a1918
+xxgenpcvdm imm2 0000000000000000,8000000000000000 => 1716151413121110  706050403020100
+xxgenpcvdm imm2 8000000000000000,7f800000ff800000 =>  706050403020100 1f1e1d1c1b1a1918
+
+xxgenpcvdm imm3 7f800000ff800000,ff8000007f800000 =>  f0e0d0c0b0a0908                0
+xxgenpcvdm imm3 ff8000007f800000,ff7ffffe7f7ffffe =>  706050403020100  f0e0d0c0b0a0908
+xxgenpcvdm imm3 ff7ffffe7f7ffffe,0080000e8080000e =>  706050403020100                0
+xxgenpcvdm imm3 0080000e8080000e,0180055e0180077e =>                0                0
+xxgenpcvdm imm3 0180055e0180077e,0000111e8000222e =>                0                0
+xxgenpcvdm imm3 0000111e8000222e,7ff0000000000000 =>                0                0
+xxgenpcvdm imm3 7ff0000000000000,fff0000000000000 =>  f0e0d0c0b0a0908                0
+xxgenpcvdm imm3 fff0000000000000,2208400000000000 =>  706050403020100                0
+xxgenpcvdm imm3 2208400000000000,0000000000000009 =>                0                0
+xxgenpcvdm imm3 0000000000000009,ffff000180000001 =>  f0e0d0c0b0a0908                0
+xxgenpcvdm imm3 ffff000180000001,0000000000000000 =>  706050403020100                0
+xxgenpcvdm imm3 0000000000000000,8000000000000000 =>  f0e0d0c0b0a0908                0
+xxgenpcvdm imm3 8000000000000000,7f800000ff800000 =>  706050403020100                0
+
+xxgenpcvhm imm0 7f800000ff800000,ff8000007f800000 => 18191a1b02031e1f    1121314151617
+xxgenpcvhm imm0 ff8000007f800000,ff7ffffe7f7ffffe =>  6071a1b1c1d1e1f    1020314150405
+xxgenpcvhm imm0 ff7ffffe7f7ffffe,0080000e8080000e =>  20304051c1d0607 1011121300011617
+xxgenpcvhm imm0 0080000e8080000e,0180055e0180077e => 18191a1b00011e1f 1011121314151617
+xxgenpcvhm imm0 0180055e0180077e,0000111e8000222e => 18191a1b1c1d1e1f 1011121300011617
+xxgenpcvhm imm0 0000111e8000222e,7ff0000000000000 => 18191a1b00011e1f 1011121314151617
+xxgenpcvhm imm0 7ff0000000000000,fff0000000000000 => 18191a1b1c1d1e1f    1121314151617
+xxgenpcvhm imm0 fff0000000000000,2208400000000000 =>    11a1b1c1d1e1f 1011121314151617
+xxgenpcvhm imm0 2208400000000000,0000000000000009 => 18191a1b1c1d1e1f 1011121314151617
+xxgenpcvhm imm0 0000000000000009,ffff000180000001 => 18191a1b1c1d1e1f    1121302031617
+xxgenpcvhm imm0 ffff000180000001,0000000000000000 =>    11a1b02031e1f 1011121314151617
+xxgenpcvhm imm0 0000000000000000,8000000000000000 => 18191a1b1c1d1e1f    1121314151617
+xxgenpcvhm imm0 8000000000000000,7f800000ff800000 =>  2031a1b1c1d1e1f 1011121300011617
+
+xxgenpcvhm imm1 7f800000ff800000,ff8000007f800000 =>                0    10c0d00000000
+xxgenpcvhm imm1 ff8000007f800000,ff7ffffe7f7ffffe =>                0    1020306070809
+xxgenpcvhm imm1 ff7ffffe7f7ffffe,0080000e8080000e =>                0  40508090a0b0e0f
+xxgenpcvhm imm1 0080000e8080000e,0180055e0180077e =>                0  c0d000000000000
+xxgenpcvhm imm1 0180055e0180077e,0000111e8000222e =>                0  405000000000000
+xxgenpcvhm imm1 0000111e8000222e,7ff0000000000000 =>                0  c0d000000000000
+xxgenpcvhm imm1 7ff0000000000000,fff0000000000000 =>                0    1000000000000
+xxgenpcvhm imm1 fff0000000000000,2208400000000000 =>                0  809000000000000
+xxgenpcvhm imm1 2208400000000000,0000000000000009 =>                0                0
+xxgenpcvhm imm1 0000000000000009,ffff000180000001 =>                0    1040500000000
+xxgenpcvhm imm1 ffff000180000001,0000000000000000 =>                0  8090c0d00000000
+xxgenpcvhm imm1 0000000000000000,8000000000000000 =>                0    1000000000000
+xxgenpcvhm imm1 8000000000000000,7f800000ff800000 =>                0  405080900000000
+
+xxgenpcvhm imm2 7f800000ff800000,ff8000007f800000 => 1716151401001110  3021d1c1b1a1918
+xxgenpcvhm imm2 ff8000007f800000,ff7ffffe7f7ffffe =>  100151413121110  70605041b1a0302
+xxgenpcvhm imm2 ff7ffffe7f7ffffe,0080000e8080000e =>  504030213120100 1f1e1d1c07061918
+xxgenpcvhm imm2 0080000e8080000e,0180055e0180077e => 1716151401001110 1f1e1d1c1b1a1918
+xxgenpcvhm imm2 0180055e0180077e,0000111e8000222e => 1716151413121110 1f1e1d1c01001918
+xxgenpcvhm imm2 0000111e8000222e,7ff0000000000000 => 1716151401001110 1f1e1d1c1b1a1918
+xxgenpcvhm imm2 7ff0000000000000,fff0000000000000 => 1716151413121110  1001d1c1b1a1918
+xxgenpcvhm imm2 fff0000000000000,2208400000000000 =>  100151413121110 1f1e1d1c1b1a1918
+xxgenpcvhm imm2 2208400000000000,0000000000000009 => 1716151413121110 1f1e1d1c1b1a1918
+xxgenpcvhm imm2 0000000000000009,ffff000180000001 => 1716151413121110  3021d1c01001918
+xxgenpcvhm imm2 ffff000180000001,0000000000000000 =>  302151401001110 1f1e1d1c1b1a1918
+xxgenpcvhm imm2 0000000000000000,8000000000000000 => 1716151413121110  1001d1c1b1a1918
+xxgenpcvhm imm2 8000000000000000,7f800000ff800000 =>  100151413121110 1f1e1d1c03021918
+
+xxgenpcvhm imm3 7f800000ff800000,ff8000007f800000 =>          f0e0302                0
+xxgenpcvhm imm3 ff8000007f800000,ff7ffffe7f7ffffe =>  f0e0d0c09080706                0
+xxgenpcvhm imm3 ff7ffffe7f7ffffe,0080000e8080000e =>  b0a070605040100                0
+xxgenpcvhm imm3 0080000e8080000e,0180055e0180077e =>              302                0
+xxgenpcvhm imm3 0180055e0180077e,0000111e8000222e =>              b0a                0
+xxgenpcvhm imm3 0000111e8000222e,7ff0000000000000 =>              302                0
+xxgenpcvhm imm3 7ff0000000000000,fff0000000000000 =>              f0e                0
+xxgenpcvhm imm3 fff0000000000000,2208400000000000 =>              706                0
+xxgenpcvhm imm3 2208400000000000,0000000000000009 =>                0                0
+xxgenpcvhm imm3 0000000000000009,ffff000180000001 =>          f0e0b0a                0
+xxgenpcvhm imm3 ffff000180000001,0000000000000000 =>          7060302                0
+xxgenpcvhm imm3 0000000000000000,8000000000000000 =>              f0e                0
+xxgenpcvhm imm3 8000000000000000,7f800000ff800000 =>          b0a0706                0
+
+xxgenpcvwm imm0 7f800000ff800000,ff8000007f800000 => 18191a1b04050607    1020314151617
+xxgenpcvwm imm0 ff8000007f800000,ff7ffffe7f7ffffe =>  40506071c1d1e1f    1020314151617
+xxgenpcvwm imm0 ff7ffffe7f7ffffe,0080000e8080000e =>  40506071c1d1e1f 1011121300010203
+xxgenpcvwm imm0 0080000e8080000e,0180055e0180077e => 18191a1b00010203 1011121314151617
+xxgenpcvwm imm0 0180055e0180077e,0000111e8000222e => 18191a1b1c1d1e1f 1011121300010203
+xxgenpcvwm imm0 0000111e8000222e,7ff0000000000000 => 18191a1b00010203 1011121314151617
+xxgenpcvwm imm0 7ff0000000000000,fff0000000000000 => 18191a1b1c1d1e1f    1020314151617
+xxgenpcvwm imm0 fff0000000000000,2208400000000000 =>    102031c1d1e1f 1011121314151617
+xxgenpcvwm imm0 2208400000000000,0000000000000009 => 18191a1b1c1d1e1f 1011121314151617
+xxgenpcvwm imm0 0000000000000009,ffff000180000001 => 18191a1b1c1d1e1f    1020304050607
+xxgenpcvwm imm0 ffff000180000001,0000000000000000 =>    1020304050607 1011121314151617
+xxgenpcvwm imm0 0000000000000000,8000000000000000 => 18191a1b1c1d1e1f    1020314151617
+xxgenpcvwm imm0 8000000000000000,7f800000ff800000 =>  40506071c1d1e1f 1011121300010203
+
+xxgenpcvwm imm1 7f800000ff800000,ff8000007f800000 =>                0    102030c0d0e0f
+xxgenpcvwm imm1 ff8000007f800000,ff7ffffe7f7ffffe =>                0    1020308090a0b
+xxgenpcvwm imm1 ff7ffffe7f7ffffe,0080000e8080000e =>                0  405060708090a0b
+xxgenpcvwm imm1 0080000e8080000e,0180055e0180077e =>                0  c0d0e0f00000000
+xxgenpcvwm imm1 0180055e0180077e,0000111e8000222e =>                0  405060700000000
+xxgenpcvwm imm1 0000111e8000222e,7ff0000000000000 =>                0  c0d0e0f00000000
+xxgenpcvwm imm1 7ff0000000000000,fff0000000000000 =>                0    1020300000000
+xxgenpcvwm imm1 fff0000000000000,2208400000000000 =>                0  8090a0b00000000
+xxgenpcvwm imm1 2208400000000000,0000000000000009 =>                0                0
+xxgenpcvwm imm1 0000000000000009,ffff000180000001 =>                0    1020304050607
+xxgenpcvwm imm1 ffff000180000001,0000000000000000 =>                0  8090a0b0c0d0e0f
+xxgenpcvwm imm1 0000000000000000,8000000000000000 =>                0    1020300000000
+xxgenpcvwm imm1 8000000000000000,7f800000ff800000 =>                0  405060708090a0b
+
+xxgenpcvwm imm2 7f800000ff800000,ff8000007f800000 => 1716151403020100  70605041b1a1918
+xxgenpcvwm imm2 ff8000007f800000,ff7ffffe7f7ffffe =>  302010013121110  70605041b1a1918
+xxgenpcvwm imm2 ff7ffffe7f7ffffe,0080000e8080000e =>  302010013121110 1f1e1d1c07060504
+xxgenpcvwm imm2 0080000e8080000e,0180055e0180077e => 1716151403020100 1f1e1d1c1b1a1918
+xxgenpcvwm imm2 0180055e0180077e,0000111e8000222e => 1716151413121110 1f1e1d1c03020100
+xxgenpcvwm imm2 0000111e8000222e,7ff0000000000000 => 1716151403020100 1f1e1d1c1b1a1918
+xxgenpcvwm imm2 7ff0000000000000,fff0000000000000 => 1716151413121110  30201001b1a1918
+xxgenpcvwm imm2 fff0000000000000,2208400000000000 =>  302010013121110 1f1e1d1c1b1a1918
+xxgenpcvwm imm2 2208400000000000,0000000000000009 => 1716151413121110 1f1e1d1c1b1a1918
+xxgenpcvwm imm2 0000000000000009,ffff000180000001 => 1716151413121110  706050403020100
+xxgenpcvwm imm2 ffff000180000001,0000000000000000 =>  706050403020100 1f1e1d1c1b1a1918
+xxgenpcvwm imm2 0000000000000000,8000000000000000 => 1716151413121110  30201001b1a1918
+xxgenpcvwm imm2 8000000000000000,7f800000ff800000 =>  302010013121110 1f1e1d1c07060504
+
+xxgenpcvwm imm3 7f800000ff800000,ff8000007f800000 =>  f0e0d0c03020100                0
+xxgenpcvwm imm3 ff8000007f800000,ff7ffffe7f7ffffe =>  f0e0d0c07060504                0
+xxgenpcvwm imm3 ff7ffffe7f7ffffe,0080000e8080000e =>  b0a090807060504                0
+xxgenpcvwm imm3 0080000e8080000e,0180055e0180077e =>          3020100                0
+xxgenpcvwm imm3 0180055e0180077e,0000111e8000222e =>          b0a0908                0
+xxgenpcvwm imm3 0000111e8000222e,7ff0000000000000 =>          3020100                0
+xxgenpcvwm imm3 7ff0000000000000,fff0000000000000 =>          f0e0d0c                0
+xxgenpcvwm imm3 fff0000000000000,2208400000000000 =>          7060504                0
+xxgenpcvwm imm3 2208400000000000,0000000000000009 =>                0                0
+xxgenpcvwm imm3 0000000000000009,ffff000180000001 =>  f0e0d0c0b0a0908                0
+xxgenpcvwm imm3 ffff000180000001,0000000000000000 =>  706050403020100                0
+xxgenpcvwm imm3 0000000000000000,8000000000000000 =>          f0e0d0c                0
+xxgenpcvwm imm3 8000000000000000,7f800000ff800000 =>  b0a090807060504                0
+
 xxpermx imm0 7f800000ff800000,ff8000007f800000 7f800000ff800000,ff8000007f800000 7f800000ff800000,ff8000007f800000 =>     ffff0000ffff     ffff0000ffff
 xxpermx imm0 7f800000ff800000,ff8000007f800000 7f800000ff800000,ff8000007f800000 7f800000ff800000,ff8000007f800000 =>     ffff0000ffff     ffff0000ffff
 xxpermx imm0 7f800000ff800000,ff8000007f800000 7f800000ff800000,ff8000007f800000 7f800000ff800000,ff8000007f800000 =>     ffff0000ffff     ffff0000ffff
@@ -7094,4 +7318,4 @@ xxspltiw imm3 =>        300000003        300000003
 
 xxspltiw imm8 =>        800000008        800000008
 
-All done. Tested 142 different instruction groups
+All done. Tested 158 different instruction groups