diff --git a/valgrind-3.17.0-ppc64-isa-3.1-tests.patch b/valgrind-3.17.0-ppc64-isa-3.1-tests.patch
new file mode 100644
index 0000000..b7f1a6c
--- /dev/null
+++ b/valgrind-3.17.0-ppc64-isa-3.1-tests.patch
@@ -0,0 +1,1712 @@
+commit 4bcc6c8a97c10c4dd41b35bd3b3035ec4037d524
+Author: Carl Love <cel@us.ibm.com>
+Date:   Mon Nov 16 19:09:47 2020 -0600
+
+    VSX Permute Control Vector Generate Operation tests.
+
+diff --git a/NEWS b/NEWS
+index aa398cf54..2e42e74b2 100644
+--- 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
+diff --git a/none/tests/ppc64/test_isa_3_1_XT.c b/none/tests/ppc64/test_isa_3_1_XT.c
+index c16ddedac..a54e8763a 100644
+--- a/none/tests/ppc64/test_isa_3_1_XT.c
++++ b/none/tests/ppc64/test_isa_3_1_XT.c
+@@ -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 */
+diff --git a/none/tests/ppc64/test_isa_3_1_XT.stdout.exp b/none/tests/ppc64/test_isa_3_1_XT.stdout.exp
+index efa95884e..8b5f1d1a3 100644
+--- a/none/tests/ppc64/test_isa_3_1_XT.stdout.exp
++++ b/none/tests/ppc64/test_isa_3_1_XT.stdout.exp
+@@ -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
+
+commit c8fa838be405d7ac43035dcf675bf490800c26ec
+Author: root <root@ltcden3-lp13.aus.stglabs.ibm.com>
+Date:   Fri Feb 12 15:59:32 2021 -0500
+
+    Reduced Precision bfloat16 outer product tests
+
+diff --git a/none/tests/ppc64/test_isa_3_1_AT.c b/none/tests/ppc64/test_isa_3_1_AT.c
+index 1d6d42c61..fee76f8f4 100644
+--- a/none/tests/ppc64/test_isa_3_1_AT.c
++++ b/none/tests/ppc64/test_isa_3_1_AT.c
+@@ -626,8 +626,228 @@ static void test_pmxvf64gernn_XM11_YM0 (void) {
+ static void test_pmxvf64gernn_XM11_YM1 (void) {
+   __asm__ __volatile__ ("pmxvf64gernn  4, 22, %x0, 11, 1" :: "wa" (vec_xa) );
+ }
++static void test_xvbf16ger2 (void) {
++  __asm__ __volatile__ ("xvbf16ger2 4, %x0, %x1"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_xvbf16ger2nn (void) {
++  __asm__ __volatile__ ("xvbf16ger2nn 4, %x0, %x1"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_xvbf16ger2np (void) {
++  __asm__ __volatile__ ("xvbf16ger2np 4, %x0, %x1"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_xvbf16ger2pn (void) {
++  __asm__ __volatile__ ("xvbf16ger2pn 4, %x0, %x1"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_xvbf16ger2pp (void) {
++  __asm__ __volatile__ ("xvbf16ger2pp 4, %x0, %x1"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvbf16ger2_XM0_YM0_PM0 (void) {
++  __asm__ __volatile__ ("pmxvbf16ger2  4, %x0, %x1, 0, 0, 0"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvbf16ger2_XM0_YM0_PM1 (void) {
++  __asm__ __volatile__ ("pmxvbf16ger2  4, %x0, %x1, 0, 0, 1"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvbf16ger2_XM0_YM13_PM0 (void) {
++  __asm__ __volatile__ ("pmxvbf16ger2  4, %x0, %x1, 0, 13, 0"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvbf16ger2_XM0_YM13_PM1 (void) {
++  __asm__ __volatile__ ("pmxvbf16ger2  4, %x0, %x1, 0, 13, 1"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvbf16ger2_XM11_YM0_PM0 (void) {
++  __asm__ __volatile__ ("pmxvbf16ger2  4, %x0, %x1, 11, 0, 0"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvbf16ger2_XM11_YM0_PM1 (void) {
++  __asm__ __volatile__ ("pmxvbf16ger2  4, %x0, %x1, 11, 0, 1"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvbf16ger2_XM11_YM13_PM0 (void) {
++  __asm__ __volatile__ ("pmxvbf16ger2  4, %x0, %x1, 11, 13, 0"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvbf16ger2_XM11_YM13_PM1 (void) {
++  __asm__ __volatile__ ("pmxvbf16ger2  4, %x0, %x1, 11, 13, 1"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvbf16ger2nn_XM0_YM0_PM0 (void) {
++  __asm__ __volatile__ ("pmxvbf16ger2nn  4, %x0, %x1, 0, 0, 0"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvbf16ger2nn_XM0_YM0_PM1 (void) {
++  __asm__ __volatile__ ("pmxvbf16ger2nn  4, %x0, %x1, 0, 0, 1"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvbf16ger2nn_XM0_YM13_PM0 (void) {
++  __asm__ __volatile__ ("pmxvbf16ger2nn  4, %x0, %x1, 0, 13, 0"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvbf16ger2nn_XM0_YM13_PM1 (void) {
++  __asm__ __volatile__ ("pmxvbf16ger2nn  4, %x0, %x1, 0, 13, 1"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvbf16ger2nn_XM11_YM0_PM0 (void) {
++  __asm__ __volatile__ ("pmxvbf16ger2nn  4, %x0, %x1, 11, 0, 0"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvbf16ger2nn_XM11_YM0_PM1 (void) {
++  __asm__ __volatile__ ("pmxvbf16ger2nn  4, %x0, %x1, 11, 0, 1"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvbf16ger2nn_XM11_YM13_PM0 (void) {
++  __asm__ __volatile__ ("pmxvbf16ger2nn  4, %x0, %x1, 11, 13, 0"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvbf16ger2nn_XM11_YM13_PM1 (void) {
++  __asm__ __volatile__ ("pmxvbf16ger2nn  4, %x0, %x1, 11, 13, 1"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvbf16ger2np_XM0_YM0_PM0 (void) {
++  __asm__ __volatile__ ("pmxvbf16ger2np  4, %x0, %x1, 0, 0, 0"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvbf16ger2np_XM0_YM0_PM1 (void) {
++  __asm__ __volatile__ ("pmxvbf16ger2np  4, %x0, %x1, 0, 0, 1"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvbf16ger2np_XM0_YM13_PM0 (void) {
++  __asm__ __volatile__ ("pmxvbf16ger2np  4, %x0, %x1, 0, 13, 0"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvbf16ger2np_XM0_YM13_PM1 (void) {
++  __asm__ __volatile__ ("pmxvbf16ger2np  4, %x0, %x1, 0, 13, 1"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvbf16ger2np_XM11_YM0_PM0 (void) {
++  __asm__ __volatile__ ("pmxvbf16ger2np  4, %x0, %x1, 11, 0, 0"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvbf16ger2np_XM11_YM0_PM1 (void) {
++  __asm__ __volatile__ ("pmxvbf16ger2np  4, %x0, %x1, 11, 0, 1"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvbf16ger2np_XM11_YM13_PM0 (void) {
++  __asm__ __volatile__ ("pmxvbf16ger2np  4, %x0, %x1, 11, 13, 0"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvbf16ger2np_XM11_YM13_PM1 (void) {
++  __asm__ __volatile__ ("pmxvbf16ger2np  4, %x0, %x1, 11, 13, 1"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvbf16ger2pn_XM0_YM0_PM0 (void) {
++  __asm__ __volatile__ ("pmxvbf16ger2pn  4, %x0, %x1, 0, 0, 0"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvbf16ger2pn_XM0_YM0_PM1 (void) {
++  __asm__ __volatile__ ("pmxvbf16ger2pn  4, %x0, %x1, 0, 0, 1"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvbf16ger2pn_XM0_YM13_PM0 (void) {
++  __asm__ __volatile__ ("pmxvbf16ger2pn  4, %x0, %x1, 0, 13, 0"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvbf16ger2pn_XM0_YM13_PM1 (void) {
++  __asm__ __volatile__ ("pmxvbf16ger2pn  4, %x0, %x1, 0, 13, 1"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvbf16ger2pn_XM11_YM0_PM0 (void) {
++  __asm__ __volatile__ ("pmxvbf16ger2pn  4, %x0, %x1, 11, 0, 0"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvbf16ger2pn_XM11_YM0_PM1 (void) {
++  __asm__ __volatile__ ("pmxvbf16ger2pn  4, %x0, %x1, 11, 0, 1"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvbf16ger2pn_XM11_YM13_PM0 (void) {
++  __asm__ __volatile__ ("pmxvbf16ger2pn  4, %x0, %x1, 11, 13, 0"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvbf16ger2pn_XM11_YM13_PM1 (void) {
++  __asm__ __volatile__ ("pmxvbf16ger2pn  4, %x0, %x1, 11, 13, 1"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvbf16ger2pp_XM0_YM0_PM0 (void) {
++  __asm__ __volatile__ ("pmxvbf16ger2pp  4, %x0, %x1, 0, 0, 0"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvbf16ger2pp_XM0_YM0_PM1 (void) {
++  __asm__ __volatile__ ("pmxvbf16ger2pp  4, %x0, %x1, 0, 0, 1"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvbf16ger2pp_XM0_YM13_PM0 (void) {
++  __asm__ __volatile__ ("pmxvbf16ger2pp  4, %x0, %x1, 0, 13, 0"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvbf16ger2pp_XM0_YM13_PM1 (void) {
++  __asm__ __volatile__ ("pmxvbf16ger2pp  4, %x0, %x1, 0, 13, 1"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvbf16ger2pp_XM11_YM0_PM0 (void) {
++  __asm__ __volatile__ ("pmxvbf16ger2pp  4, %x0, %x1, 11, 0, 0"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvbf16ger2pp_XM11_YM0_PM1 (void) {
++  __asm__ __volatile__ ("pmxvbf16ger2pp  4, %x0, %x1, 11, 0, 1"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvbf16ger2pp_XM11_YM13_PM0 (void) {
++  __asm__ __volatile__ ("pmxvbf16ger2pp  4, %x0, %x1, 11, 13, 0"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvbf16ger2pp_XM11_YM13_PM1 (void) {
++  __asm__ __volatile__ ("pmxvbf16ger2pp  4, %x0, %x1, 11, 13, 1"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
+ 
+ static test_list_t testgroup_generic[] = {
++  { &test_pmxvbf16ger2nn_XM0_YM0_PM0, "pmxvbf16ger2nn XM0_YM0_PM0", "AT,XA,XB,XMSK,YMSK,PMSK", 0b00001111}, /* bcwp */
++  { &test_pmxvbf16ger2nn_XM0_YM0_PM1, "pmxvbf16ger2nn XM0_YM0_PM1", "AT,XA,XB,XMSK,YMSK,PMSK", 0b00001111}, /* bcwp */
++  { &test_pmxvbf16ger2nn_XM0_YM13_PM0, "pmxvbf16ger2nn XM0_YM13_PM0", "AT,XA,XB,XMSK,YMSK,PMSK", 0b00001111}, /* bcwp */
++  { &test_pmxvbf16ger2nn_XM0_YM13_PM1, "pmxvbf16ger2nn XM0_YM13_PM1", "AT,XA,XB,XMSK,YMSK,PMSK", 0b00001111}, /* bcwp */
++  { &test_pmxvbf16ger2nn_XM11_YM0_PM0, "pmxvbf16ger2nn XM11_YM0_PM0", "AT,XA,XB,XMSK,YMSK,PMSK", 0b00001111}, /* bcwp */
++  { &test_pmxvbf16ger2nn_XM11_YM0_PM1, "pmxvbf16ger2nn XM11_YM0_PM1", "AT,XA,XB,XMSK,YMSK,PMSK", 0b00001111}, /* bcwp */
++  { &test_pmxvbf16ger2nn_XM11_YM13_PM0, "pmxvbf16ger2nn XM11_YM13_PM0", "AT,XA,XB,XMSK,YMSK,PMSK", 0b00001111}, /* bcwp */
++  { &test_pmxvbf16ger2nn_XM11_YM13_PM1, "pmxvbf16ger2nn XM11_YM13_PM1", "AT,XA,XB,XMSK,YMSK,PMSK", 0b00001111}, /* bcwp */
++  { &test_pmxvbf16ger2np_XM0_YM0_PM0, "pmxvbf16ger2np XM0_YM0_PM0", "AT,XA,XB,XMSK,YMSK,PMSK", 0b00001111}, /* bcwp */
++  { &test_pmxvbf16ger2np_XM0_YM0_PM1, "pmxvbf16ger2np XM0_YM0_PM1", "AT,XA,XB,XMSK,YMSK,PMSK", 0b00001111}, /* bcwp */
++  { &test_pmxvbf16ger2np_XM0_YM13_PM0, "pmxvbf16ger2np XM0_YM13_PM0", "AT,XA,XB,XMSK,YMSK,PMSK", 0b00001111}, /* bcwp */
++  { &test_pmxvbf16ger2np_XM0_YM13_PM1, "pmxvbf16ger2np XM0_YM13_PM1", "AT,XA,XB,XMSK,YMSK,PMSK", 0b00001111}, /* bcwp */
++  { &test_pmxvbf16ger2np_XM11_YM0_PM0, "pmxvbf16ger2np XM11_YM0_PM0", "AT,XA,XB,XMSK,YMSK,PMSK", 0b00001111}, /* bcwp */
++  { &test_pmxvbf16ger2np_XM11_YM0_PM1, "pmxvbf16ger2np XM11_YM0_PM1", "AT,XA,XB,XMSK,YMSK,PMSK", 0b00001111}, /* bcwp */
++  { &test_pmxvbf16ger2np_XM11_YM13_PM0, "pmxvbf16ger2np XM11_YM13_PM0", "AT,XA,XB,XMSK,YMSK,PMSK", 0b00001111}, /* bcwp */
++  { &test_pmxvbf16ger2np_XM11_YM13_PM1, "pmxvbf16ger2np XM11_YM13_PM1", "AT,XA,XB,XMSK,YMSK,PMSK", 0b00001111}, /* bcwp */
++  { &test_pmxvbf16ger2pn_XM0_YM0_PM0, "pmxvbf16ger2pn XM0_YM0_PM0", "AT,XA,XB,XMSK,YMSK,PMSK", 0b00001111}, /* bcwp */
++  { &test_pmxvbf16ger2pn_XM0_YM0_PM1, "pmxvbf16ger2pn XM0_YM0_PM1", "AT,XA,XB,XMSK,YMSK,PMSK", 0b00001111}, /* bcwp */
++  { &test_pmxvbf16ger2pn_XM0_YM13_PM0, "pmxvbf16ger2pn XM0_YM13_PM0", "AT,XA,XB,XMSK,YMSK,PMSK", 0b00001111}, /* bcwp */
++  { &test_pmxvbf16ger2pn_XM0_YM13_PM1, "pmxvbf16ger2pn XM0_YM13_PM1", "AT,XA,XB,XMSK,YMSK,PMSK", 0b00001111}, /* bcwp */
++  { &test_pmxvbf16ger2pn_XM11_YM0_PM0, "pmxvbf16ger2pn XM11_YM0_PM0", "AT,XA,XB,XMSK,YMSK,PMSK", 0b00001111}, /* bcwp */
++  { &test_pmxvbf16ger2pn_XM11_YM0_PM1, "pmxvbf16ger2pn XM11_YM0_PM1", "AT,XA,XB,XMSK,YMSK,PMSK", 0b00001111}, /* bcwp */
++  { &test_pmxvbf16ger2pn_XM11_YM13_PM0, "pmxvbf16ger2pn XM11_YM13_PM0", "AT,XA,XB,XMSK,YMSK,PMSK", 0b00001111}, /* bcwp */
++  { &test_pmxvbf16ger2pn_XM11_YM13_PM1, "pmxvbf16ger2pn XM11_YM13_PM1", "AT,XA,XB,XMSK,YMSK,PMSK", 0b00001111}, /* bcwp */
++  { &test_pmxvbf16ger2pp_XM0_YM0_PM0, "pmxvbf16ger2pp XM0_YM0_PM0", "AT,XA,XB,XMSK,YMSK,PMSK", 0b00001111}, /* bcwp */
++  { &test_pmxvbf16ger2pp_XM0_YM0_PM1, "pmxvbf16ger2pp XM0_YM0_PM1", "AT,XA,XB,XMSK,YMSK,PMSK", 0b00001111}, /* bcwp */
++  { &test_pmxvbf16ger2pp_XM0_YM13_PM0, "pmxvbf16ger2pp XM0_YM13_PM0", "AT,XA,XB,XMSK,YMSK,PMSK", 0b00001111}, /* bcwp */
++  { &test_pmxvbf16ger2pp_XM0_YM13_PM1, "pmxvbf16ger2pp XM0_YM13_PM1", "AT,XA,XB,XMSK,YMSK,PMSK", 0b00001111}, /* bcwp */
++  { &test_pmxvbf16ger2pp_XM11_YM0_PM0, "pmxvbf16ger2pp XM11_YM0_PM0", "AT,XA,XB,XMSK,YMSK,PMSK", 0b00001111}, /* bcwp */
++  { &test_pmxvbf16ger2pp_XM11_YM0_PM1, "pmxvbf16ger2pp XM11_YM0_PM1", "AT,XA,XB,XMSK,YMSK,PMSK", 0b00001111}, /* bcwp */
++  { &test_pmxvbf16ger2pp_XM11_YM13_PM0, "pmxvbf16ger2pp XM11_YM13_PM0", "AT,XA,XB,XMSK,YMSK,PMSK", 0b00001111}, /* bcwp */
++  { &test_pmxvbf16ger2pp_XM11_YM13_PM1, "pmxvbf16ger2pp XM11_YM13_PM1", "AT,XA,XB,XMSK,YMSK,PMSK", 0b00001111}, /* bcwp */
++  { &test_pmxvbf16ger2_XM0_YM0_PM0, "pmxvbf16ger2 XM0_YM0_PM0", "AT,XA,XB,XMSK,YMSK,PMSK", 0b00001111}, /* bcwp */
++  { &test_pmxvbf16ger2_XM0_YM0_PM1, "pmxvbf16ger2 XM0_YM0_PM1", "AT,XA,XB,XMSK,YMSK,PMSK", 0b00001111}, /* bcwp */
++  { &test_pmxvbf16ger2_XM0_YM13_PM0, "pmxvbf16ger2 XM0_YM13_PM0", "AT,XA,XB,XMSK,YMSK,PMSK", 0b00001111}, /* bcwp */
++  { &test_pmxvbf16ger2_XM0_YM13_PM1, "pmxvbf16ger2 XM0_YM13_PM1", "AT,XA,XB,XMSK,YMSK,PMSK", 0b00001111}, /* bcwp */
++  { &test_pmxvbf16ger2_XM11_YM0_PM0, "pmxvbf16ger2 XM11_YM0_PM0", "AT,XA,XB,XMSK,YMSK,PMSK", 0b00001111}, /* bcwp */
++  { &test_pmxvbf16ger2_XM11_YM0_PM1, "pmxvbf16ger2 XM11_YM0_PM1", "AT,XA,XB,XMSK,YMSK,PMSK", 0b00001111}, /* bcwp */
++  { &test_pmxvbf16ger2_XM11_YM13_PM0, "pmxvbf16ger2 XM11_YM13_PM0", "AT,XA,XB,XMSK,YMSK,PMSK", 0b00001111}, /* bcwp */
++  { &test_pmxvbf16ger2_XM11_YM13_PM1, "pmxvbf16ger2 XM11_YM13_PM1", "AT,XA,XB,XMSK,YMSK,PMSK", 0b00001111}, /* bcwp */
+   { &test_pmxvf16ger2nn_XM0_YM0_PM0, "pmxvf16ger2nn XM0_YM0_PM0", "AT,XA,XB,XMSK,YMSK,PMSK", 0b00001111}, /* bcwp */
+   { &test_pmxvf16ger2nn_XM0_YM0_PM1, "pmxvf16ger2nn XM0_YM0_PM1", "AT,XA,XB,XMSK,YMSK,PMSK", 0b00001111}, /* bcwp */
+   { &test_pmxvf16ger2nn_XM0_YM13_PM0, "pmxvf16ger2nn XM0_YM13_PM0", "AT,XA,XB,XMSK,YMSK,PMSK", 0b00001111}, /* bcwp */
+@@ -756,6 +976,11 @@ static test_list_t testgroup_generic[] = {
+   { &test_pmxvi16ger2s_XM11_YM0_PM1, "pmxvi16ger2s XM11_YM0_PM1", "AT,XA,XB,XMSK,YMSK,PMSK"}, /* bcwp */
+   { &test_pmxvi16ger2s_XM11_YM13_PM0, "pmxvi16ger2s XM11_YM13_PM0", "AT,XA,XB,XMSK,YMSK,PMSK"}, /* bcwp */
+   { &test_pmxvi16ger2s_XM11_YM13_PM1, "pmxvi16ger2s XM11_YM13_PM1", "AT,XA,XB,XMSK,YMSK,PMSK"}, /* bcwp */
++  { &test_xvbf16ger2nn, "xvbf16ger2nn", "AT,XA,XB", 0b00001111}, /* bcs */
++  { &test_xvbf16ger2np, "xvbf16ger2np", "AT,XA,XB", 0b00001111}, /* bcs */
++  { &test_xvbf16ger2pn, "xvbf16ger2pn", "AT,XA,XB", 0b00001111}, /* bcs */
++  { &test_xvbf16ger2pp, "xvbf16ger2pp", "AT,XA,XB", 0b00001111}, /* bcs */
++  { &test_xvbf16ger2, "xvbf16ger2", "AT,XA,XB", 0b00001111}, /* bcs */
+   { &test_xvf16ger2nn, "xvf16ger2nn", "AT,XA,XB", 0b00001111}, /* bcs */
+   { &test_xvf16ger2np, "xvf16ger2np", "AT,XA,XB", 0b00001111}, /* bcs */
+   { &test_xvf16ger2pn, "xvf16ger2pn", "AT,XA,XB", 0b00001111}, /* bcs */
+diff --git a/none/tests/ppc64/test_isa_3_1_AT.stdout.exp b/none/tests/ppc64/test_isa_3_1_AT.stdout.exp
+index 5ea998563..be3f17ec3 100644
+--- a/none/tests/ppc64/test_isa_3_1_AT.stdout.exp
++++ b/none/tests/ppc64/test_isa_3_1_AT.stdout.exp
+@@ -1,3 +1,403 @@
++pmxvbf16ger2nn XM0_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM0_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM0_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM0_YM0_PM0 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM0_YM0_PM0 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM0_YM0_PM0 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM0_YM0_PM0 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM0_YM0_PM0 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM0_YM0_PM0 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++
++pmxvbf16ger2nn XM0_YM0_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM0_YM0_PM1 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM0_YM0_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM0_YM0_PM1 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM0_YM0_PM1 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM0_YM0_PM1 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM0_YM0_PM1 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM0_YM0_PM1 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM0_YM0_PM1 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++
++pmxvbf16ger2nn XM0_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM0_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM0_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM0_YM13_PM0 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM0_YM13_PM0 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM0_YM13_PM0 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM0_YM13_PM0 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM0_YM13_PM0 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM0_YM13_PM0 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++
++pmxvbf16ger2nn XM0_YM13_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM0_YM13_PM1 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM0_YM13_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM0_YM13_PM1 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM0_YM13_PM1 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM0_YM13_PM1 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM0_YM13_PM1 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM0_YM13_PM1 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM0_YM13_PM1 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++
++pmxvbf16ger2nn XM11_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM11_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM11_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM11_YM0_PM0 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM11_YM0_PM0 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM11_YM0_PM0 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM11_YM0_PM0 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM11_YM0_PM0 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM11_YM0_PM0 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++
++pmxvbf16ger2nn XM11_YM0_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM11_YM0_PM1 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM11_YM0_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM11_YM0_PM1 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM11_YM0_PM1 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM11_YM0_PM1 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM11_YM0_PM1 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM11_YM0_PM1 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2nn XM11_YM0_PM1 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++
++pmxvbf16ger2nn XM11_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => (           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero           +Zero           +Zero           +Zero           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++pmxvbf16ger2nn XM11_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => (           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero           +Zero           +Zero           +Zero           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++pmxvbf16ger2nn XM11_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => (           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero           +Zero           +Zero           +Zero           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++pmxvbf16ger2nn XM11_YM13_PM0 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => (           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero           +Zero           +Zero           +Zero           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++pmxvbf16ger2nn XM11_YM13_PM0 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => (           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero           +Zero           +Zero           +Zero           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++pmxvbf16ger2nn XM11_YM13_PM0 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => (           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero           +Zero           +Zero           +Zero           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++pmxvbf16ger2nn XM11_YM13_PM0 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => (           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero           +Zero           +Zero           +Zero           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++pmxvbf16ger2nn XM11_YM13_PM0 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => (           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero           +Zero           +Zero           +Zero           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++pmxvbf16ger2nn XM11_YM13_PM0 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => (           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero           +Zero           +Zero           +Zero           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++
++pmxvbf16ger2nn XM11_YM13_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => (           +Zero             NaN             NaN             NaN           +Zero           +Zero           +Zero           +Zero           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++pmxvbf16ger2nn XM11_YM13_PM1 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => (           +Zero             NaN             NaN             NaN           +Zero           +Zero           +Zero           +Zero           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++pmxvbf16ger2nn XM11_YM13_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => (           +Zero             NaN             NaN             NaN           +Zero           +Zero           +Zero           +Zero           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++pmxvbf16ger2nn XM11_YM13_PM1 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => (           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero           +Zero           +Zero           +Zero           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++pmxvbf16ger2nn XM11_YM13_PM1 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => (           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero           +Zero           +Zero           +Zero           +Zero    -1.14437e-28    -3.63717e-28    -1.14437e-28           +Zero    -1.14437e-28    -4.71628e-18    -1.14437e-28)
++pmxvbf16ger2nn XM11_YM13_PM1 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => (           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero           +Zero           +Zero           +Zero           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++pmxvbf16ger2nn XM11_YM13_PM1 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => (           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero           +Zero           +Zero           +Zero           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++pmxvbf16ger2nn XM11_YM13_PM1 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => (           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero           +Zero           +Zero           +Zero           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++pmxvbf16ger2nn XM11_YM13_PM1 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => (           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero           +Zero           +Zero           +Zero           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++
++pmxvbf16ger2np XM0_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM0_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM0_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM0_YM0_PM0 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM0_YM0_PM0 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM0_YM0_PM0 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM0_YM0_PM0 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM0_YM0_PM0 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM0_YM0_PM0 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++
++pmxvbf16ger2np XM0_YM0_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM0_YM0_PM1 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM0_YM0_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM0_YM0_PM1 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM0_YM0_PM1 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM0_YM0_PM1 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM0_YM0_PM1 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM0_YM0_PM1 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM0_YM0_PM1 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++
++pmxvbf16ger2np XM0_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM0_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM0_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM0_YM13_PM0 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM0_YM13_PM0 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM0_YM13_PM0 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM0_YM13_PM0 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM0_YM13_PM0 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM0_YM13_PM0 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++
++pmxvbf16ger2np XM0_YM13_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM0_YM13_PM1 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM0_YM13_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM0_YM13_PM1 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM0_YM13_PM1 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM0_YM13_PM1 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM0_YM13_PM1 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM0_YM13_PM1 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM0_YM13_PM1 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++
++pmxvbf16ger2np XM11_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM11_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM11_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM11_YM0_PM0 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM11_YM0_PM0 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM11_YM0_PM0 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM11_YM0_PM0 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM11_YM0_PM0 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM11_YM0_PM0 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++
++pmxvbf16ger2np XM11_YM0_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM11_YM0_PM1 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM11_YM0_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM11_YM0_PM1 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM11_YM0_PM1 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM11_YM0_PM1 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM11_YM0_PM1 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM11_YM0_PM1 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2np XM11_YM0_PM1 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++
++pmxvbf16ger2np XM11_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => (           +Zero     1.14437e-28               *               *           +Zero           +Zero           +Zero           +Zero           +Zero     1.14437e-28               *               *           +Zero     1.14437e-28               *               *)
++pmxvbf16ger2np XM11_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => (           +Zero     1.14437e-28               *               *           +Zero           +Zero           +Zero           +Zero           +Zero     1.14437e-28               *               *           +Zero     1.14437e-28               *               *)
++pmxvbf16ger2np XM11_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => (           +Zero     1.14437e-28               *               *           +Zero           +Zero           +Zero           +Zero           +Zero     1.14437e-28               *               *           +Zero     1.14437e-28               *               *)
++pmxvbf16ger2np XM11_YM13_PM0 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => (           +Zero     1.14437e-28               *               *           +Zero           +Zero           +Zero           +Zero           +Zero     1.14437e-28               *               *           +Zero     1.14437e-28               *               *)
++pmxvbf16ger2np XM11_YM13_PM0 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => (           +Zero     1.14437e-28               *               *           +Zero           +Zero           +Zero           +Zero           +Zero     1.14437e-28               *               *           +Zero     1.14437e-28               *               *)
++pmxvbf16ger2np XM11_YM13_PM0 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => (           +Zero     1.14437e-28               *               *           +Zero           +Zero           +Zero           +Zero           +Zero     1.14437e-28               *               *           +Zero     1.14437e-28               *               *)
++pmxvbf16ger2np XM11_YM13_PM0 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => (           +Zero     1.14437e-28               *               *           +Zero           +Zero           +Zero           +Zero           +Zero     1.14437e-28               *               *           +Zero     1.14437e-28               *               *)
++pmxvbf16ger2np XM11_YM13_PM0 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => (           +Zero     1.14437e-28               *               *           +Zero           +Zero           +Zero           +Zero           +Zero     1.14437e-28               *               *           +Zero     1.14437e-28               *               *)
++pmxvbf16ger2np XM11_YM13_PM0 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => (           +Zero     1.14437e-28               *               *           +Zero           +Zero           +Zero           +Zero           +Zero     1.14437e-28               *               *           +Zero     1.14437e-28               *               *)
++
++pmxvbf16ger2np XM11_YM13_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => (           +Zero             NaN             NaN             NaN           +Zero           +Zero           +Zero           +Zero           +Zero     1.14437e-28               *               *           +Zero     1.14437e-28               *               *)
++pmxvbf16ger2np XM11_YM13_PM1 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => (           +Zero             NaN             NaN             NaN           +Zero           +Zero           +Zero           +Zero           +Zero     1.14437e-28               *               *           +Zero     1.14437e-28               *               *)
++pmxvbf16ger2np XM11_YM13_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => (           +Zero             NaN             NaN             NaN           +Zero           +Zero           +Zero           +Zero           +Zero     1.14437e-28               *               *           +Zero     1.14437e-28               *               *)
++pmxvbf16ger2np XM11_YM13_PM1 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => (           +Zero     1.14437e-28               *               *           +Zero           +Zero           +Zero           +Zero           +Zero     1.14437e-28               *               *           +Zero     1.14437e-28               *               *)
++pmxvbf16ger2np XM11_YM13_PM1 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => (           +Zero     1.14437e-28               *               *           +Zero           +Zero           +Zero           +Zero           +Zero     1.14437e-28    -1.34843e-28     1.14437e-28           +Zero     1.14437e-28    -4.71628e-18     1.14437e-28)
++pmxvbf16ger2np XM11_YM13_PM1 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => (           +Zero     1.14437e-28               *               *           +Zero           +Zero           +Zero           +Zero           +Zero     1.14437e-28               *               *           +Zero     1.14437e-28               *               *)
++pmxvbf16ger2np XM11_YM13_PM1 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => (           +Zero     1.14437e-28               *               *           +Zero           +Zero           +Zero           +Zero           +Zero     1.14437e-28               *               *           +Zero     1.14437e-28               *               *)
++pmxvbf16ger2np XM11_YM13_PM1 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => (           +Zero     1.14437e-28               *               *           +Zero           +Zero           +Zero           +Zero           +Zero     1.14437e-28               *               *           +Zero     1.14437e-28               *               *)
++pmxvbf16ger2np XM11_YM13_PM1 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => (           +Zero     1.14437e-28               *               *           +Zero           +Zero           +Zero           +Zero           +Zero     1.14437e-28               *               *           +Zero     1.14437e-28               *               *)
++
++pmxvbf16ger2pn XM0_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM0_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM0_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM0_YM0_PM0 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM0_YM0_PM0 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM0_YM0_PM0 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM0_YM0_PM0 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM0_YM0_PM0 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM0_YM0_PM0 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++
++pmxvbf16ger2pn XM0_YM0_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM0_YM0_PM1 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM0_YM0_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM0_YM0_PM1 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM0_YM0_PM1 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM0_YM0_PM1 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM0_YM0_PM1 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM0_YM0_PM1 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM0_YM0_PM1 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++
++pmxvbf16ger2pn XM0_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM0_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM0_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM0_YM13_PM0 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM0_YM13_PM0 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM0_YM13_PM0 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM0_YM13_PM0 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM0_YM13_PM0 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM0_YM13_PM0 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++
++pmxvbf16ger2pn XM0_YM13_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM0_YM13_PM1 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM0_YM13_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM0_YM13_PM1 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM0_YM13_PM1 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM0_YM13_PM1 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM0_YM13_PM1 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM0_YM13_PM1 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM0_YM13_PM1 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++
++pmxvbf16ger2pn XM11_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM11_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM11_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM11_YM0_PM0 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM11_YM0_PM0 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM11_YM0_PM0 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM11_YM0_PM0 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM11_YM0_PM0 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM11_YM0_PM0 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++
++pmxvbf16ger2pn XM11_YM0_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM11_YM0_PM1 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM11_YM0_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM11_YM0_PM1 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM11_YM0_PM1 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM11_YM0_PM1 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM11_YM0_PM1 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM11_YM0_PM1 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pn XM11_YM0_PM1 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++
++pmxvbf16ger2pn XM11_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => (           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero           +Zero           +Zero           +Zero           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++pmxvbf16ger2pn XM11_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => (           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero           +Zero           +Zero           +Zero           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++pmxvbf16ger2pn XM11_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => (           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero           +Zero           +Zero           +Zero           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++pmxvbf16ger2pn XM11_YM13_PM0 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => (           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero           +Zero           +Zero           +Zero           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++pmxvbf16ger2pn XM11_YM13_PM0 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => (           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero           +Zero           +Zero           +Zero           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++pmxvbf16ger2pn XM11_YM13_PM0 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => (           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero           +Zero           +Zero           +Zero           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++pmxvbf16ger2pn XM11_YM13_PM0 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => (           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero           +Zero           +Zero           +Zero           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++pmxvbf16ger2pn XM11_YM13_PM0 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => (           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero           +Zero           +Zero           +Zero           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++pmxvbf16ger2pn XM11_YM13_PM0 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => (           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero           +Zero           +Zero           +Zero           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++
++pmxvbf16ger2pn XM11_YM13_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => (           +Zero             NaN             NaN             NaN           +Zero           +Zero           +Zero           +Zero           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++pmxvbf16ger2pn XM11_YM13_PM1 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => (           +Zero             NaN             NaN             NaN           +Zero           +Zero           +Zero           +Zero           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++pmxvbf16ger2pn XM11_YM13_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => (           +Zero             NaN             NaN             NaN           +Zero           +Zero           +Zero           +Zero           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++pmxvbf16ger2pn XM11_YM13_PM1 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => (           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero           +Zero           +Zero           +Zero           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++pmxvbf16ger2pn XM11_YM13_PM1 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => (           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero           +Zero           +Zero           +Zero           +Zero    -1.14437e-28     1.34843e-28    -1.14437e-28           +Zero    -1.14437e-28     4.71628e-18    -1.14437e-28)
++pmxvbf16ger2pn XM11_YM13_PM1 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => (           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero           +Zero           +Zero           +Zero           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++pmxvbf16ger2pn XM11_YM13_PM1 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => (           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero           +Zero           +Zero           +Zero           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++pmxvbf16ger2pn XM11_YM13_PM1 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => (           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero           +Zero           +Zero           +Zero           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++pmxvbf16ger2pn XM11_YM13_PM1 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => (           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero           +Zero           +Zero           +Zero           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28           +Zero    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++
++pmxvbf16ger2pp XM0_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM0_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM0_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM0_YM0_PM0 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM0_YM0_PM0 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM0_YM0_PM0 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM0_YM0_PM0 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM0_YM0_PM0 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM0_YM0_PM0 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++
++pmxvbf16ger2pp XM0_YM0_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM0_YM0_PM1 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM0_YM0_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM0_YM0_PM1 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM0_YM0_PM1 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM0_YM0_PM1 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM0_YM0_PM1 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM0_YM0_PM1 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM0_YM0_PM1 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++
++pmxvbf16ger2pp XM0_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM0_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM0_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM0_YM13_PM0 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM0_YM13_PM0 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM0_YM13_PM0 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM0_YM13_PM0 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM0_YM13_PM0 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM0_YM13_PM0 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++
++pmxvbf16ger2pp XM0_YM13_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM0_YM13_PM1 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM0_YM13_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM0_YM13_PM1 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM0_YM13_PM1 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM0_YM13_PM1 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM0_YM13_PM1 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM0_YM13_PM1 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM0_YM13_PM1 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++
++pmxvbf16ger2pp XM11_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM11_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM11_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM11_YM0_PM0 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM11_YM0_PM0 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM11_YM0_PM0 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM11_YM0_PM0 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM11_YM0_PM0 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM11_YM0_PM0 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++
++pmxvbf16ger2pp XM11_YM0_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM11_YM0_PM1 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM11_YM0_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM11_YM0_PM1 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM11_YM0_PM1 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM11_YM0_PM1 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM11_YM0_PM1 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM11_YM0_PM1 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2pp XM11_YM0_PM1 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++
++pmxvbf16ger2pp XM11_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => (           +Zero     1.14437e-28               *               *           +Zero           +Zero           +Zero           +Zero           +Zero     1.14437e-28               *               *           +Zero     1.14437e-28               *               *)
++pmxvbf16ger2pp XM11_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => (           +Zero     1.14437e-28               *               *           +Zero           +Zero           +Zero           +Zero           +Zero     1.14437e-28               *               *           +Zero     1.14437e-28               *               *)
++pmxvbf16ger2pp XM11_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => (           +Zero     1.14437e-28               *               *           +Zero           +Zero           +Zero           +Zero           +Zero     1.14437e-28               *               *           +Zero     1.14437e-28               *               *)
++pmxvbf16ger2pp XM11_YM13_PM0 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => (           +Zero     1.14437e-28               *               *           +Zero           +Zero           +Zero           +Zero           +Zero     1.14437e-28               *               *           +Zero     1.14437e-28               *               *)
++pmxvbf16ger2pp XM11_YM13_PM0 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => (           +Zero     1.14437e-28               *               *           +Zero           +Zero           +Zero           +Zero           +Zero     1.14437e-28               *               *           +Zero     1.14437e-28               *               *)
++pmxvbf16ger2pp XM11_YM13_PM0 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => (           +Zero     1.14437e-28               *               *           +Zero           +Zero           +Zero           +Zero           +Zero     1.14437e-28               *               *           +Zero     1.14437e-28               *               *)
++pmxvbf16ger2pp XM11_YM13_PM0 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => (           +Zero     1.14437e-28               *               *           +Zero           +Zero           +Zero           +Zero           +Zero     1.14437e-28               *               *           +Zero     1.14437e-28               *               *)
++pmxvbf16ger2pp XM11_YM13_PM0 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => (           +Zero     1.14437e-28               *               *           +Zero           +Zero           +Zero           +Zero           +Zero     1.14437e-28               *               *           +Zero     1.14437e-28               *               *)
++pmxvbf16ger2pp XM11_YM13_PM0 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => (           +Zero     1.14437e-28               *               *           +Zero           +Zero           +Zero           +Zero           +Zero     1.14437e-28               *               *           +Zero     1.14437e-28               *               *)
++
++pmxvbf16ger2pp XM11_YM13_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => (           +Zero             NaN             NaN             NaN           +Zero           +Zero           +Zero           +Zero           +Zero     1.14437e-28               *               *           +Zero     1.14437e-28               *               *)
++pmxvbf16ger2pp XM11_YM13_PM1 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => (           +Zero             NaN             NaN             NaN           +Zero           +Zero           +Zero           +Zero           +Zero     1.14437e-28               *               *           +Zero     1.14437e-28               *               *)
++pmxvbf16ger2pp XM11_YM13_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => (           +Zero             NaN             NaN             NaN           +Zero           +Zero           +Zero           +Zero           +Zero     1.14437e-28               *               *           +Zero     1.14437e-28               *               *)
++pmxvbf16ger2pp XM11_YM13_PM1 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => (           +Zero     1.14437e-28               *               *           +Zero           +Zero           +Zero           +Zero           +Zero     1.14437e-28               *               *           +Zero     1.14437e-28               *               *)
++pmxvbf16ger2pp XM11_YM13_PM1 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => (           +Zero     1.14437e-28               *               *           +Zero           +Zero           +Zero           +Zero           +Zero     1.14437e-28     3.63717e-28     1.14437e-28           +Zero     1.14437e-28     4.71628e-18     1.14437e-28)
++pmxvbf16ger2pp XM11_YM13_PM1 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => (           +Zero     1.14437e-28               *               *           +Zero           +Zero           +Zero           +Zero           +Zero     1.14437e-28               *               *           +Zero     1.14437e-28               *               *)
++pmxvbf16ger2pp XM11_YM13_PM1 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => (           +Zero     1.14437e-28               *               *           +Zero           +Zero           +Zero           +Zero           +Zero     1.14437e-28               *               *           +Zero     1.14437e-28               *               *)
++pmxvbf16ger2pp XM11_YM13_PM1 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => (           +Zero     1.14437e-28               *               *           +Zero           +Zero           +Zero           +Zero           +Zero     1.14437e-28               *               *           +Zero     1.14437e-28               *               *)
++pmxvbf16ger2pp XM11_YM13_PM1 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => (           +Zero     1.14437e-28               *               *           +Zero           +Zero           +Zero           +Zero           +Zero     1.14437e-28               *               *           +Zero     1.14437e-28               *               *)
++
++pmxvbf16ger2 XM0_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM0_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM0_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM0_YM0_PM0 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM0_YM0_PM0 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM0_YM0_PM0 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM0_YM0_PM0 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM0_YM0_PM0 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM0_YM0_PM0 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++
++pmxvbf16ger2 XM0_YM0_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM0_YM0_PM1 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM0_YM0_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM0_YM0_PM1 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM0_YM0_PM1 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM0_YM0_PM1 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM0_YM0_PM1 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM0_YM0_PM1 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM0_YM0_PM1 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++
++pmxvbf16ger2 XM0_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM0_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM0_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM0_YM13_PM0 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM0_YM13_PM0 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM0_YM13_PM0 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM0_YM13_PM0 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM0_YM13_PM0 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM0_YM13_PM0 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++
++pmxvbf16ger2 XM0_YM13_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM0_YM13_PM1 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM0_YM13_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM0_YM13_PM1 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM0_YM13_PM1 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM0_YM13_PM1 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM0_YM13_PM1 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM0_YM13_PM1 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM0_YM13_PM1 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++
++pmxvbf16ger2 XM11_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM11_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM11_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM11_YM0_PM0 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM11_YM0_PM0 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM11_YM0_PM0 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM11_YM0_PM0 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM11_YM0_PM0 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM11_YM0_PM0 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++
++pmxvbf16ger2 XM11_YM0_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM11_YM0_PM1 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM11_YM0_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM11_YM0_PM1 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM11_YM0_PM1 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM11_YM0_PM1 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM11_YM0_PM1 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM11_YM0_PM1 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM11_YM0_PM1 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++
++pmxvbf16ger2 XM11_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM11_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM11_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM11_YM13_PM0 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM11_YM13_PM0 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM11_YM13_PM0 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM11_YM13_PM0 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM11_YM13_PM0 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM11_YM13_PM0 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++
++pmxvbf16ger2 XM11_YM13_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => (           +Zero             NaN             NaN             NaN           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM11_YM13_PM1 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => (           +Zero             NaN             NaN             NaN           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM11_YM13_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => (           +Zero             NaN             NaN             NaN           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM11_YM13_PM1 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM11_YM13_PM1 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero     2.49280e-28           +Zero           +Zero           +Zero     4.71628e-18           +Zero)
++pmxvbf16ger2 XM11_YM13_PM1 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM11_YM13_PM1 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++pmxvbf16ger2 XM11_YM13_PM1 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => (           +Zero           +Zero            +Den           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero            +Den           +Zero)
++pmxvbf16ger2 XM11_YM13_PM1 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++
+ pmxvf16ger2nn XM0_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
+ pmxvf16ger2nn XM0_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
+ pmxvf16ger2nn XM0_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
+@@ -1558,6 +1958,91 @@ pmxvi16ger2s XM11_YM13_PM1 0000000000000009,ffff000180000001 0080000e8080000e,01
+ pmxvi16ger2s XM11_YM13_PM1 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => [ 0000000000000000 0000400000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0002400000000000]
+ pmxvi16ger2s XM11_YM13_PM1 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
+ 
++xvbf16ger2nn 7f800000ff800000,ff8000007f800000 7f800000ff800000,ff8000007f800000 => (            +Inf            -Inf            -Inf            +Inf            -Inf            +Inf            +Inf            -Inf            -Inf            +Inf            +Inf            -Inf            +Inf            -Inf            -Inf            +Inf)
++xvbf16ger2nn 7f800000ff800000,ff8000007f800000 0180055e0180077e,0000111e8000222e => (            +Inf            +Inf             NaN             NaN            -Inf            -Inf             NaN             NaN            -Inf            -Inf             NaN             NaN            +Inf            +Inf             NaN             NaN)
++xvbf16ger2nn 7f800000ff800000,ff8000007f800000 2208400000000000,0000000000000009 => (            +Inf             NaN             NaN             NaN            -Inf             NaN             NaN             NaN            -Inf             NaN             NaN             NaN            +Inf             NaN             NaN             NaN)
++xvbf16ger2nn 7f800000ff800000,ff8000007f800000 8000000000000000,7f800000ff800000 => (             NaN             NaN            +Inf            -Inf             NaN             NaN            -Inf            +Inf             NaN             NaN            -Inf            +Inf             NaN             NaN            +Inf            -Inf)
++xvbf16ger2nn 0180055e0180077e,0000111e8000222e 7f800000ff800000,ff8000007f800000 => (             NaN             NaN             NaN             NaN             NaN             NaN             NaN             NaN            -Inf            +Inf            +Inf            -Inf            -Inf            +Inf            +Inf            -Inf)
++xvbf16ger2nn 0180055e0180077e,0000111e8000222e 0180055e0180077e,0000111e8000222e => (    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++xvbf16ger2nn 0180055e0180077e,0000111e8000222e 2208400000000000,0000000000000009 => (    -3.63717e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -4.71628e-18    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14438e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++xvbf16ger2nn 0180055e0180077e,0000111e8000222e 8000000000000000,7f800000ff800000 => (    -1.14437e-28    -1.14437e-28             NaN             NaN    -1.14437e-28    -1.14437e-28             NaN             NaN    -1.14437e-28    -1.14437e-28            -Inf            +Inf    -1.14437e-28    -1.14437e-28            -Inf            +Inf)
++xvbf16ger2nn 2208400000000000,0000000000000009 7f800000ff800000,ff8000007f800000 => (             NaN             NaN             NaN             NaN             NaN             NaN             NaN             NaN            -Inf            +Inf            +Inf            -Inf             NaN             NaN             NaN             NaN)
++xvbf16ger2nn 2208400000000000,0000000000000009 0180055e0180077e,0000111e8000222e => (    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14438e-28    -3.63717e-28    -4.71628e-18    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++xvbf16ger2nn 2208400000000000,0000000000000009 2208400000000000,0000000000000009 => (    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -4.00000e+00    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++xvbf16ger2nn 2208400000000000,0000000000000009 8000000000000000,7f800000ff800000 => (    -1.14437e-28    -1.14437e-28             NaN             NaN    -1.14437e-28    -1.14437e-28             NaN             NaN    -1.14437e-28    -1.14437e-28            -Inf            +Inf    -1.14437e-28    -1.14437e-28             NaN             NaN)
++xvbf16ger2nn 8000000000000000,7f800000ff800000 7f800000ff800000,ff8000007f800000 => (            -Inf            +Inf            +Inf            -Inf            +Inf            -Inf            -Inf            +Inf             NaN             NaN             NaN             NaN             NaN             NaN             NaN             NaN)
++xvbf16ger2nn 8000000000000000,7f800000ff800000 0180055e0180077e,0000111e8000222e => (            -Inf            -Inf             NaN             NaN            +Inf            +Inf             NaN             NaN    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++xvbf16ger2nn 8000000000000000,7f800000ff800000 2208400000000000,0000000000000009 => (            -Inf             NaN             NaN             NaN            +Inf             NaN             NaN             NaN    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++xvbf16ger2nn 8000000000000000,7f800000ff800000 8000000000000000,7f800000ff800000 => (             NaN             NaN            -Inf            +Inf             NaN             NaN            +Inf            -Inf    -1.14437e-28    -1.14437e-28             NaN             NaN    -1.14437e-28    -1.14437e-28             NaN             NaN)
++
++xvbf16ger2np 7f800000ff800000,ff8000007f800000 7f800000ff800000,ff8000007f800000 => (            +Inf            -Inf            -Inf            +Inf            -Inf            +Inf            +Inf            -Inf            -Inf            +Inf            +Inf            -Inf            +Inf            -Inf            -Inf            +Inf)
++xvbf16ger2np 7f800000ff800000,ff8000007f800000 0180055e0180077e,0000111e8000222e => (            +Inf            +Inf             NaN             NaN            -Inf            -Inf             NaN             NaN            -Inf            -Inf             NaN             NaN            +Inf            +Inf             NaN             NaN)
++xvbf16ger2np 7f800000ff800000,ff8000007f800000 2208400000000000,0000000000000009 => (            +Inf             NaN             NaN             NaN            -Inf             NaN             NaN             NaN            -Inf             NaN             NaN             NaN            +Inf             NaN             NaN             NaN)
++xvbf16ger2np 7f800000ff800000,ff8000007f800000 8000000000000000,7f800000ff800000 => (             NaN             NaN            +Inf            -Inf             NaN             NaN            -Inf            +Inf             NaN             NaN            -Inf            +Inf             NaN             NaN            +Inf            -Inf)
++xvbf16ger2np 0180055e0180077e,0000111e8000222e 7f800000ff800000,ff8000007f800000 => (             NaN             NaN             NaN             NaN             NaN             NaN             NaN             NaN            -Inf            +Inf            +Inf            -Inf            -Inf            +Inf            +Inf            -Inf)
++xvbf16ger2np 0180055e0180077e,0000111e8000222e 0180055e0180077e,0000111e8000222e => (               *               *               *               *               *               *               *               *               *               *               *               *               *               *               *               *)
++xvbf16ger2np 0180055e0180077e,0000111e8000222e 2208400000000000,0000000000000009 => (    -1.34843e-28     1.14437e-28               *               *    -4.71628e-18     1.14437e-28               *               *     1.14437e-28     1.14437e-28               *               *     1.14437e-28     1.14437e-28               *               *)
++xvbf16ger2np 0180055e0180077e,0000111e8000222e 8000000000000000,7f800000ff800000 => (               *               *             NaN             NaN               *               *             NaN             NaN               *               *            -Inf            +Inf               *               *            -Inf            +Inf)
++xvbf16ger2np 2208400000000000,0000000000000009 7f800000ff800000,ff8000007f800000 => (             NaN             NaN             NaN             NaN             NaN             NaN             NaN             NaN            -Inf            +Inf            +Inf            -Inf             NaN             NaN             NaN             NaN)
++xvbf16ger2np 2208400000000000,0000000000000009 0180055e0180077e,0000111e8000222e => (               *               *               *               *               *               *               *               *     1.14437e-28     1.14437e-28    -1.34843e-28    -4.71628e-18               *               *               *               *)
++xvbf16ger2np 2208400000000000,0000000000000009 2208400000000000,0000000000000009 => (               *               *               *               *               *               *               *               *    -4.00000e+00     1.14437e-28               *               *               *               *               *               *)
++xvbf16ger2np 2208400000000000,0000000000000009 8000000000000000,7f800000ff800000 => (               *               *             NaN             NaN               *               *             NaN             NaN               *               *            -Inf            +Inf               *               *             NaN             NaN)
++xvbf16ger2np 8000000000000000,7f800000ff800000 7f800000ff800000,ff8000007f800000 => (            -Inf            +Inf            +Inf            -Inf            +Inf            -Inf            -Inf            +Inf             NaN             NaN             NaN             NaN             NaN             NaN             NaN             NaN)
++xvbf16ger2np 8000000000000000,7f800000ff800000 0180055e0180077e,0000111e8000222e => (            -Inf            -Inf             NaN             NaN            +Inf            +Inf             NaN             NaN               *               *               *               *               *               *               *               *)
++xvbf16ger2np 8000000000000000,7f800000ff800000 2208400000000000,0000000000000009 => (            -Inf             NaN             NaN             NaN            +Inf             NaN             NaN             NaN               *               *               *               *               *               *               *               *)
++xvbf16ger2np 8000000000000000,7f800000ff800000 8000000000000000,7f800000ff800000 => (             NaN             NaN            -Inf            +Inf             NaN             NaN            +Inf            -Inf               *               *             NaN             NaN               *               *             NaN             NaN)
++
++xvbf16ger2pn 7f800000ff800000,ff8000007f800000 7f800000ff800000,ff8000007f800000 => (            -Inf            +Inf            +Inf            -Inf            +Inf            -Inf            -Inf            +Inf            +Inf            -Inf            -Inf            +Inf            -Inf            +Inf            +Inf            -Inf)
++xvbf16ger2pn 7f800000ff800000,ff8000007f800000 0180055e0180077e,0000111e8000222e => (            -Inf            -Inf             NaN             NaN            +Inf            +Inf             NaN             NaN            +Inf            +Inf             NaN             NaN            -Inf            -Inf             NaN             NaN)
++xvbf16ger2pn 7f800000ff800000,ff8000007f800000 2208400000000000,0000000000000009 => (            -Inf             NaN             NaN             NaN            +Inf             NaN             NaN             NaN            +Inf             NaN             NaN             NaN            -Inf             NaN             NaN             NaN)
++xvbf16ger2pn 7f800000ff800000,ff8000007f800000 8000000000000000,7f800000ff800000 => (             NaN             NaN            -Inf            +Inf             NaN             NaN            +Inf            -Inf             NaN             NaN            +Inf            -Inf             NaN             NaN            -Inf            +Inf)
++xvbf16ger2pn 0180055e0180077e,0000111e8000222e 7f800000ff800000,ff8000007f800000 => (             NaN             NaN             NaN             NaN             NaN             NaN             NaN             NaN            +Inf            -Inf            -Inf            +Inf            +Inf            -Inf            -Inf            +Inf)
++xvbf16ger2pn 0180055e0180077e,0000111e8000222e 0180055e0180077e,0000111e8000222e => (    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++xvbf16ger2pn 0180055e0180077e,0000111e8000222e 2208400000000000,0000000000000009 => (     1.34843e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28     4.71628e-18    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++xvbf16ger2pn 0180055e0180077e,0000111e8000222e 8000000000000000,7f800000ff800000 => (    -1.14437e-28    -1.14437e-28             NaN             NaN    -1.14437e-28    -1.14437e-28             NaN             NaN    -1.14437e-28    -1.14437e-28            +Inf            -Inf    -1.14437e-28    -1.14437e-28            +Inf            -Inf)
++xvbf16ger2pn 2208400000000000,0000000000000009 7f800000ff800000,ff8000007f800000 => (             NaN             NaN             NaN             NaN             NaN             NaN             NaN             NaN            +Inf            -Inf            -Inf            +Inf             NaN             NaN             NaN             NaN)
++xvbf16ger2pn 2208400000000000,0000000000000009 0180055e0180077e,0000111e8000222e => (    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28     1.34843e-28     4.71628e-18    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++xvbf16ger2pn 2208400000000000,0000000000000009 2208400000000000,0000000000000009 => (    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28     4.00000e+00    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++xvbf16ger2pn 2208400000000000,0000000000000009 8000000000000000,7f800000ff800000 => (    -1.14437e-28    -1.14437e-28             NaN             NaN    -1.14437e-28    -1.14437e-28             NaN             NaN    -1.14437e-28    -1.14437e-28            +Inf            -Inf    -1.14437e-28    -1.14437e-28             NaN             NaN)
++xvbf16ger2pn 8000000000000000,7f800000ff800000 7f800000ff800000,ff8000007f800000 => (            +Inf            -Inf            -Inf            +Inf            -Inf            +Inf            +Inf            -Inf             NaN             NaN             NaN             NaN             NaN             NaN             NaN             NaN)
++xvbf16ger2pn 8000000000000000,7f800000ff800000 0180055e0180077e,0000111e8000222e => (            +Inf            +Inf             NaN             NaN            -Inf            -Inf             NaN             NaN    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++xvbf16ger2pn 8000000000000000,7f800000ff800000 2208400000000000,0000000000000009 => (            +Inf             NaN             NaN             NaN            -Inf             NaN             NaN             NaN    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28    -1.14437e-28)
++xvbf16ger2pn 8000000000000000,7f800000ff800000 8000000000000000,7f800000ff800000 => (             NaN             NaN            +Inf            -Inf             NaN             NaN            -Inf            +Inf    -1.14437e-28    -1.14437e-28             NaN             NaN    -1.14437e-28    -1.14437e-28             NaN             NaN)
++
++xvbf16ger2pp 7f800000ff800000,ff8000007f800000 7f800000ff800000,ff8000007f800000 => (            -Inf            +Inf            +Inf            -Inf            +Inf            -Inf            -Inf            +Inf            +Inf            -Inf            -Inf            +Inf            -Inf            +Inf            +Inf            -Inf)
++xvbf16ger2pp 7f800000ff800000,ff8000007f800000 0180055e0180077e,0000111e8000222e => (            -Inf            -Inf             NaN             NaN            +Inf            +Inf             NaN             NaN            +Inf            +Inf             NaN             NaN            -Inf            -Inf             NaN             NaN)
++xvbf16ger2pp 7f800000ff800000,ff8000007f800000 2208400000000000,0000000000000009 => (            -Inf             NaN             NaN             NaN            +Inf             NaN             NaN             NaN            +Inf             NaN             NaN             NaN            -Inf             NaN             NaN             NaN)
++xvbf16ger2pp 7f800000ff800000,ff8000007f800000 8000000000000000,7f800000ff800000 => (             NaN             NaN            -Inf            +Inf             NaN             NaN            +Inf            -Inf             NaN             NaN            +Inf            -Inf             NaN             NaN            -Inf            +Inf)
++xvbf16ger2pp 0180055e0180077e,0000111e8000222e 7f800000ff800000,ff8000007f800000 => (             NaN             NaN             NaN             NaN             NaN             NaN             NaN             NaN            +Inf            -Inf            -Inf            +Inf            +Inf            -Inf            -Inf            +Inf)
++xvbf16ger2pp 0180055e0180077e,0000111e8000222e 0180055e0180077e,0000111e8000222e => (               *               *               *               *               *               *               *               *               *               *               *               *               *               *               *               *)
++xvbf16ger2pp 0180055e0180077e,0000111e8000222e 2208400000000000,0000000000000009 => (     3.63717e-28     1.14437e-28               *               *     4.71628e-18     1.14437e-28               *               *     1.14437e-28     1.14437e-28               *               *     1.14438e-28     1.14437e-28               *               *)
++xvbf16ger2pp 0180055e0180077e,0000111e8000222e 8000000000000000,7f800000ff800000 => (               *               *             NaN             NaN               *               *             NaN             NaN               *               *            +Inf            -Inf               *               *            +Inf            -Inf)
++xvbf16ger2pp 2208400000000000,0000000000000009 7f800000ff800000,ff8000007f800000 => (             NaN             NaN             NaN             NaN             NaN             NaN             NaN             NaN            +Inf            -Inf            -Inf            +Inf             NaN             NaN             NaN             NaN)
++xvbf16ger2pp 2208400000000000,0000000000000009 0180055e0180077e,0000111e8000222e => (               *               *               *               *               *               *               *               *     1.14437e-28     1.14438e-28     3.63717e-28     4.71628e-18               *               *               *               *)
++xvbf16ger2pp 2208400000000000,0000000000000009 2208400000000000,0000000000000009 => (               *               *               *               *               *               *               *               *     4.00000e+00     1.14437e-28               *               *               *               *               *               *)
++xvbf16ger2pp 2208400000000000,0000000000000009 8000000000000000,7f800000ff800000 => (               *               *             NaN             NaN               *               *             NaN             NaN               *               *            +Inf            -Inf               *               *             NaN             NaN)
++xvbf16ger2pp 8000000000000000,7f800000ff800000 7f800000ff800000,ff8000007f800000 => (            +Inf            -Inf            -Inf            +Inf            -Inf            +Inf            +Inf            -Inf             NaN             NaN             NaN             NaN             NaN             NaN             NaN             NaN)
++xvbf16ger2pp 8000000000000000,7f800000ff800000 0180055e0180077e,0000111e8000222e => (            +Inf            +Inf             NaN             NaN            -Inf            -Inf             NaN             NaN               *               *               *               *               *               *               *               *)
++xvbf16ger2pp 8000000000000000,7f800000ff800000 2208400000000000,0000000000000009 => (            +Inf             NaN             NaN             NaN            -Inf             NaN             NaN             NaN               *               *               *               *               *               *               *               *)
++xvbf16ger2pp 8000000000000000,7f800000ff800000 8000000000000000,7f800000ff800000 => (             NaN             NaN            +Inf            -Inf             NaN             NaN            -Inf            +Inf               *               *             NaN             NaN               *               *             NaN             NaN)
++
++xvbf16ger2 7f800000ff800000,ff8000007f800000 7f800000ff800000,ff8000007f800000 => (            -Inf            +Inf            +Inf            -Inf            +Inf            -Inf            -Inf            +Inf            +Inf            -Inf            -Inf            +Inf            -Inf            +Inf            +Inf            -Inf)
++xvbf16ger2 7f800000ff800000,ff8000007f800000 0180055e0180077e,0000111e8000222e => (            -Inf            -Inf             NaN             NaN            +Inf            +Inf             NaN             NaN            +Inf            +Inf             NaN             NaN            -Inf            -Inf             NaN             NaN)
++xvbf16ger2 7f800000ff800000,ff8000007f800000 2208400000000000,0000000000000009 => (            -Inf             NaN             NaN             NaN            +Inf             NaN             NaN             NaN            +Inf             NaN             NaN             NaN            -Inf             NaN             NaN             NaN)
++xvbf16ger2 7f800000ff800000,ff8000007f800000 8000000000000000,7f800000ff800000 => (             NaN             NaN            -Inf            +Inf             NaN             NaN            +Inf            -Inf             NaN             NaN            +Inf            -Inf             NaN             NaN            -Inf            +Inf)
++xvbf16ger2 0180055e0180077e,0000111e8000222e 7f800000ff800000,ff8000007f800000 => (             NaN             NaN             NaN             NaN             NaN             NaN             NaN             NaN            +Inf            -Inf            -Inf            +Inf            +Inf            -Inf            -Inf            +Inf)
++xvbf16ger2 0180055e0180077e,0000111e8000222e 0180055e0180077e,0000111e8000222e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero     5.56082e-36           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++xvbf16ger2 0180055e0180077e,0000111e8000222e 2208400000000000,0000000000000009 => (     2.49280e-28           +Zero           +Zero           +Zero     4.71628e-18           +Zero           +Zero           +Zero     2.08768e-35           +Zero           +Zero           +Zero     3.82177e-34           +Zero           +Zero           +Zero)
++xvbf16ger2 0180055e0180077e,0000111e8000222e 8000000000000000,7f800000ff800000 => (           +Zero           +Zero             NaN             NaN           +Zero           +Zero             NaN             NaN           +Zero           +Zero            +Inf            -Inf           +Zero           +Zero            +Inf            -Inf)
++xvbf16ger2 2208400000000000,0000000000000009 7f800000ff800000,ff8000007f800000 => (             NaN             NaN             NaN             NaN             NaN             NaN             NaN             NaN            +Inf            -Inf            -Inf            +Inf             NaN             NaN             NaN             NaN)
++xvbf16ger2 2208400000000000,0000000000000009 0180055e0180077e,0000111e8000222e => (           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero     2.08768e-35     3.82177e-34     2.49280e-28     4.71628e-18           +Zero           +Zero           +Zero           +Zero)
++xvbf16ger2 2208400000000000,0000000000000009 2208400000000000,0000000000000009 => (           +Zero           +Zero           +Zero           +Zero            +Den           +Zero           +Zero           +Zero     4.00000e+00           +Zero           +Zero            +Den           +Zero           +Zero           +Zero           +Zero)
++xvbf16ger2 2208400000000000,0000000000000009 8000000000000000,7f800000ff800000 => (           +Zero           +Zero             NaN             NaN           +Zero           +Zero             NaN             NaN           +Zero           +Zero            +Inf            -Inf           +Zero           +Zero             NaN             NaN)
++xvbf16ger2 8000000000000000,7f800000ff800000 7f800000ff800000,ff8000007f800000 => (            +Inf            -Inf            -Inf            +Inf            -Inf            +Inf            +Inf            -Inf             NaN             NaN             NaN             NaN             NaN             NaN             NaN             NaN)
++xvbf16ger2 8000000000000000,7f800000ff800000 0180055e0180077e,0000111e8000222e => (            +Inf            +Inf             NaN             NaN            -Inf            -Inf             NaN             NaN           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++xvbf16ger2 8000000000000000,7f800000ff800000 2208400000000000,0000000000000009 => (            +Inf             NaN             NaN             NaN            -Inf             NaN             NaN             NaN           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero           +Zero)
++xvbf16ger2 8000000000000000,7f800000ff800000 8000000000000000,7f800000ff800000 => (             NaN             NaN            +Inf            -Inf             NaN             NaN            -Inf            +Inf           +Zero           +Zero             NaN             NaN           +Zero           +Zero             NaN             NaN)
++
+ xvf16ger2nn 7f800000ff800000,ff8000007f800000 7f800000ff800000,ff8000007f800000 => (             NaN             NaN             NaN             NaN             NaN             NaN             NaN             NaN             NaN             NaN             NaN             NaN             NaN             NaN             NaN             NaN)
+ xvf16ger2nn 7f800000ff800000,ff8000007f800000 0180055e0180077e,0000111e8000222e => (             NaN             NaN             NaN             NaN             NaN             NaN             NaN             NaN             NaN             NaN             NaN             NaN             NaN             NaN             NaN             NaN)
+ xvf16ger2nn 7f800000ff800000,ff8000007f800000 2208400000000000,0000000000000009 => (             NaN             NaN             NaN             NaN             NaN             NaN             NaN             NaN             NaN             NaN             NaN             NaN             NaN             NaN             NaN             NaN)
+@@ -1921,4 +2406,4 @@ xxmtacc => [ 7f800000ff800000 ff8000007f800000 ff7ffffe7f7ffffe 0080000e8080000e
+ 
+ xxsetaccz => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
+ 
+-All done. Tested 152 different instruction groups
++All done. Tested 197 different instruction groups
+diff --git a/none/tests/ppc64/test_isa_3_1_XT.c b/none/tests/ppc64/test_isa_3_1_XT.c
+index a54e8763a..905c17951 100644
+--- a/none/tests/ppc64/test_isa_3_1_XT.c
++++ b/none/tests/ppc64/test_isa_3_1_XT.c
+@@ -491,6 +491,16 @@ 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_xvcvspbf16 (void) {
++SET_FPSCR_ZERO; 
++  __asm__ __volatile__ ("xvcvspbf16 %x0, %x1"
++				: "=wa" (vec_xt) : "wa" (vec_xb) );
++GET_FPSCR(current_fpscr); 
++}
++static void test_xvcvbf16spn (void) {
++  __asm__ __volatile__ ("xvcvbf16spn %x0, %x1"
++				: "=wa" (vec_xt) : "wa" (vec_xb) );
++}
+ static void test_xxgenpcvbm_imm0 (void) {
+   __asm__ __volatile__ ("xxgenpcvbm %x0, %1, 0" : "=wa" (vec_xt) : "v" (vrb) );
+ }
+@@ -634,6 +644,8 @@ static test_list_t testgroup_generic[] = {
+   { &test_stxvrdx, "stxvrdx", "XS,RA,RB"}, /* bcs */
+   { &test_stxvrhx, "stxvrhx", "XS,RA,RB"}, /* bcs */
+   { &test_stxvrwx, "stxvrwx", "XS,RA,RB"}, /* bcs */
++  { &test_xvcvbf16spn, "xvcvbf16spn", "XT,XB"}, /* bcs */
++  { &test_xvcvspbf16, "xvcvspbf16", "XT,XB", 0b0101010100000000}, /* bcs */
+   { &test_xxblendvb, "xxblendvb", "XT,XA,XB,XC"}, /* bcs */
+   { &test_xxblendvd, "xxblendvd", "XT,XA,XB,XC"}, /* bcs */
+   { &test_xxblendvh, "xxblendvh", "XT,XA,XB,XC"}, /* bcs */
+diff --git a/none/tests/ppc64/test_isa_3_1_XT.stdout.exp b/none/tests/ppc64/test_isa_3_1_XT.stdout.exp
+index 8b5f1d1a3..b9d6cb7a8 100644
+--- a/none/tests/ppc64/test_isa_3_1_XT.stdout.exp
++++ b/none/tests/ppc64/test_isa_3_1_XT.stdout.exp
+@@ -244,6 +244,34 @@ stxvrwx 18 (&buffer) 0000111e8000222e,0180055e0180077e => [ -   -   -  7f0000008
+ stxvrwx 20 (&buffer) 7ff0000000000000,0000111e8000222e => [ -   -   -   -  5a05a05a00000000  -   -   - ]
+ stxvrwx 28 (&buffer) fff0000000000000,7ff0000000000000 => [ -   -   -   -   -  0102030400000000  -   - ]
+ 
++xvcvbf16spn 7f800000ff800000,ff8000007f800000 =>                0                0
++xvcvbf16spn ff8000007f800000,ff7ffffe7f7ffffe =>                0 fffe0000fffe0000
++xvcvbf16spn ff7ffffe7f7ffffe,0080000e8080000e => fffe0000fffe0000    e0000000e0000
++xvcvbf16spn 0080000e8080000e,0180055e0180077e =>    e0000000e0000  55e0000077e0000
++xvcvbf16spn 0180055e0180077e,0000111e8000222e =>  55e0000077e0000 111e0000222e0000
++xvcvbf16spn 0000111e8000222e,7ff0000000000000 => 111e0000222e0000                0
++xvcvbf16spn 7ff0000000000000,fff0000000000000 =>                0                0
++xvcvbf16spn fff0000000000000,2208400000000000 =>                0 4000000000000000
++xvcvbf16spn 2208400000000000,0000000000000009 => 4000000000000000            90000
++xvcvbf16spn 0000000000000009,ffff000180000001 =>            90000    1000000010000
++xvcvbf16spn ffff000180000001,0000000000000000 =>    1000000010000                0
++xvcvbf16spn 0000000000000000,8000000000000000 =>                0                0
++xvcvbf16spn 8000000000000000,7f800000ff800000 =>                0                0
++
++xvcvspbf16 7f800000ff800000,ff8000007f800000 =>          +Inf          -Inf          -Inf          +Inf
++xvcvspbf16 ff8000007f800000,ff7ffffe7f7ffffe =>          -Inf          +Inf          -Inf          +Inf
++xvcvspbf16 ff7ffffe7f7ffffe,0080000e8080000e =>          -Inf          +Inf        0x0080        0x8080
++xvcvspbf16 0080000e8080000e,0180055e0180077e =>        0x0080        0x8080        0x0180        0x0180
++xvcvspbf16 0180055e0180077e,0000111e8000222e =>        0x0180        0x0180         +Zero         -Zero
++xvcvspbf16 0000111e8000222e,7ff0000000000000 =>         +Zero         -Zero           NaN         +Zero
++xvcvspbf16 7ff0000000000000,fff0000000000000 =>           NaN         +Zero           NaN         +Zero
++xvcvspbf16 fff0000000000000,2208400000000000 =>           NaN         +Zero        0x2208         +Zero
++xvcvspbf16 2208400000000000,0000000000000009 =>        0x2208         +Zero         +Zero         +Zero
++xvcvspbf16 0000000000000009,ffff000180000001 =>         +Zero         +Zero           NaN         -Zero
++xvcvspbf16 ffff000180000001,0000000000000000 =>           NaN         -Zero         +Zero         +Zero
++xvcvspbf16 0000000000000000,8000000000000000 =>         +Zero         +Zero         -Zero         +Zero
++xvcvspbf16 8000000000000000,7f800000ff800000 =>         -Zero         +Zero          +Inf          -Inf
++
+ xxblendvb 7f800000ff800000,ff8000007f800000 0000000000000000,00000000ffffffff 7f800000ff800000,ff8000007f800000 => 7f800000ff800000 ff8000007f800000
+ xxblendvb 7f800000ff800000,ff8000007f800000 ffffffff55555555,5555aaaaaaaa5555 7f800000ff800000,ff8000007f800000 => 7f800000ff800000 ff8000007f800000
+ xxblendvb 7f800000ff800000,ff8000007f800000 aaaa00000000aaaa,0000000000000000 7f800000ff800000,ff8000007f800000 => 7f800000ff800000 ff8000007f800000
+@@ -7318,4 +7346,4 @@ xxspltiw imm3 =>        300000003        300000003
+ 
+ xxspltiw imm8 =>        800000008        800000008
+ 
+-All done. Tested 158 different instruction groups
++All done. Tested 160 different instruction groups
+
+commit c589b652939655090c005a982a71f50c489fb5ce
+Author: root <root@ltcden3-lp13.aus.stglabs.ibm.com>
+Date:   Fri Feb 12 16:00:53 2021 -0500
+
+    Reduced precision Missing Integer based outer tests
+
+diff --git a/NEWS b/NEWS
+index 2e42e74b2..52a51fd9e 100644
+--- a/NEWS
++++ b/NEWS
+@@ -176,6 +176,7 @@ where XXXXXX is the bug number as listed below.
+ 433500  DRD regtest faulures when libstdc++ and libgcc debuginfo are installed
+ 433629  valgrind/README has type "abd" instead of "and"
+ 433641  Rust std::sys::unix::fs::try_statx Syscall param fstatat(file_name)
++433801  PPC ISA 3.1 support is missing, part 10 (ISA 3.1 support complete)
+ 433898  arm64: Handle sp, lr, fp as DwReg in CfiExpr
+ 434193  GCC 9+ inlined strcmp causes "Conditional jump or move [..] value" report
+ n-i-bz  helgrind: If hg_cli__realloc fails, return NULL.
+diff --git a/none/tests/ppc64/test_isa_3_1_AT.c b/none/tests/ppc64/test_isa_3_1_AT.c
+index fee76f8f4..e9db9cc9a 100644
+--- a/none/tests/ppc64/test_isa_3_1_AT.c
++++ b/none/tests/ppc64/test_isa_3_1_AT.c
+@@ -806,6 +806,114 @@ static void test_pmxvbf16ger2pp_XM11_YM13_PM1 (void) {
+   __asm__ __volatile__ ("pmxvbf16ger2pp  4, %x0, %x1, 11, 13, 1"
+ 				:: "wa" (vec_xa), "wa" (vec_xb) );
+ }
++static void test_xvi8ger4spp (void) {
++  __asm__ __volatile__ ("xvi8ger4spp 4, %x0, %x1"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvi8ger4spp_XM0_YM0_PM0 (void) {
++  __asm__ __volatile__ ("pmxvi8ger4spp  4, %x0, %x1, 0, 0, 0"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvi8ger4spp_XM0_YM0_PM5 (void) {
++  __asm__ __volatile__ ("pmxvi8ger4spp  4, %x0, %x1, 0, 0, 5"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvi8ger4spp_XM0_YM13_PM0 (void) {
++  __asm__ __volatile__ ("pmxvi8ger4spp  4, %x0, %x1, 0, 13, 0"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvi8ger4spp_XM0_YM13_PM5 (void) {
++  __asm__ __volatile__ ("pmxvi8ger4spp  4, %x0, %x1, 0, 13, 5"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvi8ger4spp_XM11_YM0_PM0 (void) {
++  __asm__ __volatile__ ("pmxvi8ger4spp  4, %x0, %x1, 11, 0, 0"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvi8ger4spp_XM11_YM0_PM5 (void) {
++  __asm__ __volatile__ ("pmxvi8ger4spp  4, %x0, %x1, 11, 0, 5"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvi8ger4spp_XM11_YM13_PM0 (void) {
++  __asm__ __volatile__ ("pmxvi8ger4spp  4, %x0, %x1, 11, 13, 0"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvi8ger4spp_XM11_YM13_PM5 (void) {
++  __asm__ __volatile__ ("pmxvi8ger4spp  4, %x0, %x1, 11, 13, 5"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_xvi16ger2 (void) {
++  __asm__ __volatile__ ("xvi16ger2 4, %x0, %x1"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_xvi16ger2pp (void) {
++  __asm__ __volatile__ ("xvi16ger2pp 4, %x0, %x1"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvi16ger2_XM0_YM0_PM0 (void) {
++  __asm__ __volatile__ ("pmxvi16ger2  4, %x0, %x1, 0, 0, 0"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvi16ger2_XM0_YM0_PM1 (void) {
++  __asm__ __volatile__ ("pmxvi16ger2  4, %x0, %x1, 0, 0, 1"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvi16ger2_XM0_YM13_PM0 (void) {
++  __asm__ __volatile__ ("pmxvi16ger2  4, %x0, %x1, 0, 13, 0"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvi16ger2_XM0_YM13_PM1 (void) {
++  __asm__ __volatile__ ("pmxvi16ger2  4, %x0, %x1, 0, 13, 1"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvi16ger2_XM11_YM0_PM0 (void) {
++  __asm__ __volatile__ ("pmxvi16ger2  4, %x0, %x1, 11, 0, 0"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvi16ger2_XM11_YM0_PM1 (void) {
++  __asm__ __volatile__ ("pmxvi16ger2  4, %x0, %x1, 11, 0, 1"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvi16ger2_XM11_YM13_PM0 (void) {
++  __asm__ __volatile__ ("pmxvi16ger2  4, %x0, %x1, 11, 13, 0"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvi16ger2_XM11_YM13_PM1 (void) {
++  __asm__ __volatile__ ("pmxvi16ger2  4, %x0, %x1, 11, 13, 1"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvi16ger2pp_XM0_YM0_PM0 (void) {
++  __asm__ __volatile__ ("pmxvi16ger2pp  4, %x0, %x1, 0, 0, 0"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvi16ger2pp_XM0_YM0_PM1 (void) {
++  __asm__ __volatile__ ("pmxvi16ger2pp  4, %x0, %x1, 0, 0, 1"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvi16ger2pp_XM0_YM13_PM0 (void) {
++  __asm__ __volatile__ ("pmxvi16ger2pp  4, %x0, %x1, 0, 13, 0"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvi16ger2pp_XM0_YM13_PM1 (void) {
++  __asm__ __volatile__ ("pmxvi16ger2pp  4, %x0, %x1, 0, 13, 1"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvi16ger2pp_XM11_YM0_PM0 (void) {
++  __asm__ __volatile__ ("pmxvi16ger2pp  4, %x0, %x1, 11, 0, 0"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvi16ger2pp_XM11_YM0_PM1 (void) {
++  __asm__ __volatile__ ("pmxvi16ger2pp  4, %x0, %x1, 11, 0, 1"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvi16ger2pp_XM11_YM13_PM0 (void) {
++  __asm__ __volatile__ ("pmxvi16ger2pp  4, %x0, %x1, 11, 13, 0"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
++static void test_pmxvi16ger2pp_XM11_YM13_PM1 (void) {
++  __asm__ __volatile__ ("pmxvi16ger2pp  4, %x0, %x1, 11, 13, 1"
++				:: "wa" (vec_xa), "wa" (vec_xb) );
++}
+ 
+ static test_list_t testgroup_generic[] = {
+   { &test_pmxvbf16ger2nn_XM0_YM0_PM0, "pmxvbf16ger2nn XM0_YM0_PM0", "AT,XA,XB,XMSK,YMSK,PMSK", 0b00001111}, /* bcwp */
+@@ -952,6 +1060,14 @@ static test_list_t testgroup_generic[] = {
+   { &test_pmxvi8ger4pp_XM11_YM0_PM5, "pmxvi8ger4pp XM11_YM0_PM5", "AT,XA,XB,XMSK,YMSK,PMSK"}, /* bcwp */
+   { &test_pmxvi8ger4pp_XM11_YM13_PM0, "pmxvi8ger4pp XM11_YM13_PM0", "AT,XA,XB,XMSK,YMSK,PMSK"}, /* bcwp */
+   { &test_pmxvi8ger4pp_XM11_YM13_PM5, "pmxvi8ger4pp XM11_YM13_PM5", "AT,XA,XB,XMSK,YMSK,PMSK"}, /* bcwp */
++  { &test_pmxvi8ger4spp_XM0_YM0_PM0, "pmxvi8ger4spp XM0_YM0_PM0", "AT,XA,XB,XMSK,YMSK,PMSK"}, /* bcwp */
++  { &test_pmxvi8ger4spp_XM0_YM0_PM5, "pmxvi8ger4spp XM0_YM0_PM5", "AT,XA,XB,XMSK,YMSK,PMSK"}, /* bcwp */
++  { &test_pmxvi8ger4spp_XM0_YM13_PM0, "pmxvi8ger4spp XM0_YM13_PM0", "AT,XA,XB,XMSK,YMSK,PMSK"}, /* bcwp */
++  { &test_pmxvi8ger4spp_XM0_YM13_PM5, "pmxvi8ger4spp XM0_YM13_PM5", "AT,XA,XB,XMSK,YMSK,PMSK"}, /* bcwp */
++  { &test_pmxvi8ger4spp_XM11_YM0_PM0, "pmxvi8ger4spp XM11_YM0_PM0", "AT,XA,XB,XMSK,YMSK,PMSK"}, /* bcwp */
++  { &test_pmxvi8ger4spp_XM11_YM0_PM5, "pmxvi8ger4spp XM11_YM0_PM5", "AT,XA,XB,XMSK,YMSK,PMSK"}, /* bcwp */
++  { &test_pmxvi8ger4spp_XM11_YM13_PM0, "pmxvi8ger4spp XM11_YM13_PM0", "AT,XA,XB,XMSK,YMSK,PMSK"}, /* bcwp */
++  { &test_pmxvi8ger4spp_XM11_YM13_PM5, "pmxvi8ger4spp XM11_YM13_PM5", "AT,XA,XB,XMSK,YMSK,PMSK"}, /* bcwp */
+   { &test_pmxvi8ger4_XM0_YM0_PM0, "pmxvi8ger4 XM0_YM0_PM0", "AT,XA,XB,XMSK,YMSK,PMSK"}, /* bcwp */
+   { &test_pmxvi8ger4_XM0_YM0_PM5, "pmxvi8ger4 XM0_YM0_PM5", "AT,XA,XB,XMSK,YMSK,PMSK"}, /* bcwp */
+   { &test_pmxvi8ger4_XM0_YM13_PM0, "pmxvi8ger4 XM0_YM13_PM0", "AT,XA,XB,XMSK,YMSK,PMSK"}, /* bcwp */
+@@ -960,6 +1076,14 @@ static test_list_t testgroup_generic[] = {
+   { &test_pmxvi8ger4_XM11_YM0_PM5, "pmxvi8ger4 XM11_YM0_PM5", "AT,XA,XB,XMSK,YMSK,PMSK"}, /* bcwp */
+   { &test_pmxvi8ger4_XM11_YM13_PM0, "pmxvi8ger4 XM11_YM13_PM0", "AT,XA,XB,XMSK,YMSK,PMSK"}, /* bcwp */
+   { &test_pmxvi8ger4_XM11_YM13_PM5, "pmxvi8ger4 XM11_YM13_PM5", "AT,XA,XB,XMSK,YMSK,PMSK"}, /* bcwp */
++  { &test_pmxvi16ger2pp_XM0_YM0_PM0, "pmxvi16ger2pp XM0_YM0_PM0", "AT,XA,XB,XMSK,YMSK,PMSK"}, /* bcwp */
++  { &test_pmxvi16ger2pp_XM0_YM0_PM1, "pmxvi16ger2pp XM0_YM0_PM1", "AT,XA,XB,XMSK,YMSK,PMSK"}, /* bcwp */
++  { &test_pmxvi16ger2pp_XM0_YM13_PM0, "pmxvi16ger2pp XM0_YM13_PM0", "AT,XA,XB,XMSK,YMSK,PMSK"}, /* bcwp */
++  { &test_pmxvi16ger2pp_XM0_YM13_PM1, "pmxvi16ger2pp XM0_YM13_PM1", "AT,XA,XB,XMSK,YMSK,PMSK"}, /* bcwp */
++  { &test_pmxvi16ger2pp_XM11_YM0_PM0, "pmxvi16ger2pp XM11_YM0_PM0", "AT,XA,XB,XMSK,YMSK,PMSK"}, /* bcwp */
++  { &test_pmxvi16ger2pp_XM11_YM0_PM1, "pmxvi16ger2pp XM11_YM0_PM1", "AT,XA,XB,XMSK,YMSK,PMSK"}, /* bcwp */
++  { &test_pmxvi16ger2pp_XM11_YM13_PM0, "pmxvi16ger2pp XM11_YM13_PM0", "AT,XA,XB,XMSK,YMSK,PMSK"}, /* bcwp */
++  { &test_pmxvi16ger2pp_XM11_YM13_PM1, "pmxvi16ger2pp XM11_YM13_PM1", "AT,XA,XB,XMSK,YMSK,PMSK"}, /* bcwp */
+   { &test_pmxvi16ger2spp_XM0_YM0_PM0, "pmxvi16ger2spp XM0_YM0_PM0", "AT,XA,XB,XMSK,YMSK,PMSK"}, /* bcwp */
+   { &test_pmxvi16ger2spp_XM0_YM0_PM1, "pmxvi16ger2spp XM0_YM0_PM1", "AT,XA,XB,XMSK,YMSK,PMSK"}, /* bcwp */
+   { &test_pmxvi16ger2spp_XM0_YM13_PM0, "pmxvi16ger2spp XM0_YM13_PM0", "AT,XA,XB,XMSK,YMSK,PMSK"}, /* bcwp */
+@@ -976,6 +1100,14 @@ static test_list_t testgroup_generic[] = {
+   { &test_pmxvi16ger2s_XM11_YM0_PM1, "pmxvi16ger2s XM11_YM0_PM1", "AT,XA,XB,XMSK,YMSK,PMSK"}, /* bcwp */
+   { &test_pmxvi16ger2s_XM11_YM13_PM0, "pmxvi16ger2s XM11_YM13_PM0", "AT,XA,XB,XMSK,YMSK,PMSK"}, /* bcwp */
+   { &test_pmxvi16ger2s_XM11_YM13_PM1, "pmxvi16ger2s XM11_YM13_PM1", "AT,XA,XB,XMSK,YMSK,PMSK"}, /* bcwp */
++  { &test_pmxvi16ger2_XM0_YM0_PM0, "pmxvi16ger2 XM0_YM0_PM0", "AT,XA,XB,XMSK,YMSK,PMSK"}, /* bcwp */
++  { &test_pmxvi16ger2_XM0_YM0_PM1, "pmxvi16ger2 XM0_YM0_PM1", "AT,XA,XB,XMSK,YMSK,PMSK"}, /* bcwp */
++  { &test_pmxvi16ger2_XM0_YM13_PM0, "pmxvi16ger2 XM0_YM13_PM0", "AT,XA,XB,XMSK,YMSK,PMSK"}, /* bcwp */
++  { &test_pmxvi16ger2_XM0_YM13_PM1, "pmxvi16ger2 XM0_YM13_PM1", "AT,XA,XB,XMSK,YMSK,PMSK"}, /* bcwp */
++  { &test_pmxvi16ger2_XM11_YM0_PM0, "pmxvi16ger2 XM11_YM0_PM0", "AT,XA,XB,XMSK,YMSK,PMSK"}, /* bcwp */
++  { &test_pmxvi16ger2_XM11_YM0_PM1, "pmxvi16ger2 XM11_YM0_PM1", "AT,XA,XB,XMSK,YMSK,PMSK"}, /* bcwp */
++  { &test_pmxvi16ger2_XM11_YM13_PM0, "pmxvi16ger2 XM11_YM13_PM0", "AT,XA,XB,XMSK,YMSK,PMSK"}, /* bcwp */
++  { &test_pmxvi16ger2_XM11_YM13_PM1, "pmxvi16ger2 XM11_YM13_PM1", "AT,XA,XB,XMSK,YMSK,PMSK"}, /* bcwp */
+   { &test_xvbf16ger2nn, "xvbf16ger2nn", "AT,XA,XB", 0b00001111}, /* bcs */
+   { &test_xvbf16ger2np, "xvbf16ger2np", "AT,XA,XB", 0b00001111}, /* bcs */
+   { &test_xvbf16ger2pn, "xvbf16ger2pn", "AT,XA,XB", 0b00001111}, /* bcs */
+@@ -999,9 +1131,12 @@ static test_list_t testgroup_generic[] = {
+   { &test_xvi4ger8pp, "xvi4ger8pp", "AT,XA,XB"}, /* bcs */
+   { &test_xvi4ger8, "xvi4ger8", "AT,XA,XB"}, /* bcs */
+   { &test_xvi8ger4pp, "xvi8ger4pp", "AT,XA,XB"}, /* bcs */
++  { &test_xvi8ger4spp, "xvi8ger4spp", "AT,XA,XB"}, /* bcs */
+   { &test_xvi8ger4, "xvi8ger4", "AT,XA,XB"}, /* bcs */
++  { &test_xvi16ger2pp, "xvi16ger2pp", "AT,XA,XB"}, /* bcs */
+   { &test_xvi16ger2spp, "xvi16ger2spp", "AT,XA,XB"}, /* bcs */
+   { &test_xvi16ger2s, "xvi16ger2s", "AT,XA,XB"}, /* bcs */
++  { &test_xvi16ger2, "xvi16ger2", "AT,XA,XB"}, /* bcs */
+   { &test_xxmfacc, "xxmfacc", "AS"}, /* bcs */
+   { &test_xxmtacc, "xxmtacc", "AT"}, /* bcs */
+   { &test_xxsetaccz, "xxsetaccz", "AT"}, /* bcs */
+diff --git a/none/tests/ppc64/test_isa_3_1_AT.stdout.exp b/none/tests/ppc64/test_isa_3_1_AT.stdout.exp
+index be3f17ec3..8d1be35b1 100644
+--- a/none/tests/ppc64/test_isa_3_1_AT.stdout.exp
++++ b/none/tests/ppc64/test_isa_3_1_AT.stdout.exp
+@@ -1718,6 +1718,86 @@ pmxvi8ger4pp XM11_YM13_PM5 0000000000000009,ffff000180000001 0080000e8080000e,01
+ pmxvi8ger4pp XM11_YM13_PM5 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => [ 0000000011111111 1111110911111111 0000000000000000 0000000000000000 0000000011111111                * 0000000011111111                *]
+ pmxvi8ger4pp XM11_YM13_PM5 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => [ 0000000011111111                * 0000000000000000 0000000000000000 0000000011111111                * 0000000011111111                *]
+ 
++pmxvi8ger4spp XM0_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM0_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM0_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM0_YM0_PM0 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM0_YM0_PM0 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM0_YM0_PM0 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM0_YM0_PM0 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM0_YM0_PM0 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM0_YM0_PM0 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++
++pmxvi8ger4spp XM0_YM0_PM5 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM0_YM0_PM5 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM0_YM0_PM5 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM0_YM0_PM5 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM0_YM0_PM5 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM0_YM0_PM5 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM0_YM0_PM5 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM0_YM0_PM5 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM0_YM0_PM5 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++
++pmxvi8ger4spp XM0_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM0_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM0_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM0_YM13_PM0 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM0_YM13_PM0 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM0_YM13_PM0 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM0_YM13_PM0 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM0_YM13_PM0 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM0_YM13_PM0 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++
++pmxvi8ger4spp XM0_YM13_PM5 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM0_YM13_PM5 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM0_YM13_PM5 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM0_YM13_PM5 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM0_YM13_PM5 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM0_YM13_PM5 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM0_YM13_PM5 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM0_YM13_PM5 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM0_YM13_PM5 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++
++pmxvi8ger4spp XM11_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM11_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM11_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM11_YM0_PM0 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM11_YM0_PM0 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM11_YM0_PM0 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM11_YM0_PM0 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM11_YM0_PM0 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM11_YM0_PM0 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++
++pmxvi8ger4spp XM11_YM0_PM5 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM11_YM0_PM5 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM11_YM0_PM5 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM11_YM0_PM5 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM11_YM0_PM5 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM11_YM0_PM5 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM11_YM0_PM5 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM11_YM0_PM5 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi8ger4spp XM11_YM0_PM5 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++
++pmxvi8ger4spp XM11_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => [ 0000000011111111                * 0000000000000000 0000000000000000 0000000011111111                * 0000000011111111                *]
++pmxvi8ger4spp XM11_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => [ 0000000011111111                * 0000000000000000 0000000000000000 0000000011111111                * 0000000011111111                *]
++pmxvi8ger4spp XM11_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => [ 0000000011111111                * 0000000000000000 0000000000000000 0000000011111111                * 0000000011111111                *]
++pmxvi8ger4spp XM11_YM13_PM0 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => [ 0000000011111111                * 0000000000000000 0000000000000000 0000000011111111                * 0000000011111111                *]
++pmxvi8ger4spp XM11_YM13_PM0 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => [ 0000000011111111                * 0000000000000000 0000000000000000 0000000011111111                * 0000000011111111                *]
++pmxvi8ger4spp XM11_YM13_PM0 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => [ 0000000011111111                * 0000000000000000 0000000000000000 0000000011111111                * 0000000011111111                *]
++pmxvi8ger4spp XM11_YM13_PM0 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => [ 0000000011111111                * 0000000000000000 0000000000000000 0000000011111111                * 0000000011111111                *]
++pmxvi8ger4spp XM11_YM13_PM0 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => [ 0000000011111111                * 0000000000000000 0000000000000000 0000000011111111                * 0000000011111111                *]
++pmxvi8ger4spp XM11_YM13_PM0 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => [ 0000000011111111                * 0000000000000000 0000000000000000 0000000011111111                * 0000000011111111                *]
++
++pmxvi8ger4spp XM11_YM13_PM5 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => [ 0000000011115075 11114fd511114f95 0000000000000000 0000000000000000 000000001110d111 1110d1111110d111 000000001110d111 1110d1111110d111]
++pmxvi8ger4spp XM11_YM13_PM5 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => [ 0000000011111111 1111150911111111 0000000000000000 0000000000000000 0000000011111111 11110d1111111111 0000000011111111 11110d1111111111]
++pmxvi8ger4spp XM11_YM13_PM5 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => [ 0000000011111111                * 0000000000000000 0000000000000000 0000000011111111                * 0000000011111111                *]
++pmxvi8ger4spp XM11_YM13_PM5 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => [ 0000000011110911 1111091111110911 0000000000000000 0000000000000000 00000000111112b5 11111c1511111fd5 0000000011111395 111121f5111127b5]
++pmxvi8ger4spp XM11_YM13_PM5 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => [ 0000000011111111 1111109111111111 0000000000000000 0000000000000000 0000000011111111                * 0000000011111111                *]
++pmxvi8ger4spp XM11_YM13_PM5 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => [ 0000000011111111                * 0000000000000000 0000000000000000 0000000011111111                * 0000000011111111                *]
++pmxvi8ger4spp XM11_YM13_PM5 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => [ 000000001111109f 111110ef1111110f 0000000000000000 0000000000000000 0000000011111111                * 000000001111118f 1111145f1111157f]
++pmxvi8ger4spp XM11_YM13_PM5 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => [ 0000000011111111 1111110911111111 0000000000000000 0000000000000000 0000000011111111                * 0000000011111111                *]
++pmxvi8ger4spp XM11_YM13_PM5 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => [ 0000000011111111                * 0000000000000000 0000000000000000 0000000011111111                * 0000000011111111                *]
++
+ pmxvi8ger4 XM0_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
+ pmxvi8ger4 XM0_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
+ pmxvi8ger4 XM0_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
+@@ -1798,6 +1878,86 @@ pmxvi8ger4 XM11_YM13_PM5 0000000000000009,ffff000180000001 0080000e8080000e,0180
+ pmxvi8ger4 XM11_YM13_PM5 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => [ 0000000000000000 fffffff800000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
+ pmxvi8ger4 XM11_YM13_PM5 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
+ 
++pmxvi16ger2pp XM0_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM0_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM0_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM0_YM0_PM0 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM0_YM0_PM0 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM0_YM0_PM0 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM0_YM0_PM0 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM0_YM0_PM0 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM0_YM0_PM0 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++
++pmxvi16ger2pp XM0_YM0_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM0_YM0_PM1 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM0_YM0_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM0_YM0_PM1 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM0_YM0_PM1 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM0_YM0_PM1 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM0_YM0_PM1 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM0_YM0_PM1 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM0_YM0_PM1 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++
++pmxvi16ger2pp XM0_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM0_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM0_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM0_YM13_PM0 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM0_YM13_PM0 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM0_YM13_PM0 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM0_YM13_PM0 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM0_YM13_PM0 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM0_YM13_PM0 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++
++pmxvi16ger2pp XM0_YM13_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM0_YM13_PM1 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM0_YM13_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM0_YM13_PM1 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM0_YM13_PM1 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM0_YM13_PM1 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM0_YM13_PM1 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM0_YM13_PM1 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM0_YM13_PM1 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++
++pmxvi16ger2pp XM11_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM11_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM11_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM11_YM0_PM0 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM11_YM0_PM0 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM11_YM0_PM0 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM11_YM0_PM0 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM11_YM0_PM0 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM11_YM0_PM0 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++
++pmxvi16ger2pp XM11_YM0_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM11_YM0_PM1 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM11_YM0_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM11_YM0_PM1 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM11_YM0_PM1 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM11_YM0_PM1 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM11_YM0_PM1 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM11_YM0_PM1 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2pp XM11_YM0_PM1 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++
++pmxvi16ger2pp XM11_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => [ 0000000011111111                * 0000000000000000 0000000000000000 0000000011111111                * 0000000011111111                *]
++pmxvi16ger2pp XM11_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => [ 0000000011111111                * 0000000000000000 0000000000000000 0000000011111111                * 0000000011111111                *]
++pmxvi16ger2pp XM11_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => [ 0000000011111111                * 0000000000000000 0000000000000000 0000000011111111                * 0000000011111111                *]
++pmxvi16ger2pp XM11_YM13_PM0 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => [ 0000000011111111                * 0000000000000000 0000000000000000 0000000011111111                * 0000000011111111                *]
++pmxvi16ger2pp XM11_YM13_PM0 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => [ 0000000011111111                * 0000000000000000 0000000000000000 0000000011111111                * 0000000011111111                *]
++pmxvi16ger2pp XM11_YM13_PM0 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => [ 0000000011111111                * 0000000000000000 0000000000000000 0000000011111111                * 0000000011111111                *]
++pmxvi16ger2pp XM11_YM13_PM0 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => [ 0000000011111111                * 0000000000000000 0000000000000000 0000000011111111                * 0000000011111111                *]
++pmxvi16ger2pp XM11_YM13_PM0 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => [ 0000000011111111                * 0000000000000000 0000000000000000 0000000011111111                * 0000000011111111                *]
++pmxvi16ger2pp XM11_YM13_PM0 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => [ 0000000011111111                * 0000000000000000 0000000000000000 0000000011111111                * 0000000011111111                *]
++
++pmxvi16ger2pp XM11_YM13_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => [ 00000000111110f5 1111065511110215 0000000000000000 0000000000000000 0000000011111111                * 0000000011111111                *]
++pmxvi16ger2pp XM11_YM13_PM1 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => [ 0000000011111111 1110911111111111 0000000000000000 0000000000000000 0000000011111111                * 0000000011111111                *]
++pmxvi16ger2pp XM11_YM13_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => [ 0000000011111111                * 0000000000000000 0000000000000000 0000000011111111                * 0000000011111111                *]
++pmxvi16ger2pp XM11_YM13_PM1 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => [ 0000000011111111                * 0000000000000000 0000000000000000 00000000111200b5 116cf01511914fd5 000000001112ef95 11c883f5121125b5]
++pmxvi16ger2pp XM11_YM13_PM1 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => [ 0000000011111111                * 0000000000000000 0000000000000000 0000000011111111 1558911111111111 0000000011111111 199c911111111111]
++pmxvi16ger2pp XM11_YM13_PM1 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => [ 0000000011111111                * 0000000000000000 0000000000000000 0000000011111111                * 0000000011111111                *]
++pmxvi16ger2pp XM11_YM13_PM1 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => [ 000000001111111f 1111166f1111188f 0000000000000000 0000000000000000 0000000011111111                * 000000001111118f 1111415f1111547f]
++pmxvi16ger2pp XM11_YM13_PM1 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => [ 0000000011111111 1111511111111111 0000000000000000 0000000000000000 0000000011111111                * 0000000011111111 1113511111111111]
++pmxvi16ger2pp XM11_YM13_PM1 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => [ 0000000011111111                * 0000000000000000 0000000000000000 0000000011111111                * 0000000011111111                *]
++
+ pmxvi16ger2spp XM0_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
+ pmxvi16ger2spp XM0_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
+ pmxvi16ger2spp XM0_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
+@@ -1958,6 +2118,86 @@ pmxvi16ger2s XM11_YM13_PM1 0000000000000009,ffff000180000001 0080000e8080000e,01
+ pmxvi16ger2s XM11_YM13_PM1 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => [ 0000000000000000 0000400000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0002400000000000]
+ pmxvi16ger2s XM11_YM13_PM1 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
+ 
++pmxvi16ger2 XM0_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM0_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM0_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM0_YM0_PM0 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM0_YM0_PM0 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM0_YM0_PM0 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM0_YM0_PM0 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM0_YM0_PM0 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM0_YM0_PM0 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++
++pmxvi16ger2 XM0_YM0_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM0_YM0_PM1 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM0_YM0_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM0_YM0_PM1 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM0_YM0_PM1 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM0_YM0_PM1 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM0_YM0_PM1 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM0_YM0_PM1 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM0_YM0_PM1 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++
++pmxvi16ger2 XM0_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM0_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM0_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM0_YM13_PM0 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM0_YM13_PM0 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM0_YM13_PM0 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM0_YM13_PM0 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM0_YM13_PM0 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM0_YM13_PM0 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++
++pmxvi16ger2 XM0_YM13_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM0_YM13_PM1 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM0_YM13_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM0_YM13_PM1 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM0_YM13_PM1 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM0_YM13_PM1 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM0_YM13_PM1 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM0_YM13_PM1 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM0_YM13_PM1 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++
++pmxvi16ger2 XM11_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM11_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM11_YM0_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM11_YM0_PM0 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM11_YM0_PM0 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM11_YM0_PM0 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM11_YM0_PM0 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM11_YM0_PM0 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM11_YM0_PM0 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++
++pmxvi16ger2 XM11_YM0_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM11_YM0_PM1 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM11_YM0_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM11_YM0_PM1 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM11_YM0_PM1 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM11_YM0_PM1 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM11_YM0_PM1 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM11_YM0_PM1 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM11_YM0_PM1 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++
++pmxvi16ger2 XM11_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM11_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM11_YM13_PM0 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM11_YM13_PM0 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM11_YM13_PM0 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM11_YM13_PM0 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM11_YM13_PM0 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM11_YM13_PM0 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM11_YM13_PM0 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++
++pmxvi16ger2 XM11_YM13_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0080000e8080000e,0180055e0180077e => [ 00000000ffffffe4 fffff544fffff104 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM11_YM13_PM1 ff8000007f800000,ff7ffffe7f7ffffe fff0000000000000,2208400000000000 => [ 0000000000000000 ffff800000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM11_YM13_PM1 ff8000007f800000,ff7ffffe7f7ffffe 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM11_YM13_PM1 0000111e8000222e,7ff0000000000000 0080000e8080000e,0180055e0180077e => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 000000000000efa4 005bdf0400803ec4 000000000001de84 00b772e4010014a4]
++pmxvi16ger2 XM11_YM13_PM1 0000111e8000222e,7ff0000000000000 fff0000000000000,2208400000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0447800000000000 0000000000000000 088b800000000000]
++pmxvi16ger2 XM11_YM13_PM1 0000111e8000222e,7ff0000000000000 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++pmxvi16ger2 XM11_YM13_PM1 0000000000000009,ffff000180000001 0080000e8080000e,0180055e0180077e => [ 000000000000000e 0000055e0000077e 0000000000000000 0000000000000000 0000000000000000 0000000000000000 000000000000007e 0000304e0000436e]
++pmxvi16ger2 XM11_YM13_PM1 0000000000000009,ffff000180000001 fff0000000000000,2208400000000000 => [ 0000000000000000 0000400000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0002400000000000]
++pmxvi16ger2 XM11_YM13_PM1 0000000000000009,ffff000180000001 0000000000000000,8000000000000000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
++
+ xvbf16ger2nn 7f800000ff800000,ff8000007f800000 7f800000ff800000,ff8000007f800000 => (            +Inf            -Inf            -Inf            +Inf            -Inf            +Inf            +Inf            -Inf            -Inf            +Inf            +Inf            -Inf            +Inf            -Inf            -Inf            +Inf)
+ xvbf16ger2nn 7f800000ff800000,ff8000007f800000 0180055e0180077e,0000111e8000222e => (            +Inf            +Inf             NaN             NaN            -Inf            -Inf             NaN             NaN            -Inf            -Inf             NaN             NaN            +Inf            +Inf             NaN             NaN)
+ xvbf16ger2nn 7f800000ff800000,ff8000007f800000 2208400000000000,0000000000000009 => (            +Inf             NaN             NaN             NaN            -Inf             NaN             NaN             NaN            -Inf             NaN             NaN             NaN            +Inf             NaN             NaN             NaN)
+@@ -2349,6 +2589,23 @@ xvi8ger4pp 8000000000000000,7f800000ff800000 0180055e0180077e,0000111e8000222e =
+ xvi8ger4pp 8000000000000000,7f800000ff800000 2208400000000000,0000000000000009 => [ 11111def11111111                * 11110cef11111111                * 1111001111111111                *                *                *]
+ xvi8ger4pp 8000000000000000,7f800000ff800000 8000000000000000,7f800000ff800000 => [ 1111509111111111 1111101211114f92 1111109111111111 1110d0921110d012 1110d11111111111 1110d19111109191                *                *]
+ 
++xvi8ger4spp 7f800000ff800000,ff8000007f800000 7f800000ff800000,ff8000007f800000 => [ 1110d0921110d012 1110d0121110d092 1111101211114f92 11114f9211111012 1111101211114f92 11114f9211111012 1110d0921110d012 1110d0121110d092]
++xvi8ger4spp 7f800000ff800000,ff8000007f800000 0180055e0180077e,0000111e8000222e => [ 1110d1101110d110 1111111111111091 1110d1901110d190 1111111111115091 1110d1901110d190 1111111111115091 1110d1101110d110 1111111111111091]
++xvi8ger4spp 7f800000ff800000,ff8000007f800000 2208400000000000,0000000000000009 => [ 11110cef11111111                * 11111def11111111                * 11111def11111111                * 11110cef11111111                *]
++xvi8ger4spp 7f800000ff800000,ff8000007f800000 8000000000000000,7f800000ff800000 => [ 1111109111111111 1110d0921110d012 1111509111111111 1111101211114f92 1111509111111111 1111101211114f92 1111109111111111 1110d0921110d012]
++xvi8ger4spp 0180055e0180077e,0000111e8000222e 7f800000ff800000,ff8000007f800000 => [                *                * 1110d19111109191 111091911110d191 1110d1901110d210 1110d2101110d190 1110d1901110d210 1110d2101110d190]
++xvi8ger4spp 0180055e0180077e,0000111e8000222e 0180055e0180077e,0000111e8000222e => [ 11111c6a1111204c 111115b6111118b7 1111221f11112823 111118b71110ddd9 1110f3af1110ff79 11111c6a1111231f 1110ff7911110f47 1111204c11112923]
++xvi8ger4spp 0180055e0180077e,0000111e8000222e 2208400000000000,0000000000000009 => [ 1111155111111111 111111111111121f 1111089111111111 11111111111112af 11110e7311111111 111111111111145f 11110ef311111111 111111111111157f]
++xvi8ger4spp 0180055e0180077e,0000111e8000222e 8000000000000000,7f800000ff800000 => [                *                * 1110d11111111111 1110d19111109191 1111119111111111 1110d1901110d210 1111119111111111 1110d1901110d210]
++xvi8ger4spp 2208400000000000,0000000000000009 7f800000ff800000,ff8000007f800000 => [                *                *                *                * 111125ef111136ef 111136ef111125ef                *                *]
++xvi8ger4spp 2208400000000000,0000000000000009 0180055e0180077e,0000111e8000222e => [                *                * 1111145f1111157f 1111121f111112af 11111673111116f3 1111155111112a91                *                *]
++xvi8ger4spp 2208400000000000,0000000000000009 2208400000000000,0000000000000009 => [                *                *                * 1111111111111162 111125d511111111                *                *                *]
++xvi8ger4spp 2208400000000000,0000000000000009 8000000000000000,7f800000ff800000 => [                *                *                *                * 1111221111111111 111125ef111136ef                *                *]
++xvi8ger4spp 8000000000000000,7f800000ff800000 7f800000ff800000,ff8000007f800000 => [ 1111101211114f92 11114f9211111012 1110d0921110d012 1110d0121110d092 1110d19111109191 111091911110d191                *                *]
++xvi8ger4spp 8000000000000000,7f800000ff800000 0180055e0180077e,0000111e8000222e => [ 1110d1901110d190 1111111111115091 1110d1101110d110 1111111111111091 1111109111111091 111111111110d111                *                *]
++xvi8ger4spp 8000000000000000,7f800000ff800000 2208400000000000,0000000000000009 => [ 11111def11111111                * 11110cef11111111                * 1111001111111111                *                *                *]
++xvi8ger4spp 8000000000000000,7f800000ff800000 8000000000000000,7f800000ff800000 => [ 1111509111111111 1111101211114f92 1111109111111111 1110d0921110d012 1110d11111111111 1110d19111109191                *                *]
++
+ xvi8ger4 7f800000ff800000,ff8000007f800000 7f800000ff800000,ff8000007f800000 => [ ffffbf81ffffbf01 ffffbf01ffffbf81 ffffff0100003e81 00003e81ffffff01 ffffff0100003e81 00003e81ffffff01 ffffbf81ffffbf01 ffffbf01ffffbf81]
+ xvi8ger4 7f800000ff800000,ff8000007f800000 0180055e0180077e,0000111e8000222e => [ ffffbfffffffbfff 00000000ffffff80 ffffc07fffffc07f 0000000000003f80 ffffc07fffffc07f 0000000000003f80 ffffbfffffffbfff 00000000ffffff80]
+ xvi8ger4 7f800000ff800000,ff8000007f800000 2208400000000000,0000000000000009 => [ fffffbde00000000 0000000000000000 00000cde00000000 0000000000000000 00000cde00000000 0000000000000000 fffffbde00000000 0000000000000000]
+@@ -2366,6 +2623,23 @@ xvi8ger4 8000000000000000,7f800000ff800000 0180055e0180077e,0000111e8000222e =>
+ xvi8ger4 8000000000000000,7f800000ff800000 2208400000000000,0000000000000009 => [ 00000cde00000000 0000000000000000 fffffbde00000000 0000000000000000 ffffef0000000000 0000000000000000 0000000000000000 0000000000000000]
+ xvi8ger4 8000000000000000,7f800000ff800000 8000000000000000,7f800000ff800000 => [ 00003f8000000000 ffffff0100003e81 ffffff8000000000 ffffbf81ffffbf01 ffffc00000000000 ffffc080ffff8080 0000000000000000 0000000000000000]
+ 
++xvi16ger2pp 7f800000ff800000,ff8000007f800000 7f800000ff800000,ff8000007f800000 => [ 10d1511111115111 1111511110d15111 5091511110d15111 10d1511150915111 5091511110d15111 10d1511150915111 10d1511111115111 1111511110d15111]
++xvi16ger2pp 7f800000ff800000,ff8000007f800000 0180055e0180077e,0000111e8000222e => [ 1110511111105111 1111111111511111 11d0511111d05111 11111111d1511111 11d0511111d05111 11111111d1511111 1110511111105111 1111111111511111]
++xvi16ger2pp 7f800000ff800000,ff8000007f800000 2208400000000000,0000000000000009 => [ 11000d1111111111                * 22040d1111111111                * 22040d1111111111                * 11000d1111111111                *]
++xvi16ger2pp 7f800000ff800000,ff8000007f800000 8000000000000000,7f800000ff800000 => [ 1151111111111111 10d1511111115111 d151111111111111 5091511110d15111 d151111111111111 5091511110d15111 1151111111111111 10d1511111115111]
++xvi16ger2pp 0180055e0180077e,0000111e8000222e 7f800000ff800000,ff8000007f800000 => [                *                * d151111111511111 11511111d1511111 11d0511111105111 1110511111d05111 11d0511111105111 1110511111d05111]
++xvi16ger2pp 0180055e0180077e,0000111e8000222e 0180055e0180077e,0000111e8000222e => [ 116cf01511914fd5 12361095135a2075 110883f5115125b5 135a207555a15155 11301f95113b8755 116cf015110883f5 113b8755114b7315 11914fd5115125b5]
++xvi16ger2pp 0180055e0180077e,0000111e8000222e 2208400000000000,0000000000000009 => [ 1558911111111111 111111111111ab1f 0898911111111111 11111111111244af 129b9d1111111111 111111111111415f 13239d1111111111 111111111111547f]
++xvi16ger2pp 0180055e0180077e,0000111e8000222e 8000000000000000,7f800000ff800000 => [                *                * 5111111111111111 d151111111511111 1051111111111111 11d0511111105111 1051111111111111 11d0511111105111]
++xvi16ger2pp 2208400000000000,0000000000000009 7f800000ff800000,ff8000007f800000 => [                *                *                *                * 22040d1111000d11 11000d1122040d11                *                *]
++xvi16ger2pp 2208400000000000,0000000000000009 0180055e0180077e,0000111e8000222e => [                *                * 1111415f1111547f 1111ab1f111244af 129b9d1113239d11 1558911108989111                *                *]
++xvi16ger2pp 2208400000000000,0000000000000009 2208400000000000,0000000000000009 => [                *                * 1113511111111111 1111111111111162 2597315111111111 1111111111135111                *                *]
++xvi16ger2pp 2208400000000000,0000000000000009 8000000000000000,7f800000ff800000 => [                *                *                *                * 000d111111111111 22040d1111000d11                *                *]
++xvi16ger2pp 8000000000000000,7f800000ff800000 7f800000ff800000,ff8000007f800000 => [ 5091511110d15111 10d1511150915111 10d1511111115111 1111511110d15111 d151111111511111 11511111d1511111                *                *]
++xvi16ger2pp 8000000000000000,7f800000ff800000 0180055e0180077e,0000111e8000222e => [ 11d0511111d05111 11111111d1511111 1110511111105111 1111111111511111 1051111110511111 1111111151111111                *                *]
++xvi16ger2pp 8000000000000000,7f800000ff800000 2208400000000000,0000000000000009 => [ 22040d1111111111                * 11000d1111111111                * 000d111111111111                *                *                *]
++xvi16ger2pp 8000000000000000,7f800000ff800000 8000000000000000,7f800000ff800000 => [ d151111111111111 5091511110d15111 1151111111111111 10d1511111115111 5111111111111111 d151111111511111                *                *]
++
+ xvi16ger2spp 7f800000ff800000,ff8000007f800000 7f800000ff800000,ff8000007f800000 => [ 10d1511111115111 1111511110d15111 5091511110d15111 10d1511150915111 5091511110d15111 10d1511150915111 10d1511111115111 1111511110d15111]
+ xvi16ger2spp 7f800000ff800000,ff8000007f800000 0180055e0180077e,0000111e8000222e => [ 1110511111105111 1111111111511111 11d0511111d05111 11111111d1511111 11d0511111d05111 11111111d1511111 1110511111105111 1111111111511111]
+ xvi16ger2spp 7f800000ff800000,ff8000007f800000 2208400000000000,0000000000000009 => [ 11000d1111111111                * 22040d1111111111                * 22040d1111111111                * 11000d1111111111                *]
+@@ -2400,10 +2674,27 @@ xvi16ger2s 8000000000000000,7f800000ff800000 0180055e0180077e,0000111e8000222e =
+ xvi16ger2s 8000000000000000,7f800000ff800000 2208400000000000,0000000000000009 => [ 10f2fc0000000000 0000000000000000 ffeefc0000000000 0000000000000000 eefc000000000000 0000000000000000 0000000000000000 0000000000000000]
+ xvi16ger2s 8000000000000000,7f800000ff800000 8000000000000000,7f800000ff800000 => [ c040000000000000 3f804000ffc04000 0040000000000000 ffc0400000004000 4000000000000000 c040000000400000 0000000000000000 0000000000000000]
+ 
++xvi16ger2 7f800000ff800000,ff8000007f800000 7f800000ff800000,ff8000007f800000 => [ ffc0400000004000 00004000ffc04000 3f804000ffc04000 ffc040003f804000 3f804000ffc04000 ffc040003f804000 ffc0400000004000 00004000ffc04000]
++xvi16ger2 7f800000ff800000,ff8000007f800000 0180055e0180077e,0000111e8000222e => [ ffff4000ffff4000 0000000000400000 00bf400000bf4000 00000000c0400000 00bf400000bf4000 00000000c0400000 ffff4000ffff4000 0000000000400000]
++xvi16ger2 7f800000ff800000,ff8000007f800000 2208400000000000,0000000000000009 => [ ffeefc0000000000 0000000000000000 10f2fc0000000000 0000000000000000 10f2fc0000000000 0000000000000000 ffeefc0000000000 0000000000000000]
++xvi16ger2 7f800000ff800000,ff8000007f800000 8000000000000000,7f800000ff800000 => [ 0040000000000000 ffc0400000004000 c040000000000000 3f804000ffc04000 c040000000000000 3f804000ffc04000 0040000000000000 ffc0400000004000]
++xvi16ger2 0180055e0180077e,0000111e8000222e 7f800000ff800000,ff8000007f800000 => [ 0000000000000000 0000000000000000 c040000000400000 00400000c0400000 00bf4000ffff4000 ffff400000bf4000 00bf4000ffff4000 ffff400000bf4000]
++xvi16ger2 0180055e0180077e,0000111e8000222e 0180055e0180077e,0000111e8000222e => [ 005bdf0400803ec4 0124ff8402490f64 fff772e4004014a4 02490f6444904044 001f0e84002a7644 005bdf04fff772e4 002a7644003a6204 00803ec4004014a4]
++xvi16ger2 0180055e0180077e,0000111e8000222e 2208400000000000,0000000000000009 => [ 0447800000000000 0000000000009a0e f787800000000000 000000000001339e 018a8c0000000000 000000000000304e 02128c0000000000 000000000000436e]
++xvi16ger2 0180055e0180077e,0000111e8000222e 8000000000000000,7f800000ff800000 => [ 0000000000000000 0000000000000000 4000000000000000 c040000000400000 ff40000000000000 00bf4000ffff4000 ff40000000000000 00bf4000ffff4000]
++xvi16ger2 2208400000000000,0000000000000009 7f800000ff800000,ff8000007f800000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 10f2fc00ffeefc00 ffeefc0010f2fc00 0000000000000000 0000000000000000]
++xvi16ger2 2208400000000000,0000000000000009 0180055e0180077e,0000111e8000222e => [ 0000000000000000 0000000000000000 0000304e0000436e 00009a0e0001339e 018a8c0002128c00 04478000f7878000 0000000000000000 0000000000000000]
++xvi16ger2 2208400000000000,0000000000000009 2208400000000000,0000000000000009 => [ 0000000000000000 0000000000000000 0002400000000000 0000000000000051 1486204000000000 0000000000024000 0000000000000000 0000000000000000]
++xvi16ger2 2208400000000000,0000000000000009 8000000000000000,7f800000ff800000 => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 eefc000000000000 10f2fc00ffeefc00 0000000000000000 0000000000000000]
++xvi16ger2 8000000000000000,7f800000ff800000 7f800000ff800000,ff8000007f800000 => [ 3f804000ffc04000 ffc040003f804000 ffc0400000004000 00004000ffc04000 c040000000400000 00400000c0400000 0000000000000000 0000000000000000]
++xvi16ger2 8000000000000000,7f800000ff800000 0180055e0180077e,0000111e8000222e => [ 00bf400000bf4000 00000000c0400000 ffff4000ffff4000 0000000000400000 ff400000ff400000 0000000040000000 0000000000000000 0000000000000000]
++xvi16ger2 8000000000000000,7f800000ff800000 2208400000000000,0000000000000009 => [ 10f2fc0000000000 0000000000000000 ffeefc0000000000 0000000000000000 eefc000000000000 0000000000000000 0000000000000000 0000000000000000]
++xvi16ger2 8000000000000000,7f800000ff800000 8000000000000000,7f800000ff800000 => [ c040000000000000 3f804000ffc04000 0040000000000000 ffc0400000004000 4000000000000000 c040000000400000 0000000000000000 0000000000000000]
++
+ xxmfacc [ 7f800000ff800000 ff8000007f800000 ff7ffffe7f7ffffe 0080000e8080000e 0180055e0180077e 0000111e8000222e 7ff0000000000000 fff0000000000000] => [ 7f800000ff800000 ff8000007f800000 ff7ffffe7f7ffffe 0080000e8080000e 0180055e0180077e 0000111e8000222e 7ff0000000000000 fff0000000000000]
+ 
+ xxmtacc => [ 7f800000ff800000 ff8000007f800000 ff7ffffe7f7ffffe 0080000e8080000e 0180055e0180077e 0000111e8000222e 7ff0000000000000 fff0000000000000]
+ 
+ xxsetaccz => [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000]
+ 
+-All done. Tested 197 different instruction groups
++All done. Tested 224 different instruction groups
diff --git a/valgrind-3.17.0-ppc64-isa-3.1.patch b/valgrind-3.17.0-ppc64-isa-3.1.patch
new file mode 100644
index 0000000..fb8fa50
--- /dev/null
+++ b/valgrind-3.17.0-ppc64-isa-3.1.patch
@@ -0,0 +1,1720 @@
+commit 3cc0232c46a5905b4a6c2fbd302b58bf5f90b3d5
+Author: Carl Love <cel@us.ibm.com>
+Date:   Mon Jan 11 16:00:57 2021 -0600
+
+    PPC64: ISA 3.1 VSX PCV Generate Operations
+    
+    xgenpcvbm VSX Vector Generate PCV from Byte Mask
+    xxgenpcvdmVSX Vector Generate PCV from Doubleword Mask
+    xxgenpcvhmVSX Vector Generate PCV from Halfword Mask
+    xxgenpcvwmVSX Vector Generate PCV from Word Mask
+
+diff --git a/VEX/priv/guest_ppc_defs.h b/VEX/priv/guest_ppc_defs.h
+index deda4dfce..54ce923a9 100644
+--- a/VEX/priv/guest_ppc_defs.h
++++ b/VEX/priv/guest_ppc_defs.h
+@@ -169,6 +169,23 @@ void write_ACC_entry (VexGuestPPC64State* gst, UInt offset, UInt acc,
+ void get_ACC_entry (VexGuestPPC64State* gst, UInt offset, UInt acc,
+                     UInt reg, UInt *result);
+ 
++extern void vector_gen_pvc_byte_mask_dirty_helper( VexGuestPPC64State* gst,
++                                                   ULong src_hi,
++                                                   ULong src_lo,
++                                                   UInt rtn_val, UInt IMM );
++extern void vector_gen_pvc_hword_mask_dirty_helper( VexGuestPPC64State* gst,
++                                                    ULong src_hi,
++                                                    ULong src_lo,
++                                                    UInt rtn_val, UInt IMM );
++extern void vector_gen_pvc_word_mask_dirty_helper( VexGuestPPC64State* gst,
++                                                   ULong src_hi,
++                                                   ULong src_lo,
++                                                   UInt rtn_val, UInt IMM );
++extern void vector_gen_pvc_dword_mask_dirty_helper( VexGuestPPC64State* gst,
++                                                    ULong src_hi,
++                                                    ULong src_lo,
++                                                    UInt rtn_val, UInt IMM );
++
+ /* 8-bit XO value from instruction description */
+ #define XVI4GER8       0b00100011
+ #define XVI4GER8PP     0b00100010
+diff --git a/VEX/priv/guest_ppc_helpers.c b/VEX/priv/guest_ppc_helpers.c
+index c24191ef3..75497abb9 100644
+--- a/VEX/priv/guest_ppc_helpers.c
++++ b/VEX/priv/guest_ppc_helpers.c
+@@ -701,6 +701,738 @@ ULong vector_evaluate64_helper( ULong srcA, ULong srcB, ULong srcC,
+ #undef MAX_IMM_BITS
+ }
+ 
++/*--------------------------------------------------*/
++/*---- VSX Vector Generate PCV from Mask helpers ---*/
++/*--------------------------------------------------*/
++static void write_VSX_entry (VexGuestPPC64State* gst, UInt reg_offset,
++                             ULong *vsx_entry)
++{
++   U128* pU128_dst;
++   pU128_dst = (U128*) (((UChar*) gst) + reg_offset);
++
++   /* The U128 type is defined as an array of unsigned intetgers.  */
++   /* Writing in LE order */
++   (*pU128_dst)[0] = (UInt)(vsx_entry[1] & 0xFFFFFFFF);
++   (*pU128_dst)[1] = (UInt)(vsx_entry[1] >> 32);
++   (*pU128_dst)[2] = (UInt)(vsx_entry[0] & 0xFFFFFFFF);
++   (*pU128_dst)[3] = (UInt)(vsx_entry[0] >> 32);
++   return;
++}
++
++/* CALLED FROM GENERATED CODE */
++void vector_gen_pvc_byte_mask_dirty_helper( VexGuestPPC64State* gst,
++                                            ULong src_hi, ULong src_lo,
++                                            UInt reg_offset, UInt imm ) {
++   /* The function computes the 128-bit result then writes it directly
++      into the guest state VSX register.  */
++
++   UInt  i, shift_by, sel_shift_by, half_sel;
++   ULong index, src, result[2];
++   ULong j;
++
++   result[0] = 0;
++   result[1] = 0;
++   j = 0;
++
++   /* The algorithm in the ISA is written with IBM numbering zero on left and
++      N-1 on right. The loop index is converted to "i" to match the algorithm
++      for claritiy of matching the C code to the algorithm in the ISA.  */
++
++   if (imm == 0b00) {    // big endian expansion
++      for( index = 0; index < 16; index++) {
++         i = 15 - index;
++
++         shift_by = i*8;
++
++         if ( i >= 8) {
++            src = src_hi;
++            shift_by = shift_by - 64;
++            half_sel = 0;
++         } else {
++            src = src_lo;
++            half_sel = 1;
++         }
++
++         sel_shift_by = shift_by + 7;
++
++         if ( ((src >> sel_shift_by) & 0x1) == 1) {
++               result[half_sel] |= j << shift_by;
++            j++;
++         } else {
++            result[half_sel] |= (index + (unsigned long long)0x10) << shift_by;
++         }
++      }
++
++
++   } else if (imm == 0b01) {    // big endian compression
++      /* If IMM=0b00001, let pcv be the permute control vector required to
++         enable a left-indexed permute (vperm or xxperm) to implement a
++         compression of the sparse byte elements in a source vector specified
++         by the byte-element mask in VSR[VRB+32] into the leftmost byte
++         elements of a result vector.
++      */
++      for( index = 0; index < 16; index++) {
++         i = 15 - index;
++         shift_by = i*8;
++
++         if ( i >= 8) {
++            src = src_hi;
++            shift_by = shift_by - 64;
++            half_sel = 0;
++         } else {
++            src = src_lo;
++            half_sel = 1;
++         }
++
++         sel_shift_by = shift_by + 7;
++
++         if ( ((src >> sel_shift_by) & 0x1) == 1) {
++            if (j >= 8)
++               result[1] |= (index) << (15 - j)*8;
++            else
++               result[0] |= (index) << (7 - j)*8;
++            j++;
++         }
++      }
++      /* The algorithim says set to undefined, leave as 0
++      for( index = 3 - j; index < 4; index++) {
++         result |= (0 << (index*8));
++      }
++      */
++
++   } else if (imm == 0b10) {   //little-endian expansion
++      /* If IMM=0b00010, let pcv be the permute control vector required to
++         enable a right-indexed permute (vpermr or xxpermr) to implement an
++         expansion of the rightmost byte elements of a source vector into the
++         byte elements of a result vector specified by the byte-element mask
++         in VSR[VRB+32].  */
++      for( index = 0; index < 16; index++) {
++         i = index;
++
++         shift_by = i*8;
++
++         if ( i >= 8) {
++            src = src_hi;
++            shift_by = shift_by - 64;
++            half_sel = 0;
++         } else {
++            src = src_lo;
++            half_sel = 1;
++         }
++
++         sel_shift_by = shift_by + 7;
++
++         /* mod shift amount by 8 since src is either the upper or lower
++            64-bits.  */
++         if ( ((src >> sel_shift_by) & 0x1) == 1) {
++               result[half_sel] |= j << shift_by;
++            j++;
++         } else {
++            result[half_sel] |= (index + (unsigned long long)0x10) << shift_by;
++         }
++      }
++
++   } else if (imm == 0b11) {   //little-endian compression
++      /* If IMM=0b00011, let pcv be the permute control vector required to
++         enable a right-indexed permute (vpermr or xxpermr) to implement a
++         compression of the sparse byte elements in a source vector specified
++         by the byte-element mask in VSR[VRB+32] into the rightmost byte
++         elements of a result vector.  */
++
++      for( index = 0; index < 16; index++) {
++         i = index;
++
++         shift_by = i*8;
++
++         if ( i >= 8) {
++            src = src_hi;
++            shift_by = shift_by - 64;
++            half_sel = 0;
++         } else {
++            src = src_lo;
++            half_sel = 1;
++         }
++
++         sel_shift_by = shift_by + 7;
++
++         if ( ((src >> sel_shift_by) & 0x1) == 1) {
++            if (j >= 8)
++               result[0] |= (index) << (j-8)*8;
++            else
++               result[1] |= (index) << j*8;
++            j++;
++         }
++      }
++
++      /* The algorithim says set to undefined, leave as 0
++      for( index = 3 - j; index < 4; index++) {
++         result |= (0 << (index*8));
++      }
++      */
++
++   } else {
++      vex_printf("ERROR, vector_gen_pvc_byte_mask_dirty_helper, imm value %u not supported.\n",
++                 imm);
++      vassert(0);
++   }
++   write_VSX_entry( gst, reg_offset, result);
++}
++
++/* CALLED FROM GENERATED CODE */
++void vector_gen_pvc_hword_mask_dirty_helper( VexGuestPPC64State* gst,
++                                             ULong src_hi, ULong src_lo,
++                                             UInt reg_offset,
++                                             UInt imm ) {
++   /* The function computes the 128-bit result then writes it directly
++      into the guest state VSX register.  */
++   UInt  i, shift_by, sel_shift_by, half_sel;
++   ULong index, src, result[2];
++   ULong j;
++
++   result[0] = 0;
++   result[1] = 0;
++   j = 0;
++
++   /* The algorithm in the ISA is written with IBM numbering zero on left and
++      N-1 on right. The loop index is converted to "i" to match the algorithm
++      for claritiy of matching the C code to the algorithm in the ISA.  */
++
++   if (imm == 0b00) {    // big endian expansion
++      /* If IMM=0b00000, let pcv be the permute control vector required to
++         enable a left-indexed permute (vperm or xxperm) to implement an
++         expansion of the leftmost halfword elements of a source vector into
++         the halfword elements of a result vector specified by the halfword-
++         element mask in VSR[VRB+32].
++      */
++      for( index = 0; index < 8; index++) {
++         i = 7 - index;
++
++         shift_by = i*16;
++
++         if ( i >= 4) {
++            src = src_hi;
++            shift_by = shift_by - 64;
++            half_sel = 0;
++         } else {
++            src = src_lo;
++            half_sel = 1;
++         }
++
++         sel_shift_by = shift_by + 15;
++
++         if ( ((src >> sel_shift_by) & 0x1) == 1) {
++            // half-word i, byte 0
++            result[half_sel] |= (2*j + 0x0) << (shift_by+8);
++            // half-word i, byte 1
++            result[half_sel] |= (2*j + 0x1) << shift_by;
++            j++;
++         } else {
++            result[half_sel] |= (2*index + 0x10) << (shift_by+8);
++            result[half_sel] |= (2*index + 0x11) << shift_by;
++         }
++      }
++
++   } else if (imm == 0b01) {    // big endian expansion
++      /* If IMM=0b00001,let pcv be the permute control vector required to
++         enable a left-indexed permute (vperm or xxperm) to implement a
++         compression of the sparse halfword elements in a source vector
++         specified by the halfword-element mask in VSR[VRB+32] into the
++         leftmost halfword elements of a result vector.
++      */
++      for( index = 0; index < 8; index++) {
++         i = 7 - index;
++
++         shift_by = i*16;
++
++         if ( i >= 4) {
++            src = src_hi;
++            shift_by = shift_by - 64;
++            half_sel = 0;
++         } else {
++            src = src_lo;
++            half_sel = 1;
++         }
++
++         sel_shift_by = shift_by + 15;
++
++         if ( ((src >> sel_shift_by) & 0x1) == 1) {
++            if (j >= 4) {
++               // half-word i, byte 0
++               result[1] |= (2*index + 0x0) << ((7 - j)*16 + 8);
++               // half-word i, byte 1
++               result[1] |= (2*index + 0x1) << ((7 - j)*16);
++            } else {
++               // half-word i, byte 0
++               result[0] |= (2*index + 0x0) << ((3 - j)*16 + 8);
++               // half-word i, byte 1
++               result[0] |= (2*index + 0x1) << ((3 - j)*16);
++            }
++            j++;
++         }
++      }
++
++   } else if (imm == 0b10) {   //little-endian expansion
++      /* If IMM=0b00010, let pcv be the permute control vector required to
++         enable a right-indexed permute (vpermr or xxpermr) to implement an
++         expansion of the rightmost halfword elements of a source vector into
++         the halfword elements of a result vector specified by the halfword-
++         element mask in VSR[VRB+32].
++       */
++      for( index = 0; index < 8; index++) {
++         i = index;
++         shift_by = i*16;
++
++         if ( i >= 4) {
++            src = src_hi;
++            shift_by = shift_by - 64;
++            half_sel = 0;
++         } else {
++            src = src_lo;
++            half_sel = 1;
++         }
++
++         sel_shift_by = shift_by + 15;
++
++         if ( ((src >> sel_shift_by) & 0x1) == 1) {
++            // half-word i, byte 0
++            result[half_sel] |= (2*j + 0x00) << shift_by;
++            // half-word i, byte 1
++            result[half_sel] |= (2*j + 0x01) << (shift_by+8);
++            j++;
++
++         } else {
++            // half-word i, byte 0
++            result[half_sel] |= (2*index + 0x10) << shift_by;
++            // half-word i, byte 1
++            result[half_sel] |= (2*index + 0x11) << (shift_by+8);
++         }
++      }
++
++   } else if (imm == 0b11) {   //little-endian compression
++      /* If IMM=0b00011, let pcv be the permute control vector required to
++         enable a right-indexed permute (vpermr or xxpermr) to implement a
++         compression of the sparse halfword elements in a source vector
++         specified by the halfword-element mask in VSR[VRB+32] into the
++         rightmost halfword elements of a result vector.  */
++      for( index = 0; index < 8; index++) {
++         i = index;
++         shift_by = i*16;
++
++         if ( i >= 4) {
++            src = src_hi;
++            shift_by = shift_by - 64;
++            half_sel = 0;
++         } else {
++            src = src_lo;
++            half_sel = 1;
++         }
++
++         sel_shift_by = shift_by + 15;
++
++         if ( ((src >> sel_shift_by) & 0x1) == 1) {
++            if (j >= 4) {
++               // half-word j, byte 0
++               result[0] |= (2*index + 0x0) << ((j-4)*16);
++               // half-word j, byte 1
++               result[0] |= (2*index + 0x1) << ((j-4)*16+8);
++            } else {
++               // half-word j, byte 0
++               result[1] |= (2*index + 0x0) << (j*16);
++               // half-word j, byte 1
++               result[1] |= (2*index + 0x1) << ((j*16)+8);
++            }
++            j++;
++         }
++      }
++
++   } else {
++      vex_printf("ERROR, vector_gen_pvc_hword_dirty_mask_helper, imm value %u not supported.\n",
++                 imm);
++      vassert(0);
++   }
++   write_VSX_entry( gst, reg_offset, result);
++}
++
++/* CALLED FROM GENERATED CODE */
++void vector_gen_pvc_word_mask_dirty_helper( VexGuestPPC64State* gst,
++                                            ULong src_hi, ULong src_lo,
++                                            UInt reg_offset, UInt imm ) {
++   /* The function computes the 128-bit result then writes it directly
++      into the guest state VSX register.  */
++   UInt  i, shift_by, sel_shift_by, half_sel;
++   ULong index, src, result[2];
++   ULong j;
++
++   result[0] = 0;
++   result[1] = 0;
++   j = 0;
++
++   /* The algorithm in the ISA is written with IBM numbering zero on left and
++      N-1 on right. The loop index is converted to "i" to match the algorithm
++      for claritiy of matching the C code to the algorithm in the ISA.  */
++
++   if (imm == 0b00) {    // big endian expansion
++      /* If IMM=0b00000, let pcv be the permute control vector required to
++         enable a left-indexed permute (vperm or xxperm) to implement an
++         expansion of the leftmost word elements of a source vector into the
++         word elements of a result vector specified by the word-element mask
++         in VSR[VRB+32].
++      */
++      for( index = 0; index < 4; index++) {
++         i = 3 - index;
++
++         shift_by = i*32;
++
++         if ( i >= 2) {
++            src = src_hi;
++            shift_by = shift_by - 64;
++            half_sel = 0;
++         } else {
++            src = src_lo;
++            half_sel = 1;
++         }
++
++         sel_shift_by = shift_by + 31;
++
++         if ( ((src >> sel_shift_by) & 0x1) == 1) {
++            result[half_sel] |= (4*j+0) << (shift_by+24);  // word i, byte 0
++            result[half_sel] |= (4*j+1) << (shift_by+16);  // word i, byte 1
++            result[half_sel] |= (4*j+2) << (shift_by+8);   // word i, byte 2
++            result[half_sel] |= (4*j+3) << shift_by;       // word i, byte 3
++            j++;
++         } else {
++            result[half_sel] |= (4*index + 0x10) << (shift_by+24);
++            result[half_sel] |= (4*index + 0x11) << (shift_by+16);
++            result[half_sel] |= (4*index + 0x12) << (shift_by+8);
++            result[half_sel] |= (4*index + 0x13) << shift_by;
++         }
++      }
++
++   } else if (imm == 0b01) {    // big endian compression
++      /* If IMM=0b00001, let pcv be the permute control vector required to
++         enable a left-indexed permute (vperm or xxperm) to implement a
++         compression of the sparse word elements in a source vector specified
++         by the word-element mask in VSR[VRB+32] into the leftmost word
++         elements of a result vector.
++      */
++      for( index = 0; index < 4; index++) {
++         i = 3 - index;
++
++         shift_by = i*32;
++
++         if ( i >= 2) {
++            src = src_hi;
++            shift_by = shift_by - 64;
++            half_sel = 0;
++         } else {
++            src = src_lo;
++            half_sel = 1;
++         }
++
++         sel_shift_by = shift_by + 31;
++
++         if (((src >> sel_shift_by) & 0x1) == 1) {
++            if (j >= 2) {
++               // word j, byte 0
++               result[1] |= (4*index+0) << ((3 - j)*32 + 24);
++               // word j, byte 1
++               result[1] |= (4*index+1) << ((3 - j)*32 + 16);
++               // word j, byte 2
++               result[1] |= (4*index+2) << ((3 - j)*32 + 8);
++               // word j, byte 3
++               result[1] |= (4*index+3) << ((3 - j)*32 + 0);
++            } else {
++               result[0] |= (4*index+0) << ((1 - j)*32 + 24);
++               result[0] |= (4*index+1) << ((1 - j)*32 + 16);
++               result[0] |= (4*index+2) << ((1 - j)*32 + 8);
++               result[0] |= (4*index+3) << ((1 - j)*32 + 0);
++            }
++            j++;
++         }
++      }
++
++   } else if (imm == 0b10) {   //little-endian expansion
++      /* If IMM=0b00010, let pcv be the permute control vector required to
++         enable a right-indexed permute (vpermr or xxpermr) to implement an
++         expansion of the rightmost word elements of a source vector into the
++         word elements of a result vector specified by the word-element mask
++         in VSR[VRB+32].
++       */
++      for( index = 0; index < 4; index++) {
++         i = index;
++
++         shift_by = i*32;
++
++         if ( i >= 2) {
++            src = src_hi;
++            shift_by = shift_by - 64;
++            half_sel = 0;
++         } else {
++            src = src_lo;
++            half_sel = 1;
++         }
++
++         sel_shift_by = shift_by + 31;
++
++         if (((src >> sel_shift_by) & 0x1) == 1) {
++            result[half_sel] |= (4*j+0) << (shift_by + 0);  // word j, byte 0
++            result[half_sel] |= (4*j+1) << (shift_by + 8);  // word j, byte 1
++            result[half_sel] |= (4*j+2) << (shift_by + 16); // word j, byte 2
++            result[half_sel] |= (4*j+3) << (shift_by + 24); // word j, byte 3
++            j++;
++         } else {
++            result[half_sel] |= (4*index + 0x10) << (shift_by + 0);
++            result[half_sel] |= (4*index + 0x11) << (shift_by + 8);
++            result[half_sel] |= (4*index + 0x12) << (shift_by + 16);
++            result[half_sel] |= (4*index + 0x13) << (shift_by + 24);
++         }
++      }
++
++   } else if (imm == 0b11) {   //little-endian compression
++      /* If IMM=0b00011, let pcv be the permute control vector required to
++         enable a right-indexed permute (vpermr or xxpermr) to implement a
++         compression of the sparse word elements in a source vector specified
++         by the word-element mask in VSR[VRB+32] into the rightmost word
++         elements of a result vector.  */
++      for( index = 0; index < 4; index++) {
++         i =index;
++
++         shift_by = i*32;
++
++         if ( i >= 2) {
++            src = src_hi;
++            shift_by = shift_by - 64;
++            half_sel = 0;
++         } else {
++            src = src_lo;
++            half_sel = 1;
++         }
++
++         sel_shift_by = shift_by + 31;
++
++         if (((src >> sel_shift_by) & 0x1) == 1) {
++            if (j >= 2){
++               // word j, byte 0
++               result[0] |= (4*index + 0x0) << ((j-2)*32+0);
++               // word j, byte 1
++               result[0] |= (4*index + 0x1) << ((j-2)*32+8);
++               // word j, byte 2
++               result[0] |= (4*index + 0x2) << ((j-2)*32+16);
++               // word j, byte 3
++               result[0] |= (4*index + 0x3) << ((j-2)*32+24);
++            } else {
++               result[1] |= (4*index + 0x0) << (j*32+0);
++               result[1] |= (4*index + 0x1) << (j*32+8);
++               result[1] |= (4*index + 0x2) << (j*32+16);
++               result[1] |= (4*index + 0x3) << (j*32+24);
++            }
++            j++;
++         }
++      }
++   } else {
++      vex_printf("ERROR, vector_gen_pvc_word_mask_dirty_helper, imm value %u not supported.\n",
++                 imm);
++      vassert(0);
++   }
++
++   write_VSX_entry( gst, reg_offset, result);
++}
++
++/* CALLED FROM GENERATED CODE */
++void vector_gen_pvc_dword_mask_dirty_helper( VexGuestPPC64State* gst,
++                                             ULong src_hi, ULong src_lo,
++                                             UInt reg_offset, UInt imm ) {
++   /* The function computes the 128-bit result then writes it directly
++      into the guest state VSX register.  */
++   UInt  sel_shift_by, half_sel;
++   ULong index, src, result[2];
++   ULong j, i;
++
++   result[0] = 0;
++   result[1] = 0;
++   j = 0;
++
++   /* The algorithm in the ISA is written with IBM numbering zero on left and
++      N-1 on right. The loop index is converted to "i" to match the algorithm
++      for claritiy of matching the C code to the algorithm in the ISA.  */
++
++   if (imm == 0b00) {    // big endian expansion
++      /* If IMM=0b00000, let pcv be the permute control vector required to
++         enable a left-indexed permute (vperm or xxperm) to implement an
++         expansion of the leftmost doubleword elements of a source vector into
++         the doubleword elements of a result vector specified by the
++         doubleword-element mask in VSR[VRB+32].
++      */
++      for( index = 0; index < 2; index++) {
++         i = 1 - index;
++
++         if ( i == 1) {
++            src = src_hi;
++            half_sel = 0;
++         } else {
++            src = src_lo;
++            half_sel = 1;
++         }
++
++         sel_shift_by = 63;
++
++         if ( ((src >> sel_shift_by) & 0x1) == 1) {
++            result[half_sel] |= (8*j + 0x0) << 56; // dword i, byte 0
++            result[half_sel] |= (8*j + 0x1) << 48; // dword i, byte 1
++            result[half_sel] |= (8*j + 0x2) << 40; // dword i, byte 2
++            result[half_sel] |= (8*j + 0x3) << 32; // dword i, byte 3
++            result[half_sel] |= (8*j + 0x4) << 24; // dword i, byte 4
++            result[half_sel] |= (8*j + 0x5) << 16; // dword i, byte 5
++            result[half_sel] |= (8*j + 0x6) << 8;  // dword i, byte 6
++            result[half_sel] |= (8*j + 0x7) << 0;  // dword i, byte 7
++            j++;
++         } else {
++            result[half_sel] |= (8*index + 0x10) << 56;
++            result[half_sel] |= (8*index + 0x11) << 48;
++            result[half_sel] |= (8*index + 0x12) << 40;
++            result[half_sel] |= (8*index + 0x13) << 32;
++            result[half_sel] |= (8*index + 0x14) << 24;
++            result[half_sel] |= (8*index + 0x15) << 16;
++            result[half_sel] |= (8*index + 0x16) << 8;
++            result[half_sel] |= (8*index + 0x17) << 0;
++         }
++      }
++   } else if (imm == 0b01) {    // big endian compression
++      /* If IMM=0b00001, let pcv be the the permute control vector required to
++         enable a left-indexed permute (vperm or xxperm) to implement a
++         compression of the sparse doubleword elements in a source vector
++         specified by the doubleword-element mask in VSR[VRB+32] into the
++         leftmost doubleword elements of a result vector.
++      */
++      for( index = 0; index < 2; index++) {
++         i = 1 - index;
++
++         if ( i == 1) {
++            src = src_hi;
++            half_sel = 0;
++         } else {
++            src = src_lo;
++            half_sel = 1;
++         }
++
++         sel_shift_by = 63;
++
++         if ( ((src >> sel_shift_by) & 0x1) == 1) {
++            if (j == 1) {
++               result[1] |= (8*index + 0x0) << 56;   // double-word j, byte 0
++               result[1] |= (8*index + 0x1) << 48;   // double-word j, byte 1
++               result[1] |= (8*index + 0x2) << 40;   // double-word j, byte 2
++               result[1] |= (8*index + 0x3) << 32;   // double-word j, byte 3
++               result[1] |= (8*index + 0x4) << 24;   // double-word j, byte 4
++               result[1] |= (8*index + 0x5) << 16;   // double-word j, byte 5
++               result[1] |= (8*index + 0x6) << 8;    // double-word j, byte 6
++               result[1] |= (8*index + 0x7) << 0;    // double-word j, byte 7
++            } else {
++               result[0] |= (8*index + 0x0) << 56;   // double-word j, byte 0
++               result[0] |= (8*index + 0x1) << 48;   // double-word j, byte 1
++               result[0] |= (8*index + 0x2) << 40;   // double-word j, byte 2
++               result[0] |= (8*index + 0x3) << 32;   // double-word j, byte 3
++               result[0] |= (8*index + 0x4) << 24;   // double-word j, byte 4
++               result[0] |= (8*index + 0x5) << 16;   // double-word j, byte 5
++               result[0] |= (8*index + 0x6) << 8;    // double-word j, byte 6
++               result[0] |= (8*index + 0x7) << 0;    // double-word j, byte 7
++            }
++            j++;
++         }
++      }
++   } else if (imm == 0b10) {   //little-endian expansion
++      /* If IMM=0b00010, let pcv be the permute control vector required to
++         enable a right-indexed permute (vpermr or xxpermr) to implement an
++         expansion of the rightmost doubleword elements of a source vector
++         into the doubleword elements of a result vector specified by the
++         doubleword-element mask in VSR[VRB+32].
++       */
++
++      for( index = 0; index < 2; index++) {
++         i = index;
++
++         if ( i == 1) {
++            src = src_hi;
++            half_sel = 0;
++         } else {
++            src = src_lo;
++            half_sel = 1;
++         }
++
++         sel_shift_by = 63;
++
++         if ( ((src >> sel_shift_by) & 0x1) == 1) {
++            result[half_sel] |= (8*j+0) << 0;  // double-word i, byte 0
++            result[half_sel] |= (8*j+1) << 8;  // double-word i, byte 1
++            result[half_sel] |= (8*j+2) << 16; // double-word i, byte 2
++            result[half_sel] |= (8*j+3) << 24; // double-word i, byte 3
++            result[half_sel] |= (8*j+4) << 32; // double-word i, byte 4
++            result[half_sel] |= (8*j+5) << 40; // double-word i, byte 5
++            result[half_sel] |= (8*j+6) << 48; // double-word i, byte 6
++            result[half_sel] |= (8*j+7) << 56; // double-word i, byte 7
++            j++;
++         } else {
++            result[half_sel] |= (8*index + 0x10) << 0;
++            result[half_sel] |= (8*index + 0x11) << 8;
++            result[half_sel] |= (8*index + 0x12) << 16;
++            result[half_sel] |= (8*index + 0x13) << 24;
++            result[half_sel] |= (8*index + 0x14) << 32;
++            result[half_sel] |= (8*index + 0x15) << 40;
++            result[half_sel] |= (8*index + 0x16) << 48;
++            result[half_sel] |= (8*index + 0x17) << 56;
++         }
++      }
++
++   } else if (imm == 0b11) {   //little-endian compression
++      /* If IMM=0b00011, let pcv be the permute control vector required to
++         enable a right-indexed permute (vpermr or xxpermr) to implement a
++         compression of the sparse doubleword elements in a source vector
++         specified by the doubleword-element mask in VSR[VRB+32] into the
++         rightmost doubleword elements of a result vector.  */
++      for( index = 0; index < 2; index++) {
++         i = index;
++
++         if ( i == 1) {
++            src = src_hi;
++            half_sel = 0;
++         } else {
++            src = src_lo;
++            half_sel = 1;
++         }
++
++         sel_shift_by = 63;
++
++         if (((src >> sel_shift_by) & 0x1) == 1) {
++            if (j == 1) {
++               result[0] |= (8*index + 0x0) << 0;    // double-word j, byte 0
++               result[0] |= (8*index + 0x1) << 8;    // double-word j, byte 1
++               result[0] |= (8*index + 0x2) << 16;   // double-word j, byte 2
++               result[0] |= (8*index + 0x3) << 24;   // double-word j, byte 3
++               result[0] |= (8*index + 0x4) << 32;   // double-word j, byte 4
++               result[0] |= (8*index + 0x5) << 40;   // double-word j, byte 5
++               result[0] |= (8*index + 0x6) << 48;   // double-word j, byte 6
++               result[0] |= (8*index + 0x7) << 56;   // double-word j, byte 7
++            } else {
++               result[1] |= (8*index + 0x0) << 0;
++               result[1] |= (8*index + 0x1) << 8;
++               result[1] |= (8*index + 0x2) << 16;
++               result[1] |= (8*index + 0x3) << 24;
++               result[1] |= (8*index + 0x4) << 32;
++               result[1] |= (8*index + 0x5) << 40;
++               result[1] |= (8*index + 0x6) << 48;
++               result[1] |= (8*index + 0x7) << 56;
++            }
++            j++;
++         }
++      }
++   } else {
++      vex_printf("ERROR, vector_gen_pvc_dword_mask_helper, imm value %u not supported.\n",
++                 imm);
++      vassert(0);
++   }
++
++   write_VSX_entry( gst, reg_offset, result);
++}
+ 
+ /*------------------------------------------------*/
+ /*---- VSX Matrix signed integer GER functions ---*/
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index bcabf69dd..354be6b53 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -3322,6 +3322,7 @@ static IRExpr * locate_vector_ele_eq ( IRTemp src, IRExpr *value,
+ #define DFORM_IMMASK  0xffffffff
+ #define DSFORM_IMMASK 0xfffffffc
+ #define DQFORM_IMMASK 0xfffffff0
++#define DA8LSFORM_IMMASK 0x3fffffff   // Algebraic 8LS Dform
+ 
+ #define ISA_3_1_PREFIX_CHECK if (prefix) {if (!allow_isa_3_1) goto decode_noIsa3_1;}
+ 
+@@ -6109,6 +6110,87 @@ static void vsx_matrix_64bit_float_ger ( const VexAbiInfo* vbi,
+    stmt( IRStmt_Dirty(d) );
+ }
+ 
++static void vector_gen_pvc_mask ( const VexAbiInfo* vbi,
++                                   IRExpr *src, UInt IMM,
++                                   UInt opc2, UInt VSX_addr ) {
++   /* The function takes a 64-bit source and an immediate value.  The function
++      calls a helper to execute the xxgenpcvbm, xxgenpcvhm, xxgenpcvwm,
++      xxgenpcvdm instruction.  The instructions are not practical to do with
++      Iops.  The instruction is implemented with a dirty helper that
++      calculates the 128-bit result and writes it directly into the guest
++      state VSX register.
++  */
++   IRTemp src_hi = newTemp( Ity_I64);
++   IRTemp src_lo = newTemp( Ity_I64);
++
++   IRDirty* d;
++
++   vassert( (VSX_addr >= 0) && (VSX_addr < 64) );
++   UInt reg_offset = offsetofPPCGuestState( guest_VSR0 )
++      + sizeof(U128) * VSX_addr;
++
++   assign( src_hi, unop( Iop_V128HIto64, src ) );
++   assign( src_lo, unop( Iop_V128to64, src ) );
++
++   IRExpr** args = mkIRExprVec_5(
++      IRExpr_GSPTR(),
++      mkexpr( src_hi ),
++      mkexpr( src_lo ),
++      mkU32( reg_offset ),
++      mkU64( IMM ) );
++
++   switch( opc2 ) {
++   case 0x394: // xxgenpcvbm
++      d = unsafeIRDirty_0_N (
++         0 /*regparms*/,
++         "vector_gen_pvc_byte_mask_dirty_helper",
++         fnptr_to_fnentry( vbi,
++                           &vector_gen_pvc_byte_mask_dirty_helper ),
++         args);
++      break;
++
++   case 0x395: // xxgenpcvhm
++      d = unsafeIRDirty_0_N (
++         0 /*regparms*/,
++         "vector_gen_pvc_hword_mask_dirty_helper",
++         fnptr_to_fnentry( vbi,
++                           &vector_gen_pvc_hword_mask_dirty_helper ),
++         args);
++      break;
++
++   case 0x3B4: // xxgenpcvwm
++      d = unsafeIRDirty_0_N (
++         0 /*regparms*/,
++         "vector_gen_pvc_word_mask_dirty_helper",
++         fnptr_to_fnentry( vbi,
++                           &vector_gen_pvc_word_mask_dirty_helper ),
++         args);
++      break;
++
++   case 0x3B5: // xxgenpcvdm
++      d = unsafeIRDirty_0_N (
++         0 /*regparms*/,
++         "vector_gen_pvc_dword_mask_dirty_helper",
++         fnptr_to_fnentry( vbi,
++                           &vector_gen_pvc_dword_mask_dirty_helper ),
++         args);
++      break;
++   default:
++      vex_printf("ERROR: Unkown instruction = %u in vector_gen_pvc_mask()\n",
++                 opc2);
++      return;
++   }
++
++   d->nFxState = 1;
++   vex_bzero(&d->fxState, sizeof(d->fxState));
++   d->fxState[0].fx     = Ifx_Modify;
++   d->fxState[0].size   = sizeof(U128);
++   d->fxState[0].offset = reg_offset;
++
++   /* execute the dirty call, side-effecting guest state */
++   stmt( IRStmt_Dirty(d) );
++}
++
+ static IRExpr * UNSIGNED_CMP_GT_V128 ( IRExpr *vA, IRExpr *vB ) {
+    /* This function does an unsigned compare of two V128 values. The
+     * function is for use in 32-bit mode only as it is expensive.  The
+@@ -35227,6 +35309,54 @@ static Bool dis_vsx_accumulator_prefix ( UInt prefix, UInt theInstr,
+    return True;
+ }
+ 
++static Bool dis_vector_generate_pvc_from_mask ( UInt prefix,
++                                                UInt theInstr,
++                                                const VexAbiInfo* vbi )
++{
++   UChar XT_addr = ifieldRegXT(theInstr);
++   UChar vB_addr = ifieldRegB(theInstr);
++   IRTemp vB = newTemp( Ity_V128 );
++   UInt opc2 = ifieldOPClo10(theInstr);
++   UInt IMM = IFIELD(theInstr, (31-15), 5);    // bits[11:15]
++
++   assign( vB, getVReg( vB_addr ) );
++
++   switch( opc2 ) {
++   case 0x394:
++      DIP("xxgenpcvbm v%u,v%u,%u\n", XT_addr, vB_addr, IMM);
++      /* vector_gen_pvc_mask uses a dirty helper to calculate the result and
++         write it to the VSX result register.  */
++      vector_gen_pvc_mask( vbi, mkexpr( vB ), IMM, opc2, XT_addr );
++      break;
++
++   case 0x395:
++      DIP("xxgenpcvhm v%u,v%u,%u\n", XT_addr, vB_addr, IMM);
++      /* vector_gen_pvc_mask uses a dirty helper to calculate the result and
++         write it to the VSX result register.  */
++      vector_gen_pvc_mask( vbi, mkexpr( vB ), IMM, opc2, XT_addr );
++      break;
++
++   case 0x3B4:
++      DIP("xxgenpcvwm v%u,v%u,%u\n", XT_addr, vB_addr, IMM);
++      /* vector_gen_pvc_mask uses a dirty helper to calculate the result and
++         write it to the VSX result register.  */
++      vector_gen_pvc_mask( vbi, mkexpr( vB ), IMM, opc2, XT_addr );
++      break;
++
++   case 0x3B5:
++      DIP("xxgenpcvdm v%u,v%u,%u\n", XT_addr, vB_addr, IMM);
++      /* vector_gen_pvc_mask uses a dirty helper to calculate the result and
++         write it to the VSX result register.  */
++      vector_gen_pvc_mask( vbi, mkexpr( vB ), IMM, opc2, XT_addr );
++      break;
++
++   default:
++      return False;
++   }
++
++   return True;
++}
++
+ static Int dis_nop_prefix ( UInt prefix, UInt theInstr )
+ {
+    Bool is_prefix   = prefix_instruction( prefix );
+@@ -35748,14 +35878,9 @@ DisResult disInstr_PPC_WRK (
+       }
+       goto decode_failure;
+ 
+-   case 0x31:   // lfsu, stxv
++   case 0x31:   // lfsu
+       if (!allow_F) goto decode_noF;
+-      if (prefix_instruction( prefix )) {  // stxv
+-         if ( !(allow_isa_3_1) ) goto decode_noIsa3_1;
+-         if (dis_fp_pair_prefix( prefix, theInstr )) goto decode_success;
+-      } else {  // lfsu
+-         if (dis_fp_load( prefix, theInstr )) goto decode_success;
+-      }
++      if (dis_fp_load( prefix, theInstr )) goto decode_success;
+       goto decode_failure;
+ 
+    case 0x32:
+@@ -35842,7 +35967,6 @@ DisResult disInstr_PPC_WRK (
+    case 0x39:  // pld, lxsd, lxssp, lfdp
+       {
+          UInt opc2tmp = ifieldOPC0o2(theInstr);
+-
+          if (!allow_F) goto decode_noF;
+          if (prefix_instruction( prefix )) {   // pld
+             if ( !(allow_isa_3_1) ) goto decode_noIsa3_1;
+@@ -36125,12 +36249,6 @@ DisResult disInstr_PPC_WRK (
+             goto decode_failure;
+       }
+ 
+-      /* The vsxOpc2 returned is the "normalized" value, representing the
+-       * instructions secondary opcode as taken from the standard secondary
+-       * opcode field [21:30] (IBM notatition), even if the actual field
+-       * is non-standard.  These normalized values are given in the opcode
+-       * appendices of the ISA 2.06 document.
+-       */
+       if ( ( opc2 == 0x168 ) && ( IFIELD( theInstr, 19, 2 ) == 0 ) )// xxspltib
+       {
+          /* This is a special case of the XX1 form where the  RA, RB
+@@ -36153,6 +36271,23 @@ DisResult disInstr_PPC_WRK (
+          goto decode_failure;
+       }
+ 
++      if ( ( opc2 == 0x394 ) ||         // xxgenpcvbm
++           ( opc2 == 0x395 ) ||         // xxgenpcvwm
++           ( opc2 == 0x3B4 ) ||         // xxgenpcvhm
++           ( opc2 == 0x3B5 ) ) {        // xxgenpcvdm
++         if ( !(allow_isa_3_1) ) goto decode_noIsa3_1;
++         if (dis_vector_generate_pvc_from_mask( prefix, theInstr,
++                                                abiinfo ))
++            goto decode_success;
++         goto decode_failure;
++      }
++
++      /* The vsxOpc2 returned is the "normalized" value, representing the
++       * instructions secondary opcode as taken from the standard secondary
++       * opcode field [21:30] (IBM notatition), even if the actual field
++       * is non-standard.  These normalized values are given in the opcode
++       * appendices of the ISA 2.06 document.
++       */
+       vsxOpc2 = get_VSX60_opc2(opc2, theInstr);
+ 
+       switch (vsxOpc2) {
+commit 078f89e99b6f62e043f6138c6a7ae238befc1f2a
+Author: Carl Love <cel@us.ibm.com>
+Date:   Fri Feb 26 15:46:55 2021 -0600
+
+    PPC64: Reduced-Precision - bfloat16 Outer Product & Format Conversion Operations
+    
+    Add support for:
+    
+    pmxvbf16ger2 Prefixed Masked VSX Vector bfloat16 GER (Rank-2 Update)
+    pmxvbf16ger2pp Prefixed Masked VSX Vector bfloat16 GER (Rank-2 Update) Positive
+      multiply, Positive accumulate
+    pmxvbf16ger2pn Prefixed Masked VSX Vector bfloat16 GER (Rank-2 Update) Positive
+      multiply, Negative accumulate
+    pmxvbf16ger2np Prefixed Masked VSX Vector bfloat16 GER (Rank-2 Update) Negative
+      multiply, Positive accumulate
+    pmxvbf16ger2nn Prefixed Masked VSX Vector bfloat16 GER (Rank-2 Update) Negative
+      multiply, Negative accumulate
+    xvbf16ger2VSX Vector bfloat16 GER (Rank-2 Update)
+    xvbf16ger2pp VSX Vector bfloat16 GER (Rank-2 Update) Positive multiply, Positive
+      accumulate
+    xvbf16ger2pn VSX Vector bfloat16 GER (Rank-2 Update) Positive multiply, Negative
+      accumulate
+    xvbf16ger2np VSX Vector bfloat16 GER (Rank-2 Update) Negative multiply, Positive
+      accumulate
+    xvbf16ger2nn VSX Vector bfloat16 GER (Rank-2 Update) Negative multiply, Negative
+      accumulate
+    xvcvbf16sp VSX Vector Convert bfloat16 to Single-Precision format
+    xvcvspbf16 VSX Vector Convert with round Single-Precision to bfloat16 format
+
+diff --git a/VEX/priv/guest_ppc_defs.h b/VEX/priv/guest_ppc_defs.h
+index 54ce923a9..d36d6c07d 100644
+--- a/VEX/priv/guest_ppc_defs.h
++++ b/VEX/priv/guest_ppc_defs.h
+@@ -150,6 +150,8 @@ extern ULong convert_to_zoned_helper( ULong src_hi, ULong src_low,
+                                       ULong return_upper );
+ extern ULong convert_to_national_helper( ULong src, ULong return_upper );
+ extern ULong convert_from_zoned_helper( ULong src_hi, ULong src_low );
++extern ULong convert_from_floattobf16_helper( ULong src );
++extern ULong convert_from_bf16tofloat_helper( ULong src );
+ extern ULong convert_from_national_helper( ULong src_hi, ULong src_low );
+ extern ULong generate_C_FPCC_helper( ULong size, ULong src_hi, ULong src );
+ extern ULong extract_bits_under_mask_helper( ULong src, ULong mask,
+@@ -201,6 +203,11 @@ extern void vector_gen_pvc_dword_mask_dirty_helper( VexGuestPPC64State* gst,
+ #define XVF16GER2PN    0b10010010
+ #define XVF16GER2NP    0b01010010
+ #define XVF16GER2NN    0b11010010
++#define XVBF16GER2     0b00110011
++#define XVBF16GER2PP   0b00110010
++#define XVBF16GER2PN   0b10110010
++#define XVBF16GER2NP   0b01110010
++#define XVBF16GER2NN   0b11110010
+ #define XVF32GER       0b00011011
+ #define XVF32GERPP     0b00011010
+ #define XVF32GERPN     0b10011010
+diff --git a/VEX/priv/guest_ppc_helpers.c b/VEX/priv/guest_ppc_helpers.c
+index 75497abb9..6bcee966d 100644
+--- a/VEX/priv/guest_ppc_helpers.c
++++ b/VEX/priv/guest_ppc_helpers.c
+@@ -1905,6 +1905,125 @@ static Double conv_f16_to_double( ULong input )
+ #  endif
+ }
+ 
++#define BF16_SIGN_MASK   0x8000
++#define BF16_EXP_MASK    0x7F80
++#define BF16_FRAC_MASK   0x007F
++#define BF16_BIAS        127
++#define BF16_MAX_UNBIASED_EXP 127
++#define BF16_MIN_UNBIASED_EXP -126
++#define FLOAT_SIGN_MASK  0x80000000
++#define FLOAT_EXP_MASK   0x7F800000
++#define FLOAT_FRAC_MASK  0x007FFFFF
++#define FLOAT_FRAC_BIT8  0x00008000
++#define FLOAT_BIAS       127
++
++static Float conv_bf16_to_float( UInt input )
++{
++  /* input is 16-bit bfloat.
++     bias +127, exponent 8-bits, fraction 7-bits
++
++     output is 32-bit float.
++     bias +127, exponent 8-bits, fraction 22-bits
++  */
++
++  UInt input_exp, input_fraction, unbiased_exp;
++  UInt output_exp, output_fraction;
++  UInt sign;
++  union convert_t conv;
++
++  sign = (UInt)(input & BF16_SIGN_MASK);
++  input_exp = input & BF16_EXP_MASK;
++  unbiased_exp = (input_exp >> 7) - (UInt)BF16_BIAS;
++  input_fraction = input & BF16_FRAC_MASK;
++
++  if (((input_exp & BF16_EXP_MASK) == BF16_EXP_MASK) &&
++      (input_fraction != 0)) {
++     /* input is NaN or SNaN, exp all 1's, fraction != 0 */
++     output_exp = FLOAT_EXP_MASK;
++     output_fraction = input_fraction;
++
++  } else if(((input_exp & BF16_EXP_MASK) == BF16_EXP_MASK) &&
++      ( input_fraction == 0)) {
++     /* input is infinity,  exp all 1's, fraction = 0  */
++     output_exp = FLOAT_EXP_MASK;
++     output_fraction = 0;
++
++  } else if((input_exp == 0) && (input_fraction == 0)) {
++     /* input is zero */
++     output_exp = 0;
++     output_fraction = 0;
++
++  } else if((input_exp == 0) && (input_fraction != 0)) {
++     /* input is denormal */
++     output_fraction = input_fraction;
++     output_exp = (-(Int)BF16_BIAS + (Int)FLOAT_BIAS ) << 23;
++
++  } else {
++     /* result is normal */
++     output_exp = (unbiased_exp + FLOAT_BIAS) << 23;
++     output_fraction = input_fraction;
++  }
++
++  conv.u32 = sign << (31 - 15) | output_exp | (output_fraction << (23-7));
++  return conv.f;
++}
++
++static UInt conv_float_to_bf16( UInt input )
++{
++   /* input is 32-bit float stored as unsigned 32-bit.
++      bias +127, exponent 8-bits, fraction 23-bits
++
++      output is 16-bit bfloat.
++      bias +127, exponent 8-bits, fraction 7-bits
++
++      If the unbiased exponent of the input is greater than the max floating
++      point unbiased exponent value, the result of the floating point 16-bit
++      value is infinity.
++   */
++
++   UInt input_exp, input_fraction;
++   UInt output_exp, output_fraction;
++   UInt result, sign;
++
++   sign = input & FLOAT_SIGN_MASK;
++   input_exp = input & FLOAT_EXP_MASK;
++   input_fraction = input & FLOAT_FRAC_MASK;
++
++   if (((input_exp & FLOAT_EXP_MASK) == FLOAT_EXP_MASK) &&
++       (input_fraction != 0)) {
++      /* input is NaN or SNaN, exp all 1's, fraction != 0 */
++      output_exp = BF16_EXP_MASK;
++      output_fraction = (ULong)input_fraction >> (23 - 7);
++   } else if (((input_exp & FLOAT_EXP_MASK) == FLOAT_EXP_MASK) &&
++              ( input_fraction == 0)) {
++      /* input is infinity,  exp all 1's, fraction = 0  */
++      output_exp = BF16_EXP_MASK;
++      output_fraction = 0;
++   } else if ((input_exp == 0) && (input_fraction == 0)) {
++      /* input is zero */
++      output_exp = 0;
++      output_fraction = 0;
++   } else if ((input_exp == 0) && (input_fraction != 0)) {
++      /* input is denormal */
++      output_exp = 0;
++      output_fraction = (ULong)input_fraction >> (23 - 7);
++   } else {
++      /* result is normal */
++      output_exp = (input_exp - BF16_BIAS + FLOAT_BIAS) >> (23 - 7);
++      output_fraction = (ULong)input_fraction >> (23 - 7);
++
++      /* Round result. Look at the 8th bit position of the 32-bit floating
++         pointt fraction.  The F16 fraction is only 7 bits wide so if the 8th
++         bit of the F32 is a 1 we need to round up by adding 1 to the output
++         fraction.  */
++      if ((input_fraction & FLOAT_FRAC_BIT8) == FLOAT_FRAC_BIT8)
++         /* Round the F16 fraction up by 1 */
++         output_fraction = output_fraction + 1;
++   }
++
++   result = sign >> (31 - 15) | output_exp | output_fraction;
++   return result;
++}
+ 
+ static Float conv_double_to_float( Double src )
+ {
+@@ -1942,6 +2061,36 @@ static Float negate_float( Float input )
+       return -input;
+ }
+ 
++/* This C-helper takes a vector of two 32-bit floating point values
++ * and returns a vector containing two 16-bit bfloats.
++   input:    word0           word1
++   output  0x0   hword1   0x0    hword3
++   Called from generated code.
++ */
++ULong convert_from_floattobf16_helper( ULong src ) {
++   ULong resultHi, resultLo;
++
++   resultHi = (ULong)conv_float_to_bf16( (UInt)(src >> 32));
++   resultLo = (ULong)conv_float_to_bf16( (UInt)(src & 0xFFFFFFFF));
++   return (resultHi << 32) | resultLo;
++
++}
++
++/* This C-helper takes a vector of two 16-bit bfloating point values
++ * and returns a vector containing one 32-bit float.
++   input:   0x0   hword1   0x0    hword3
++   output:    word0           word1
++ */
++ULong convert_from_bf16tofloat_helper( ULong src ) {
++   ULong result;
++   union convert_t conv;
++   conv.f = conv_bf16_to_float( (UInt)(src >> 32) );
++   result = (ULong) conv.u32;
++   conv.f = conv_bf16_to_float( (UInt)(src & 0xFFFFFFFF));
++   result = (result << 32) | (ULong) conv.u32;
++   return result;
++ }
++
+ void vsx_matrix_16bit_float_ger_dirty_helper( VexGuestPPC64State* gst,
+                                               UInt offset_ACC,
+                                               ULong srcA_hi, ULong srcA_lo,
+@@ -2002,24 +2151,44 @@ void vsx_matrix_16bit_float_ger_dirty_helper( VexGuestPPC64State* gst,
+          srcB_word[0][j] = (UInt)((srcB_lo >> (16-16*j)) & mask);
+       }
+ 
++      /* Note the isa is not consistent in the src naming.  Will use the
++         naming src10, src11, src20, src21 used with xvf16ger2 instructions.
++      */
+       for( j = 0; j < 4; j++) {
+          if (((pmsk >> 1) & 0x1) == 0) {
+             src10 = 0;
+             src20 = 0;
+          } else {
+-            src10 = conv_f16_to_double((ULong)srcA_word[i][0]);
+-            src20 = conv_f16_to_double((ULong)srcB_word[j][0]);
++            if (( inst  == XVF16GER2 ) || ( inst  == XVF16GER2PP )
++                || ( inst == XVF16GER2PN ) || ( inst  == XVF16GER2NP )
++                || ( inst == XVF16GER2NN )) {
++               src10 = conv_f16_to_double((ULong)srcA_word[i][0]);
++               src20 = conv_f16_to_double((ULong)srcB_word[j][0]);
++            } else {
++               /* Input is in bfloat format, result is stored in the
++                  "traditional" 64-bit float format. */
++               src10 = (double)conv_bf16_to_float((ULong)srcA_word[i][0]);
++               src20 = (double)conv_bf16_to_float((ULong)srcB_word[j][0]);
++            }
+          }
+ 
+          if ((pmsk & 0x1) == 0) {
+             src11 = 0;
+             src21 = 0;
+          } else {
+-            src11 = conv_f16_to_double((ULong)srcA_word[i][1]);
+-            src21 = conv_f16_to_double((ULong)srcB_word[j][1]);
++            if (( inst  == XVF16GER2 ) || ( inst  == XVF16GER2PP )
++                || ( inst == XVF16GER2PN ) || ( inst  == XVF16GER2NP )
++                || ( inst == XVF16GER2NN )) {
++               src11 = conv_f16_to_double((ULong)srcA_word[i][1]);
++               src21 = conv_f16_to_double((ULong)srcB_word[j][1]);
++            } else {
++               /* Input is in bfloat format, result is stored in the
++                  "traditional" 64-bit float format. */
++               src11 = (double)conv_bf16_to_float((ULong)srcA_word[i][1]);
++               src21 = (double)conv_bf16_to_float((ULong)srcB_word[j][1]);
++            }
+          }
+ 
+-
+          prod = src10 * src20;
+          msum = prod + src11 * src21;
+ 
+@@ -2027,26 +2196,26 @@ void vsx_matrix_16bit_float_ger_dirty_helper( VexGuestPPC64State* gst,
+             /* Note, we do not track the exception handling bits
+                ox, ux, xx, si, mz, vxsnan and vximz in the FPSCR.  */
+ 
+-            if ( inst == XVF16GER2 )
++            if (( inst == XVF16GER2 ) || ( inst == XVBF16GER2 ) )
+                result[j] = reinterpret_float_as_int(
+                   conv_double_to_float(msum) );
+ 
+-            else if ( inst == XVF16GER2PP )
++            else if (( inst == XVF16GER2PP ) ||  (inst == XVBF16GER2PP ))
+                result[j] = reinterpret_float_as_int(
+                   conv_double_to_float(msum)
+                   + acc_word[j] );
+ 
+-            else if ( inst == XVF16GER2PN )
++            else if (( inst == XVF16GER2PN ) || ( inst == XVBF16GER2PN ))
+                result[j] = reinterpret_float_as_int(
+                   conv_double_to_float(msum)
+                   + negate_float( acc_word[j] ) );
+ 
+-            else if ( inst == XVF16GER2NP )
++            else if (( inst == XVF16GER2NP ) || ( inst == XVBF16GER2NP ))
+                result[j] = reinterpret_float_as_int(
+                   conv_double_to_float( negate_double( msum ) )
+                   + acc_word[j] );
+ 
+-            else if ( inst == XVF16GER2NN )
++            else if (( inst == XVF16GER2NN ) || ( inst == XVBF16GER2NN ))
+                result[j] = reinterpret_float_as_int(
+                   conv_double_to_float( negate_double( msum ) )
+                   + negate_float( acc_word[j] ) );
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index 354be6b53..20553a539 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -5688,6 +5688,57 @@ static IRExpr * convert_from_national ( const VexAbiInfo* vbi, IRExpr *src ) {
+    return mkexpr( result );
+ }
+ 
++static IRExpr * vector_convert_floattobf16 ( const VexAbiInfo* vbi,
++                                             IRExpr *src ) {
++   /* The function takes 128-bit value containing four 32-bit floats and
++      returns a 128-bit value containint four 16-bit bfloats in the lower
++      halfwords. */
++
++   IRTemp resultHi = newTemp( Ity_I64);
++   IRTemp resultLo = newTemp( Ity_I64);
++
++   assign( resultHi,
++           mkIRExprCCall( Ity_I64, 0 /*regparms*/,
++                          "vector_convert_floattobf16_helper",
++                          fnptr_to_fnentry( vbi,
++                                            &convert_from_floattobf16_helper ),
++                          mkIRExprVec_1( unop( Iop_V128HIto64, src ) ) ) );
++
++   assign( resultLo,
++           mkIRExprCCall( Ity_I64, 0 /*regparms*/,
++                          "vector_convert_floattobf16_helper",
++                          fnptr_to_fnentry( vbi,
++                                            &convert_from_floattobf16_helper ),
++                          mkIRExprVec_1( unop( Iop_V128to64, src ) ) ) );
++
++   return binop( Iop_64HLtoV128, mkexpr( resultHi ), mkexpr( resultLo ) );
++}
++
++static IRExpr * vector_convert_bf16tofloat ( const VexAbiInfo* vbi,
++                                             IRExpr *src ) {
++   /* The function takes 128-bit value containing four 16-bit bfloats in
++      the lower halfwords and returns a 128-bit value containint four
++      32-bit floats. */
++   IRTemp resultHi = newTemp( Ity_I64);
++   IRTemp resultLo = newTemp( Ity_I64);
++
++   assign( resultHi,
++           mkIRExprCCall( Ity_I64, 0 /*regparms*/,
++                          "vector_convert_bf16tofloat_helper",
++                          fnptr_to_fnentry( vbi,
++                                            &convert_from_bf16tofloat_helper ),
++                          mkIRExprVec_1( unop( Iop_V128HIto64, src ) ) ) );
++
++   assign( resultLo,
++           mkIRExprCCall( Ity_I64, 0 /*regparms*/,
++                          "vector_convert_bf16tofloat_helper",
++                          fnptr_to_fnentry( vbi,
++                                            &convert_from_bf16tofloat_helper ),
++                          mkIRExprVec_1( unop( Iop_V128to64, src ) ) ) );
++
++   return binop( Iop_64HLtoV128, mkexpr( resultHi ), mkexpr( resultLo ) );
++}
++
+ static IRExpr * popcnt64 ( const VexAbiInfo* vbi,
+                            IRExpr *src ){
+    /* The function takes a 64-bit source and counts the number of bits in the
+@@ -5936,6 +5987,7 @@ static void vsx_matrix_ger ( const VexAbiInfo* vbi,
+    case XVI16GER2:
+    case XVI16GER2S:
+    case XVF16GER2:
++   case XVBF16GER2:
+    case XVF32GER:
+          AT_fx = Ifx_Write;
+          break;
+@@ -5943,6 +5995,10 @@ static void vsx_matrix_ger ( const VexAbiInfo* vbi,
+    case XVI8GER4PP:
+    case XVI16GER2PP:
+    case XVI16GER2SPP:
++   case XVBF16GER2PP:
++   case XVBF16GER2PN:
++   case XVBF16GER2NP:
++   case XVBF16GER2NN:
+    case XVF16GER2PP:
+    case XVF16GER2PN:
+    case XVF16GER2NP:
+@@ -23899,6 +23955,24 @@ dis_vxs_misc( UInt prefix, UInt theInstr, const VexAbiInfo* vbi, UInt opc2,
+                                     mkexpr( sub_element1 ),
+                                     mkexpr( sub_element0 ) ) ) );
+ 
++         } else if ((inst_select == 16) && !prefix) {
++            IRTemp result = newTemp(Ity_V128);
++            UChar xT_addr = ifieldRegXT ( theInstr );
++            UChar xB_addr = ifieldRegXB ( theInstr );
++            /* Convert 16-bit bfloat to 32-bit float, not a prefix inst */
++            DIP("xvcvbf16sp v%u,v%u\n", xT_addr, xB_addr);
++            assign( result, vector_convert_bf16tofloat( vbi, mkexpr( vB ) ) );
++            putVSReg( XT, mkexpr( result) );
++
++         } else if ((inst_select == 17) && !prefix) {
++            IRTemp result = newTemp(Ity_V128);
++            UChar xT_addr = ifieldRegXT ( theInstr );
++            UChar xB_addr = ifieldRegXB ( theInstr );
++            /* Convert 32-bit float to 16-bit bfloat, not a prefix inst */
++            DIP("xvcvspbf16 v%u,v%u\n", xT_addr, xB_addr);
++            assign( result, vector_convert_floattobf16( vbi, mkexpr( vB ) ) );
++            putVSReg( XT, mkexpr( result) );
++
+          } else if (inst_select == 23) {
+             DIP("xxbrd v%u, v%u\n", (UInt)XT, (UInt)XB);
+ 
+@@ -34956,6 +35030,41 @@ static Bool dis_vsx_accumulator_prefix ( UInt prefix, UInt theInstr,
+                          getVSReg( rB_addr ), AT,
+                          ( ( inst_prefix << 8 ) | XO ) );
+          break;
++      case XVBF16GER2:
++         DIP("xvbf16ger2 %u,r%u, r%u\n", AT, rA_addr, rB_addr);
++         vsx_matrix_ger( vbi, MATRIX_16BIT_FLOAT_GER,
++                         getVSReg( rA_addr ),
++                         getVSReg( rB_addr ), AT,
++                         ( ( inst_prefix << 8 ) | XO ) );
++         break;
++      case XVBF16GER2PP:
++         DIP("xvbf16ger2pp %u,r%u, r%u\n", AT, rA_addr, rB_addr);
++         vsx_matrix_ger( vbi, MATRIX_16BIT_FLOAT_GER,
++                         getVSReg( rA_addr ),
++                         getVSReg( rB_addr ), AT,
++                         ( ( inst_prefix << 8 ) | XO ) );
++         break;
++      case XVBF16GER2PN:
++         DIP("xvbf16ger2pn %u,r%u, r%u\n", AT, rA_addr, rB_addr);
++         vsx_matrix_ger( vbi, MATRIX_16BIT_FLOAT_GER,
++                         getVSReg( rA_addr ),
++                         getVSReg( rB_addr ), AT,
++                         ( ( inst_prefix << 8 ) | XO ) );
++         break;
++      case XVBF16GER2NP:
++         DIP("xvbf16ger2np %u,r%u, r%u\n", AT, rA_addr, rB_addr);
++         vsx_matrix_ger( vbi, MATRIX_16BIT_FLOAT_GER,
++                         getVSReg( rA_addr ),
++                         getVSReg( rB_addr ), AT,
++                         ( ( inst_prefix << 8 ) | XO ) );
++         break;
++      case XVBF16GER2NN:
++         DIP("xvbf16ger2nn %u,r%u, r%u\n", AT, rA_addr, rB_addr);
++         vsx_matrix_ger( vbi, MATRIX_16BIT_FLOAT_GER,
++                         getVSReg( rA_addr ),
++                         getVSReg( rB_addr ), AT,
++                         ( ( inst_prefix << 8 ) | XO ) );
++         break;
+       case XVF32GER:
+          DIP("xvf32ger %u,r%u, r%u\n", AT, rA_addr, rB_addr);
+          vsx_matrix_ger( vbi, MATRIX_32BIT_FLOAT_GER,
+@@ -35106,6 +35215,61 @@ static Bool dis_vsx_accumulator_prefix ( UInt prefix, UInt theInstr,
+                          AT,
+                          ( (MASKS << 9 ) | ( inst_prefix << 8 ) | XO ) );
+          break;
++      case XVBF16GER2:
++         PMSK = IFIELD( prefix, 14, 2);
++         XMSK = IFIELD( prefix, 4, 4);
++         YMSK = IFIELD( prefix, 0, 4);
++         DIP("pmxvbf16ger2 %u,r%u, r%u\n", AT, rA_addr, rB_addr);
++         vsx_matrix_ger( vbi, MATRIX_16BIT_FLOAT_GER,
++                         getVSReg( rA_addr ),
++                         getVSReg( rB_addr ),
++                         AT, ( (MASKS << 9 )
++                               | ( inst_prefix << 8 ) | XO ) );
++         break;
++      case XVBF16GER2PP:
++         PMSK = IFIELD( prefix, 14, 2);
++         XMSK = IFIELD( prefix, 4, 4);
++         YMSK = IFIELD( prefix, 0, 4);
++         DIP("pmxvbf16ger2pp %u,r%u, r%u\n", AT, rA_addr, rB_addr);
++         vsx_matrix_ger( vbi, MATRIX_16BIT_FLOAT_GER,
++                         getVSReg( rA_addr ),
++                         getVSReg( rB_addr ),
++                         AT, ( (MASKS << 9 )
++                               | ( inst_prefix << 8 ) | XO ) );
++         break;
++      case XVBF16GER2PN:
++         PMSK = IFIELD( prefix, 14, 2);
++         XMSK = IFIELD( prefix, 4, 4);
++         YMSK = IFIELD( prefix, 0, 4);
++         DIP("pmxvbf16ger2pn %u,r%u, r%u\n", AT, rA_addr, rB_addr);
++         vsx_matrix_ger( vbi, MATRIX_16BIT_FLOAT_GER,
++                         getVSReg( rA_addr ),
++                         getVSReg( rB_addr ),
++                         AT, ( (MASKS << 9 )
++                               | ( inst_prefix << 8 ) | XO ) );
++         break;
++      case XVBF16GER2NP:
++         PMSK = IFIELD( prefix, 14, 2);
++         XMSK = IFIELD( prefix, 4, 4);
++         YMSK = IFIELD( prefix, 0, 4);
++         DIP("pmxvbf16ger2np %u,r%u, r%u\n", AT, rA_addr, rB_addr);
++         vsx_matrix_ger( vbi, MATRIX_16BIT_FLOAT_GER,
++                         getVSReg( rA_addr ),
++                         getVSReg( rB_addr ),
++                         AT, ( (MASKS << 9 )
++                               | ( inst_prefix << 8 ) | XO ) );
++         break;
++      case XVBF16GER2NN:
++         PMSK = IFIELD( prefix, 14, 2);
++         XMSK = IFIELD( prefix, 4, 4);
++         YMSK = IFIELD( prefix, 0, 4);
++         DIP("pmxvbf16ger2nn %u,r%u, r%u\n", AT, rA_addr, rB_addr);
++         vsx_matrix_ger( vbi, MATRIX_16BIT_FLOAT_GER,
++                         getVSReg( rA_addr ),
++                         getVSReg( rB_addr ),
++                         AT, ( (MASKS << 9 )
++                               | ( inst_prefix << 8 ) | XO ) );
++         break;
+       case XVF16GER2:
+          PMSK = IFIELD( prefix, 14, 2);
+          XMSK = IFIELD( prefix, 4, 4);
+@@ -36181,6 +36345,11 @@ DisResult disInstr_PPC_WRK (
+              (opc2 == XVI4GER8PP)     ||       // xvi4ger8pp
+              (opc2 == XVI8GER4)       ||       // xvi8ger4
+              (opc2 == XVI8GER4PP)     ||       // xvi8ger4pp
++             (opc2 == XVBF16GER2)     ||       // xvbf16ger2
++             (opc2 == XVBF16GER2PP)   ||       // xvbf16ger2pp
++             (opc2 == XVBF16GER2PN)   ||       // xvbf16ger2pn
++             (opc2 == XVBF16GER2NP)   ||       // xvbf16ger2np
++             (opc2 == XVBF16GER2NN)   ||       // xvbf16ger2nn
+              (opc2 == XVF16GER2)      ||       // xvf16ger2
+              (opc2 == XVF16GER2PP)    ||       // xvf16ger2pp
+              (opc2 == XVF16GER2PN)    ||       // xvf16ger2pn
+commit e09fdaf569b975717465ed8043820d0198d4d47d
+Author: Carl Love <cel@us.ibm.com>
+Date:   Fri Feb 26 16:05:12 2021 -0600
+
+    PPC64: Reduced-Precision: Missing Integer-based Outer Product Operations
+    
+    Add support for:
+    
+    pmxvi16ger2 VSX Vector 16-bit Signed Integer GER (rank-2 update), Prefixed
+       Masked
+    pmxvi16ger2pp VSX Vector 16-bit Signed Integer GER (rank-2 update) (Positive
+       multiply, Positive accumulate), Prefixed Masked
+    pmxvi8ger4spp VSX Vector 8-bit Signed/Unsigned Integer GER (rank-4 update) with
+       Saturation (Positive multiply, Positive accumulate), Prefixed Masked
+    xvi16ger2 VSX Vector 16-bit Signed Integer GER (rank-2 update)
+    xvi16ger2pp VSX Vector 16-bit Signed Integer GER (rank-2 update) (Positive
+       multiply, Positive accumulate)
+    xvi8ger4spp VSX Vector 8-bit Signed/Unsigned Integer GER (rank-4 update) with
+       Saturation (Positive multiply, Positive accumulate)
+
+diff --git a/VEX/priv/guest_ppc_helpers.c b/VEX/priv/guest_ppc_helpers.c
+index 6bcee966d..d8131eb60 100644
+--- a/VEX/priv/guest_ppc_helpers.c
++++ b/VEX/priv/guest_ppc_helpers.c
+@@ -1446,16 +1446,16 @@ static UInt exts4( UInt src)
+       return src & 0xF;        /* make sure high order bits are zero */
+ }
+ 
+-static UInt exts8( UInt src)
++static ULong exts8( UInt src)
+ {
+-   /* Input is an 8-bit value.  Extend bit 7 to bits [31:8] */
++   /* Input is an 8-bit value.  Extend bit 7 to bits [63:8] */
+    if (( src >> 7 ) & 0x1)
+-      return src | 0xFFFFFF00; /* sign bit is a 1, extend */
++      return src | 0xFFFFFFFFFFFFFF00ULL; /* sign bit is a 1, extend */
+    else
+       return src & 0xFF;        /* make sure high order bits are zero */
+ }
+ 
+-static UInt extz8( UInt src)
++static ULong extz8( UInt src)
+ {
+    /* Input is an 8-bit value.  Extend src on the left with zeros.  */
+    return src & 0xFF;        /* make sure high order bits are zero */
+@@ -1662,12 +1662,12 @@ void vsx_matrix_8bit_ger_dirty_helper( VexGuestPPC64State* gst,
+                                        ULong srcB_hi, ULong srcB_lo,
+                                        UInt masks_inst )
+ {
+-   UInt i, j, mask, sum, inst, acc_entry, prefix_inst;
++   UInt i, j, mask, inst, acc_entry, prefix_inst;
+ 
+    UInt srcA_bytes[4][4];   /* word, byte */
+    UInt srcB_bytes[4][4];   /* word, byte */
+    UInt acc_word[4];
+-   UInt prod0, prod1, prod2, prod3;
++   ULong prod0, prod1, prod2, prod3, sum;
+    UInt result[4];
+    UInt pmsk = 0;
+    UInt xmsk = 0;
+@@ -1742,10 +1742,13 @@ void vsx_matrix_8bit_ger_dirty_helper( VexGuestPPC64State* gst,
+             sum = prod0 + prod1 + prod2 + prod3;
+ 
+             if ( inst == XVI8GER4 )
+-               result[j] = sum;
++               result[j] = chop64to32( sum );
+ 
+             else if ( inst == XVI8GER4PP )
+-               result[j] = sum + acc_word[j];
++               result[j] = chop64to32( sum + acc_word[j] );
++
++            else if ( inst == XVI8GER4SPP )
++               result[j] = clampS64toS32(sum + acc_word[j]);
+ 
+          } else {
+             result[j] = 0;
+@@ -1821,7 +1824,7 @@ void vsx_matrix_16bit_ger_dirty_helper( VexGuestPPC64State* gst,
+             else
+                prod1 = exts16to64( srcA_word[i][1] )
+                   * exts16to64( srcB_word[j][1] );
+-            /* sum is UInt so the result is choped to 32-bits */
++
+             sum = prod0 + prod1;
+ 
+             if ( inst == XVI16GER2 )
+@@ -1830,13 +1833,11 @@ void vsx_matrix_16bit_ger_dirty_helper( VexGuestPPC64State* gst,
+             else if ( inst == XVI16GER2S )
+                result[j] = clampS64toS32( sum );
+ 
+-            else if ( inst == XVI16GER2PP ) {
++            else if ( inst == XVI16GER2PP )
+                result[j] = chop64to32( sum + acc_word[j] );
+-            }
+ 
+-            else if ( inst == XVI16GER2SPP ) {
++            else if ( inst == XVI16GER2SPP )
+                result[j] = clampS64toS32( sum + acc_word[j] );
+-            }
+ 
+          } else {
+             result[j] = 0;
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index 20553a539..e54f0f389 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -5993,6 +5993,7 @@ static void vsx_matrix_ger ( const VexAbiInfo* vbi,
+          break;
+    case XVI4GER8PP:
+    case XVI8GER4PP:
++   case XVI8GER4SPP:
+    case XVI16GER2PP:
+    case XVI16GER2SPP:
+    case XVBF16GER2PP:
+@@ -34983,6 +34984,12 @@ static Bool dis_vsx_accumulator_prefix ( UInt prefix, UInt theInstr,
+                          getVSReg( rA_addr ), getVSReg( rB_addr ),
+                          AT, ( ( inst_prefix << 8 ) | XO ) );
+          break;
++      case XVI8GER4SPP:
++         DIP("xvi8ger4spp %u,r%u, r%u\n", AT, rA_addr, rB_addr);
++         vsx_matrix_ger( vbi, MATRIX_8BIT_INT_GER,
++                         getVSReg( rA_addr ), getVSReg( rB_addr ),
++                         AT, ( ( inst_prefix << 8 ) | XO ) );
++         break;
+       case XVI16GER2S:
+          DIP("xvi16ger2s %u,r%u, r%u\n", AT, rA_addr, rB_addr);
+          vsx_matrix_ger( vbi, MATRIX_16BIT_INT_GER,
+@@ -34995,6 +35002,19 @@ static Bool dis_vsx_accumulator_prefix ( UInt prefix, UInt theInstr,
+                          getVSReg( rA_addr ), getVSReg( rB_addr ),
+                          AT, ( ( inst_prefix << 8 ) | XO ) );
+          break;
++      case XVI16GER2:
++         DIP("xvi16ger2 %u,r%u, r%u\n", AT, rA_addr, rB_addr);
++         vsx_matrix_ger( vbi, MATRIX_16BIT_INT_GER,
++                         getVSReg( rA_addr ), getVSReg( rB_addr ),
++                         AT, ( ( inst_prefix << 8 ) | XO ) );
++         break;
++      case XVI16GER2PP:
++         DIP("xvi16ger2pp %u,r%u, r%u\n", AT, rA_addr, rB_addr);
++         vsx_matrix_ger( vbi, MATRIX_16BIT_INT_GER,
++                         getVSReg( rA_addr ), getVSReg( rB_addr ),
++                         AT, ( ( inst_prefix << 8 ) | XO ) );
++         break;
++
+       case XVF16GER2:
+          DIP("xvf16ger2 %u,r%u, r%u\n", AT, rA_addr, rB_addr);
+          vsx_matrix_ger( vbi, MATRIX_16BIT_FLOAT_GER,
+@@ -35193,6 +35213,39 @@ static Bool dis_vsx_accumulator_prefix ( UInt prefix, UInt theInstr,
+                          AT,
+                          ( (MASKS << 9 ) | ( inst_prefix << 8 ) | XO ) );
+          break;
++      case XVI8GER4SPP:
++         PMSK = IFIELD( prefix, 12, 4);
++         XMSK = IFIELD( prefix, 4, 4);
++         YMSK = IFIELD( prefix, 0, 4);
++         DIP("pmxvi8ger4spp %u,r%u, r%u,%u,%u,%u\n",
++             AT, rA_addr, rB_addr, XMSK, YMSK, PMSK);
++         vsx_matrix_ger( vbi, MATRIX_8BIT_INT_GER,
++                         getVSReg( rA_addr ), getVSReg( rB_addr ),
++                         AT,
++                         ( (MASKS << 9 ) | ( inst_prefix << 8 ) | XO ) );
++         break;
++      case XVI16GER2:
++         PMSK = IFIELD( prefix, 12, 4);
++         XMSK = IFIELD( prefix, 4, 4);
++         YMSK = IFIELD( prefix, 0, 4);
++         DIP("pmxvi16ger2 %u,r%u, r%u,%u,%u,%u\n",
++             AT, rA_addr, rB_addr, XMSK, YMSK, PMSK);
++         vsx_matrix_ger( vbi, MATRIX_16BIT_INT_GER,
++                         getVSReg( rA_addr ), getVSReg( rB_addr ),
++                         AT,
++                         ( (MASKS << 9 ) | ( inst_prefix << 8 ) | XO ) );
++         break;
++      case XVI16GER2PP:
++         PMSK = IFIELD( prefix, 12, 4);
++         XMSK = IFIELD( prefix, 4, 4);
++         YMSK = IFIELD( prefix, 0, 4);
++         DIP("pmxvi16ger2pp %u,r%u, r%u,%u,%u,%u\n",
++             AT, rA_addr, rB_addr, XMSK, YMSK, PMSK);
++         vsx_matrix_ger( vbi, MATRIX_16BIT_INT_GER,
++                         getVSReg( rA_addr ), getVSReg( rB_addr ),
++                         AT,
++                         ( (MASKS << 9 ) | ( inst_prefix << 8 ) | XO ) );
++         break;
+       case XVI16GER2S:
+          PMSK = IFIELD( prefix, 14, 2);
+          XMSK = IFIELD( prefix, 4, 4);
+@@ -36345,6 +36398,9 @@ DisResult disInstr_PPC_WRK (
+              (opc2 == XVI4GER8PP)     ||       // xvi4ger8pp
+              (opc2 == XVI8GER4)       ||       // xvi8ger4
+              (opc2 == XVI8GER4PP)     ||       // xvi8ger4pp
++             (opc2 == XVI8GER4SPP)    ||       // xvi8ger4spp
++             (opc2 == XVI16GER2)      ||       // xvi16ger2
++             (opc2 == XVI16GER2PP)    ||       // xvi16ger2pp
+              (opc2 == XVBF16GER2)     ||       // xvbf16ger2
+              (opc2 == XVBF16GER2PP)   ||       // xvbf16ger2pp
+              (opc2 == XVBF16GER2PN)   ||       // xvbf16ger2pn
diff --git a/valgrind.spec b/valgrind.spec
index 236bc77..5aeaedd 100644
--- a/valgrind.spec
+++ b/valgrind.spec
@@ -3,7 +3,7 @@
 Summary: Tool for finding memory management bugs in programs
 Name: %{?scl_prefix}valgrind
 Version: 3.17.0
-Release: 2%{?dist}
+Release: 3%{?dist}
 Epoch: 1
 License: GPLv2+
 URL: http://www.valgrind.org/
@@ -88,6 +88,24 @@ Patch4: valgrind-3.16.0-some-stack-protector.patch
 # Add some -Wl,z,now.
 Patch5: valgrind-3.16.0-some-Wl-z-now.patch
 
+# Upstream commits that provide additional ppc64le ISA 3.1 support
+# commit 3cc0232c46a5905b4a6c2fbd302b58bf5f90b3d5
+# PPC64: ISA 3.1 VSX PCV Generate Operations
+# commit 078f89e99b6f62e043f6138c6a7ae238befc1f2a
+# PPC64: Reduced-Precision bfloat16 Outer Product & Format Conversion Operations
+# commit e09fdaf569b975717465ed8043820d0198d4d47d
+# PPC64: Reduced-Precision: Missing Integer-based Outer Product Operations
+Patch6: valgrind-3.17.0-ppc64-isa-3.1.patch
+
+# Upstream commits that provide extra tests for ppc64le ISA 3.1 support
+# commit c8fa838be405d7ac43035dcf675bf490800c26ec
+# Reduced Precision bfloat16 outer product tests
+# commit 4bcc6c8a97c10c4dd41b35bd3b3035ec4037d524
+# VSX Permute Control Vector Generate Operation tests.
+# commit c589b652939655090c005a982a71f50c489fb5ce
+# Reduced precision Missing Integer based outer tests
+Patch7: valgrind-3.17.0-ppc64-isa-3.1-tests.patch
+
 BuildRequires: make
 BuildRequires: glibc-devel
 
@@ -227,6 +245,10 @@ Valgrind User Manual for details.
 %patch5 -p1
 %endif
 
+%patch6 -p1
+%patch7 -p1
+
+
 %build
 # LTO triggers undefined symbols in valgrind.  Valgrind has a --enable-lto
 # configure time option, but that doesn't seem to help.
@@ -451,6 +473,9 @@ fi
 %endif
 
 %changelog
+* Tue May  4 2021 Mark Wielaard <mjw@fedoraproject.org> - 3.17.0-3
+- Add valgrind-3.17.0-ppc64-isa-3.1{,tests}.patch
+
 * Fri Apr 16 2021 Mark Wielaard <mjw@fedoraproject.org> - 3.17.0-2
 - Add CI gating