]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Power PC Add test suite support for ISA 3.0, part 1
authorCarl Love <cel@us.ibm.com>
Tue, 29 Mar 2016 21:47:00 +0000 (21:47 +0000)
committerCarl Love <cel@us.ibm.com>
Tue, 29 Mar 2016 21:47:00 +0000 (21:47 +0000)
The test suite support for the Power PC ISA 3.0 support is added in this commit.  The
following files were added:

   none/tests/ppc64/ppc64_helpers.h
   none/tests/ppc64/test_isa_3_0.c
   none/tests/ppc64/test_isa_3_0_altivec.stderr.exp
   none/tests/ppc64/test_isa_3_0_altivec.stdout.exp
   none/tests/ppc64/test_isa_3_0_altivec.vgtest
   none/tests/ppc64/test_isa_3_0_other.stderr.exp
   none/tests/ppc64/test_isa_3_0_other.stdout.exp
   none/tests/ppc64/test_isa_3_0_other.vgtest

The following file was modified:
   none/tests/ppc64/Makefile.am

Note, the NEWS file was not updated as the ISA 3.0 support is not complete yet. This is the
first of five sets of commits needed to add all of the ISA 3.0 support.

valgrind bugzilla 359767

Corresponding Valgrind support added in:
  VEX commit 3214
  valgrind commit 15837

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

none/tests/ppc64/Makefile.am
none/tests/ppc64/ppc64_helpers.h [new file with mode: 0644]
none/tests/ppc64/test_isa_3_0.c [new file with mode: 0644]
none/tests/ppc64/test_isa_3_0_altivec.stderr.exp [new file with mode: 0644]
none/tests/ppc64/test_isa_3_0_altivec.stdout.exp [new file with mode: 0644]
none/tests/ppc64/test_isa_3_0_altivec.vgtest [new file with mode: 0644]
none/tests/ppc64/test_isa_3_0_other.stderr.exp [new file with mode: 0644]
none/tests/ppc64/test_isa_3_0_other.stdout.exp [new file with mode: 0644]
none/tests/ppc64/test_isa_3_0_other.vgtest [new file with mode: 0644]

index a4f71e2624f1b711b55b141f658744725ebeaa80..cce3d6efc9ef95d4e0951d057c3299c76ed78159 100644 (file)
@@ -35,7 +35,9 @@ EXTRA_DIST = \
        test_tm.stderr.exp test_tm.stdout.exp test_tm.vgtest \
        test_touch_tm.stderr.exp test_touch_tm.stdout.exp test_touch_tm.vgtest \
        ldst_multiple.stderr.exp ldst_multiple.stdout.exp ldst_multiple.vgtest \
-       data-cache-instructions.stderr.exp data-cache-instructions.stdout.exp data-cache-instructions.vgtest
+       data-cache-instructions.stderr.exp data-cache-instructions.stdout.exp data-cache-instructions.vgtest \
+       test_isa_3_0_altivec.stderr.exp test_isa_3_0_altivec.stdout.exp test_isa_3_0_altivec.vgtest \
+       test_isa_3_0_other.stderr.exp test_isa_3_0_other.stdout.exp test_isa_3_0_other.vgtest
 
 check_PROGRAMS = \
        allexec \
@@ -43,6 +45,7 @@ check_PROGRAMS = \
        test_isa_2_06_part1 test_isa_2_06_part2 test_isa_2_06_part3 \
        test_dfp1 test_dfp2 test_dfp3 test_dfp4 test_dfp5 \
        test_isa_2_07_part1 test_isa_2_07_part2 \
+       test_isa_3_0 \
        test_tm test_touch_tm ldst_multiple data-cache-instructions \
        power6_mf_gpr std_reg_imm \
        twi_tdi tw_td power6_bcmp
@@ -88,11 +91,21 @@ endif
 
 if SUPPORTS_HTM
 HTM_FLAG = -mhtm -DSUPPORTS_HTM
+else
+HTM_FLAG =
 endif
 
 jm_insns_CFLAGS = $(AM_CFLAGS) -Winline -Wall -O -g -mregnames \
                        @FLAG_M64@ $(ALTIVEC_FLAG) $(BUILD_FLAG_ALTIVEC)
 
+if HAS_ISA_3_0
+BUILD_FLAGS_ISA_3_0 = -mcpu=power8
+ISA_3_0_FLAG = -DHAS_ISA_3_0
+else
+BUILD_FLAGS_ISA_3_0 =
+ISA_3_0_FLAG =
+endif
+
 test_isa_2_06_part1_CFLAGS = $(AM_CFLAGS) -Winline -Wall -O -g -mregnames $(VSX_FLAG) \
                        @FLAG_M64@ $(ALTIVEC_FLAG) $(BUILD_FLAG_VSX)
 
@@ -122,6 +135,8 @@ test_tm_CFLAGS = $(AM_CFLAGS) -Winline -Wall -O -g -mregnames $(HTM_FLAG) $(ISA_
                        @FLAG_M64@ $(BUILD_FLAGS_ISA_2_07)
 test_touch_tm_CFLAGS = $(AM_CFLAGS) -Winline -Wall -O -g -mregnames $(HTM_FLAG) $(ISA_2_07_FLAG) \
                        @FLAG_M64@ $(BUILD_FLAGS_ISA_2_07)
+test_isa_3_0_CFLAGS = $(AM_CFLAGS) -Winline -Wall -O -g -mregnames $(HTM_FLAG) $(ISA_3_0_FLAG) \
+                       @FLAG_M64@ $( $(BUILD_FLAGS_ISA_3_0) 
 
 test_isa_2_06_part3_LDADD = -lm
 test_dfp1_LDADD = -lm
@@ -133,4 +148,5 @@ test_isa_2_07_part1_LDADD = -lm
 test_isa_2_07_part2_LDADD = -lm
 test_tm_LDADD = -lm
 test_touch_tm_LDADD = -lm
+test_isa_3_0_LDADD = -lm
 
diff --git a/none/tests/ppc64/ppc64_helpers.h b/none/tests/ppc64/ppc64_helpers.h
new file mode 100644 (file)
index 0000000..2767d03
--- /dev/null
@@ -0,0 +1,2220 @@
+/*
+ * ppc64_helpers.h
+ * Copyright (c) 2016 Will Schmidt <will_schmidt@vnet.ibm.com>
+ *
+ * This file contains helper functions for the ISA 3.0 test suite.
+ */
+
+/*
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License V2
+ *   as published by the Free Software Foundation
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+#include "tests/malloc.h"       // memalign32
+
+typedef uint64_t  HWord_t;
+
+#if defined (DEBUG_ARGS_BUILD)
+#define AB_DPRINTF(fmt, args...) do { fprintf(stderr, fmt , ##args); } while (0)
+#else
+#define AB_DPRINTF(fmt, args...) do { } while (0)
+#endif
+
+#define ALLCR "cr0","cr1","cr2","cr3","cr4","cr5","cr6","cr7"
+
+#define SET_CR(_arg) \
+      __asm__ __volatile__ ("mtcr  %0" : : "b"(_arg) : ALLCR );
+
+#define SET_CR0_FIELD(_arg) __asm__ __volatile__ ("mtocrf 0x80,%0 " : : "b" (_arg):"cr0");
+#define SET_CR1_FIELD(_arg) __asm__ __volatile__ ("mtocrf 0x40,%0 " : : "b" (_arg):"cr1");
+#define SET_CR2_FIELD(_arg) __asm__ __volatile__ ("mtocrf 0x20,%0 " : : "b" (_arg):"cr2");
+#define SET_CR3_FIELD(_arg) __asm__ __volatile__ ("mtocrf 0x10,%0 " : : "b" (_arg):"cr3");
+#define SET_CR4_FIELD(_arg) __asm__ __volatile__ ("mtocrf 0x08,%0 " : : "r" (_arg):"cr4");
+#define SET_CR5_FIELD(_arg) __asm__ __volatile__ ("mtocrf 0x04,%0 " : : "r" (_arg):"cr5");
+#define SET_CR6_FIELD(_arg) __asm__ __volatile__ ("mtocrf 0x02,%0 " : : "r" (_arg):"cr6");
+#define SET_CR7_FIELD(_arg) __asm__ __volatile__ ("mtocrf 0x01,%0 " : : "r" (_arg):"cr7");
+
+#define SET_XER(_arg) \
+      __asm__ __volatile__ ("mtxer %0" : : "b"(_arg) : "xer" );
+
+#define GET_CR(_lval) \
+      __asm__ __volatile__ ("mfcr %0"  : "=b"(_lval) )
+
+#define GET_XER(_lval) \
+      __asm__ __volatile__ ("mfxer %0" : "=b"(_lval) )
+
+#define SET_CR_ZERO \
+      SET_CR(0)
+
+#define SET_FPSCR_ZERO                                        \
+   do {                                                       \
+      double _d = 0.0;                                        \
+      __asm__ __volatile__ ("mtfsf 0xFF, %0" : : "f"(_d) );   \
+   } while (0);
+
+#define GET_FPSCR(_arg) \
+  __asm__ __volatile__ ("mffs %0"  : "=f"(_arg) );
+
+/*  The bit definitions for the FPSCR are as follows.
+Bit(s) Description
+0:31 Reserved
+32 Floating-Point Exception Summary (FX)
+33 Floating-Point Enabled Exception Summary (FEX)
+34 Floating-Point Invalid Operation Exception Summary (VX)
+35 Floating-Point Overflow Exception (OX)
+36 Floating-Point Underflow Exception (UX)
+37 Floating-Point Zero Divide Exception (ZX)
+38 Floating-Point Inexact Exception (XX)
+39 Floating-Point Invalid Operation Exception (SNaN) (VXSNAN)
+40 Floating-Point Invalid Operation Exception (∞ - ∞) (VXISI)
+41 Floating-Point Invalid Operation Exception (∞ ÷ ∞) (VXIDI)
+42 Floating-Point Invalid Operation Exception (0 ÷ 0) (VXZDZ)
+43 Floating-Point Invalid Operation Exception (∞ × 0) (VXIMZ)
+44 Floating-Point Invalid Operation Exception (Invalid Compare) (VXVC)
+45 Floating-Point Fraction Rounded (FR)
+46 Floating-Point Fraction Inexact (FI)
+47:51 Floating-Point Result Flags (FPRF)
+47 Floating-Point Result Class Descriptor (C)
+48:51 Floating-Point Condition Code (FPCC)
+      48 Floating-Point Less Than or Negative (FL or <)
+      49 Floating-Point Greater Than or Positive (FG or >)
+      50 Floating-Point Equal or Zero (FE or =)
+      51 Floating-Point Unordered or NaN (FU or ?)
+52 Reserved
+53 Floating-Point Invalid Operation Exception (Software-Defined Condition) (VXSOFT)
+54 Floating-Point Invalid Operation Exception (Invalid Square Root) (VXSQRT)
+55 Floating-Point Invalid Operation Exception (Invalid Integer Convert) (VXCVI)
+56 Floating-Point Invalid Operation Exception Enable (VE)
+57 Floating-Point Overflow Exception Enable (OE)
+58 Floating-Point Underflow Exception Enable (UE)
+59 Floating-Point Zero Divide Exception Enable (ZE)
+60 Floating-Point Inexact Exception Enable (XE)
+61 Floating-Point Non-IEEE Mode (NI)
+62:63 Floating-Point Rounding Control (RN)
+   00 Round to Nearest
+   01 Round toward Zero
+   10 Round toward +Infinity
+   11 Round toward -Infinity
+*/
+/* NOTE, currently Valgrind only tracks the rounding mode, C and FPCC fields in the
+ *       FPSCR register.
+ */
+
+static char * fpscr_strings[] = {
+" 0-RSVD", " 1-RSVD", " 2-RSVD", " 3-RSVD", " 4-RSVD", " 5-RSVD", " 6-RSVD",
+" 7-RSVD", " 8-RSVD", " 9-RSVD", "10-RSVD", "11-RSVD", "12-RSVD", "13-RSVD",
+"14-RSVD", "15-RSVD", "16-RSVD", "17-RSVD", "18-RSVD", "19-RSVD", "20-RSVD",
+"21-RSVD", "22-RSVD", "23-RSVD", "24-RSVD", "25-RSVD", "26-RSVD", "27-RSVD",
+"28-RSVD", "29-RSVD", "30-RSVD", "31-RSVD",
+/* 32 */ "FX", "FEX", "VX",
+/* 35 */ "OX", "UX", "ZX", "XX", "VXSNAN",
+/* 40 */ "VXISI (inf-inf)", "VXIDI (inf/inf)", "VXZDZ (0/0)",
+/* 43 */ "VXIMZ (inf*0)", "VXVC",
+/* 45 */ "FR", "FI",
+/* 47 */ "FPRF-C", "FPCC-FL", "FPCC-FG",
+/* 50 */ "FPCC-FE", "FPCC-FU",
+/* 52 */ "52-RSVD", "FXSOFT", "VXSQRT",
+/* 55 */ "VXCVI", "VE", "OE", "UE", "ZE",
+/* 60 */ "XE", "NI", "RN-bit62", "RN-bit63"
+};
+
+#define FPCC_C_BIT    (0x1 << (63-47))
+#define FPCC_FL_BIT   (0x1 << (63-48))
+#define FPCC_FG_BIT   (0x1 << (63-49))
+#define FPCC_FE_BIT   (0x1 << (63-50))
+#define FPCC_FU_BIT   (0x1 << (63-51))
+#define FPCC_FPRF_MASK  FPCC_C_BIT|FPCC_FL_BIT|FPCC_FG_BIT|FPCC_FE_BIT|FPCC_FU_BIT
+
+#define FPSCR_RN_BIT62   (0x1 << (63-62))
+#define FPSCR_RN_BIT63   (0x1 << (63-63))
+
+#define CRFIELD_BIT0 0x8
+#define CRFIELD_BIT1 0x4
+#define CRFIELD_BIT2 0x2
+#define CRFIELD_BIT3 0x1
+
+/* dissect_cr*:
+ * display the condition register bits in a
+ * human readable format.
+ */
+
+inline int cr_overflow_set(unsigned this_cr) {
+   return (this_cr & CRFIELD_BIT3);
+}
+
+inline int cr_zero_set(unsigned this_cr) {
+   return (this_cr & CRFIELD_BIT2);
+}
+
+inline int cr_positive_set(unsigned this_cr) {
+   return (this_cr & CRFIELD_BIT1);
+}
+
+inline int cr_negative_set(unsigned this_cr) {
+   return (this_cr & CRFIELD_BIT0);
+}
+
+/* __dissect_cr takes a bitfield directly, not the full condition register.
+ * This is a helper for dissect_cr_rn.
+ */
+inline static void __dissect_cr(unsigned this_cr) {
+if (cr_negative_set(this_cr))
+   printf("%s(LT)", verbose ? " 0x1=Negative" : "");
+
+if (cr_positive_set(this_cr))
+   printf("%s(GT)", verbose ? " 0x2=Positive" : "");
+
+if (cr_zero_set(this_cr))
+   printf("%s(EQ)", verbose ? " 0x4=Zero" : "");
+
+if (cr_overflow_set(this_cr))
+   printf("%s(SO)", verbose ? " 0x8=Overflow" : "");
+}
+
+/* dissect the fpscr bits that are valid under valgrind.
+ * Valgrind itself only tracks the C and FPCC fields from the
+ * FPSCR.
+ */
+static void dissect_fpscr_valgrind(unsigned long local_fpscr) {
+   int i;
+   int mybit;
+
+   for (i = 47; i < 52; i++) {
+      mybit = 1 << (63 - i);
+      if (mybit & local_fpscr) {
+         printf(" %s",fpscr_strings[i]);
+      }
+   }
+}
+
+/* dissect the fpscr bits.
+ * This prints the entire FPSCR field.  This is only called under higher
+ * verbosities, as valgrind does not track most of these bits.
+ */
+static void dissect_fpscr_raw(unsigned long local_fpscr) {
+/* Due to the additional involved logic, the rounding mode (RN) bits 61-62
+ * are handled within dissect_fpscr_rounding_mode(). */
+   int i;
+   int mybit;
+
+   for (i = 0; i < 61; i++) {
+      /* also note that the bit numbering is backwards. */
+      mybit = 1 << (63 - i);
+      if (mybit & local_fpscr) {
+         printf(" %s", fpscr_strings[i]);
+      }
+   }
+}
+
+static void dissect_fpscr(unsigned long local_fpscr) {
+   if (verbose > 1) {
+      printf(" [[ fpscr:%lx ]] ", local_fpscr);
+      dissect_fpscr_raw(local_fpscr);
+   } else {
+      dissect_fpscr_valgrind(local_fpscr);
+   }
+}
+
+/* Display the rounding mode */
+static void dissect_fpscr_rounding_mode(unsigned long local_fpscr) {
+   /* special case handing for the rounding mode round-nearest (RN) bits. 62:63 */
+   printf("Rounding Mode: ");
+
+   if (local_fpscr & FPSCR_RN_BIT62)
+      if (local_fpscr & FPSCR_RN_BIT63)
+         /* 0b11 */ printf("RN-to--INF");
+      else
+         /* 0b10 */ printf("RN-to-+INF");
+   else
+      if (local_fpscr & FPSCR_RN_BIT63)
+         /* 0b01 */ printf("RN-to-Nearest");
+      else
+         /* 0b00 */ printf("RN-to-Zero");
+}
+
+/*
+ * Arithmetic, rounding, and Convert From Integer instructions will set
+ * bits in the FPCC field to indicate the class of the result.
+ * The table is described as follows;
+     flags / Result value class
+  C < > = ?
+  1 0 0 0 1 Quiet NaN
+  0 1 0 0 1 -Infinity
+  0 1 0 0 0 -Normalized Number
+  1 1 0 0 0 -Denormalized Number
+  1 0 0 1 0 -Zero
+  0 0 0 1 0 +Zero
+  1 0 1 0 0 +Denormalized Number
+  0 0 1 0 0 +Normalized Number
+  0 0 1 0 1 +Infinity
+*/
+
+/* Interpret the fields in the FPCC as they apply to the DCMX checks.
+ * The 'Match' indicator will typically be evaluated by the caller.
+ *
+ *  DMCX:
+    * DCMX bit / 0x value / Data Class
+    *        0       0x01  NaN
+    *        1       0x02  +Infinity
+    *        2       0x04  -Infinity
+    *        3       0x08  +Zero
+    *        4       0x10  -Zero
+    *        5       0x20  +Denormal
+    *        6       0x40  -Denormal
+    *        7       0x7f  ALL bits set.
+*/
+
+/* DFP helpers for bcd-to-dpd, dpd-to-bcd, misc.
+ * pulled from vex/.../host_generic_simd64.c
+ */
+/*------------------------------------------------------------------*/
+/* Decimal Floating Point (DFP) helper functions */
+/*------------------------------------------------------------------*/
+#define NOT( x )    ( ( ( x ) == 0) ? 1 : 0)
+#define GET( x, y ) ( ( ( x ) & ( 0x1UL << ( y ) ) ) >> ( y ) )
+#define PUT( x, y ) ( ( x )<< ( y ) )
+
+static unsigned long dpb_to_bcd( unsigned long chunk )
+{
+   int a, b, c, d, e, f, g, h, i, j, k, m;
+   int p, q, r, s, t, u, v, w, x, y;
+   unsigned long value;
+
+   /* convert 10 bit densely packed BCD to BCD */
+   p = GET( chunk, 9 );
+   q = GET( chunk, 8 );
+   r = GET( chunk, 7 );
+   s = GET( chunk, 6 );
+   t = GET( chunk, 5 );
+   u = GET( chunk, 4 );
+   v = GET( chunk, 3 );
+   w = GET( chunk, 2 );
+   x = GET( chunk, 1 );
+   y = GET( chunk, 0 );
+
+   /* The BCD bit values are given by the following boolean equations.*/
+   a = ( NOT(s) & v & w ) | ( t & v & w & s ) | ( v & w & NOT(x) );
+   b = ( p & s & x & NOT(t) ) | ( p & NOT(w) ) | ( p & NOT(v) );
+   c = ( q & s & x & NOT(t) ) | ( q & NOT(w) ) | ( q & NOT(v) );
+   d = r;
+   e = ( v & NOT(w) & x ) | ( s & v & w & x ) | ( NOT(t) & v & x & w );
+   f = ( p & t & v & w & x & NOT(s) ) | ( s & NOT(x) & v ) | ( s & NOT(v) );
+   g = ( q & t & w & v & x & NOT(s) ) | ( t & NOT(x) & v ) | ( t & NOT(v) );
+   h = u;
+   i = ( t & v & w & x ) | ( s & v & w & x ) | ( v & NOT(w) & NOT(x) );
+   j = ( p & NOT(s) & NOT(t) & w & v ) | ( s & v & NOT(w) & x )
+      | ( p & w & NOT(x) & v ) | ( w & NOT(v) );
+   k = ( q & NOT(s) & NOT(t) & v & w ) | ( t & v & NOT(w) & x )
+      | ( q & v & w & NOT(x) ) | ( x & NOT(v) );
+   m = y;
+
+   value = PUT(a, 11) | PUT(b, 10) | PUT(c, 9) | PUT(d, 8) | PUT(e, 7)
+               | PUT(f, 6) | PUT(g, 5) | PUT(h, 4) | PUT(i, 3) | PUT(j, 2)
+               | PUT(k, 1) | PUT(m, 0);
+    return value;
+}
+#undef NOT
+#undef GET
+#undef PUT
+
+
+typedef union dfp_union {
+   _Decimal128  dec_val128;
+   struct {
+#if defined(VGP_ppc64le_linux)
+   unsigned long vall;
+   unsigned long valu;
+#else
+   unsigned long valu;
+   unsigned long vall;
+#endif
+   } u128;
+} dfp_val_t;
+
+/* Based on and enhanced from the dfp128_vals table in test_dfp5.c.
+ * Todo: Refine/refactor and turn into a build_table function.
+ */
+
+static unsigned long dfp128_vals[] = {
+   // Some finite numbers
+   0x2208000000000000ULL, 0x0000000000000001ULL, //  1 *10^0
+   0xa208800000000000ULL, 0x0000000000000001ULL, // -1 *10^1
+   0x0000000000000000ULL, 0x0000000000000001ULL, //  1 *10^-6176. (smallest exp)
+   0x43ffc00000000000ULL, 0x0000000000000001ULL, //  1 *10^6111
+   0x6fffc00000000000ULL, 0x0000000000000001ULL, // foo *10^2015.
+   0x67ffc00000000000ULL, 0x0000000000000001ULL, // foo *10^-2081.
+   0x77ffc00000000000ULL, 0x0000000000000001ULL, //  1 *10^6111 (largest exp)
+   0x77ffffffffffffffULL, 0xffffffffffffffffULL, // max possible value *10^6111 (largest exp)
+   0x0000000000000000ULL, 0x0000000000000001ULL, // min possible value 1 *10^-6176. (smallest exp)
+   0x8000000000000000ULL, 0x0000000000000001ULL, // -1 *10^-6176. (smallest exp)
+
+   /* data bits sprinkled across the significand field. */
+   0xa208800001000000ULL, 0x0000000000010000ULL, //-foo *10^1
+   0xa208800000000100ULL, 0x0000000000000100ULL, //-foo *10^1
+   0xa208800000000000ULL, 0x0000100000000000ULL, //-foo *10^1
+   0xa208800000000000ULL, 0x0000000001000000ULL, //-foo *10^1
+   0xa208800000000000ULL, 0x0000000000000001ULL, //-foo *10^1
+
+   // pre-existing dfp128 values:
+   0x2207c00000000000ULL, 0x0000000000000e50ULL, // foo * 10^-1
+   0x2207c00000000000ULL, 0x000000000014c000ULL, // foo * 10^-1
+   0xa207c00000000000ULL, 0x00000000000000e0ULL, // foo * 10^-1
+   0x2206c00000000000ULL, 0x00000000000000cfULL, // foo * 10^-5
+   0xa205c00000000000ULL, 0x000000010a395bcfULL, // foo * 10^-9
+   0x6209400000fd0000ULL, 0x00253f1f534acdd4ULL, // foo * 10^-4091
+   0x000400000089b000ULL, 0x0a6000d000000049ULL, // very small number // foo * 10^-6160
+
+   // flavors of zero
+   0x2208000000000000ULL, 0x0000000000000000ULL, // 0*10^256
+   0xa208000000000000ULL, 0x0000000000000000ULL, // -0*10^0
+   0xa248000000000000ULL, 0x0000000000000000ULL, // 0*10^256
+
+   // flavors of NAN
+   0x7c00000000000000ULL, 0x0000000000000000ULL, // quiet
+   0xfc00000000000000ULL, 0xc00100035b007700ULL,
+   0x7e00000000000000ULL, 0xfe000000d0e0a0d0ULL, // signaling
+
+   // flavors of Infinity
+   0x7800000000000000ULL, 0x0000000000000000ULL, // +inf
+   0xf800000000000000ULL, 0x0000000000000000ULL, // -inf
+   0xf900000000000000ULL, 0x0000000000000000ULL  // -inf
+};
+
+#define NUM_DFP128_VALS (sizeof(dfp128_vals) / 8)
+unsigned long nb_dfp128_vals = NUM_DFP128_VALS;
+
+/* Todo: update dfp64_vals to match dfp128_vals content. */
+
+static unsigned long dfp64_vals[] = {
+   //
+   0x77fcffffffffffffULL, // max possible value 9..9 *10^369 (largest exp)
+   0x0000000000000001ULL, // min possible nonzero value 1 *10^-398. (smallest exp)
+   0x4248000000000001ULL, // 1*10^260
+   0x2234000000000e50ULL, // foo*10^-1
+   0x223400000014c000ULL, //
+   0xa2340000000000e0ULL, //
+   0x22240000000000cfULL, // foo*10^-5
+   0xa21400010a395bcfULL, // negative -foo*10^-9
+   0x6e4d3f1f534acdd4ULL, // huge number foo*10^5
+   0x000400000089b000ULL, // very small number foo*10^-397
+
+   // flavors of zero
+   0x2238000000000000ULL,
+   0xa238000000000000ULL, // 0 * 10 ^0
+   0x4248000000000000ULL, // 0 * 10 ^260
+
+   // flavors of NAN
+   0x7e34000000000111ULL, //signaling NaN
+   0xfe000000d0e0a0d0ULL, //signaling NaN
+   0xfc00000000000000ULL, //quiet NaN
+
+   // flavors of Infinity
+   0x7800000000000000ULL, //+Inf
+   0xf800000000000000ULL, //-Inf
+   0x7a34000000000000ULL, //+Inf
+};
+
+#define NUM_DFP64_VALS (sizeof(dfp64_vals) / 8)
+unsigned long nb_dfp64_vals = NUM_DFP64_VALS;
+
+/* shift helpers */
+#define SH_0  0
+#define SH_1  1
+#define SH_2  15
+#define SH_3  63
+
+static uint64_t shift_amounts[] = {
+   SH_0,
+   SH_1,
+   SH_2,
+   SH_3,
+#define SHIFT_ARRAY_SIZE 4
+};
+
+/* vector splat helpers */
+#define SPLAT0 0
+#define SPLAT1 1
+#define SPLAT2 0xaa
+#define SPLAT3 0x55
+#define SPLAT4 0xff
+
+static uint64_t splat_values[] = {
+   SPLAT0,
+   SPLAT1,
+   SPLAT2,
+   SPLAT3,
+   SPLAT4,
+#define SPLAT_ARRAY_SIZE 5
+};
+
+/* a small memory range used to test load-from and store-to vsx */
+#define BUFFER_SIZE 4
+#define MAX_BUFFER_PATTERNS 6
+unsigned long buffer[BUFFER_SIZE];
+
+static void initialize_buffer(int t)
+{
+   int x;
+
+   for (x = 0; x < BUFFER_SIZE; x++)
+      switch(t) {
+      case 0:
+         buffer[x] = 0xffffffffffffffff;
+         break;
+      case 1:
+         buffer[x] = 0xaaaaaaaaaaaaaaaa;
+         break;
+      case 2:
+         buffer[x] = 0x5555555555555555;
+         break;
+      case 3:
+         buffer[x] = 0x0000000000000000;
+         break;
+      case 4:
+         buffer[x] = 0x5a05a05a05a05a05;
+         break;
+      case 5:
+         buffer[x] = 0x0102030405060708;
+         break;
+      default:
+         buffer[x] = 0x1010101010101010;
+         break;
+   }
+}
+
+#define PATTERN_SIZE 5
+unsigned long pattern[PATTERN_SIZE] = {
+       0xffffffffffffffff,
+       0xaaaaaaaaaaaaaaaa,
+       0x5555555555555555,
+       0x0000000000000000,
+       0xffaa5599113377cc,
+};
+
+
+static void dump_small_buffer(void) {
+   int x;
+
+   printf("[ ");
+
+   for (x = 0; x < BUFFER_SIZE; x++)
+      printf("%016lx ", buffer[x] );
+
+   printf("]");
+}
+
+/* value to be shifted */
+static uint64_t values_to_shift[] = {
+                  0x0,
+                  0x1,
+                 0x10,
+                0x100,
+               0x1000,
+              0x10000,
+             0x100000,
+            0x1000000,
+           0x10000000,
+          0x100000000,
+         0x1000000000,
+        0x10000000000,
+       0x100000000000,
+      0x1000000000000,
+     0x10000000000000,
+    0x100000000000000,
+   0x1000000000000000,
+                  0xf,
+                 0x1f,
+                0x10f,
+               0x100f,
+              0x1000f,
+             0x10000f,
+            0x100000f,
+           0x1000000f,
+          0x10000000f,
+         0x100000000f,
+        0x1000000000f,
+       0x10000000000f,
+      0x100000000000f,
+     0x1000000000000f,
+    0x10000000000000f,
+   0x100000000000000f,
+                  0x7,
+                 0x70,
+                0x700,
+               0x7000,
+              0x70000,
+             0x700000,
+            0x7000000,
+           0x70000000,
+          0x700000000,
+         0x7000000000,
+        0x70000000000,
+       0x700000000000,
+      0x7000000000000,
+     0x70000000000000,
+    0x700000000000000,
+   0x7000000000000000,
+                  0x8,
+                 0x80,
+                0x800,
+               0x8000,
+              0x80000,
+             0x800000,
+            0x8000000,
+           0x80000000,
+          0x800000000,
+         0x8000000000,
+        0x80000000000,
+       0x800000000000,
+      0x8000000000000,
+     0x80000000000000,
+    0x800000000000000,
+   0x8000000000000000,
+   0xffffffffffffffff,
+   0
+#define SHIFT_VALUES_SIZE 66
+};
+
+/* DFP related helper functions: */
+
+/* For DFP finite numbers, the combination field (G field) is a
+ * combination of the exponent and the LMD (Left Most Digit) of the
+ * significand.  The fields are encoded/decoded as described in the
+ * table here.
+ *       00       01      10   -< Exponent bits.
+ * 0:   00000   01000   10000
+ * ...
+ * 7:   00111   01111   10111
+ * 8:   11000   11010   11100
+ * 9:   11001   11011   11101  (encoded special field).
+ * |
+ * ^ LMD value.
+*/
+#define DFP_GFIELD_MASK  0x7c00000000000000UL
+#define DFP_GFIELD_SHIFT 58
+
+static unsigned int special_field_LMD(uint64_t dword1) {
+   unsigned long g_field_specials;
+   int left_two_bits;
+   int right_three_bits;
+
+   g_field_specials = (dword1 & DFP_GFIELD_MASK) >> DFP_GFIELD_SHIFT;
+   left_two_bits = (g_field_specials & 0x18) >> 3;
+   right_three_bits = g_field_specials & 0x07;
+
+   /* The LMD result maps directly to the right_three_bits value as
+    * long as the left two bits are 0b00,0b01,0b10.  So a compare
+    * against 3 is sufficient to determine if we can return the right
+    * three bits directly.  (LMD values 0..7).
+    */
+   if (left_two_bits < 3) {
+      return (right_three_bits);
+   }
+
+   /* LMD values of 8 or 9 require a bit of swizzle, but a check of
+    * the right-most bit is sufficient to determine whether LMD value
+    * is 8 or 9.
+    */
+   if (right_three_bits & 0x1)
+      return 9;
+   else
+      return 8;
+}
+
+/* Returns the exponent bits, as decoded from the G field. */
+static inline int special_field_exponent_bits(unsigned long dword1) {
+   unsigned long g_field_specials;
+   int left_two_bits;
+   int right_three_bits;
+
+   g_field_specials = (dword1 & DFP_GFIELD_MASK) >> DFP_GFIELD_SHIFT;
+   left_two_bits = (g_field_specials & 0x18) >> 3;
+   right_three_bits = g_field_specials & 0x07;
+
+   /* The special field exponent bits maps directly to the left_two_bits
+    * value as long as the left two bits are 0b00,0b01,0b10.  So a compare
+    * against 3 is sufficient for those values.
+    */
+   if (left_two_bits < 3) {
+      return (left_two_bits);
+   }
+
+   switch(right_three_bits) {
+      case 0:
+      case 1: return 0x0;
+      case 2:
+      case 3: return 0x1;
+      case 4:
+      case 5: return 0x2;
+      case 6: /* Infinity */ return 0x0;
+      case 7: /* NaN */  return 0x0;
+   }
+   return -1;  /* should never hit this */
+}
+
+/* get_declet().  Return a 10-bit declet, beginning at the 'start'
+ * offset.
+ *
+ * | dword1 | dword0 |
+ * | 0    63|64   127|
+ */
+#define TEN_BITS 0x03ffULL
+
+static inline int get_declet(int start, uint64_t dword1, uint64_t dword0) {
+   unsigned long local_declet;
+   unsigned int dword0_shift;
+   unsigned int dword1_shift;
+
+   dword1_shift = 63 - (start + 9);
+   dword0_shift = 127 - (start + 9);
+
+   if (verbose>5) printf("\n%s (%d) %016lx %016lx",
+                         __FUNCTION__, start, dword1, dword0);
+
+   if ((start + 9) < 63) { /* fully within dword1 */
+      local_declet = (dword1 >> dword1_shift) & TEN_BITS;
+
+   } else if (start >= 65) {/* fully within dword0 */
+      local_declet = (dword0 >> dword0_shift) & TEN_BITS;
+
+   } else { /* straddling the two dwords*/
+      unsigned long mask_dword0;
+      unsigned long mask_dword1;
+
+      mask_dword1 = TEN_BITS >> (64 - dword0_shift);
+      mask_dword0 = TEN_BITS << (dword0_shift);
+      local_declet =
+         ((dword1 & mask_dword1) << (64-dword0_shift)) +
+         ((dword0 & mask_dword0) >> dword0_shift);
+   }
+   return local_declet;
+}
+
+static int get_bcd_digit_from_dpd(int start, uint64_t dword1,
+                                  uint64_t dword0) {
+   long bcd_digit;
+   long declet;
+
+   declet = get_declet(start, dword1, dword0);
+   bcd_digit = dpb_to_bcd(declet);
+   return bcd_digit;
+}
+
+
+/* The 'exponent left' shift is for moving the leftmost two bits
+ * of the exponent down to where they can be easily merged with the
+ * rest of the exponent.
+ */
+#define DFP128_EXPONENT_RIGHT_MASK       0x03ffc00000000000
+#define DFP64_EXPONENT_RIGHT_MASK        0x03fc000000000000
+#define DFP128_EXPONENT_RIGHT_MASK_SHIFT 46
+#define DFP64_EXPONENT_RIGHT_MASK_SHIFT  50
+#define DFP128_EXPONENT_LEFT_SHIFT       12
+#define DFP64_EXPONENT_LEFT_SHIFT         8
+
+#define DFP_NAN                          0x1f
+#define DFP_INF                          0x1e
+#define DFP_SIGNALING_NAN_BIT            0x0200000000000000
+
+/* Start of the Trailing Significand field is at bit # .. */
+#define DFP128_T_START         18
+#define DFP64_T_START          14
+
+//The exponent bias value is 101 for DFP Short, 398
+//for DFP Long, and 6176 for DFP Extended.
+#define DFP128_EXPONENT_BIAS 6176
+#define DFP64_EXPONENT_BIAS   398
+
+/* return the dfp exponent from the leading dword. */
+static inline signed long dfp128_exponent(unsigned long dword1) {
+   unsigned long exponent_left;
+   unsigned long exponent_right;
+   unsigned long biased_exponent;
+   signed long exponent;
+
+   exponent_left = special_field_exponent_bits(dword1);
+   exponent_right = (dword1 & DFP128_EXPONENT_RIGHT_MASK);
+   biased_exponent = (exponent_left << DFP128_EXPONENT_LEFT_SHIFT) +
+                     (exponent_right >> DFP128_EXPONENT_RIGHT_MASK_SHIFT);
+
+   /* Unbias the exponent. */
+   exponent = biased_exponent - DFP128_EXPONENT_BIAS;
+
+   return exponent;
+}
+
+/* Interpret the paired 64-bit values as a extended (quad) 128 bit DFP.
+ *
+ * | Significand | Combination Field/    |                          |
+ * | sign bit    | Encoded Exponent      | remainder of significand |
+ * |0            |1                    17|18                     127|
+ *  ^ (bit0) Significand sign bit.
+ *                ^ (bit 1:17) Combination field. Contains high bits of
+ *                  exponent (encoded), LMD of significand (encoded),
+ *                  and the remainder of the exponent.  First five bits
+ *                  will indicate special cases NAN or INF.
+ *                                   ^ (bit 18:127) Remainder of the
+ *                                     significand.
+ */
+
+#define DFP128_COMBINATION_MASK      0x7fffc
+#define DFP64_COMBINATION_MASK       0x7ffc
+#define DFP128_COMBINATION_SHIFT     46
+#define DFP64_COMBINATION_SHIFT      50
+#define DFP_SPECIAL_SYMBOLS_MASK     0x1f
+#define DFP_SPECIAL_SYMBOLS_SHIFT    58
+
+static inline void dissect_dfp128_float(uint64_t dword1, uint64_t dword0) {
+   long signbit;
+   signed long exponent;
+   unsigned long gfield_special_symbols;
+   unsigned long lmd_digit;
+   unsigned long bcd_digits[13];
+   int i;
+   int silent=0; // suppress leading zeros from the output.
+
+   if (verbose > 5) printf("RAW128: %016lx %016lx ", dword1, dword0);
+
+   signbit = (dword1 >> 63);
+
+   if (signbit) printf("-");
+   else         printf("+");
+
+   gfield_special_symbols =
+      ((dword1 >> DFP_SPECIAL_SYMBOLS_SHIFT) & DFP_SPECIAL_SYMBOLS_MASK);
+
+   switch (gfield_special_symbols) {
+      case DFP_INF:
+         printf(   "inf      ");
+         break;
+
+      case DFP_NAN:
+         if (dword1 & DFP_SIGNALING_NAN_BIT)
+            printf("SNaN     ");
+         else
+            printf("QNaN     ");
+         break;
+
+      default:
+         printf(   "Finite   ");
+         exponent  = dfp128_exponent(dword1);
+         lmd_digit = special_field_LMD(dword1);
+
+         for (i = 0; i < 11; i++) {
+            bcd_digits[i] = get_bcd_digit_from_dpd((DFP128_T_START
+                                                    + 10 * i), dword1, dword0);
+         }
+
+         if (lmd_digit) {
+            silent++;
+            printf("%01lx", lmd_digit);
+
+         } else {
+            printf(" ");
+         }
+
+         for (i = 0; i < 11; i++) {
+            if (bcd_digits[i] || silent ) {
+               silent++;
+               printf("%03lx", bcd_digits[i]);
+
+            } else {
+               /* always print at least the last zero */
+               if (i == 10)
+                  printf("  0");
+
+               else
+                  printf("   ");
+            }
+         }
+         printf(" * 10 ^ ");
+         printf("%ld ", exponent);
+   }
+}
+
+/* Interpret the 64-bit values as a 64 bit DFP.
+*
+* | Significand | Combination Field/    |                          |
+* | sign bit    | Encoded Exponent      | remainder of significand |
+* |0            |1                    13|14                      63|
+*  ^ (bit0) Significand sign bit.
+*                ^ (bit 1:13) Combination field. Contains high bits of
+*                  exponent (encoded), LMD of significand (encoded),
+*                  and the remainder of the exponent.  First five bits
+*                  will indicate special cases NAN or INF.
+*                                        ^ (bit 14:63) Remainder of the
+*                                          significand.
+*/
+
+/* return the dfp exponent from the leading dword. */
+static inline signed long dfp64_exponent(unsigned long dword1) {
+   unsigned long exponent_left;
+   unsigned long exponent_right;
+   unsigned long biased_exponent;
+   signed long exponent;
+
+   exponent_left = special_field_exponent_bits(dword1);
+   exponent_right = (dword1 & DFP64_EXPONENT_RIGHT_MASK);
+   biased_exponent = (exponent_left << DFP64_EXPONENT_LEFT_SHIFT) +
+                     (exponent_right >> DFP64_EXPONENT_RIGHT_MASK_SHIFT);
+
+   /* Unbias the exponent. */
+   exponent = biased_exponent - DFP64_EXPONENT_BIAS;
+   return exponent;
+}
+
+static inline void dissect_dfp64_float(uint64_t dword1) {
+   long signbit;
+   signed long exponent;
+   unsigned long gfield_special_symbols;
+   unsigned long lmd_digit;
+   unsigned long bcd_digits[13];
+   int i;
+   int silent=0; // suppress leading zeros from the output.
+
+   if (verbose > 5) printf("RAW64: %016lx ", dword1);
+
+   signbit = (dword1 >> 63);
+
+   if (signbit) printf("-");
+   else         printf("+");
+
+   gfield_special_symbols =
+      ((dword1 >> DFP_SPECIAL_SYMBOLS_SHIFT) & DFP_SPECIAL_SYMBOLS_MASK);
+
+   switch (gfield_special_symbols) {
+      case DFP_INF:
+         printf(   "inf      ");
+         break;
+
+      case DFP_NAN:
+         if (dword1 & DFP_SIGNALING_NAN_BIT)
+            printf("SNaN     ");
+         else
+            printf("QNaN     ");
+         break;
+
+      default:
+         printf(   "Finite   ");
+         exponent  = dfp64_exponent(dword1);
+         lmd_digit = special_field_LMD(dword1);
+
+         for (i = 0; i < 5; i++)
+            bcd_digits[i] = get_bcd_digit_from_dpd((DFP64_T_START + 10 * i),
+                                                   dword1, 0);
+
+         if (lmd_digit) {
+            silent++;
+            printf("%01lx", lmd_digit);
+
+         } else {
+            printf(" ");
+         }
+
+         for (i = 0; i < 5; i++) {
+            if (bcd_digits[i] || silent) {
+               silent++;
+               printf("%03lx", bcd_digits[i]);
+
+            } else { // suppress leading zeros.
+               /* always print at least the last zero */
+               if (i == 4)
+                  printf("  0");
+
+               else
+                  printf("   ");
+            }
+         }
+         printf(" * 10 ^ ");
+         printf("%ld ", exponent);
+   }
+}
+
+static void dump_dfp128_table(void) {
+   int i;
+
+   printf("DFP 128 table:\n");
+
+   for (i = 0; i < nb_dfp128_vals; i += 2) {
+      printf("i=:%2d ", i);
+      dissect_dfp128_float(dfp128_vals[i], dfp128_vals[i+1]);
+      printf("\n");
+   }
+}
+
+static void dump_dfp64_table(void) {
+   int i;
+
+   printf("DFP 64 table:\n");
+
+   for (i = 0; i<nb_dfp64_vals; i++) {
+      printf("i=:%2d ", i);
+      dissect_dfp64_float(dfp64_vals[i]);
+      printf("\n");
+   }
+}
+
+
+/* Data Formats for floating point.
+ * Floating point values include the following:
+ *  -INF -NOR -DEN -0 +0 +DEN +NOR +INF
+ *  INFinite: When the biased exponent is the MAX possible value, and
+ *   the fraction field is 0.
+ *  ZERo.    biased exponent is zero, fraction is 0.
+ *  DENormalized.   biased exponent is 0, and fraction is non-zero.
+ *  NORmalized. All other values that are neither Zero, Denormalized,
+ *   or Infinite.  Biased exponent=1..MAX-1.
+ */
+
+/* Quad (128bit):
+ * | Sign | EXPonent+Bias  | FRACTION/Mantissa |
+ *  0      1             15 16              127
+ *  exponent is 15 bits. ranging from:  0x0000 .. 0x7fff
+ *     0 = (zero if fraction==0, DeNormal if fraction !=0 )
+ *     1...0x7ffe = normalized
+ *     7fff  =  (infinite if fraction==0, NaN if fraction !=0)
+ */
+#define QUAD_EXP_MASK 0x7fff
+
+/* This assumes we are working on the top half of a quad stored in a 64-bit
+ *  register.
+ */
+#define QUAD_EXP_SHIFT 48
+#define QUAD_MANTISSA_MASK 0x0000ffffffffffff
+static inline unsigned long build_binary128_float(unsigned long signbit,
+                                                  unsigned long exponent,
+                                                  unsigned long mantissa) {
+   unsigned long thevalue;
+
+   thevalue = (unsigned long) (signbit << 63) |
+      ((exponent & QUAD_EXP_MASK) << QUAD_EXP_SHIFT) |
+      (mantissa & QUAD_MANTISSA_MASK);
+
+   if (verbose > 3)
+      printf("%s %lx \n", __FUNCTION__, (unsigned long)thevalue);
+
+   return thevalue;
+}
+
+ /* double (64bit):
+ * | Sign | EXPonent+Bias  | FRACTION/Mantissa |
+ *  0      1             11 12              63
+ * exponent is 11 bits. ranging from:  0x000 .. 0x7ff
+ *    0 = (zero if fraction==0, DeNormal if fraction !=0 )
+ *    1...0x7fe = normalized
+ *    7ff  =  (infinite if fraction==0, NaN if fraction !=0)
+*/
+#define DOUBLE_EXP_MASK 0x7ff
+#define DOUBLE_EXP_SHIFT 52
+#define DOUBLE_MANTISSA_MASK 0x000fffffffffffff
+
+static inline unsigned long build_binary64_float(unsigned long signbit,
+                                                 unsigned long exponent,
+                                                 unsigned long mantissa) {
+   unsigned long  thevalue;
+
+   thevalue = (unsigned long ) (signbit << 63) |
+      ((exponent & DOUBLE_EXP_MASK) << DOUBLE_EXP_SHIFT) |
+      (mantissa & DOUBLE_MANTISSA_MASK );
+
+   if (verbose > 3)
+      printf("%s %lx \n", __FUNCTION__, (unsigned long)thevalue);
+
+   return thevalue;
+}
+
+ /* floating point single (32bit):
+ * | Sign | EXPonent+Bias  | FRACTION/Mantissa |
+ *  0      1              8 9                31
+ * exponent is 8 bits. ranging from:  0x00 .. 0xff
+ *    0 = (zero if fraction==0, DeNormal if fraction !=0 )
+ *    1...0x7e = normalized
+ *    7f = (infinite if fraction==0, NaN if fraction !=0) */
+#define SINGLE_EXP_MASK 0xff
+#define SINGLE_EXP_SHIFT 23
+#define SINGLE_MANTISSA_MASK 0x007fffff
+
+/* This is building the 32-bit float. */
+static inline unsigned long build_binary32_float(unsigned long signbit,
+                                                 unsigned long exponent,
+                                                 unsigned long mantissa) {
+   unsigned long thevalue;
+   unsigned long local_signbit;
+   unsigned long local_exponent;
+   unsigned long local_mantissa;
+
+   local_signbit  = (signbit != 0) << 31;
+   local_exponent = ((exponent & SINGLE_EXP_MASK) << SINGLE_EXP_SHIFT);
+   local_mantissa = (mantissa & SINGLE_MANTISSA_MASK);
+
+   thevalue = (unsigned long) (local_signbit) |
+      (local_exponent) |
+      (local_mantissa);
+
+   if (verbose > 3)
+      printf("%s %lx \n", __FUNCTION__, (unsigned long)thevalue);
+
+   return thevalue;
+}
+
+/* floating point half (16bit):
+ * | Sign | EXPonent+Bias  | FRACTION/Mantissa |
+ *  0      1              6 7               15
+ * exponent is 6 bits.  0x00 .. 0x7e masked with EXP_MASK
+ *    0 = (zero if fraction==0, DeNormal if fraction !=0 )
+ *    1...0x7d = normalized
+ *    7e = (infinite if fraction==0, NaN if fraction !=0) */
+/* when extracting the exponent from the 16-bit half-word, use this mask. */
+#define HALF_EXP_MASK 0x7e00
+
+/* when building the 16-bit half-word, mask against this,
+ * then shift into place
+ */
+#define HALF_EXP_MASK_NORMALIZED 0x3f
+#define HALF_EXP_SHIFT 9
+#define HALF_MANTISSA_MASK 0x01ff
+
+/* This is building the 16-bit float. */
+static inline unsigned long build_binary16_float(unsigned long in_signbit,
+                                                 unsigned long exponent,
+                                                 unsigned mantissa) {
+   unsigned long thevalue;
+   unsigned long local_signbit;
+   unsigned long local_exponent;
+   unsigned long local_mantissa;
+
+   local_signbit = (in_signbit != 0) << 15;
+
+   local_exponent= ((exponent & HALF_EXP_MASK_NORMALIZED) << HALF_EXP_SHIFT);
+   local_mantissa = (mantissa & HALF_MANTISSA_MASK);
+
+   thevalue = (unsigned long) (local_signbit) | (local_exponent)
+      | (local_mantissa);
+
+   if (verbose > 3)
+      printf("%s %lx \n", __FUNCTION__, (unsigned long)thevalue);
+
+   return thevalue;
+}
+
+/* dissect_binary128_float:
+ * Interpret the (high half) 64-bit value as normal/denormal/inf/NaN.
+ * This is as it would be interpreted as the MSB portion of
+ *  a 128-bit wide QUAD.
+ */
+static inline void dissect_binary128_float(uint64_t value) {
+   unsigned long signbit;
+   unsigned long exponent;
+   unsigned long  mantissa;
+
+   signbit  = (value >> 63);
+   exponent = ( QUAD_EXP_MASK & (value >> QUAD_EXP_SHIFT));
+   mantissa = ( QUAD_MANTISSA_MASK & value);
+
+   if (verbose > 4) printf("128 bit:");
+
+   if (signbit) printf("-");
+   else         printf("+");
+
+   switch (exponent) {
+      case 0x0:
+         if (mantissa == 0) printf("zero     ");
+         else               printf("denormal ");
+         break;
+
+      case QUAD_EXP_MASK:
+         if (mantissa == 0) printf("inf      ");
+         else               printf("NaN      ");
+         break;
+
+      default:              printf("Normal   ");
+   }
+
+   if (verbose > 4)
+      printf("%lx %4lx %16lx %16lx \n", signbit, exponent, mantissa, value);
+}
+
+/* Interpret the 64-bit value as normal/denormal/inf/NaN
+ * this is as interpreted as the 64-bit float
+ */
+static inline void dissect_binary64_float(uint64_t value) {
+   unsigned long signbit;
+   unsigned long exponent;
+   unsigned long mantissa;
+
+   signbit  = (value >> 63); // bit0
+   exponent = ( DOUBLE_EXP_MASK & (value >> DOUBLE_EXP_SHIFT));
+   mantissa = ( DOUBLE_MANTISSA_MASK & value);
+
+   if (verbose > 4) printf(" 64 bit:");
+
+   if (signbit) printf("-");
+   else         printf("+");
+
+   switch (exponent) {
+      case 0x0:
+         if (mantissa == 0) printf("zero     ");
+         else               printf("denormal ");
+         break;
+
+      case DOUBLE_EXP_MASK:
+         if (mantissa == 0) printf("inf      ");
+         else               printf("NaN      ");
+         break;
+
+      default:              printf("Normal   ");
+   }
+
+   if (verbose>4)
+      printf("%lx %4lx %16lx %16lx\n", signbit, exponent, mantissa, value);
+}
+
+/* interpret the 32-bit value as normal/denormal/inf/NaN.
+ * Note that the value is stored in the upper half of a
+ * 64-bit, which is itself in the upper half of a quad.
+ */
+static inline void dissect_binary32_float(uint64_t value) {
+   unsigned long signbit;
+   unsigned long exponent;
+   unsigned long mantissa;
+   unsigned long adj_value;
+
+   /* shift down to where the offsets make more sense.*/
+   adj_value = value;   //>>32;
+   signbit  = (adj_value >> 31);
+   exponent = ( SINGLE_EXP_MASK & (adj_value >> SINGLE_EXP_SHIFT));
+   mantissa = ( SINGLE_MANTISSA_MASK & adj_value);
+
+   if (verbose > 4) printf(" 32 bit:");
+
+   if (signbit) printf("-");
+   else         printf("+");
+
+   switch (exponent) {
+      case 0x0:
+         if (mantissa == 0) printf("zero     ");
+         else               printf("denormal ");
+         break;
+
+      case SINGLE_EXP_MASK:
+         if (mantissa == 0) printf("inf      ");
+         else               printf("NaN      ");
+         break;
+
+      default:              printf("Normal   ");
+   }
+
+   if (verbose>4)
+      printf("%lx %4lx %16lx %16lx \n", signbit, exponent, mantissa, adj_value);
+}
+
+/* Interpret the 16-bit value as normal/denormal/inf/NaN. */
+static inline void dissect_binary16_float(uint64_t value) {
+   unsigned long signbit;
+   unsigned long exponent;
+   unsigned long mantissa;
+   unsigned long adj_value;
+
+   adj_value = (value & 0xffff);
+   signbit  = ((adj_value & 0x8000) > 1);
+   exponent = ((adj_value & HALF_EXP_MASK ) >> HALF_EXP_SHIFT) ;
+   mantissa = (adj_value & HALF_MANTISSA_MASK);
+
+   if (verbose > 4) printf(" 16 bit:");
+
+   if (signbit) printf("-");
+   else         printf("+");
+
+   switch (exponent) {
+      case 0x0:
+         if (mantissa == 0) printf("zero     ");
+         else               printf("denormal ");
+         break;
+
+      case HALF_EXP_MASK:
+         if (mantissa == 0) printf("inf      ");
+         else               printf("NaN      ");
+         break;
+
+      default:              printf("Normal   ");
+   }
+
+   if (verbose > 4)
+      printf("%lx %4lx %16lx %16lx \n",
+             signbit, exponent>>HALF_EXP_SHIFT, mantissa, adj_value);
+}
+
+#define dissect_double_as_32s(vec_foo) \
+  printf(" "); \
+  dissect_binary16_float((vec_foo & 0xffffffff)); \
+  printf(" "); \
+  dissect_binary16_float((vec_foo >> 32) & 0xffffffff);
+
+#define dissect_double_as_16s(vec_foo) \
+  printf(" "); \
+  dissect_binary16_float((vec_foo&0xffff)); \
+  printf(" "); \
+  dissect_binary16_float((vec_foo>>16)&0xffff); \
+  printf(" "); \
+  dissect_binary16_float((vec_foo>>32)&0xffff); \
+  printf(" "); \
+  dissect_binary16_float((vec_foo>>48)&0xffff);
+
+/* a table of exponent values for use in the float precision tests. */
+unsigned long exponent_table[] = {
+  0x0000,   /* +/-0 or +/-DENormalized, depending on associated mantissa. */
+  0x1a,     /* within NORmalized for 16,32,64,128-bit.                    */
+  0x1f,     /* +/-INF or +/-NaN for 16bit, NORmalized for 32,64,128       */
+  0xff,     /* +/-INF or +/-NaN for 32bit, NORmalized for 64,128          */
+  0x7ff,    /* +/-INF or +/-NaN for 32 and 64bit, NORmalized for 128      */
+  0x7fff,   /* +/-INF or +/-NaN for 128bit.                               */
+#define MAX_EXPONENTS 6
+};
+
+unsigned long mantissa_table[] = {
+  0xbeefbeefbeef, /* NOR or DEN or NaN */
+  0x000000000000, /* ZERO or INF */
+  0x7fffffffffff, /* NOR or DEN or NaN */
+#define MAX_MANTISSAS 3
+};
+
+/* build in 64-bit chunks, low doubleword is zero. */
+static unsigned long * float_vsxargs;
+static unsigned long * binary128_float_vsxargs = NULL;
+static unsigned long * binary64_float_vsxargs = NULL;
+static unsigned long * binary32_float_vsxargs = NULL;
+static unsigned long * binary16_float_vsxargs = NULL;
+
+unsigned long nb_float_vsxargs;
+
+#define MAX_FLOAT_VSX_ARRAY_SIZE (((MAX_EXPONENTS * MAX_MANTISSAS) * 2 + 1) * 2)
+
+void build_float_vsx_tables (void)
+{
+   long i = 0;
+   unsigned long signbit;
+   unsigned long exponent;
+   unsigned long mantissa;/* also referred to as FRACTION in the ISA.*/
+   unsigned long exponent_index;
+   unsigned long mantissa_index;
+
+   if (verbose > 2) printf("%s\n", __FUNCTION__);
+
+   binary128_float_vsxargs = malloc(MAX_FLOAT_VSX_ARRAY_SIZE
+                                    * sizeof(unsigned long));
+
+   float_vsxargs = binary128_float_vsxargs;
+
+   binary64_float_vsxargs = malloc(MAX_FLOAT_VSX_ARRAY_SIZE
+                                   * sizeof(unsigned long));
+
+   binary32_float_vsxargs = malloc(MAX_FLOAT_VSX_ARRAY_SIZE
+                                   * sizeof(unsigned long));
+   binary16_float_vsxargs = malloc(MAX_FLOAT_VSX_ARRAY_SIZE
+                                   * sizeof(unsigned long));
+
+   for (signbit = 0; signbit < 2; signbit++) {
+      for (exponent_index = 0; exponent_index < MAX_EXPONENTS;
+           exponent_index++) {
+
+         for (mantissa_index = 0; mantissa_index < MAX_MANTISSAS;
+              mantissa_index++) {
+
+            exponent = exponent_table[exponent_index];
+            mantissa = mantissa_table[mantissa_index];
+
+         if (verbose > 2) {
+            printf("signbit:%lx ", signbit);
+            printf("exponent:%4lx ", exponent);
+            printf("mantissa:%lx ", mantissa);
+            printf("\n");
+         }
+
+         binary128_float_vsxargs[i] = build_binary128_float(signbit, exponent,
+                                                            mantissa);
+
+         binary128_float_vsxargs[i+1] = 0;
+
+         binary64_float_vsxargs[i] = build_binary64_float(signbit, exponent,
+                                                          mantissa);
+
+         binary64_float_vsxargs[i+1] = build_binary64_float(signbit, exponent,
+                                                            mantissa);
+
+         binary32_float_vsxargs[i] = build_binary32_float(signbit, exponent,
+                                                          mantissa);
+
+         binary32_float_vsxargs[i+1] = build_binary32_float(signbit, exponent,
+                                                            mantissa);
+
+         binary16_float_vsxargs[i] = build_binary16_float(signbit, exponent,
+                                                          mantissa);
+
+         binary16_float_vsxargs[i+1] = build_binary16_float(signbit, exponent,
+                                                            mantissa);
+         i += 2;
+         }
+      }
+   }
+   nb_float_vsxargs = i;
+}
+
+/* Display entries stored in the float_vsx table.  These are used as
+ * quad/double/singles, stored as quads. */
+void dump_float_vsx_table (void) {
+   int i;
+
+   printf("Float VSX Table:");
+   printf("128-bit (quad):\n");
+
+   for (i = 0; i < nb_float_vsxargs; i += 2) {
+      printf("i =: %2d ", i);
+      dissect_binary128_float(binary128_float_vsxargs[i]);
+   }
+
+   printf("64-bit (double):\n");
+
+   for (i = 0; i< nb_float_vsxargs; i += 2) {
+      printf("i = %2d ", i);
+      dissect_binary64_float(binary64_float_vsxargs[i]);
+   }
+
+   printf("32-bit (single):\n");
+
+   for (i = 0; i < nb_float_vsxargs; i += 2) {
+      printf("i = %2d ", i);
+      dissect_binary32_float(binary32_float_vsxargs[i]);
+   }
+
+   printf("16-bit (half):\n");
+
+   for (i = 0; i < nb_float_vsxargs; i += 2) {
+      printf("i =% 2d ", i);
+      dissect_binary16_float(binary16_float_vsxargs[i]);
+   }
+
+   printf("\n");
+}
+
+#define MAX_CHAR_ARGS_ARRAY_SIZE 128
+
+static unsigned char * char_args;
+unsigned long nb_char_args;
+
+static void build_char_table(void) {
+   long i = 0;
+   char ichar;
+
+   char_args = memalign(32, MAX_CHAR_ARGS_ARRAY_SIZE * sizeof(char));
+
+   for (ichar = 'a'; ichar <= 'z'; ichar++) { char_args[i++] = ichar; }
+   for (ichar = '0'; ichar <= '9'; ichar++) { char_args[i++] = ichar; }
+   for (ichar = 'A'; ichar <= 'Z'; ichar++) { char_args[i++] = ichar; }
+
+   char_args[i++] = ' ';
+   char_args[i++] = '+';
+   char_args[i++] = '-';
+   char_args[i++] = '/';
+   char_args[i++] = '[';
+   char_args[i++] = ']';
+   char_args[i++] = '`';
+   char_args[i++] = '_';
+   nb_char_args = i;
+}
+
+static void dump_char_table() {
+   int i;
+
+   printf("Char Table:");
+
+   for (i = 0; i<nb_char_args; i++)
+      printf("%c ", char_args[i]);
+
+   printf("\n");
+}
+
+#define MAX_CHAR_RANGES_SIZE 128
+
+static unsigned char * char_ranges;
+unsigned long nb_char_ranges;
+
+static void build_char_range_table(void) {
+/* ... in groups of four. */
+
+   long i = 0;
+   char char_start, char_end;
+
+   char_ranges = memalign(32, MAX_CHAR_RANGES_SIZE * sizeof(char));
+   char_start = 'a';
+   char_end   = 'z';
+   char_ranges[i++] = char_start;
+   char_ranges[i++] = char_end;
+
+   char_start = 'A';
+   char_end   = 'Z';
+   char_ranges[i++] = char_start;
+   char_ranges[i++] = char_end;
+
+   char_start = '0';
+   char_end   = '9';
+   char_ranges[i++] = char_start;
+   char_ranges[i++] = char_end;
+
+   char_start = 'f';
+   char_end   = 'z';
+   char_ranges[i++] = char_start;
+   char_ranges[i++] = char_end;
+
+   char_start = 'a';
+   char_end   = 'e';
+   char_ranges[i++] = char_start;
+   char_ranges[i++] = char_end;
+
+   char_start = 'A';
+   char_end   = 'E';
+   char_ranges[i++] = char_start;
+   char_ranges[i++] = char_end;
+
+   nb_char_ranges = i;
+}
+
+static void dump_char_range_table()
+{
+   int i;
+
+   printf("Char Range Table:");
+
+   for (i = 0; i < nb_char_ranges; i += 4) {
+       printf(" [ %c-%c %c-%c ] ",
+                char_ranges[i], char_ranges[i+1],
+                char_ranges[i+2], char_ranges[i+3] );
+   }
+
+   printf("\n");
+}
+
+static HWord_t *iargs = NULL;
+static int nb_iargs = 0;
+
+static void build_iargs_table (void) {
+   uint64_t tmp;
+   int i = 0;
+
+   iargs = malloc(20 * sizeof(HWord_t));
+
+   for (tmp = 0; ; tmp = 123456789*tmp + 123456789999) {
+      if ((long)tmp < 0 )
+         tmp = 0xFFFFFFFFFFFFFFFFULL;
+
+      iargs[i++] = tmp;
+      AB_DPRINTF("val %016lx\n", tmp);
+
+      if (tmp == 0xFFFFFFFFFFFFFFFFULL)
+         break;
+   }
+
+   AB_DPRINTF("Registered %d iargs values\n", i);
+   nb_iargs = i;
+}
+
+static unsigned long * vsxargs = NULL;
+unsigned long nb_vargs;
+
+#define MAX_VSX_ARRAY_SIZE 42
+
+static void build_vsx_table (void)
+{
+   long i = 0;
+   // A VSX register is 128-bits wide.
+   // We build contents here using pairs of 64-bit longs.
+   // Permutes work against two (non-paired) VSX regs, so these are
+   //  also grouped by twos.
+   vsxargs = memalign(16, MAX_VSX_ARRAY_SIZE * sizeof(unsigned long));
+
+   vsxargs[i++] = 0x0000000000000000UL; vsxargs[i++] = 0x0000000000000000UL;
+   vsxargs[i++] = 0x0102030405060708UL; vsxargs[i++] = 0x0102010201020102UL;
+
+   vsxargs[i++] = 0xaaaaaaaaaaaaaaaaUL; vsxargs[i++] = 0xaaaaaaaaaaaaaaaaUL;
+   vsxargs[i++] = 0x5555555555555555UL; vsxargs[i++] = 0x5555555555555555UL;
+
+   vsxargs[i++] = 0x08090a0b0c0d0e0fUL; vsxargs[i++] = 0x0102010201020102UL;
+   vsxargs[i++] = 0xf0f1f2f3f4f5f6f7UL; vsxargs[i++] = 0xf8f9fafbfcfdfeffUL;
+
+   vsxargs[i++] = 0x7ea1a5a7abadb0baUL; vsxargs[i++] = 0x070d111d1e555e70UL;
+   vsxargs[i++] = 0xe5e7ecedeff0f1faUL; vsxargs[i++] = 0xbeb1c0caced0dbdeUL;
+
+   vsxargs[i++] = 0x00115e7eadbabec0UL; vsxargs[i++] = 0xced0deede5ecef00UL;
+   vsxargs[i++] = 0x00111e7ea5abadb1UL; vsxargs[i++] = 0xbecad0deedeffe00UL;
+
+   vsxargs[i++] = 0x0011223344556677UL; vsxargs[i++] = 0x8899aabbccddeeffUL;
+   vsxargs[i++] = 0xf0e0d0c0b0a09080UL; vsxargs[i++] = 0x7060504030201000UL;
+
+   // these next three groups are specific for vector rotate tests.
+   //  bits 11:15,19:23,27:31 of each 32-bit word contain mb,me,sh values.
+   vsxargs[i++] = 0x0000100000001002ULL; vsxargs[i++] = 0x0000100800001010ULL;
+   vsxargs[i++] = 0x0010100000101002ULL; vsxargs[i++] = 0x0010100800101010ULL;
+
+   // vector rotate special...
+   vsxargs[i++] = 0x00001c0000001c02ULL; vsxargs[i++] = 0x00001c0800001c10ULL;
+   vsxargs[i++] = 0x00101c0000101c02ULL; vsxargs[i++] = 0x00101c0800101c10ULL;
+
+   // vector rotate special...
+   vsxargs[i++] = 0x00001f0000001f02ULL; vsxargs[i++] = 0x00001f0800001f10ULL;
+   vsxargs[i++] = 0x00101f0000101f02ULL; vsxargs[i++] = 0x00101f0800101f10ULL;
+
+   AB_DPRINTF("Registered %d vargs values\n", i/2);
+   nb_vargs = i;
+}
+
+/* VPCV = Vector Permute Control Vector */
+unsigned long nb_vpcv;
+static unsigned long * vpcv = NULL;
+
+#define MAX_VPCV_SIZE 20
+
+static void build_vector_permute_table(void)
+{
+   int i=0;
+
+   vpcv = memalign(16, MAX_VPCV_SIZE * sizeof(unsigned long));
+
+   /* These two lines are complementary pairs of each other. */
+   vpcv[i++]=0x12021a0817141317ULL; vpcv[i++]=0x100d1b05070f0205ULL;
+   vpcv[i++]=0x0d1d0517080b0c08ULL; vpcv[i++]=0x0f12041a18101d1cULL;
+   vpcv[i++]=0x100d1b070f020505ULL; vpcv[i++]=0x0e201f1400130105ULL;
+   vpcv[i++]=0x0705030a0b01ea0cULL; vpcv[i++]=0x0e0c09010602080dULL;
+
+   nb_vpcv=i;
+   AB_DPRINTF("Registered %d permute control vectors \n", nb_vpcv);
+
+   if (i >= MAX_VPCV_SIZE)
+      printf("Warning! Exceeded size of table building the vector permute control . \n");
+}
+
+/* Decimal Encodings...
+ * Packed, National, Zoned decimal content follows.
+ * Note: Watch the conversions in and out of the
+ *       dwords / vectors for reverses with respect to
+ *       top/bottom low/high
+ */
+
+/* Packed Decimals:
+ * A valid encoding of a packed decimal integer value requires the following
+ * properties:
+ *   – Each of the 31 4-bit digits of the operand’s magnitude (bits 0:123)
+ *     must be in the range 0-9.
+ *   – The sign code (bits 124:127) must be in the range 10-15. (0xa-0xf).
+ * Source operands with sign codes of 0b1010, 0b1100, 0b1110, and 0b1111 are
+ * interpreted as positive values.  Source operands with sign codes of
+ * 0b1011 and 0b1101 are interpreted as negative values.
+ * Positive and zero results are encoded with a either sign code of
+ * 0b1100 or 0b1111, depending on the preferred sign (indicated as an
+ * immediate operand).  Negative results are encoded with a sign code
+ * of 0b1101.
+ * PS - This is the 'preferred sign' bit encoded in some BCD associated
+ * instructions.
+ */
+
+// Note: table content is limited to values encoded, not interpreted.
+unsigned int packed_decimal_sign_codes[] = {
+   /* positive operands */
+   0xc, 0xf,  // 0b1100, 0b1111
+
+   /* negative operands */
+   0xd  // 0b1101
+};
+
+#define NR_PACKED_DECIMAL_SIGNS 3
+#define MAX_PACKED_DECIMAL_TABLE_SIZE 8 * 16 * 2 + 20
+
+static unsigned long * packed_decimal_table;
+
+/* build into a pair of doubles */
+unsigned long nb_packed_decimal_entries;
+
+static void dissect_packed_decimal_sign(unsigned long local_sign) {
+  switch(local_sign) {
+     case 0xa: /*0b1010:*/ printf("[ + ]"); break;
+     case 0xb: /*0b1011:*/ printf("[ - ]"); break;
+     case 0xc: /*0b1100:*/ printf("(+|0)"); break;
+     case 0xd: /*0b1101:*/ printf("( - )"); break;
+     case 0xe: /*0b1110:*/ printf("[ + ]"); break;
+     case 0xf: /*0b1111:*/ printf("(+|0)"); break;
+     default: printf("(?%02lx)", local_sign);
+  }
+}
+
+int extract_packed_decimal_sign(unsigned long dword1, unsigned long dword0) {
+   return  (dword1 & 0xf);
+}
+
+static void dissect_packed_decimal(unsigned long dword1,unsigned long dword0)
+{
+   int i;
+   int local_sign;
+   int nibble;
+
+   local_sign = extract_packed_decimal_sign(dword1, dword0);
+   printf("packed_decimal: [");
+
+   for (i = 60; i >= 0; i -= 4) {
+      nibble=(dword1 >> (i)) & 0xf;
+      printf(" %x", nibble);
+   }
+
+   for (i = 60; i >= 0; i -= 4) {
+      nibble=(dword0 >> (i)) & 0xf;
+      printf(" %x", nibble);
+   }
+
+   printf(" ");
+   dissect_packed_decimal_sign(local_sign);
+   printf(" ] ");
+}
+
+static void build_packed_decimal_table(void)
+{
+   long sign_index;
+   long sign_value;
+   int scramble;
+   unsigned long i = 0;
+   unsigned long value;
+
+   if (verbose) printf("%s\n", __FUNCTION__);
+
+   packed_decimal_table = malloc((MAX_PACKED_DECIMAL_TABLE_SIZE + 2)
+                                 * sizeof (unsigned long));
+
+   for (sign_index = 0; sign_index < NR_PACKED_DECIMAL_SIGNS; sign_index++) {
+      sign_value = packed_decimal_sign_codes[sign_index];
+
+      for (value = 0; value <= 9; value++) {
+        packed_decimal_table[i]    = 0x1111111111111111 * value;
+        packed_decimal_table[i+1]  = sign_value;
+        packed_decimal_table[i+1] += 0x1111111111111110 * value;
+
+        if (verbose>3) dissect_packed_decimal(packed_decimal_table[i+1],
+                                              packed_decimal_table[i]);
+        if (verbose>3) printf("\n");
+        i+=2;
+      }
+
+      for (scramble = 1; scramble <= 4; scramble++) {
+        packed_decimal_table[i]    = 0x3210321032103210 * scramble;
+        packed_decimal_table[i+1]  = sign_value;
+        packed_decimal_table[i+1] += 0x0123012301230120 * scramble;
+
+        if (verbose>3) dissect_packed_decimal(packed_decimal_table[i+1],
+                                              packed_decimal_table[i]);
+        if (verbose>3) printf("\n");
+        i+=2;
+      }
+
+      /* Add some entries that will provide interesting output from
+       * the convert TO tests.
+       */
+      packed_decimal_table[i]    = 0x0000000000000000;
+      packed_decimal_table[i+1]  = sign_value;
+      packed_decimal_table[i+1] += 0x0000000012345670;
+
+      if (verbose > 3) dissect_packed_decimal(packed_decimal_table[i+1],
+                                              packed_decimal_table[i]);
+
+      if (verbose>3) printf("\n");
+
+      i += 2;
+
+      packed_decimal_table[i]    = 0x0000000000000000;
+      packed_decimal_table[i+1]  = sign_value;
+      packed_decimal_table[i+1] += 0x0000000098765430;
+
+      if (verbose > 3) dissect_packed_decimal(packed_decimal_table[i+1],
+                                              packed_decimal_table[i]);
+
+      if (verbose > 3) printf("\n");
+
+      i += 2;
+
+      packed_decimal_table[i]    = 0x000000000000000b;
+      packed_decimal_table[i+1]  = sign_value;
+      packed_decimal_table[i+1] += 0x0000000000000000;
+
+      if (verbose > 3) dissect_packed_decimal(packed_decimal_table[i+1],
+                                              packed_decimal_table[i]);
+
+      if (verbose>3) printf("\n");
+
+      i += 2;
+
+      packed_decimal_table[i]    = 0x0030000000000000;
+      packed_decimal_table[i+1]  = sign_value;
+      packed_decimal_table[i+1] += 0x0000000000000000;
+
+      if (verbose > 3) dissect_packed_decimal(packed_decimal_table[i+1],
+                                            packed_decimal_table[i]);
+
+      if (verbose > 3) printf("\n");
+
+      i += 2;
+   }
+
+   if (verbose>2) printf("\n");
+
+   nb_packed_decimal_entries = i;
+}
+
+static void dump_packed_decimal_table(void) {
+   int i;
+
+   printf("packed_decimal_table:\n");
+
+   for (i = 0; i < nb_packed_decimal_entries; i += 2) {
+      printf("i =: %2d ", i);
+      dissect_packed_decimal(packed_decimal_table[i+1],
+                             packed_decimal_table[i]);
+      printf("\n");
+   }
+}
+
+/* National decimals:
+ * A valid encoding of a national decimal value requires the following.
+ * – The contents of halfword 7 (sign code) must be
+ *   either 0x002B or 0x002D.
+ * – The contents of halfwords 0 to 6 must be in the
+ *   range 0x0030 to 0x0039.
+ * National decimal values having a sign code of 0x002B
+ * are interpreted as positive values.
+ * National decimal values having a sign code of 0x002D
+ * are interpreted as negative values.
+ */
+unsigned int national_decimal_sign_codes[] = {
+   /* positive */  0x002b,
+   /* negative */  0x002d
+};
+
+#define NR_NATIONAL_DECIMAL_SIGNS 2
+
+unsigned int national_decimal_values[] = {
+   0x0030, 0x0031, 0x0032, 0x0033, 0x0034,
+   0x0035, 0x0036, 0x0037, 0x0038, 0x0039
+};
+
+#define NR_NATIONAL_DECIMAL_VALUES 10
+
+static unsigned long * national_decimal_table;
+
+#define MAX_NATIONAL_DECIMAL_TABLE_SIZE 10 * NR_NATIONAL_DECIMAL_VALUES * NR_NATIONAL_DECIMAL_SIGNS
+
+unsigned long nb_national_decimal_entries;
+
+static void dissect_national_decimal_sign(unsigned long local_sign) {
+   switch(local_sign) {
+      case 0x002b:
+            printf("( + )");
+            break;
+
+      case 0x002d:
+            printf("( - )");
+            break;
+
+     default: printf("unhandled sign value: %lx", local_sign);
+   }
+}
+
+int extract_national_decimal_sign(unsigned long dword1, unsigned long dword0) {
+   return (dword1 & 0x0ff);
+}
+
+static void dissect_national_decimal(unsigned long dword1,
+                                     unsigned long dword0)
+{
+   int i;
+   int local_sign;
+   long hword;
+
+   printf("national_decimal: [");
+
+   if (verbose>4) printf("raw: [%016lx %016lx] ", dword1, dword0);
+
+   for (i = 48;i >= 0; i -= 16) {
+      hword = dword1 >> (i) & 0x00ff;
+
+      /* validity of national decimal value */
+      /* the i>0 clause skips the validity check against the sign value. */
+      if (((i > 0) && (hword < 0x30)) || (hword > 0x39)) printf("!");
+
+      printf("%04lx ", hword);
+   }
+
+   for (i = 48; i >= 0; i -= 16) {
+      hword = dword0 >> (i) & 0x00ff;
+
+      if ((hword < 0x30) || (hword > 0x39)) printf("!");
+
+      printf("%04lx ", hword);
+   }
+
+   local_sign = extract_national_decimal_sign(dword1, dword0);
+   dissect_national_decimal_sign(local_sign);
+   printf(" ] ");
+}
+
+static void build_national_decimal_table(void)
+{
+   long sign_index;
+   long sign_value;
+   unsigned long i = 0;
+   int index;
+   unsigned long value;
+
+   if (verbose) printf("%s\n",__FUNCTION__);
+   national_decimal_table = malloc(MAX_NATIONAL_DECIMAL_TABLE_SIZE
+                                   * sizeof (unsigned long));
+
+   for (sign_index = 0; sign_index < NR_NATIONAL_DECIMAL_SIGNS; sign_index++) {
+      sign_value = national_decimal_sign_codes[sign_index];
+
+      for (index = 0; index < NR_NATIONAL_DECIMAL_VALUES; index++) {
+         value = national_decimal_values[index];
+
+         national_decimal_table[i]    = 0x0001000100010001 * value;
+         national_decimal_table[i+1]  = 0x0001000100010000 * value;
+         national_decimal_table[i+1] += sign_value ;
+
+         if (verbose > 3) {
+            dissect_national_decimal(national_decimal_table[i+1],
+                                     national_decimal_table[i]);
+            printf("\n");
+         }
+         i += 2;
+      }
+      { /* a few more for fun */
+         national_decimal_table[i]    = 0x0031003200330034;
+         national_decimal_table[i+1]  = 0x0035003600370000;
+         national_decimal_table[i+1] += sign_value ;
+
+         if (verbose > 3) {
+            dissect_national_decimal(national_decimal_table[i+1],
+                                     national_decimal_table[i]);
+            printf("\n");
+         }
+
+         i += 2;
+         national_decimal_table[i]    = 0x0031003200330034;
+         national_decimal_table[i+1]  = 0x0035003600370000;
+         national_decimal_table[i+1] += sign_value ;
+
+         if (verbose > 3) {
+            dissect_national_decimal(national_decimal_table[i+1],
+                                     national_decimal_table[i]);
+            printf("\n");
+         }
+         i += 2;
+      }
+   }
+
+   if (verbose > 2) printf("\n");
+
+   nb_national_decimal_entries = i;
+}
+
+static void dump_national_decimal_table(void) {
+   int i;
+
+   printf("national_decimal_table:\n");
+
+   for (i = 0; i < nb_national_decimal_entries; i += 2) {
+      printf("#%2d ", i);
+      dissect_national_decimal(national_decimal_table[i+1],
+                               national_decimal_table[i]);
+      printf("\n");
+   }
+}
+
+
+/* Zoned Decimals:
+ *
+ * When PS=0, do the following.
+ *  A valid encoding of a zoned decimal value requires the following.
+ *  – The contents of bits 0:3 of byte 15 (sign code) can be any
+ *    value in the range 0x0 to 0xF.
+ *  – The contents of bits 0:3 of bytes 0 to 14 (zone) must
+ *    be the value 0x3.
+ *  – The contents of bits 4:7 of bytes 0 to 15 must
+ *    be a value in the range 0x0 to 0x9.
+ *  Zoned decimal values having a sign code of 0x0, 0x1, 0x2, 0x3,
+ *  0x8, 0x9, 0xA, or 0xB are interpreted as positive values.
+ *  Zoned decimal values having a sign code of 0x4, 0x5, 0x6, 0x7,
+ *  0xC, 0xD, 0xE, or 0xF are interpreted as negative values.
+    :: 0,1,2,3,        8,9,a,b,         are interpreted as positive.
+    ::         4,5,6,7,        c,d,e,f  are interpreted as negative.
+ * When PS=1, do the following.
+ *  A valid encoding of a zoned decimal source operand requires the following.
+ *  – The contents of bits 0:3 of byte 15 (sign code) must be a value in the
+ *    range 0xA to 0xF.
+ *  – The contents of bits 0:3 of bytes 0 to 14 (zone) must be the value 0xF.
+ *  – The contents of bits 4:7 of bytes 0 to 15 must be a value in the
+ *    range 0x0 to 0x9.
+ *  Zoned decimal source operands having a sign code of 0xA, 0xC, 0xE,
+ *  or 0xF are interpreted as positive values.
+ *  Zoned decimal source operands having a sign code of 0xB or 0xD are
+ *  interpreted as negative values.
+    ::                     a,  c,  e,f  are interpreted as positive.
+    ::                       b,  d,     are interpreted as negative.
+ */
+
+/* a valid sign is anything in range 0-9,a-f,
+ * For coverage that does not overwhelm, we have chosen to use  0,1,4,a,b,f. */
+#define NM_ZONED_DECIMAL_SIGNS 6
+#define NM_ZONED_VALUES 5   /* 0,2,4,6,9 */
+#define NM_PS_VALUES 2      /* 0,1 */
+#define NM_ZONED_ADDITIONAL_PATTERNS 4
+#define MAX_ZONED_DECIMAL_TABLE_SIZE  NM_ZONED_DECIMAL_SIGNS * NM_ZONED_VALUES * NM_ZONED_ADDITIONAL_PATTERNS * NM_PS_VALUES + 10
+
+static unsigned long zoned_decimal_table_[MAX_ZONED_DECIMAL_TABLE_SIZE];
+static unsigned long * zoned_decimal_table;
+unsigned long nb_zoned_decimal_entries;
+
+static void dissect_zoned_decimal_sign(unsigned long local_sign, int ps) {
+   if (ps == 0) {
+      switch(local_sign) {
+         case 0x0: case 0x1: case 0x2: case 0x3:
+         case 0x8: case 0x9: case 0xa: case 0xb:
+            printf("( + )");
+            break;
+
+         case 0x4: case 0x5: case 0x6: case 0x7:
+         case 0xc: case 0xd: case 0xe: case 0xf:
+            printf("( - )");
+            break;
+         default: printf("zoned decimal (ps=%d). Unhandled sign value: %lx",
+                         ps, local_sign);
+      }
+   }
+
+   if (ps == 1) {
+      switch(local_sign) {
+         case 0xa: case 0xc: case 0xe: case 0xf:
+            printf("( + )");
+            break;
+
+         case 0xb: case 0xd:
+            printf("( - )");
+            break;
+
+         default: printf("zoned decimal (ps=%d). Unhandled sign value: %lx",
+                         ps, local_sign);
+      }
+   }
+}
+
+/* Valid byte values within a zoned decimal are in the ranges of
+ * 0x30..0x39 when PS==0, or 0xf0..0xff when PS==1.
+ */
+static void check_zoned_byte_validity(int byte, int ps) {
+   if (ps == 0) {
+      /* check the zone */
+      if (((byte & 0x30) != 0x30))
+         printf("!=30");
+
+   } else { /* ps==1 */
+      if (((byte & 0xf0) != 0xf0))
+         printf("%x !=f0 ", byte );
+   }
+
+   /* check the numeric value */
+   if ((byte & 0x0f) > 0x9)
+      printf("!(0..9)");
+}
+
+int extract_zoned_decimal_sign(unsigned long dword1, unsigned long dword0) {
+   return ((dword1 & 0xf0) >> 4);
+}
+
+static void dissect_zoned_decimal(unsigned long dword1, unsigned long dword0,
+                                  int ps)
+{
+   int i;
+   int local_sign;
+   int byte;
+
+   printf("zoned_decimal: [");
+
+   for (i = 56; i >= 0; i -= 8) {
+      byte = (dword1 >> (i)) & 0xff;
+      check_zoned_byte_validity(byte, ps);
+      printf(" %02x", byte);
+   }
+
+   for (i = 56; i >= 0; i -= 8) {
+      byte = (dword0 >> (i)) & 0x00ff;
+      check_zoned_byte_validity(byte, ps);
+
+      if ((byte & 0xf) > 0x9) printf(" !(>9)");
+      printf(" %02x", byte);
+   }
+
+   local_sign = extract_zoned_decimal_sign(dword1, dword0);
+   dissect_zoned_decimal_sign(local_sign, ps);
+   printf(" ]");
+}
+
+// Randomly chosen coverage for k includes values: 0,2,4,7,9
+#define SELECTIVE_INCREMENT_ZONED(k) \
+   if (k == 7) k = 9;                    \
+      else if (k == 4) k = 7;            \
+         else if (k == 2) k = 4;         \
+            else if (k == 0) k = 2;      \
+               else k++;
+
+// Randomly chosen coverage for signs includes values: 0,1,4,a,b,f
+#define SELECTIVE_INCREMENT_SIGNS(signs)              \
+         if (signs == 0x0) signs = 0x1;                   \
+         else if (signs == 0x1) signs = 0x4;              \
+            else if (signs == 0x4) signs = 0xa;           \
+               else if (signs == 0xa) signs = 0xb;        \
+                  else if (signs == 0xb) signs = 0xf;     \
+                     else signs++;
+
+static void build_zoned_decimal_table(void)
+{
+   unsigned long signs;
+   unsigned long i;
+   int k;
+   int ps;
+   int signs_start,signs_end;
+
+   if (verbose) printf("%s\n", __FUNCTION__);
+
+   zoned_decimal_table = zoned_decimal_table_;
+   i = 0;
+
+   for (ps = 0; ps <= 1; ps++) {
+      if (ps == 0) {
+         signs_start = 0;
+         signs_end   = 0xf;
+
+      } else {
+         signs_start = 0xa;
+         signs_end   = 0xf;
+      }
+
+      for (signs = signs_start;
+           signs <= signs_end;  /* signs selectively updated below */) {
+
+         if (verbose > 2) printf("ps=%d sign:%lx\n", ps, signs);
+
+         for (k = 0 ; k < 9;  /* k selectively updated below */) {
+            if (ps == 0) {
+               zoned_decimal_table[i]   = 0x3030303030303030;  // set bits 0:3 of bytes 0..7.
+               zoned_decimal_table[i+1] = 0x3030303030303000;  // bits 0:3 of bytes 8..14 must be 0x3
+
+            } else {
+               zoned_decimal_table[i]   = 0xf0f0f0f0f0f0f0f0;  // set bits 0:3 of bytes 0..7.
+               zoned_decimal_table[i+1] = 0xf0f0f0f0f0f0f000;  // bits 0:3 of bytes 8..14 must be 0x3
+            }
+
+            zoned_decimal_table[i]   += 0x010101010101010 * k; // set bits 4..7 of bytes 0..7.
+            zoned_decimal_table[i+1] += 0x010101010101000 * k; // bits 4:7 of bytes 8..15 must be 0..9.
+            zoned_decimal_table[i+1] += (signs << 4); // bits 0:3 of byte 15 is the sign.
+            if (verbose > 3) {
+               dissect_zoned_decimal(zoned_decimal_table[i+1],
+                                     zoned_decimal_table[i], ps);
+               printf("\n");
+            }
+            i += 2;
+            SELECTIVE_INCREMENT_ZONED(k)
+         }
+
+         /* add a few more patterns outside of the k patterns. */
+         if (ps == 0) {
+            zoned_decimal_table[i]   = 0x3030303030303030;
+            zoned_decimal_table[i+1] = 0x3030303030303000;
+
+         } else  {
+            zoned_decimal_table[i]   = 0xf0f0f0f0f0f0f0f0;
+            zoned_decimal_table[i+1] = 0xf0f0f0f0f0f0f000;
+         }
+
+         zoned_decimal_table[i]      += 0x0908070605040302;
+         zoned_decimal_table[i+1]    += 0x0102030405060700;
+         zoned_decimal_table[i+1]    += (signs<<4); // bits 0:3 of byte 15.
+
+         if (verbose > 3) {
+            dissect_zoned_decimal(zoned_decimal_table[i+1],
+                                  zoned_decimal_table[i], ps);
+            printf("\n");
+         }
+
+         i += 2;
+         SELECTIVE_INCREMENT_SIGNS(signs)
+      } /* signs loop */
+   } /* ps loop */
+
+   nb_zoned_decimal_entries = i;
+}
+
+static void dump_zoned_decimal_table(void) {
+   int i;
+   int ps;
+
+   for (ps = 0; ps <= 1; ps++) {
+      printf("zoned_decimal_table ps=%d:\n", ps);
+
+      for (i = 0; i < nb_zoned_decimal_entries; i += 2) {
+         printf("#%2d ", i);
+         dissect_zoned_decimal(zoned_decimal_table[i+1],
+                               zoned_decimal_table[i], ps);
+         printf("\n");
+      }
+   }
+}
+
+/* Build table containing shift and truncate values */
+#define MAX_DECIMAL_SHIFT_TABLE_SIZE 64
+
+static unsigned long * decimal_shift_table;
+unsigned long nb_decimal_shift_entries;
+
+static void build_decimal_shift_table(void) {
+   unsigned long i = 0;
+   unsigned long value;
+
+   if (verbose) printf("%s\n",__FUNCTION__);
+
+   decimal_shift_table = malloc(MAX_DECIMAL_SHIFT_TABLE_SIZE
+                                * sizeof (unsigned long));
+
+   for (value = 0; value <= 31; value++) {
+        decimal_shift_table[i]   = value;
+        decimal_shift_table[i+1] = 0;
+        i += 2;
+   }
+
+   if (verbose>2) printf("\n");
+
+   nb_decimal_shift_entries = i;
+}
+
+static void dump_decimal_shift_table(void) {
+   int i;
+
+   printf("decimal_shift_table:\n");
+
+   for (i = 0; i < nb_decimal_shift_entries; i += 2) {
+      printf("i=:%2d ", i);
+      printf(" 0x%2lx 0x%2lx ", decimal_shift_table[i],
+             decimal_shift_table[i+1]);
+      printf("\n");
+   }
+}
diff --git a/none/tests/ppc64/test_isa_3_0.c b/none/tests/ppc64/test_isa_3_0.c
new file mode 100644 (file)
index 0000000..6d3b303
--- /dev/null
@@ -0,0 +1,1615 @@
+/* HOW TO COMPILE:
+ * 64bit build:
+ *    gcc -Winline -Wall -g -O -mregnames -maltivec -m64
+ */
+
+/*
+ * test_isa_3_0.c:
+ * Copyright (c) 2016 Carl Love <cel@us.ibm.com>
+ * Copyright (c) 2016 Will Schmidt <will_schmidt@vnet.ibm.com>
+ *
+ * This testfile contains tests for the ISA 3.0 instructions.
+ * The framework of this test file was based on the framework
+ * of the jm-insns.c testfile, whose original author was
+ * Jocelyn Mayer.
+ */
+
+/*
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License V2
+ *   as published by the Free Software Foundation
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+/*
+ * Theory of operations:
+ * a few registers are reserved for the test program:
+ * r14...r18
+ * f14...f18
+ * - pre-load test values in r14 through r17
+ * - patch the test opcode if any immediate operands are
+ *   required
+ * - execute the tested opcode.
+ * CR and FPSCR are cleared before every test.
+ * results in {r,f}17
+ * check FPSCR for floating point operations.
+ */
+
+/*
+ * Operation details
+ * -----------------
+ * The 'test' functions (via all_tests[]) are wrappers of
+ * single __asm__ instructions
+ *
+ * The 'loops' (e.g. int_loops) do the actual work:
+ *  - loops over as many arguments as the instruction needs (regs | imms)
+ *     - sets up the environment (reset cr, assign src regs...)
+ *     - maybe modifies the asm instruction to test different immediate args
+ *     - call the test function
+ *     - retrieve relevant register data (rD,cr,...)
+ *     - prints argument and result data.
+ *
+ * all_tests[i] holds instruction tests
+ *  - of which each holds: {instn_test_arr[], description, flags}
+ *
+ * flags hold 3 instruction classifiers: {family, type, arg_type}
+ *
+ * // The main test loop:
+ * do_tests( user_ctl_flags ) {
+ *    foreach(curr_test = all_test[i]) {
+ *
+ *       // flags are used to control what tests are run:
+ *       if (curr_test->flags && !user_ctl_flags)
+ *          continue;
+ *
+ *       // a 'loop_family_arr' is chosen based on the 'family' flag...
+ *       switch(curr_test->flags->family) {
+ *       case x: loop_family_arr = int_loops;
+ *      ...
+ *       }
+ *
+ *       // ...and the actual test_loop to run is found by indexing into
+ *       // the loop_family_arr with the 'arg_type' flag:
+ *       test_loop = loop_family[curr_test->flags->arg_type]
+ *
+ *       // finally, loop over all instn tests for this test:
+ *       foreach (instn_test = curr_test->instn_test_arr[i]) {
+ *
+ *          // and call the test_loop with the current instn_test function,name
+ *          test_loop( instn_test->func, instn_test->name )
+ *       }
+ *    }
+ * }
+ */
+
+#include <stdio.h>
+#include <stdint.h>
+
+/* This test is only valid on machines that support IBM POWER ISA 3.0. */
+#ifdef HAS_ISA_3_0
+
+#include <assert.h>
+#include <ctype.h>     // isspace
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>    // getopt
+#include <altivec.h> // vector
+
+#undef DEBUG_VECTOR_PERMUTE
+static int verbose = 0;
+
+#include "../ppc64/ppc64_helpers.h" // SET_CR() and friends.
+
+#define VERBOSE_FUNCTION_CALLOUT \
+   if (verbose) \
+      printf("Test Harness Function: %s\n", __FUNCTION__);
+
+/* generic out-of-range reporting.
+ * Note: results are typically 'undefined' in these cases, so rather than
+ * pushing through and getting potentially random results, avoid the check.
+ * The caller should suppress output when insert_extract_error is set. */
+#define vinsertextract_err    \
+   insert_extract_error = 1;  \
+   if (verbose > 1)           \
+      printf("Expected error - index out of range in %s (%d)\n", \
+             __FUNCTION__, x_index);
+
+#define MAX(x, y) (x > y ? x : y)
+
+/* Used in do_tests, indexed by flags->nb_args
+   Elements correspond to enum test_flags::num args
+*/
+
+/* XXXX these must all be callee-save regs! */
+register HWord_t r14 __asm__ ("r14");
+register HWord_t r15 __asm__ ("r15");
+register HWord_t r16 __asm__ ("r16");
+register HWord_t r17 __asm__ ("r17");
+register double  f14 __asm__ ("fr14");
+register double  f15 __asm__ ("fr15");
+
+/* globals used for vector tests */
+static vector unsigned long vec_xa, vec_xb, vec_xc, vec_xt;
+
+/* globals for the condition register fields.  These are used to
+ * capture the condition register values immediately after the
+ * instruction under test is tested.
+ * This is to help prevent other test overhead, switch statements,
+ * compares, what-not from interfering.
+ */
+unsigned long local_cr;
+unsigned long local_fpscr;
+volatile unsigned int cr_value;
+
+/* global for holding the DFP values */
+dfp_val_t dfp_value;
+
+/* individual instruction tests */
+typedef void (*test_func_t) (void);
+struct test_list_t {
+   test_func_t func;
+   const char *name;
+};
+typedef struct test_list_t test_list_t;
+
+/* global variable, used to pass shift info down to the test functions.*/
+volatile int x_shift;
+
+/* Indicator for DCMX (Data Class Mask) matches. */
+volatile int dcmx_match;
+
+/* Error indicator to determine of the UIN (Unsigned Immediate) field
+ * from insert/extract was out of range */
+volatile int insert_extract_error;
+
+/* vector splat value */
+volatile int x_splat;
+volatile int dfp_significance;
+
+/* global variable, ... vector insert functions. */
+volatile int x_index;
+
+/* groups of instruction tests, calling individual tests */
+typedef void (*test_group_t) (const char *name, test_func_t func,
+                              unsigned int test_flags);
+
+enum test_flags {
+   /* Nb arguments */
+   PPC_ONE_ARG        = 0x00000001,
+   PPC_TWO_ARGS       = 0x00000002,
+   PPC_THREE_ARGS     = 0x00000003,
+   PPC_FOUR_ARGS      = 0x00000004,
+   PPC_COMPARE_ARGS   = 0x00000005,
+   PPC_LD_ARGS        = 0x00000006,
+   PPC_ST_ARGS        = 0x00000007,
+   PPC_ONE_IMM        = 0x00000008,
+   PPC_NB_ARGS_MASK   = 0x0000000F,
+
+   /* Type */
+   PPC_ARITH          = 0x00000100,
+   PPC_LOGICAL        = 0x00000200,
+   PPC_COMPARE        = 0x00000300,
+   PPC_LDST           = 0x00000400,
+   PPC_POPCNT         = 0x00000500,
+   PPC_INSERTEXTRACT  = 0x00000600,
+   PPC_PERMUTE        = 0x00000700,
+   PPC_ROUND          = 0x00000800,
+   PPC_TYPE_MASK      = 0x00000F00,
+
+   /* Family */
+   PPC_INTEGER        = 0x00010000,
+   PPC_ALTIVEC        = 0x00030000,
+   PPC_MISC           = 0x00080000,
+   PPC_FAMILY_MASK    = 0x000F0000,
+
+   /* Flags: these may be combined, so use separate bit-fields. */
+   PPC_CR             = 0x01000000,
+   PPC_XER_CA         = 0x02000000,
+};
+
+static void test_modsw (void)
+{
+   __asm__ __volatile__ ("modsw          17, 14, 15");
+}
+
+static void test_moduw (void)
+{
+   __asm__ __volatile__ ("moduw          17, 14, 15");
+}
+
+static void test_modsd (void)
+{
+   __asm__ __volatile__ ("modsd          17, 14, 15");
+}
+
+static void test_modud (void)
+{
+   __asm__ __volatile__ ("modud          17, 14, 15");
+}
+
+static test_list_t testgroup_ia_ops_two[] = {
+    { &test_modsw, "modsw" },
+    { &test_moduw, "moduw" },
+    { &test_modsd, "modsd" },
+    { &test_modud, "modud" },
+    { NULL       , NULL             },
+};
+
+static void test_maddhd (void)
+{
+   __asm__ __volatile__ ("maddhd 17, 14, 15, 16");
+}
+static void test_maddhdu (void)
+{
+   __asm__ __volatile__ ("maddhdu 17, 14, 15, 16");
+}
+static void test_maddld (void)
+{
+   __asm__ __volatile__ ("maddld 17, 14, 15, 16");
+}
+
+static test_list_t testgroup_three_args[] = {
+   { &test_maddhd , "maddhd " },
+   { &test_maddhdu, "maddhdu" },
+   { &test_maddld , "maddld " },
+   { NULL         , NULL      },
+};
+
+/* VSX vector permutes. */
+static void test_xxperm (void)
+{
+   __asm__ __volatile__ ("xxperm     %x0, %x1, %x2" : "+wa" (vec_xt): "wa" (vec_xa), "wa" (vec_xb));
+}
+
+/* VSX vector permute, right indexed. */
+static void test_xxpermr (void)
+{
+   __asm__ __volatile__ ("xxpermr    %x0, %x1, %x2" : "+wa" (vec_xt): "wa" (vec_xa), "wa" (vec_xb));
+}
+
+static test_list_t testgroup_vsx_xxpermute[] = {
+   { &test_xxperm , "xxperm"  },
+   { &test_xxpermr, "xxpermr" },
+   { NULL         , NULL      },
+};
+
+static void test_vabsdub(void) {
+   __asm__ __volatile__ ("vabsdub    %0, %1, %2" : "+v" (vec_xt): "v" (vec_xa), "v" (vec_xb));
+}
+
+static void test_vabsduh(void) {
+   __asm__ __volatile__ ("vabsduh    %0, %1, %2" : "+v" (vec_xt): "v" (vec_xa), "v" (vec_xb));
+}
+
+static void test_vabsduw(void) {
+   __asm__ __volatile__ ("vabsduw    %0, %1, %2" : "+v" (vec_xt): "v" (vec_xa), "v" (vec_xb));
+}
+
+static test_list_t testgroup_vsx_absolute[] = {
+   { &test_vabsdub        , "vabsdub"   },
+   { &test_vabsduh        , "vabsduh"   },
+   { &test_vabsduw        , "vabsduw"   },
+   { NULL                 , NULL        },
+};
+
+static void test_vpermr(void)
+{ /* vector permute right-indexed */
+    __asm__ __volatile__ ("vpermr   %0, %1, %2, %3 " : "+v" (vec_xt): "v" (vec_xa), "v" (vec_xb), "v" (vec_xc));
+}
+
+/* vector, 3->1 unique; four arguments. xt, xa, xb, xc (xc = permute) */
+static test_list_t testgroup_vector_four[] = {
+   { &test_vpermr, "vpermr" },
+   { NULL        , NULL     },
+};
+
+/* vector insert instructions */
+#define VINSERTB(X)    __asm__ __volatile__ ("vinsertb    %0, %1, %2" : "+v" (vec_xt) : "v" (vec_xb), "i"(X));
+
+#define VINSERTH(X)    __asm__ __volatile__ ("vinserth    %0, %1, %2" : "+v" (vec_xt) : "v" (vec_xb), "i"(X));
+
+#define VINSERTW(X)    __asm__ __volatile__ ("vinsertw    %0, %1, %2" : "+v" (vec_xt) : "v" (vec_xb), "i"(X));
+
+#define VINSERTD(X)    __asm__ __volatile__ ("vinsertd    %0, %1, %2" : "+v" (vec_xt) : "v" (vec_xb), "i"(X));
+
+#define VEXTRACTUB(X)  __asm__ __volatile__ ("vextractub  %0, %1, %2" : "+v" (vec_xt) : "v" (vec_xb), "i"(X));
+
+#define VEXTRACTUH(X)  __asm__ __volatile__ ("vextractuh  %0, %1, %2" : "+v" (vec_xt) : "v" (vec_xb), "i"(X));
+
+#define VEXTRACTUW(X)  __asm__ __volatile__ ("vextractuw  %0, %1, %2" : "+v" (vec_xt) : "v" (vec_xb), "i"(X));
+
+#define VEXTRACTD(X)   __asm__ __volatile__ ("vextractd   %0, %1, %2" : "+v" (vec_xt) : "v" (vec_xb), "i"(X));
+
+#define XXINSERTW(X)   __asm__ __volatile__ ("xxinsertw   %0, %1, %2" : "+wa" (vec_xt) : "wa" (vec_xb), "i"(X));
+
+#define XXEXTRACTUW(X) __asm__ __volatile__ ("xxextractuw %0, %1, %2" : "+wa" (vec_xt) : "wa" (vec_xb), "i"(X));
+
+static void test_vinsertb (void)
+{
+   switch(x_index) {
+   case  0: VINSERTB( 0); break;
+   case  1: VINSERTB( 1); break;
+   case  2: VINSERTB( 2); break;
+   case  3: VINSERTB( 3); break;
+   case  4: VINSERTB( 4); break;
+   case  5: VINSERTB( 5); break;
+   case  6: VINSERTB( 6); break;
+   case  7: VINSERTB( 7); break;
+   case  8: VINSERTB( 8); break;
+   case  9: VINSERTB( 9); break;
+   case 10: VINSERTB(10); break;
+   case 11: VINSERTB(11); break;
+   case 12: VINSERTB(12); break;
+   case 13: VINSERTB(13); break;
+   case 14: VINSERTB(14); break;
+   case 15: VINSERTB(15); break;
+   default:
+      vinsertextract_err;
+      break;
+   }
+}
+
+static void test_vinserth (void)
+{
+   switch(x_index) {
+   case 0:  VINSERTH(0); break;
+   case 1:  VINSERTH(1); break;
+   case 2:  VINSERTH(2); break;
+   case 3:  VINSERTH(3); break;
+   case 4:  VINSERTH(4); break;
+   case 5:  VINSERTH(5); break;
+   case 6:  VINSERTH(6); break;
+   case 7:  VINSERTH(7); break;
+   case 8:  VINSERTH(8); break;
+   case 9:  VINSERTH(9); break;
+   case 10: VINSERTH(10); break;
+   case 11: VINSERTH(11); break;
+   case 12: VINSERTH(12); break;
+   case 13: VINSERTH(13); break;
+   case 14: VINSERTH(14); break;
+   default:
+      vinsertextract_err;
+      break;
+   }
+}
+
+static void test_vinsertw (void)
+{
+   switch(x_index) {
+   case 0:  VINSERTW(0); break;
+   case 1:  VINSERTW(1); break;
+   case 2:  VINSERTW(2); break;
+   case 3:  VINSERTW(3); break;
+   case 4:  VINSERTW(4); break;
+   case 5:  VINSERTW(5); break;
+   case 6:  VINSERTW(6); break;
+   case 7:  VINSERTW(7); break;
+   case 8:  VINSERTW(8); break;
+   case 9:  VINSERTW(9); break;
+   case 10: VINSERTW(10); break;
+   case 11: VINSERTW(11); break;
+   case 12: VINSERTW(12); break;
+   default:
+      vinsertextract_err;
+      break;
+   }
+}
+
+static void test_vinsertd (void)
+{
+   switch(x_index) {
+   case 0:  VINSERTD(0); break;
+   case 1:  VINSERTD(1); break;
+   case 2:  VINSERTD(2); break;
+   case 3:  VINSERTD(3); break;
+   case 4:  VINSERTD(4); break;
+   case 5:  VINSERTD(5); break;
+   case 6:  VINSERTD(6); break;
+   case 7:  VINSERTD(7); break;
+   case 8:  VINSERTD(8); break;
+   default:
+      vinsertextract_err;
+      break;
+   }
+}
+
+/* extracts */
+static void test_vextractub (void)
+{
+   switch(x_index) {
+      case  0: VEXTRACTUB( 0); break;
+      case  1: VEXTRACTUB( 1); break;
+      case  2: VEXTRACTUB( 2); break;
+      case  3: VEXTRACTUB( 3); break;
+      case  4: VEXTRACTUB( 4); break;
+      case  5: VEXTRACTUB( 5); break;
+      case  6: VEXTRACTUB( 6); break;
+      case  7: VEXTRACTUB( 7); break;
+      case  8: VEXTRACTUB( 8); break;
+      case  9: VEXTRACTUB( 9); break;
+      case 10: VEXTRACTUB(10); break;
+      case 11: VEXTRACTUB(11); break;
+      case 12: VEXTRACTUB(12); break;
+      case 13: VEXTRACTUB(13); break;
+      case 14: VEXTRACTUB(14); break;
+      case 15: VEXTRACTUB(15); break;
+      default:
+         vinsertextract_err;
+         break;
+   }
+}
+
+static void test_vextractuh (void)
+{
+   switch(x_index) {
+      case  0: VEXTRACTUH( 0); break;
+      case  1: VEXTRACTUH( 1); break;
+      case  2: VEXTRACTUH( 2); break;
+      case  3: VEXTRACTUH( 3); break;
+      case  4: VEXTRACTUH( 4); break;
+      case  5: VEXTRACTUH( 5); break;
+      case  6: VEXTRACTUH( 6); break;
+      case  7: VEXTRACTUH( 7); break;
+      case  8: VEXTRACTUH( 8); break;
+      case  9: VEXTRACTUH( 9); break;
+      case 10: VEXTRACTUH(10); break;
+      case 11: VEXTRACTUH(11); break;
+      case 12: VEXTRACTUH(12); break;
+      case 13: VEXTRACTUH(13); break;
+      case 14: VEXTRACTUH(14); break;
+      default:
+         vinsertextract_err;
+         break;
+   }
+}
+
+static void test_vextractuw (void)
+{
+   switch(x_index) {
+      case  0: VEXTRACTUW( 0); break;
+      case  1: VEXTRACTUW( 1); break;
+      case  2: VEXTRACTUW( 2); break;
+      case  3: VEXTRACTUW( 3); break;
+      case  4: VEXTRACTUW( 4); break;
+      case  5: VEXTRACTUW( 5); break;
+      case  6: VEXTRACTUW( 6); break;
+      case  7: VEXTRACTUW( 7); break;
+      case  8: VEXTRACTUW( 8); break;
+      case  9: VEXTRACTUW( 9); break;
+      case 10: VEXTRACTUW(10); break;
+      case 11: VEXTRACTUW(11); break;
+      default:
+         vinsertextract_err;
+         break;
+   }
+}
+
+static void test_vextractd (void)
+{
+   switch(x_index) {
+      case  0: VEXTRACTD( 0); break;
+      case  1: VEXTRACTD( 1); break;
+      case  2: VEXTRACTD( 2); break;
+      case  3: VEXTRACTD( 3); break;
+      case  4: VEXTRACTD( 4); break;
+      case  5: VEXTRACTD( 5); break;
+      case  6: VEXTRACTD( 6); break;
+      case  7: VEXTRACTD( 7); break;
+      case  8: VEXTRACTD( 8); break;
+      default:
+         vinsertextract_err;
+         break;
+   }
+}
+
+static void test_xxinsertw (void)
+{
+   switch(x_index) {
+      case  0: XXINSERTW( 0); break;
+      case  1: XXINSERTW( 1); break;
+      case  2: XXINSERTW( 2); break;
+      case  3: XXINSERTW( 3); break;
+      case  4: XXINSERTW( 4); break;
+      case  5: XXINSERTW( 5); break;
+      case  6: XXINSERTW( 6); break;
+      case  7: XXINSERTW( 7); break;
+      case  8: XXINSERTW( 8); break;
+      case  9: XXINSERTW( 9); break;
+      case 10: XXINSERTW(10); break;
+      case 11: XXINSERTW(11); break;
+      case 12: XXINSERTW(12); break;
+      default:
+         vinsertextract_err;
+         break;
+   }
+}
+
+static void test_xxextractuw (void)
+{
+   switch(x_index) {
+      case  0: XXEXTRACTUW( 0); break;
+      case  1: XXEXTRACTUW( 1); break;
+      case  2: XXEXTRACTUW( 2); break;
+      case  3: XXEXTRACTUW( 3); break;
+      case  4: XXEXTRACTUW( 4); break;
+      case  5: XXEXTRACTUW( 5); break;
+      case  6: XXEXTRACTUW( 6); break;
+      case  7: XXEXTRACTUW( 7); break;
+      case  8: XXEXTRACTUW( 8); break;
+      case  9: XXEXTRACTUW( 9); break;
+      case 10: XXEXTRACTUW(10); break;
+      case 11: XXEXTRACTUW(11); break;
+      case 12: XXEXTRACTUW(12); break;
+      default:
+         vinsertextract_err;
+         break;
+   }
+}
+
+static test_list_t testgroup_vector_inserts[] = {
+   { &test_vinsertb   , "vinsertb   " },
+   { &test_vinserth   , "vinserth   " },
+   { &test_vinsertw   , "vinsertw   " },
+   { &test_vinsertd   , "vinsertd   " },
+   { &test_vextractub , "vextractub " },
+   { &test_vextractuh , "vextractuh " },
+   { &test_vextractuw , "vextractuw " },
+   { &test_vextractd  , "vextractd  " },
+   { &test_xxinsertw  , "xxinsertw  " },
+   { &test_xxextractuw, "xxextractuw" },
+   { NULL             , NULL          },
+};
+
+static void test_xxspltib(void)
+{ /* vector splat byte */
+   switch(x_splat) {
+      case SPLAT0:     __asm__ __volatile__ ("xxspltib  %x0, %1 " : "=wa"(vec_xt) : "i"(SPLAT0)); break;
+
+      case SPLAT1:     __asm__ __volatile__ ("xxspltib  %x0, %1 " : "=wa"(vec_xt) : "i"(SPLAT1)); break;
+
+      case SPLAT2:     __asm__ __volatile__ ("xxspltib  %x0, %1 " : "=wa"(vec_xt) : "i"(SPLAT2)); break;
+
+      case SPLAT3:     __asm__ __volatile__ ("xxspltib  %x0, %1 " : "=wa"(vec_xt) : "i"(SPLAT3)); break;
+
+      case SPLAT4:     __asm__ __volatile__ ("xxspltib  %x0, %1 " : "=wa"(vec_xt) : "i"(SPLAT4)); break;
+
+      default:
+         printf("Unhandled splat value for %s %d\n", __FUNCTION__, x_splat);
+   }
+};
+
+static test_list_t testgroup_vector_immediate[] = {
+   { &test_xxspltib, "xxspltib" },
+   { NULL          , NULL       },
+};
+
+/* vector reverse bytes ... */
+static void test_xxbrh(void)
+{ /* vector reverse byte halfword*/
+   __asm__ __volatile__ ("xxbrh %x0, %x1 " : "=wa" (vec_xt) : "wa" (vec_xa));
+}
+
+static void test_xxbrw(void)
+{ /* vector reverse byte word*/
+   __asm__ __volatile__ ("xxbrw %x0, %x1 " : "=wa" (vec_xt) : "wa" (vec_xa));
+}
+
+static void test_xxbrd(void)
+{ /* vector reverse byte double*/
+   __asm__ __volatile__ ("xxbrd %x0, %x1 " : "=wa" (vec_xt) : "wa" (vec_xa));
+}
+
+static void test_xxbrq(void)
+{ /* vector reverse byte */
+   __asm__ __volatile__ ("xxbrq %x0, %x1 " : "=wa" (vec_xt) : "wa" (vec_xa));
+}
+
+static test_list_t testgroup_vector_logical_one[] = {
+   { &test_xxbrh   , "xxbrh"    },
+   { &test_xxbrw   , "xxbrw"    },
+   { &test_xxbrd   , "xxbrd"    },
+   { &test_xxbrq   , "xxbrq"    },
+   { NULL          , NULL       },
+};
+
+static void test_lxvx(void)     {
+   __asm__ __volatile__ ("lxvx %x0, 14, 15" : "=wa" (vec_xt));
+}
+
+static void test_lxvwsx(void)   {
+   __asm__ __volatile__ ("lxvwsx %x0, 14, 15" : "=wa" (vec_xt));
+}
+
+static void test_lxvh8x(void)   {
+   __asm__ __volatile__ ("lxvh8x %x0, 14, 15" : "=wa" (vec_xt));
+}
+
+static void test_lxvb16x(void)  {
+   __asm__ __volatile__ ("lxvb16x %x0, 14, 15" : "=wa" (vec_xt));
+}
+
+static void test_stxvx(void)    {
+   __asm__ __volatile__ ("stxvx %x0, 14, 15" : "=wa" (vec_xt));
+}
+
+static void test_stxvh8x(void)  {
+   __asm__ __volatile__ ("stxvh8x %x0, 14, 15" : "=wa" (vec_xt));
+}
+
+static void test_stxvb16x(void) {
+   __asm__ __volatile__ ("stxvb16x %x0, 14, 15" : "=wa" (vec_xt));
+}
+
+static test_list_t testgroup_vector_loadstore[] = {
+   { &test_lxvx    , "lxvx"     },
+   { &test_lxvwsx  , "lxvwsx"   },
+   { &test_lxvh8x  , "lxvh8x"   },
+   { &test_lxvb16x , "lxvb16x"  },
+   { &test_stxvx   , "stxvx"    },
+   { &test_stxvh8x , "stxvh8x"  },
+   { &test_stxvb16x, "stxvb16x" },
+   { NULL          , NULL       },
+};
+
+/* move from/to VSR */
+static void test_mfvsrld (void)
+{
+   __asm__ __volatile__ ("mfvsrld %0, %x1" : "=r" (r14) : "wa" (vec_xt));
+};
+
+static void test_mtvsrdd (void)
+{
+   __asm__ __volatile__ ("mtvsrdd %x0, 14, 15" : "=wa" (vec_xt));
+};
+
+static void test_mtvsrws (void)
+{ /* To fit in better with the caller for the mfvsrdd test, use r15
+   * instead of r14 as input here.
+   */
+   __asm__ __volatile__ ("mtvsrws %0, 15" : "=wa" (vec_xt));
+};
+
+static test_list_t testgroup_vectorscalar_move_tofrom[] = {
+   { &test_mfvsrld, "mfvsrld" }, /* RA, XS */
+   { &test_mtvsrdd, "mtvsrdd" }, /* XT, RA, RB */
+   { &test_mtvsrws, "mtvsrws" }, /* XT, RA */
+   { NULL         , NULL      },
+};
+
+
+/* ###### begin all_tests table.  */
+
+/* table containing all of the instruction groups */
+struct test_group_table_t {
+   test_list_t *tests;
+   const char *name;
+   unsigned int flags;
+};
+
+typedef struct test_group_table_t test_group_table_t;
+
+static test_group_table_t all_tests[] = {
+   {
+      testgroup_ia_ops_two,
+      "PPC integer arith instructions with two args",
+      PPC_INTEGER | PPC_ARITH | PPC_TWO_ARGS,
+   },
+   {
+      testgroup_three_args,
+      "ppc three parameter ops",
+      PPC_INTEGER | PPC_ARITH | PPC_THREE_ARGS,
+   },
+   {
+      testgroup_vsx_absolute,
+      "ppc vector absolutes",
+      PPC_ALTIVEC | PPC_ARITH | PPC_TWO_ARGS,
+   },
+   {
+      testgroup_vector_immediate,
+      "ppc vector logical immediate",
+      PPC_ALTIVEC | PPC_LOGICAL | PPC_ONE_IMM,
+   },
+   {
+      testgroup_vector_logical_one,
+      "ppc vector logical one",
+      PPC_ALTIVEC | PPC_LOGICAL | PPC_ONE_ARG,
+   },
+   {
+      testgroup_vsx_xxpermute,
+      "ppc vector permutes",
+      PPC_ALTIVEC | PPC_PERMUTE | PPC_THREE_ARGS,
+   },
+   {
+      testgroup_vector_four,
+      "ppc vector three args + dest",
+      PPC_ALTIVEC | PPC_LOGICAL | PPC_FOUR_ARGS,
+   },
+   {
+      testgroup_vector_inserts,
+      "ppc vector inserts",
+      PPC_ALTIVEC | PPC_INSERTEXTRACT | PPC_ONE_IMM,
+   },
+   {
+      testgroup_vector_loadstore,
+      "ppc vector load/store",
+      PPC_ALTIVEC | PPC_LDST | PPC_TWO_ARGS,
+   },
+   {
+      testgroup_vectorscalar_move_tofrom,
+      "ppc vector scalar move to/from",
+      PPC_MISC,
+   },
+   { NULL,                   NULL,               0x00000000, },
+};
+
+static void testfunction_int_two_args (const char* instruction_name,
+                                       test_func_t func,
+                                       unsigned int test_flags)
+{
+   volatile HWord_t res;
+   volatile unsigned int cr;
+   int i, j;
+
+   VERBOSE_FUNCTION_CALLOUT
+
+   for (i = 0; i < nb_iargs; i++) {
+      for (j = 0; j < nb_iargs; j++) {
+
+         r14 = iargs[i];
+         r15 = iargs[j];
+
+         SET_CR_ZERO;
+         (*func)();
+         GET_CR(cr);
+         res = r17;
+
+         printf("%s %016lx, %016lx => %016lx (%08x)\n",
+                instruction_name, (long unsigned)iargs[i],
+                (long unsigned)iargs[j], (long unsigned)res,
+                cr);
+      }
+      if (verbose) printf("\n");
+   }
+}
+
+void testfunction_one_arg_with_shift (const char* instruction_name,
+                                      test_func_t test_function,
+                                      unsigned int ignore_test_flags)
+{
+   /*This function uses global variable x_shift */
+   volatile HWord_t res;
+   volatile unsigned int cr;
+   int i, j;
+
+   VERBOSE_FUNCTION_CALLOUT
+
+   for (i = 0; i < SHIFT_VALUES_SIZE; i++) {
+      for (j = 0; j < SHIFT_ARRAY_SIZE; j++) {
+
+         r14 = values_to_shift[i];
+         x_shift = shift_amounts[j];
+
+         SET_CR_ZERO;
+
+         (*test_function)();
+
+         GET_CR(cr);
+         res = r17;
+
+         printf("%s %016lx, %016lx => %016lx (%08x)\n",
+                instruction_name, (long unsigned)values_to_shift[i],
+                (long unsigned)x_shift, (long unsigned)res, cr);
+      }
+   }
+}
+
+static void testfunction_three_args (const char* instruction_name,
+                                     test_func_t test_function,
+                                     unsigned int ignore_test_flags)
+{
+   volatile HWord_t res;
+   volatile unsigned int cr;
+   int i, j, l;
+
+   VERBOSE_FUNCTION_CALLOUT
+
+   for (i = 0; i < nb_iargs; i++) {
+      for (j = 0; j < nb_iargs; j++) {
+         for (l = 0; l < nb_iargs; l++) {
+            r14 = iargs[i];
+            r15 = iargs[j];
+            r16 = iargs[l];
+
+            SET_CR_ZERO;
+
+            (*test_function)();
+
+            GET_CR(cr);
+            res = r17;
+
+            printf("%s %016lx, %016lx, %016lx  => %016lx (%08x)\n",
+                   instruction_name,
+                   (long unsigned)r14, (long unsigned)r15,
+                   (long unsigned)r16, (long unsigned)res,
+                   cr);
+         }
+      }
+   }
+}
+
+static void testfunction_vector_absolute (const char* instruction_name,
+                                          test_func_t test_function,
+                                          unsigned int ignore_test_flags)
+{
+   /* Notes:
+    *   iterate across xa, xb values.
+    *   Results are in xt.
+    */
+   volatile unsigned int cr;
+   int i, j;
+
+   VERBOSE_FUNCTION_CALLOUT
+
+   for (i = 0; i < nb_vargs; i += 4) {
+      /* patterns more interesting when shifted like so.. */
+      for (j = 0; j < nb_vpcv; j += 2) {
+
+         vec_xa = (vector unsigned long){vsxargs[i], vsxargs[i+1]};
+         vec_xb = (vector unsigned long){vsxargs[j], vsxargs[j]};
+         vec_xt = (vector unsigned long){0, 0};
+
+         printf("%s xa:%016lx %016lx xb:%016lx %016lx ",
+                instruction_name,
+                vec_xa[1],vec_xa[0],
+                vec_xb[0],vec_xb[1]
+                );
+         printf(" => ");
+
+         SET_CR_ZERO;
+
+         (*test_function)();
+
+         GET_CR(cr);
+
+         printf(" xt:%016lx %016lx (%08x)\n", vec_xt[0], vec_xt[1], cr);
+      }
+      if (verbose) printf("\n");
+   }
+}
+
+static void testfunction_vector_xxpermute (const char* instruction_name,
+                                           test_func_t test_function,
+                                           unsigned int ignore_test_flags)
+{
+   /* Notes:
+    *   VSX permute uses both xt and xa as source registers.
+    *   Permute control vector is in xb.
+    *   Results are in xt.
+    */
+   volatile unsigned int cr;
+   int i, j;
+
+   VERBOSE_FUNCTION_CALLOUT
+
+   for (i = 0; i < nb_vargs; i += 4) {
+      for (j = 0; j < nb_vpcv; j += 2) {
+
+         vec_xa = (vector unsigned long){vsxargs[i], vsxargs[i+1]};
+         vec_xt = (vector unsigned long){vsxargs[i+2], vsxargs[i+3]};
+         vec_xb = (vector unsigned long){vpcv[j], vpcv[j+1]};
+
+         printf("%s %016lx %016lx %016lx %016lx, pcv[%016lx %016lx] => ",
+                instruction_name,
+                vec_xa[1], vec_xa[0],
+                vec_xt[1], vec_xt[0],
+                vec_xb[0], vec_xb[1]);
+
+         SET_CR_ZERO;
+
+         (*test_function)();
+
+         GET_CR(cr);
+
+         printf(" %016lx %016lx (%08x)\n", vec_xt[0], vec_xt[1], cr);
+
+#if defined (DEBUG_VECTOR_PERMUTE)
+         printf("DEBUG:%s %016lx %016lx %016lx %016lx, pcv[%016lx %016lx]\n",
+                ignore_name,
+                vec_xa[0], vec_xa[1],
+                vec_xt[0], vec_xt[1],
+                vec_xb[0], vec_xb[1]);
+#endif
+      }
+      if (verbose) printf("\n");
+   }
+}
+
+static void testfunction_vector_logical_one (const char* instruction_name,
+                                             test_func_t test_function,
+                                             unsigned int ignore_test_flags)
+{
+   /* Notes:
+    *   vector instructions with one input, one output.
+    *   xt, xa
+    */
+   int i;
+   int t;
+
+   VERBOSE_FUNCTION_CALLOUT
+
+   for (i = 0; i < nb_vargs; i += 2) {
+
+      vec_xa = (vector unsigned long){vsxargs[i], vsxargs[i+1]};
+      for (t = 0; t < 2; t++) {
+         vec_xt[0] = (t == 0) ? 0 : 0xffffffffffffffff;
+         vec_xt[1] = (t == 0) ? 0 : 0xffffffffffffffff;
+
+         printf("%s xa:%016lx %016lx xt:%016lx %016lx => ",
+                instruction_name,
+                vec_xa[0], vec_xa[1],
+                vec_xt[0], vec_xt[1]);
+
+         (*test_function)();
+
+         printf(" xt:%016lx %016lx\n",
+                vec_xt[0], vec_xt[1]);
+      }
+   }
+   if (verbose) printf("\n");
+}
+
+static void testfunction_vector_logical_four (const char* instruction_name,
+                                              test_func_t test_function,
+                                              unsigned int ignore_test_flags) {
+   /* Notes:
+    *   vector instructions with three input arguments, one output.
+    *   xt, xa, xb, xc.
+    *   Permute control vector is in xc.
+    *   Results are in xt.
+    */
+   volatile unsigned int cr;
+   int i, j;
+   int p;
+
+   VERBOSE_FUNCTION_CALLOUT
+
+   for (i = 0; i < nb_vargs; i += 4) {
+      for (j = 0; j < nb_vargs; j += 4) {
+         for (p = 0; p < nb_vpcv; p += 2) {
+
+            vec_xa = (vector unsigned long){vsxargs[i], vsxargs[i+1]};
+            vec_xb = (vector unsigned long){vsxargs[j], vsxargs[j+1]};
+            vec_xc = (vector unsigned long){vpcv[p], vpcv[p+1]};
+
+            printf("%s %016lx %016lx %016lx %016lx, pcv[%016lx %016lx] => ",
+                   instruction_name,
+                   vec_xa[1], vec_xa[0],
+                   vec_xb[1], vec_xb[0],
+                   vec_xc[0], vec_xc[1]);
+
+            SET_CR_ZERO;
+
+            (*test_function)();
+
+            GET_CR(cr);
+
+            printf(" %016lx %016lx (%08x)\n", vec_xt[0], vec_xt[1], cr);
+         }
+      }
+
+      if (verbose) printf("\n");
+   }
+}
+
+static
+void testfunction_vector_insert_or_extract_immediate (const char* instruction_name,
+                                                      test_func_t test_function,
+                                                      unsigned int ignore_test_flags) {
+   /* Uses global variable x_index */
+   /* uses global variable insert_extract_error */
+   int i;
+   int t;
+
+   VERBOSE_FUNCTION_CALLOUT
+
+   /* for the insert and extract tests, we deliberately use only a
+    * subset of the vsxargs array as input data.
+    */
+   for (i = 2; i < 9 ; i += 4) { /* index into vsxargs[] array */
+
+      /* Note:
+       * Determining the proper offset for {extract, insert} byte, halfword,
+       * word, double would complicate things.  For simplicity, allow the
+       * sub-functions to ignore input that would be invalid.  Catch and
+       * suppress output for those cases per the global variable.
+       */
+      for (x_index = 0; x_index < 16 ; x_index++) {
+         vec_xb[0] = (unsigned long) vsxargs[i];
+         vec_xb[1] = (unsigned long) vsxargs[i+1];
+
+         /* Run each test against all zeros and then all ones,
+          * This is intended to help any bitfield changes stand out.
+          */
+         for (t = 0; t < 2; t++) {
+
+            vec_xt[0] = (t == 0) ? 0 : 0xffffffffffffffff;
+            vec_xt[1] = (t == 0) ? 0 : 0xffffffffffffffff;
+
+            insert_extract_error = 0;
+
+            (*test_function)();
+
+            if (!insert_extract_error) {
+               printf("%s %016lx %016lx [%d] (into%s) => ",
+                      instruction_name, vec_xb[1], vec_xb[0], x_index,
+                      (t == 0 ? " zeros" : "  ones") );
+
+               printf("%016lx %016lx\n", vec_xt[1], vec_xt[0]);
+            }
+         }
+      }
+   }
+}
+
+
+static void testfunction_vector_immediate (const char * instruction_name,
+                                           test_func_t test_function,
+                                           unsigned int ignore_test_flags) {
+   /* Uses global variable x_splat */
+   int i;
+   int t;
+
+   VERBOSE_FUNCTION_CALLOUT
+
+   for (i = 0; i < SPLAT_ARRAY_SIZE; i++) {
+      x_splat = splat_values[i];
+      for (t = 0; t < 2; t++) {
+         vec_xt[0] = (t == 0) ? 0 : 0xffffffffffffffff;
+         vec_xt[1] = (t == 0) ? 0 : 0xffffffffffffffff;
+
+         printf("%s %016lx %016lx [%2x] => ",
+                instruction_name, vec_xt[1], vec_xt[0], x_splat);
+
+         (*test_function)();
+
+         printf("%016lx %016lx\n", vec_xt[1], vec_xt[0]);
+      }
+   }
+}
+
+static void testfunction_vector_loadstore (const char* instruction_name,
+                                           test_func_t test_function,
+                                           unsigned int ignore_flags) {
+   /* exercises vector loads from memory, and vector stores from memory.
+    * <load or store instruction>  XS, RA, RB
+    * For these tests, RA will be zero.
+    * EA is then, simply, RB.
+    */
+   int i;
+   int buffer_pattern;
+
+   VERBOSE_FUNCTION_CALLOUT
+
+   for (i = 0; i < nb_vargs; i += 2) {
+
+      vec_xt = (vector unsigned long){vsxargs[i], vsxargs[i+1]};
+      r14 = 0;
+      r15 = (unsigned long) & buffer;
+
+      for (buffer_pattern = 0; buffer_pattern < MAX_BUFFER_PATTERNS;
+           buffer_pattern++) {
+
+         /* set patterns on both ends */
+         initialize_buffer(buffer_pattern);
+
+         printf("%s ", instruction_name);
+         printf("%016lx %016lx ", vec_xt[1], vec_xt[0]);
+         dump_small_buffer();
+         printf(" =>\n");
+
+         (*test_function)();
+
+         printf("    %016lx %016lx ", vec_xt[1], vec_xt[0]);
+         dump_small_buffer();
+         printf("\n");
+      }
+   }
+}
+
+
+static void testfunction_vectorscalar_move_tofrom (const char * instruction_name,
+                                                   test_func_t test_function,
+                                                   unsigned int ignore_test_flags) {
+   /* Move to / move from vector scalar.  spin through simple variants of
+    * both the VSR and the register.
+    * for simplicity, RA from 'mtvsrdd xt, ra, rb' is 0.
+    */
+   int i, v;
+
+   VERBOSE_FUNCTION_CALLOUT
+
+   for (i = 0; i < PATTERN_SIZE; i++) {
+      for (v = 0; v < PATTERN_SIZE; v++) {
+         /* if i==v, patterns will match, so just skip these as
+          * non-interesting..
+          */
+         if (i == v) continue;
+         r14 = 0;
+         r15 = pattern[i%PATTERN_SIZE];
+         vec_xt[0] = pattern[v%PATTERN_SIZE];
+         vec_xt[1] = pattern[v%PATTERN_SIZE];
+
+         printf("%s ", instruction_name);
+         printf("%016lx %016lx %lx %016lx ", vec_xt[1], vec_xt[0],
+                (long unsigned)r14,  (long unsigned)r15 );
+
+         (*test_function)();
+
+         printf("=> %016lx %016lx %lx %016lx ", vec_xt[1], vec_xt[0],
+                (long unsigned)r14,  (long unsigned)r15 );
+         printf("\n");
+      }
+   }
+}
+
+/* packed binary decimal misc */
+
+#define convert_from_zoned(instruction_name) (strncmp(instruction_name, "bcdcfz", 6) ==0 )
+
+#define convert_from_national(instruction_name) (strncmp(instruction_name, "bcdcfn", 6) == 0)
+
+#define convert_to_zoned(instruction_name) (strncmp(instruction_name, "bcdctz", 6) == 0)
+
+#define convert_to_national(instruction_name) (strncmp(instruction_name, "bcdctn", 6) == 0)
+
+#define shift_or_truncate(instruction_name)                \
+         (strncmp(instruction_name, "bcds", 4)  == 0    || \
+          strncmp(instruction_name, "bcdus", 5) == 0    || \
+          strncmp(instruction_name, "bcdsr", 5) == 0    || \
+          strncmp(instruction_name, "bcdtrunc", 8) == 0 || \
+          strncmp(instruction_name, "bcdutrunc", 9) == 0)
+
+
+/* Helper function - returns 1 or 0 per whether the p1 or p0 string
+ *  exists in the instruction name passed in.  The PS indicates preferred
+ *  sign, and has meaning for some of the BCD instructions.
+ */
+static inline int p_value(const char * instruction_name) {
+   char * found_p0;
+   char * found_p1;
+
+   found_p1 = strstr(instruction_name, "p1");
+   found_p0 = strstr(instruction_name, "p0");
+
+   if (found_p1) return 1;
+
+   if (found_p0) return 0;
+
+   if (verbose) printf("p* substring not found in (%s)\n", instruction_name);
+
+   return 0;
+}
+
+/* bcd test has been split out a bit..  a few bcd specific global vars here
+ * to help keep that clean.
+ */
+long shift_or_truncate_instruction;
+int xa_sign, xb_sign, xt_sign;
+int short_circuit;
+
+/* testfunction_bcd_setup_inputs
+ * This is a helper function that sets up the vec_xa, vec_xb values for
+ * use in the bcd tests.
+ */
+static inline void testfunction_bcd_setup_inputs(const char * instruction_name,
+                                                 int i, int j) {
+   short_circuit=0;
+
+   if (shift_or_truncate_instruction) {
+      if (i >= nb_decimal_shift_entries - 2) {
+         short_circuit = 1;
+         return;
+      }
+      vec_xa = (vector unsigned long) {decimal_shift_table[i+1],
+                                       decimal_shift_table[i]};
+
+   } else {
+      if (i >= nb_decimal_shift_entries - 2) {
+         short_circuit = 1;
+         return;
+      }
+
+      vec_xa = (vector unsigned long) {packed_decimal_table[i+1],
+                                       packed_decimal_table[i]};
+      xa_sign = extract_packed_decimal_sign(vec_xa[0], vec_xa[1]);
+   }
+
+   if (convert_from_zoned(instruction_name)) { /* convert from zoned */
+      if (j >= nb_zoned_decimal_entries - 2) {
+         short_circuit = 1;
+         return;
+      }
+
+      vec_xb = (vector unsigned long) {zoned_decimal_table[j+1],
+                                       zoned_decimal_table[j]};
+      xb_sign = extract_zoned_decimal_sign(vec_xb[0], vec_xb[1]);
+
+   } else if (convert_from_national(instruction_name)) {
+      /* convert from national */
+      if (j >= nb_national_decimal_entries - 2) {
+         short_circuit = 1;
+         return;
+      }
+      vec_xb = (vector unsigned long) {national_decimal_table[j+1],
+                                       national_decimal_table[j]};
+      xb_sign = extract_national_decimal_sign(vec_xb[0], vec_xb[1]);
+
+   } else {
+      /* packed decimal entries */
+      if (j >= nb_packed_decimal_entries - 2) {
+         short_circuit = 1;
+         return;
+      }
+      vec_xb = (vector unsigned long) {packed_decimal_table[j+1],
+                                       packed_decimal_table[j]};
+      xb_sign = extract_packed_decimal_sign(vec_xb[0], vec_xb[1]);
+   }
+}
+
+static inline void testfunction_bcd_display_outputs(const char * instruction_name) {
+
+   printf(" xt:%016lx %016lx", vec_xt[0], vec_xt[1] );
+
+   if (convert_to_zoned(instruction_name)) {
+      /* convert to zoned */
+      xt_sign = extract_zoned_decimal_sign(vec_xt[0], vec_xt[1]);
+      dissect_zoned_decimal_sign(xt_sign, p_value(instruction_name));
+
+   } else if (convert_to_national(instruction_name)) {
+      /* convert to national */
+      xt_sign = extract_national_decimal_sign(vec_xt[0], vec_xt[1]);
+      dissect_national_decimal_sign(xt_sign);
+
+   } else {
+      /* packed decimal entries, or shift/truncate */
+      if (!shift_or_truncate_instruction) {
+         xt_sign = extract_packed_decimal_sign(vec_xt[0], vec_xt[1]);
+         dissect_packed_decimal_sign(xt_sign);
+      }
+   }
+   printf("\n");
+}
+
+/* ######## begin grand testing loops. */
+typedef struct insn_sel_flags_t_struct {
+   int one_arg, two_args, three_args, four_args, cmp_args;
+   int arith, logical, compare, popcnt, ldst, insert_extract;
+   int integer, floats, p405, altivec, altivec_double, altivec_quad;
+   int faltivec, vector, misc, dfp, bcd, no_op, pc_immediate;
+   int cr;
+} insn_sel_flags_t;
+
+static void do_tests ( insn_sel_flags_t seln_flags)
+{
+   test_group_t group_function;
+   test_list_t *tests;
+   int nb_args, type, family;
+   int i, j, n;
+
+   n = 0;
+   group_function = NULL;
+
+   /* self-test of some utility functions. */
+   if (verbose > 1) {
+      printf("fpscr zero'd out:");
+      dissect_fpscr(0);
+      printf("\n");
+      printf("fpscr all ones:");
+      dissect_fpscr(0xffffffffffffffff);
+      printf("\n");
+      printf("fpscr RN bits:");
+      dissect_fpscr_rounding_mode(0x0000000000000003);
+      dissect_fpscr_rounding_mode(0x0000000000000002);
+      dissect_fpscr_rounding_mode(0x0000000000000001);
+      dissect_fpscr_rounding_mode(0x0000000000000000);
+      printf("\n");
+   }
+
+   for (i=0; all_tests[i].name != NULL; i++) {
+      nb_args = all_tests[i].flags & PPC_NB_ARGS_MASK;
+      /* Check number of arguments */
+      if ((nb_args == 1 && !seln_flags.one_arg)    ||
+          (nb_args == 2 && !seln_flags.two_args)   ||
+          (nb_args == 3 && !seln_flags.three_args) ||
+          (nb_args == 4 && !seln_flags.four_args)  ||
+          (nb_args == 5 && !seln_flags.cmp_args))
+         continue;
+
+      /* Check instruction type */
+      type = all_tests[i].flags & PPC_TYPE_MASK;
+      if ((type == PPC_ARITH   && !seln_flags.arith)   ||
+          (type == PPC_LDST    && !seln_flags.ldst)    ||
+          (type == PPC_LOGICAL && !seln_flags.logical) ||
+          (type == PPC_COMPARE && !seln_flags.compare) ||
+          (type == PPC_POPCNT  && !seln_flags.compare) ||
+          (type == PPC_INSERTEXTRACT && !seln_flags.insert_extract))
+         continue;
+
+      /* Check instruction family */
+      family = all_tests[i].flags & PPC_FAMILY_MASK;
+      if ((family == PPC_INTEGER  && !seln_flags.integer) ||
+          (family == PPC_ALTIVEC  && !seln_flags.altivec) ||
+          (family == PPC_MISC  && !seln_flags.misc))
+         continue;
+
+      /* Check flags update */
+      if (((all_tests[i].flags & PPC_CR)  && seln_flags.cr == 0) ||
+          (!(all_tests[i].flags & PPC_CR) && seln_flags.cr == 1))
+         continue;
+
+      /* All criteria validation passed, do the tests */
+      tests = all_tests[i].tests;
+
+      /* Select the test group */
+      switch (family) {
+      case PPC_INTEGER:
+         switch(type) {
+         case PPC_ARITH:
+            switch(nb_args) {
+            case PPC_TWO_ARGS:
+               group_function = &testfunction_int_two_args;
+               break;
+
+            case PPC_THREE_ARGS:
+               group_function = &testfunction_three_args;
+               break;
+
+            default:
+               printf("ERROR: PPC_INTEGER, unhandled number of arguments. 0x%08x\n",
+                      nb_args);
+            }
+            break;
+
+         default:
+            printf("ERROR: PPC_INTEGER, unhandled type  0x%08x\n", type);
+            continue;
+         } /* switch (nb_args) */
+         break;
+
+      case PPC_ALTIVEC:
+         switch(type) {
+         case PPC_ARITH:
+            switch(nb_args) {
+            case PPC_TWO_ARGS:
+               group_function = &testfunction_vector_absolute;
+
+               break;
+            default:
+               printf("ERROR: PPC_ALTIVEC, PPC_ARITH, unhandled number of arguments. 0x%08x\n", nb_args);
+               continue;
+            } /* switch (PPC_ARITH, nb_args) */
+            break;
+
+         case PPC_LOGICAL:
+            switch(nb_args) {
+            case PPC_ONE_IMM:
+               group_function = &testfunction_vector_immediate;
+               break;
+
+            case PPC_ONE_ARG:
+               group_function = &testfunction_vector_logical_one;
+               break;
+
+            case PPC_FOUR_ARGS:
+               group_function = &testfunction_vector_logical_four;
+               break;
+
+            default:
+               printf("ERROR: PPC_ALTIVEC, PPC_LOGICAL, unhandled number of arguments. 0x%08x\n", nb_args);
+               continue;
+            }  /* switch(PPC_LOGICAL, nb_args) */
+            break;
+
+         case PPC_INSERTEXTRACT:
+            switch(nb_args) {
+            case PPC_ONE_IMM:
+               group_function = &testfunction_vector_insert_or_extract_immediate;
+               break;
+
+            default:
+               printf("ERROR: PPC_ALTIVEC, PPC_INSERTEXTRACT, unhandled number of arguments. 0x%08x\n", nb_args);
+               continue;
+            }  /* switch(PPC_ALTIVEC, nb_args) */
+            break;
+
+         case PPC_PERMUTE:
+            group_function = &testfunction_vector_xxpermute;
+            break;
+
+         case PPC_LDST:
+            switch(nb_args) {
+            case PPC_TWO_ARGS:
+               /* Register holds address of buffer */
+               group_function = &testfunction_vector_loadstore;
+               break;
+
+            default:
+               printf("ERROR: PPC_ALTIVEC, PPC_LDST, unhandled number of arguments. 0x%08x\n", nb_args);
+               continue;
+            }  /* switch(PPC_LDST, nb_args) */
+            break;
+
+         case PPC_MISC:
+            group_function = &testfunction_vectorscalar_move_tofrom;
+            break;
+
+         default:
+            printf("ERROR: PPC_ALTIVEC, unhandled type. %d\n", type);
+            continue;
+         } /* switch (PPC_ALTIVEC, type) */
+         break;
+
+      default:
+         printf("ERROR: unknown instruction family %08x\n", family);
+         continue;
+      } /* switch(family) */
+
+      printf("%s:\n", all_tests[i].name);
+
+      printf("Test instruction group [%s]\n", all_tests[i].name);
+      /* Now, spin through all entries in the group_function to
+       * run the individual instruction tests.
+       */
+      for (j = 0; tests[j].name != NULL; j++) {
+         if (verbose > 1)
+            printf("Test instruction %s\n", tests[j].name);
+         (*group_function)(tests[j].name, tests[j].func, all_tests[i].flags);
+         printf("\n");
+         n++;
+      }
+
+      if (verbose) printf("\n");
+
+      printf("All done. Tested %d different instructions\n", n);
+   }  /* for (i = 0; all_tests[i].name...) */
+}
+
+static void usage (void)
+{
+   fprintf(stderr,
+           "Usage: test_isa_3_0 [OPTIONS]\n"
+           "\t-i: test integer instructions (default)\n"
+           "\t-a: test altivec instructions\n"
+           "\t-m: test miscellaneous instructions\n"
+           "\t-v: be verbose\n"
+           "\t-h: display this help and exit\n"
+           );
+}
+
+#endif   // HAS_ISA_3_0
+int main (int argc, char **argv)
+{
+
+#ifndef HAS_ISA_3_0
+   printf("NO ISA 3.0 SUPPORT\n");
+   return 0;
+
+#else
+   insn_sel_flags_t flags;
+   int c;
+
+
+   // Args
+   flags.one_arg         = 1;
+   flags.two_args        = 1;
+   flags.three_args      = 1;
+   flags.four_args       = 1;
+   flags.cmp_args        = 1;
+
+   // Type
+   flags.arith           = 1;
+   flags.logical         = 1;
+   flags.popcnt          = 1;
+   flags.compare         = 1;
+   flags.ldst            = 1;
+   flags.insert_extract  = 1;
+
+   // Family
+   flags.integer         = 0;
+   flags.misc            = 0;
+   flags.altivec         = 0;
+
+   // Flags
+   flags.cr              = 2;
+
+   while ((c = getopt(argc, argv, "ifmadqhvADBNP")) != -1) {
+      switch (c) {
+      case 'i':
+         flags.integer  = 1;
+         break;
+
+      case 'a':
+         flags.altivec  = 1;
+         break;
+
+      case 'm':
+         flags.misc     = 1;
+         break;
+
+      case 'h':
+         usage();
+         return 0;
+
+      case 'v':
+         verbose++;
+         break;
+
+      default:
+         usage();
+         fprintf(stderr, "Unknown argument: '%c'\n", c);
+         return 1;
+      }
+   }
+
+   build_iargs_table();
+   build_vsx_table();
+   build_float_vsx_tables();
+   build_vector_permute_table();
+   build_char_table();
+   build_char_range_table();
+   build_packed_decimal_table();
+   build_national_decimal_table();
+   build_zoned_decimal_table();
+   build_decimal_shift_table();
+
+   if (verbose>2) {
+      dump_char_table();
+      dump_char_range_table();
+      dump_float_vsx_table();
+      dump_packed_decimal_table();
+      dump_national_decimal_table();
+      dump_zoned_decimal_table();
+      dump_decimal_shift_table();
+      dump_dfp64_table();
+      dump_dfp128_table();
+   }
+
+   if (verbose > 1) {
+      printf("\nInstruction Selection:\n");
+      printf("  n_args: \n");
+      printf("    one_arg        = %d\n", flags.one_arg);
+      printf("    two_args       = %d\n", flags.two_args);
+      printf("    three_args     = %d\n", flags.three_args);
+      printf("    four_args      = %d\n", flags.four_args);
+      printf("    cmp_args       = %d\n", flags.cmp_args);
+      printf("  type: \n");
+      printf("    arith          = %d\n", flags.arith);
+      printf("    logical        = %d\n", flags.logical);
+      printf("    popcnt         = %d\n", flags.popcnt);
+      printf("    compare        = %d\n", flags.compare);
+      printf("    inset/extract  = %d\n", flags.insert_extract);
+      printf("  family: \n");
+      printf("    integer        = %d\n", flags.integer);
+      printf("    altivec        = %d\n", flags.altivec);
+      printf("    misc           = %d\n", flags.misc);
+      printf("  cr update: \n");
+      printf("    cr             = %d\n", flags.cr);
+      printf("\n");
+      printf("  num args: \n");
+      printf("    iargs      - %d\n", nb_iargs);
+      printf("\n");
+   }
+
+   do_tests( flags );
+#endif
+
+   return 0;
+}
diff --git a/none/tests/ppc64/test_isa_3_0_altivec.stderr.exp b/none/tests/ppc64/test_isa_3_0_altivec.stderr.exp
new file mode 100644 (file)
index 0000000..139597f
--- /dev/null
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/ppc64/test_isa_3_0_altivec.stdout.exp b/none/tests/ppc64/test_isa_3_0_altivec.stdout.exp
new file mode 100644 (file)
index 0000000..e1bc081
--- /dev/null
@@ -0,0 +1,2743 @@
+ppc vector absolutes:
+Test instruction group [ppc vector absolutes]
+vabsdub xa:0000000000000000 0000000000000000 xb:0000000000000000 0000000000000000  =>  xt:0000000000000000 0000000000000000 (00000000)
+vabsdub xa:0000000000000000 0000000000000000 xb:0102030405060708 0102030405060708  =>  xt:0102030405060708 0102030405060708 (00000000)
+vabsdub xa:0000000000000000 0000000000000000 xb:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa  =>  xt:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa (00000000)
+vabsdub xa:0000000000000000 0000000000000000 xb:5555555555555555 5555555555555555  =>  xt:5555555555555555 5555555555555555 (00000000)
+vabsdub xa:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa xb:0000000000000000 0000000000000000  =>  xt:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa (00000000)
+vabsdub xa:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa xb:0102030405060708 0102030405060708  =>  xt:a9a8a7a6a5a4a3a2 a9a8a7a6a5a4a3a2 (00000000)
+vabsdub xa:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa xb:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa  =>  xt:0000000000000000 0000000000000000 (00000000)
+vabsdub xa:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa xb:5555555555555555 5555555555555555  =>  xt:5555555555555555 5555555555555555 (00000000)
+vabsdub xa:0102010201020102 08090a0b0c0d0e0f xb:0000000000000000 0000000000000000  =>  xt:08090a0b0c0d0e0f 0102010201020102 (00000000)
+vabsdub xa:0102010201020102 08090a0b0c0d0e0f xb:0102030405060708 0102030405060708  =>  xt:0707070707070707 0000020204040606 (00000000)
+vabsdub xa:0102010201020102 08090a0b0c0d0e0f xb:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa  =>  xt:a2a1a09f9e9d9c9b a9a8a9a8a9a8a9a8 (00000000)
+vabsdub xa:0102010201020102 08090a0b0c0d0e0f xb:5555555555555555 5555555555555555  =>  xt:4d4c4b4a49484746 5453545354535453 (00000000)
+vabsdub xa:070d111d1e555e70 7ea1a5a7abadb0ba xb:0000000000000000 0000000000000000  =>  xt:7ea1a5a7abadb0ba 070d111d1e555e70 (00000000)
+vabsdub xa:070d111d1e555e70 7ea1a5a7abadb0ba xb:0102030405060708 0102030405060708  =>  xt:7d9fa2a3a6a7a9b2 060b0e19194f5768 (00000000)
+vabsdub xa:070d111d1e555e70 7ea1a5a7abadb0ba xb:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa  =>  xt:2c09050301030610 a39d998d8c554c3a (00000000)
+vabsdub xa:070d111d1e555e70 7ea1a5a7abadb0ba xb:5555555555555555 5555555555555555  =>  xt:294c505256585b65 4e4844383700091b (00000000)
+vabsdub xa:ced0deede5ecef00 00115e7eadbabec0 xb:0000000000000000 0000000000000000  =>  xt:00115e7eadbabec0 ced0deede5ecef00 (00000000)
+vabsdub xa:ced0deede5ecef00 00115e7eadbabec0 xb:0102030405060708 0102030405060708  =>  xt:010f5b7aa8b4b7b8 cdcedbe9e0e6e808 (00000000)
+vabsdub xa:ced0deede5ecef00 00115e7eadbabec0 xb:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa  =>  xt:aa994c2c03101416 242634433b4245aa (00000000)
+vabsdub xa:ced0deede5ecef00 00115e7eadbabec0 xb:5555555555555555 5555555555555555  =>  xt:554409295865696b 797b899890979a55 (00000000)
+vabsdub xa:8899aabbccddeeff 0011223344556677 xb:0000000000000000 0000000000000000  =>  xt:0011223344556677 8899aabbccddeeff (00000000)
+vabsdub xa:8899aabbccddeeff 0011223344556677 xb:0102030405060708 0102030405060708  =>  xt:010f1f2f3f4f5f6f 8797a7b7c7d7e7f7 (00000000)
+vabsdub xa:8899aabbccddeeff 0011223344556677 xb:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa  =>  xt:aa99887766554433 2211001122334455 (00000000)
+vabsdub xa:8899aabbccddeeff 0011223344556677 xb:5555555555555555 5555555555555555  =>  xt:5544332211001122 33445566778899aa (00000000)
+vabsdub xa:0000100800001010 0000100000001002 xb:0000000000000000 0000000000000000  =>  xt:0000100000001002 0000100800001010 (00000000)
+vabsdub xa:0000100800001010 0000100000001002 xb:0102030405060708 0102030405060708  =>  xt:01020d0405060906 01020d0405060908 (00000000)
+vabsdub xa:0000100800001010 0000100000001002 xb:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa  =>  xt:aaaa9aaaaaaa9aa8 aaaa9aa2aaaa9a9a (00000000)
+vabsdub xa:0000100800001010 0000100000001002 xb:5555555555555555 5555555555555555  =>  xt:5555455555554553 5555454d55554545 (00000000)
+vabsdub xa:00001c0800001c10 00001c0000001c02 xb:0000000000000000 0000000000000000  =>  xt:00001c0000001c02 00001c0800001c10 (00000000)
+vabsdub xa:00001c0800001c10 00001c0000001c02 xb:0102030405060708 0102030405060708  =>  xt:0102190405061506 0102190405061508 (00000000)
+vabsdub xa:00001c0800001c10 00001c0000001c02 xb:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa  =>  xt:aaaa8eaaaaaa8ea8 aaaa8ea2aaaa8e9a (00000000)
+vabsdub xa:00001c0800001c10 00001c0000001c02 xb:5555555555555555 5555555555555555  =>  xt:5555395555553953 5555394d55553945 (00000000)
+vabsdub xa:00001f0800001f10 00001f0000001f02 xb:0000000000000000 0000000000000000  =>  xt:00001f0000001f02 00001f0800001f10 (00000000)
+vabsdub xa:00001f0800001f10 00001f0000001f02 xb:0102030405060708 0102030405060708  =>  xt:01021c0405061806 01021c0405061808 (00000000)
+vabsdub xa:00001f0800001f10 00001f0000001f02 xb:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa  =>  xt:aaaa8baaaaaa8ba8 aaaa8ba2aaaa8b9a (00000000)
+vabsdub xa:00001f0800001f10 00001f0000001f02 xb:5555555555555555 5555555555555555  =>  xt:5555365555553653 5555364d55553645 (00000000)
+
+vabsduh xa:0000000000000000 0000000000000000 xb:0000000000000000 0000000000000000  =>  xt:0000000000000000 0000000000000000 (00000000)
+vabsduh xa:0000000000000000 0000000000000000 xb:0102030405060708 0102030405060708  =>  xt:0102030405060708 0102030405060708 (00000000)
+vabsduh xa:0000000000000000 0000000000000000 xb:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa  =>  xt:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa (00000000)
+vabsduh xa:0000000000000000 0000000000000000 xb:5555555555555555 5555555555555555  =>  xt:5555555555555555 5555555555555555 (00000000)
+vabsduh xa:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa xb:0000000000000000 0000000000000000  =>  xt:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa (00000000)
+vabsduh xa:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa xb:0102030405060708 0102030405060708  =>  xt:a9a8a7a6a5a4a3a2 a9a8a7a6a5a4a3a2 (00000000)
+vabsduh xa:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa xb:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa  =>  xt:0000000000000000 0000000000000000 (00000000)
+vabsduh xa:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa xb:5555555555555555 5555555555555555  =>  xt:5555555555555555 5555555555555555 (00000000)
+vabsduh xa:0102010201020102 08090a0b0c0d0e0f xb:0000000000000000 0000000000000000  =>  xt:08090a0b0c0d0e0f 0102010201020102 (00000000)
+vabsduh xa:0102010201020102 08090a0b0c0d0e0f xb:0102030405060708 0102030405060708  =>  xt:0707070707070707 0000020204040606 (00000000)
+vabsduh xa:0102010201020102 08090a0b0c0d0e0f xb:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa  =>  xt:a2a1a09f9e9d9c9b a9a8a9a8a9a8a9a8 (00000000)
+vabsduh xa:0102010201020102 08090a0b0c0d0e0f xb:5555555555555555 5555555555555555  =>  xt:4d4c4b4a49484746 5453545354535453 (00000000)
+vabsduh xa:070d111d1e555e70 7ea1a5a7abadb0ba xb:0000000000000000 0000000000000000  =>  xt:7ea1a5a7abadb0ba 070d111d1e555e70 (00000000)
+vabsduh xa:070d111d1e555e70 7ea1a5a7abadb0ba xb:0102030405060708 0102030405060708  =>  xt:7d9fa2a3a6a7a9b2 060b0e19194f5768 (00000000)
+vabsduh xa:070d111d1e555e70 7ea1a5a7abadb0ba xb:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa  =>  xt:2c09050301030610 a39d998d8c554c3a (00000000)
+vabsduh xa:070d111d1e555e70 7ea1a5a7abadb0ba xb:5555555555555555 5555555555555555  =>  xt:294c505256585b65 4e4844383700091b (00000000)
+vabsduh xa:ced0deede5ecef00 00115e7eadbabec0 xb:0000000000000000 0000000000000000  =>  xt:00115e7eadbabec0 ced0deede5ecef00 (00000000)
+vabsduh xa:ced0deede5ecef00 00115e7eadbabec0 xb:0102030405060708 0102030405060708  =>  xt:00f15b7aa8b4b7b8 cdcedbe9e0e6e7f8 (00000000)
+vabsduh xa:ced0deede5ecef00 00115e7eadbabec0 xb:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa  =>  xt:aa994c2c03101416 242634433b424456 (00000000)
+vabsduh xa:ced0deede5ecef00 00115e7eadbabec0 xb:5555555555555555 5555555555555555  =>  xt:554409295865696b 797b8998909799ab (00000000)
+vabsduh xa:8899aabbccddeeff 0011223344556677 xb:0000000000000000 0000000000000000  =>  xt:0011223344556677 8899aabbccddeeff (00000000)
+vabsduh xa:8899aabbccddeeff 0011223344556677 xb:0102030405060708 0102030405060708  =>  xt:00f11f2f3f4f5f6f 8797a7b7c7d7e7f7 (00000000)
+vabsduh xa:8899aabbccddeeff 0011223344556677 xb:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa  =>  xt:aa99887766554433 2211001122334455 (00000000)
+vabsduh xa:8899aabbccddeeff 0011223344556677 xb:5555555555555555 5555555555555555  =>  xt:5544332211001122 33445566778899aa (00000000)
+vabsduh xa:0000100800001010 0000100000001002 xb:0000000000000000 0000000000000000  =>  xt:0000100000001002 0000100800001010 (00000000)
+vabsduh xa:0000100800001010 0000100000001002 xb:0102030405060708 0102030405060708  =>  xt:01020cfc050608fa 01020d0405060908 (00000000)
+vabsduh xa:0000100800001010 0000100000001002 xb:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa  =>  xt:aaaa9aaaaaaa9aa8 aaaa9aa2aaaa9a9a (00000000)
+vabsduh xa:0000100800001010 0000100000001002 xb:5555555555555555 5555555555555555  =>  xt:5555455555554553 5555454d55554545 (00000000)
+vabsduh xa:00001c0800001c10 00001c0000001c02 xb:0000000000000000 0000000000000000  =>  xt:00001c0000001c02 00001c0800001c10 (00000000)
+vabsduh xa:00001c0800001c10 00001c0000001c02 xb:0102030405060708 0102030405060708  =>  xt:010218fc050614fa 0102190405061508 (00000000)
+vabsduh xa:00001c0800001c10 00001c0000001c02 xb:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa  =>  xt:aaaa8eaaaaaa8ea8 aaaa8ea2aaaa8e9a (00000000)
+vabsduh xa:00001c0800001c10 00001c0000001c02 xb:5555555555555555 5555555555555555  =>  xt:5555395555553953 5555394d55553945 (00000000)
+vabsduh xa:00001f0800001f10 00001f0000001f02 xb:0000000000000000 0000000000000000  =>  xt:00001f0000001f02 00001f0800001f10 (00000000)
+vabsduh xa:00001f0800001f10 00001f0000001f02 xb:0102030405060708 0102030405060708  =>  xt:01021bfc050617fa 01021c0405061808 (00000000)
+vabsduh xa:00001f0800001f10 00001f0000001f02 xb:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa  =>  xt:aaaa8baaaaaa8ba8 aaaa8ba2aaaa8b9a (00000000)
+vabsduh xa:00001f0800001f10 00001f0000001f02 xb:5555555555555555 5555555555555555  =>  xt:5555365555553653 5555364d55553645 (00000000)
+
+vabsduw xa:0000000000000000 0000000000000000 xb:0000000000000000 0000000000000000  =>  xt:0000000000000000 0000000000000000 (00000000)
+vabsduw xa:0000000000000000 0000000000000000 xb:0102030405060708 0102030405060708  =>  xt:0102030405060708 0102030405060708 (00000000)
+vabsduw xa:0000000000000000 0000000000000000 xb:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa  =>  xt:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa (00000000)
+vabsduw xa:0000000000000000 0000000000000000 xb:5555555555555555 5555555555555555  =>  xt:5555555555555555 5555555555555555 (00000000)
+vabsduw xa:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa xb:0000000000000000 0000000000000000  =>  xt:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa (00000000)
+vabsduw xa:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa xb:0102030405060708 0102030405060708  =>  xt:a9a8a7a6a5a4a3a2 a9a8a7a6a5a4a3a2 (00000000)
+vabsduw xa:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa xb:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa  =>  xt:0000000000000000 0000000000000000 (00000000)
+vabsduw xa:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa xb:5555555555555555 5555555555555555  =>  xt:5555555555555555 5555555555555555 (00000000)
+vabsduw xa:0102010201020102 08090a0b0c0d0e0f xb:0000000000000000 0000000000000000  =>  xt:08090a0b0c0d0e0f 0102010201020102 (00000000)
+vabsduw xa:0102010201020102 08090a0b0c0d0e0f xb:0102030405060708 0102030405060708  =>  xt:0707070707070707 0000020204040606 (00000000)
+vabsduw xa:0102010201020102 08090a0b0c0d0e0f xb:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa  =>  xt:a2a1a09f9e9d9c9b a9a8a9a8a9a8a9a8 (00000000)
+vabsduw xa:0102010201020102 08090a0b0c0d0e0f xb:5555555555555555 5555555555555555  =>  xt:4d4c4b4a49484746 5453545354535453 (00000000)
+vabsduw xa:070d111d1e555e70 7ea1a5a7abadb0ba xb:0000000000000000 0000000000000000  =>  xt:7ea1a5a7abadb0ba 070d111d1e555e70 (00000000)
+vabsduw xa:070d111d1e555e70 7ea1a5a7abadb0ba xb:0102030405060708 0102030405060708  =>  xt:7d9fa2a3a6a7a9b2 060b0e19194f5768 (00000000)
+vabsduw xa:070d111d1e555e70 7ea1a5a7abadb0ba xb:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa  =>  xt:2c09050301030610 a39d998d8c554c3a (00000000)
+vabsduw xa:070d111d1e555e70 7ea1a5a7abadb0ba xb:5555555555555555 5555555555555555  =>  xt:294c505256585b65 4e48443836fff6e5 (00000000)
+vabsduw xa:ced0deede5ecef00 00115e7eadbabec0 xb:0000000000000000 0000000000000000  =>  xt:00115e7eadbabec0 ced0deede5ecef00 (00000000)
+vabsduw xa:ced0deede5ecef00 00115e7eadbabec0 xb:0102030405060708 0102030405060708  =>  xt:00f0a486a8b4b7b8 cdcedbe9e0e6e7f8 (00000000)
+vabsduw xa:ced0deede5ecef00 00115e7eadbabec0 xb:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa  =>  xt:aa994c2c03101416 242634433b424456 (00000000)
+vabsduw xa:ced0deede5ecef00 00115e7eadbabec0 xb:5555555555555555 5555555555555555  =>  xt:5543f6d75865696b 797b8998909799ab (00000000)
+vabsduw xa:8899aabbccddeeff 0011223344556677 xb:0000000000000000 0000000000000000  =>  xt:0011223344556677 8899aabbccddeeff (00000000)
+vabsduw xa:8899aabbccddeeff 0011223344556677 xb:0102030405060708 0102030405060708  =>  xt:00f0e0d13f4f5f6f 8797a7b7c7d7e7f7 (00000000)
+vabsduw xa:8899aabbccddeeff 0011223344556677 xb:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa  =>  xt:aa99887766554433 2210ffef22334455 (00000000)
+vabsduw xa:8899aabbccddeeff 0011223344556677 xb:5555555555555555 5555555555555555  =>  xt:5544332210ffeede 33445566778899aa (00000000)
+vabsduw xa:0000100800001010 0000100000001002 xb:0000000000000000 0000000000000000  =>  xt:0000100000001002 0000100800001010 (00000000)
+vabsduw xa:0000100800001010 0000100000001002 xb:0102030405060708 0102030405060708  =>  xt:0101f3040505f706 0101f2fc0505f6f8 (00000000)
+vabsduw xa:0000100800001010 0000100000001002 xb:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa  =>  xt:aaaa9aaaaaaa9aa8 aaaa9aa2aaaa9a9a (00000000)
+vabsduw xa:0000100800001010 0000100000001002 xb:5555555555555555 5555555555555555  =>  xt:5555455555554553 5555454d55554545 (00000000)
+vabsduw xa:00001c0800001c10 00001c0000001c02 xb:0000000000000000 0000000000000000  =>  xt:00001c0000001c02 00001c0800001c10 (00000000)
+vabsduw xa:00001c0800001c10 00001c0000001c02 xb:0102030405060708 0102030405060708  =>  xt:0101e7040505eb06 0101e6fc0505eaf8 (00000000)
+vabsduw xa:00001c0800001c10 00001c0000001c02 xb:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa  =>  xt:aaaa8eaaaaaa8ea8 aaaa8ea2aaaa8e9a (00000000)
+vabsduw xa:00001c0800001c10 00001c0000001c02 xb:5555555555555555 5555555555555555  =>  xt:5555395555553953 5555394d55553945 (00000000)
+vabsduw xa:00001f0800001f10 00001f0000001f02 xb:0000000000000000 0000000000000000  =>  xt:00001f0000001f02 00001f0800001f10 (00000000)
+vabsduw xa:00001f0800001f10 00001f0000001f02 xb:0102030405060708 0102030405060708  =>  xt:0101e4040505e806 0101e3fc0505e7f8 (00000000)
+vabsduw xa:00001f0800001f10 00001f0000001f02 xb:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa  =>  xt:aaaa8baaaaaa8ba8 aaaa8ba2aaaa8b9a (00000000)
+vabsduw xa:00001f0800001f10 00001f0000001f02 xb:5555555555555555 5555555555555555  =>  xt:5555365555553653 5555364d55553645 (00000000)
+
+All done. Tested 3 different instructions
+ppc vector logical immediate:
+Test instruction group [ppc vector logical immediate]
+xxspltib 0000000000000000 0000000000000000 [ 0] => 0000000000000000 0000000000000000
+xxspltib ffffffffffffffff ffffffffffffffff [ 0] => 0000000000000000 0000000000000000
+xxspltib 0000000000000000 0000000000000000 [ 1] => 0101010101010101 0101010101010101
+xxspltib ffffffffffffffff ffffffffffffffff [ 1] => 0101010101010101 0101010101010101
+xxspltib 0000000000000000 0000000000000000 [aa] => aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa
+xxspltib ffffffffffffffff ffffffffffffffff [aa] => aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa
+xxspltib 0000000000000000 0000000000000000 [55] => 5555555555555555 5555555555555555
+xxspltib ffffffffffffffff ffffffffffffffff [55] => 5555555555555555 5555555555555555
+xxspltib 0000000000000000 0000000000000000 [ff] => ffffffffffffffff ffffffffffffffff
+xxspltib ffffffffffffffff ffffffffffffffff [ff] => ffffffffffffffff ffffffffffffffff
+
+All done. Tested 4 different instructions
+ppc vector logical one:
+Test instruction group [ppc vector logical one]
+xxbrh xa:0000000000000000 0000000000000000 xt:0000000000000000 0000000000000000 =>  xt:0000000000000000 0000000000000000
+xxbrh xa:0000000000000000 0000000000000000 xt:ffffffffffffffff ffffffffffffffff =>  xt:0000000000000000 0000000000000000
+xxbrh xa:0102030405060708 0102010201020102 xt:0000000000000000 0000000000000000 =>  xt:0201040306050807 0201020102010201
+xxbrh xa:0102030405060708 0102010201020102 xt:ffffffffffffffff ffffffffffffffff =>  xt:0201040306050807 0201020102010201
+xxbrh xa:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa xt:0000000000000000 0000000000000000 =>  xt:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa
+xxbrh xa:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa xt:ffffffffffffffff ffffffffffffffff =>  xt:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa
+xxbrh xa:5555555555555555 5555555555555555 xt:0000000000000000 0000000000000000 =>  xt:5555555555555555 5555555555555555
+xxbrh xa:5555555555555555 5555555555555555 xt:ffffffffffffffff ffffffffffffffff =>  xt:5555555555555555 5555555555555555
+xxbrh xa:08090a0b0c0d0e0f 0102010201020102 xt:0000000000000000 0000000000000000 =>  xt:09080b0a0d0c0f0e 0201020102010201
+xxbrh xa:08090a0b0c0d0e0f 0102010201020102 xt:ffffffffffffffff ffffffffffffffff =>  xt:09080b0a0d0c0f0e 0201020102010201
+xxbrh xa:f0f1f2f3f4f5f6f7 f8f9fafbfcfdfeff xt:0000000000000000 0000000000000000 =>  xt:f1f0f3f2f5f4f7f6 f9f8fbfafdfcfffe
+xxbrh xa:f0f1f2f3f4f5f6f7 f8f9fafbfcfdfeff xt:ffffffffffffffff ffffffffffffffff =>  xt:f1f0f3f2f5f4f7f6 f9f8fbfafdfcfffe
+xxbrh xa:7ea1a5a7abadb0ba 070d111d1e555e70 xt:0000000000000000 0000000000000000 =>  xt:a17ea7a5adabbab0 0d071d11551e705e
+xxbrh xa:7ea1a5a7abadb0ba 070d111d1e555e70 xt:ffffffffffffffff ffffffffffffffff =>  xt:a17ea7a5adabbab0 0d071d11551e705e
+xxbrh xa:e5e7ecedeff0f1fa beb1c0caced0dbde xt:0000000000000000 0000000000000000 =>  xt:e7e5edecf0effaf1 b1becac0d0cededb
+xxbrh xa:e5e7ecedeff0f1fa beb1c0caced0dbde xt:ffffffffffffffff ffffffffffffffff =>  xt:e7e5edecf0effaf1 b1becac0d0cededb
+xxbrh xa:00115e7eadbabec0 ced0deede5ecef00 xt:0000000000000000 0000000000000000 =>  xt:11007e5ebaadc0be d0ceeddeece500ef
+xxbrh xa:00115e7eadbabec0 ced0deede5ecef00 xt:ffffffffffffffff ffffffffffffffff =>  xt:11007e5ebaadc0be d0ceeddeece500ef
+xxbrh xa:00111e7ea5abadb1 becad0deedeffe00 xt:0000000000000000 0000000000000000 =>  xt:11007e1eaba5b1ad cabeded0efed00fe
+xxbrh xa:00111e7ea5abadb1 becad0deedeffe00 xt:ffffffffffffffff ffffffffffffffff =>  xt:11007e1eaba5b1ad cabeded0efed00fe
+xxbrh xa:0011223344556677 8899aabbccddeeff xt:0000000000000000 0000000000000000 =>  xt:1100332255447766 9988bbaaddccffee
+xxbrh xa:0011223344556677 8899aabbccddeeff xt:ffffffffffffffff ffffffffffffffff =>  xt:1100332255447766 9988bbaaddccffee
+xxbrh xa:f0e0d0c0b0a09080 7060504030201000 xt:0000000000000000 0000000000000000 =>  xt:e0f0c0d0a0b08090 6070405020300010
+xxbrh xa:f0e0d0c0b0a09080 7060504030201000 xt:ffffffffffffffff ffffffffffffffff =>  xt:e0f0c0d0a0b08090 6070405020300010
+xxbrh xa:0000100000001002 0000100800001010 xt:0000000000000000 0000000000000000 =>  xt:0000001000000210 0000081000001010
+xxbrh xa:0000100000001002 0000100800001010 xt:ffffffffffffffff ffffffffffffffff =>  xt:0000001000000210 0000081000001010
+xxbrh xa:0010100000101002 0010100800101010 xt:0000000000000000 0000000000000000 =>  xt:1000001010000210 1000081010001010
+xxbrh xa:0010100000101002 0010100800101010 xt:ffffffffffffffff ffffffffffffffff =>  xt:1000001010000210 1000081010001010
+xxbrh xa:00001c0000001c02 00001c0800001c10 xt:0000000000000000 0000000000000000 =>  xt:0000001c0000021c 0000081c0000101c
+xxbrh xa:00001c0000001c02 00001c0800001c10 xt:ffffffffffffffff ffffffffffffffff =>  xt:0000001c0000021c 0000081c0000101c
+xxbrh xa:00101c0000101c02 00101c0800101c10 xt:0000000000000000 0000000000000000 =>  xt:1000001c1000021c 1000081c1000101c
+xxbrh xa:00101c0000101c02 00101c0800101c10 xt:ffffffffffffffff ffffffffffffffff =>  xt:1000001c1000021c 1000081c1000101c
+xxbrh xa:00001f0000001f02 00001f0800001f10 xt:0000000000000000 0000000000000000 =>  xt:0000001f0000021f 0000081f0000101f
+xxbrh xa:00001f0000001f02 00001f0800001f10 xt:ffffffffffffffff ffffffffffffffff =>  xt:0000001f0000021f 0000081f0000101f
+xxbrh xa:00101f0000101f02 00101f0800101f10 xt:0000000000000000 0000000000000000 =>  xt:1000001f1000021f 1000081f1000101f
+xxbrh xa:00101f0000101f02 00101f0800101f10 xt:ffffffffffffffff ffffffffffffffff =>  xt:1000001f1000021f 1000081f1000101f
+
+xxbrw xa:0000000000000000 0000000000000000 xt:0000000000000000 0000000000000000 =>  xt:0000000000000000 0000000000000000
+xxbrw xa:0000000000000000 0000000000000000 xt:ffffffffffffffff ffffffffffffffff =>  xt:0000000000000000 0000000000000000
+xxbrw xa:0102030405060708 0102010201020102 xt:0000000000000000 0000000000000000 =>  xt:0403020108070605 0201020102010201
+xxbrw xa:0102030405060708 0102010201020102 xt:ffffffffffffffff ffffffffffffffff =>  xt:0403020108070605 0201020102010201
+xxbrw xa:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa xt:0000000000000000 0000000000000000 =>  xt:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa
+xxbrw xa:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa xt:ffffffffffffffff ffffffffffffffff =>  xt:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa
+xxbrw xa:5555555555555555 5555555555555555 xt:0000000000000000 0000000000000000 =>  xt:5555555555555555 5555555555555555
+xxbrw xa:5555555555555555 5555555555555555 xt:ffffffffffffffff ffffffffffffffff =>  xt:5555555555555555 5555555555555555
+xxbrw xa:08090a0b0c0d0e0f 0102010201020102 xt:0000000000000000 0000000000000000 =>  xt:0b0a09080f0e0d0c 0201020102010201
+xxbrw xa:08090a0b0c0d0e0f 0102010201020102 xt:ffffffffffffffff ffffffffffffffff =>  xt:0b0a09080f0e0d0c 0201020102010201
+xxbrw xa:f0f1f2f3f4f5f6f7 f8f9fafbfcfdfeff xt:0000000000000000 0000000000000000 =>  xt:f3f2f1f0f7f6f5f4 fbfaf9f8fffefdfc
+xxbrw xa:f0f1f2f3f4f5f6f7 f8f9fafbfcfdfeff xt:ffffffffffffffff ffffffffffffffff =>  xt:f3f2f1f0f7f6f5f4 fbfaf9f8fffefdfc
+xxbrw xa:7ea1a5a7abadb0ba 070d111d1e555e70 xt:0000000000000000 0000000000000000 =>  xt:a7a5a17ebab0adab 1d110d07705e551e
+xxbrw xa:7ea1a5a7abadb0ba 070d111d1e555e70 xt:ffffffffffffffff ffffffffffffffff =>  xt:a7a5a17ebab0adab 1d110d07705e551e
+xxbrw xa:e5e7ecedeff0f1fa beb1c0caced0dbde xt:0000000000000000 0000000000000000 =>  xt:edece7e5faf1f0ef cac0b1bededbd0ce
+xxbrw xa:e5e7ecedeff0f1fa beb1c0caced0dbde xt:ffffffffffffffff ffffffffffffffff =>  xt:edece7e5faf1f0ef cac0b1bededbd0ce
+xxbrw xa:00115e7eadbabec0 ced0deede5ecef00 xt:0000000000000000 0000000000000000 =>  xt:7e5e1100c0bebaad edded0ce00efece5
+xxbrw xa:00115e7eadbabec0 ced0deede5ecef00 xt:ffffffffffffffff ffffffffffffffff =>  xt:7e5e1100c0bebaad edded0ce00efece5
+xxbrw xa:00111e7ea5abadb1 becad0deedeffe00 xt:0000000000000000 0000000000000000 =>  xt:7e1e1100b1adaba5 ded0cabe00feefed
+xxbrw xa:00111e7ea5abadb1 becad0deedeffe00 xt:ffffffffffffffff ffffffffffffffff =>  xt:7e1e1100b1adaba5 ded0cabe00feefed
+xxbrw xa:0011223344556677 8899aabbccddeeff xt:0000000000000000 0000000000000000 =>  xt:3322110077665544 bbaa9988ffeeddcc
+xxbrw xa:0011223344556677 8899aabbccddeeff xt:ffffffffffffffff ffffffffffffffff =>  xt:3322110077665544 bbaa9988ffeeddcc
+xxbrw xa:f0e0d0c0b0a09080 7060504030201000 xt:0000000000000000 0000000000000000 =>  xt:c0d0e0f08090a0b0 4050607000102030
+xxbrw xa:f0e0d0c0b0a09080 7060504030201000 xt:ffffffffffffffff ffffffffffffffff =>  xt:c0d0e0f08090a0b0 4050607000102030
+xxbrw xa:0000100000001002 0000100800001010 xt:0000000000000000 0000000000000000 =>  xt:0010000002100000 0810000010100000
+xxbrw xa:0000100000001002 0000100800001010 xt:ffffffffffffffff ffffffffffffffff =>  xt:0010000002100000 0810000010100000
+xxbrw xa:0010100000101002 0010100800101010 xt:0000000000000000 0000000000000000 =>  xt:0010100002101000 0810100010101000
+xxbrw xa:0010100000101002 0010100800101010 xt:ffffffffffffffff ffffffffffffffff =>  xt:0010100002101000 0810100010101000
+xxbrw xa:00001c0000001c02 00001c0800001c10 xt:0000000000000000 0000000000000000 =>  xt:001c0000021c0000 081c0000101c0000
+xxbrw xa:00001c0000001c02 00001c0800001c10 xt:ffffffffffffffff ffffffffffffffff =>  xt:001c0000021c0000 081c0000101c0000
+xxbrw xa:00101c0000101c02 00101c0800101c10 xt:0000000000000000 0000000000000000 =>  xt:001c1000021c1000 081c1000101c1000
+xxbrw xa:00101c0000101c02 00101c0800101c10 xt:ffffffffffffffff ffffffffffffffff =>  xt:001c1000021c1000 081c1000101c1000
+xxbrw xa:00001f0000001f02 00001f0800001f10 xt:0000000000000000 0000000000000000 =>  xt:001f0000021f0000 081f0000101f0000
+xxbrw xa:00001f0000001f02 00001f0800001f10 xt:ffffffffffffffff ffffffffffffffff =>  xt:001f0000021f0000 081f0000101f0000
+xxbrw xa:00101f0000101f02 00101f0800101f10 xt:0000000000000000 0000000000000000 =>  xt:001f1000021f1000 081f1000101f1000
+xxbrw xa:00101f0000101f02 00101f0800101f10 xt:ffffffffffffffff ffffffffffffffff =>  xt:001f1000021f1000 081f1000101f1000
+
+xxbrd xa:0000000000000000 0000000000000000 xt:0000000000000000 0000000000000000 =>  xt:0000000000000000 0000000000000000
+xxbrd xa:0000000000000000 0000000000000000 xt:ffffffffffffffff ffffffffffffffff =>  xt:0000000000000000 0000000000000000
+xxbrd xa:0102030405060708 0102010201020102 xt:0000000000000000 0000000000000000 =>  xt:0807060504030201 0201020102010201
+xxbrd xa:0102030405060708 0102010201020102 xt:ffffffffffffffff ffffffffffffffff =>  xt:0807060504030201 0201020102010201
+xxbrd xa:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa xt:0000000000000000 0000000000000000 =>  xt:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa
+xxbrd xa:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa xt:ffffffffffffffff ffffffffffffffff =>  xt:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa
+xxbrd xa:5555555555555555 5555555555555555 xt:0000000000000000 0000000000000000 =>  xt:5555555555555555 5555555555555555
+xxbrd xa:5555555555555555 5555555555555555 xt:ffffffffffffffff ffffffffffffffff =>  xt:5555555555555555 5555555555555555
+xxbrd xa:08090a0b0c0d0e0f 0102010201020102 xt:0000000000000000 0000000000000000 =>  xt:0f0e0d0c0b0a0908 0201020102010201
+xxbrd xa:08090a0b0c0d0e0f 0102010201020102 xt:ffffffffffffffff ffffffffffffffff =>  xt:0f0e0d0c0b0a0908 0201020102010201
+xxbrd xa:f0f1f2f3f4f5f6f7 f8f9fafbfcfdfeff xt:0000000000000000 0000000000000000 =>  xt:f7f6f5f4f3f2f1f0 fffefdfcfbfaf9f8
+xxbrd xa:f0f1f2f3f4f5f6f7 f8f9fafbfcfdfeff xt:ffffffffffffffff ffffffffffffffff =>  xt:f7f6f5f4f3f2f1f0 fffefdfcfbfaf9f8
+xxbrd xa:7ea1a5a7abadb0ba 070d111d1e555e70 xt:0000000000000000 0000000000000000 =>  xt:bab0adaba7a5a17e 705e551e1d110d07
+xxbrd xa:7ea1a5a7abadb0ba 070d111d1e555e70 xt:ffffffffffffffff ffffffffffffffff =>  xt:bab0adaba7a5a17e 705e551e1d110d07
+xxbrd xa:e5e7ecedeff0f1fa beb1c0caced0dbde xt:0000000000000000 0000000000000000 =>  xt:faf1f0efedece7e5 dedbd0cecac0b1be
+xxbrd xa:e5e7ecedeff0f1fa beb1c0caced0dbde xt:ffffffffffffffff ffffffffffffffff =>  xt:faf1f0efedece7e5 dedbd0cecac0b1be
+xxbrd xa:00115e7eadbabec0 ced0deede5ecef00 xt:0000000000000000 0000000000000000 =>  xt:c0bebaad7e5e1100 00efece5edded0ce
+xxbrd xa:00115e7eadbabec0 ced0deede5ecef00 xt:ffffffffffffffff ffffffffffffffff =>  xt:c0bebaad7e5e1100 00efece5edded0ce
+xxbrd xa:00111e7ea5abadb1 becad0deedeffe00 xt:0000000000000000 0000000000000000 =>  xt:b1adaba57e1e1100 00feefedded0cabe
+xxbrd xa:00111e7ea5abadb1 becad0deedeffe00 xt:ffffffffffffffff ffffffffffffffff =>  xt:b1adaba57e1e1100 00feefedded0cabe
+xxbrd xa:0011223344556677 8899aabbccddeeff xt:0000000000000000 0000000000000000 =>  xt:7766554433221100 ffeeddccbbaa9988
+xxbrd xa:0011223344556677 8899aabbccddeeff xt:ffffffffffffffff ffffffffffffffff =>  xt:7766554433221100 ffeeddccbbaa9988
+xxbrd xa:f0e0d0c0b0a09080 7060504030201000 xt:0000000000000000 0000000000000000 =>  xt:8090a0b0c0d0e0f0 0010203040506070
+xxbrd xa:f0e0d0c0b0a09080 7060504030201000 xt:ffffffffffffffff ffffffffffffffff =>  xt:8090a0b0c0d0e0f0 0010203040506070
+xxbrd xa:0000100000001002 0000100800001010 xt:0000000000000000 0000000000000000 =>  xt:0210000000100000 1010000008100000
+xxbrd xa:0000100000001002 0000100800001010 xt:ffffffffffffffff ffffffffffffffff =>  xt:0210000000100000 1010000008100000
+xxbrd xa:0010100000101002 0010100800101010 xt:0000000000000000 0000000000000000 =>  xt:0210100000101000 1010100008101000
+xxbrd xa:0010100000101002 0010100800101010 xt:ffffffffffffffff ffffffffffffffff =>  xt:0210100000101000 1010100008101000
+xxbrd xa:00001c0000001c02 00001c0800001c10 xt:0000000000000000 0000000000000000 =>  xt:021c0000001c0000 101c0000081c0000
+xxbrd xa:00001c0000001c02 00001c0800001c10 xt:ffffffffffffffff ffffffffffffffff =>  xt:021c0000001c0000 101c0000081c0000
+xxbrd xa:00101c0000101c02 00101c0800101c10 xt:0000000000000000 0000000000000000 =>  xt:021c1000001c1000 101c1000081c1000
+xxbrd xa:00101c0000101c02 00101c0800101c10 xt:ffffffffffffffff ffffffffffffffff =>  xt:021c1000001c1000 101c1000081c1000
+xxbrd xa:00001f0000001f02 00001f0800001f10 xt:0000000000000000 0000000000000000 =>  xt:021f0000001f0000 101f0000081f0000
+xxbrd xa:00001f0000001f02 00001f0800001f10 xt:ffffffffffffffff ffffffffffffffff =>  xt:021f0000001f0000 101f0000081f0000
+xxbrd xa:00101f0000101f02 00101f0800101f10 xt:0000000000000000 0000000000000000 =>  xt:021f1000001f1000 101f1000081f1000
+xxbrd xa:00101f0000101f02 00101f0800101f10 xt:ffffffffffffffff ffffffffffffffff =>  xt:021f1000001f1000 101f1000081f1000
+
+xxbrq xa:0000000000000000 0000000000000000 xt:0000000000000000 0000000000000000 =>  xt:0000000000000000 0000000000000000
+xxbrq xa:0000000000000000 0000000000000000 xt:ffffffffffffffff ffffffffffffffff =>  xt:0000000000000000 0000000000000000
+xxbrq xa:0102030405060708 0102010201020102 xt:0000000000000000 0000000000000000 =>  xt:0201020102010201 0807060504030201
+xxbrq xa:0102030405060708 0102010201020102 xt:ffffffffffffffff ffffffffffffffff =>  xt:0201020102010201 0807060504030201
+xxbrq xa:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa xt:0000000000000000 0000000000000000 =>  xt:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa
+xxbrq xa:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa xt:ffffffffffffffff ffffffffffffffff =>  xt:aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa
+xxbrq xa:5555555555555555 5555555555555555 xt:0000000000000000 0000000000000000 =>  xt:5555555555555555 5555555555555555
+xxbrq xa:5555555555555555 5555555555555555 xt:ffffffffffffffff ffffffffffffffff =>  xt:5555555555555555 5555555555555555
+xxbrq xa:08090a0b0c0d0e0f 0102010201020102 xt:0000000000000000 0000000000000000 =>  xt:0201020102010201 0f0e0d0c0b0a0908
+xxbrq xa:08090a0b0c0d0e0f 0102010201020102 xt:ffffffffffffffff ffffffffffffffff =>  xt:0201020102010201 0f0e0d0c0b0a0908
+xxbrq xa:f0f1f2f3f4f5f6f7 f8f9fafbfcfdfeff xt:0000000000000000 0000000000000000 =>  xt:fffefdfcfbfaf9f8 f7f6f5f4f3f2f1f0
+xxbrq xa:f0f1f2f3f4f5f6f7 f8f9fafbfcfdfeff xt:ffffffffffffffff ffffffffffffffff =>  xt:fffefdfcfbfaf9f8 f7f6f5f4f3f2f1f0
+xxbrq xa:7ea1a5a7abadb0ba 070d111d1e555e70 xt:0000000000000000 0000000000000000 =>  xt:705e551e1d110d07 bab0adaba7a5a17e
+xxbrq xa:7ea1a5a7abadb0ba 070d111d1e555e70 xt:ffffffffffffffff ffffffffffffffff =>  xt:705e551e1d110d07 bab0adaba7a5a17e
+xxbrq xa:e5e7ecedeff0f1fa beb1c0caced0dbde xt:0000000000000000 0000000000000000 =>  xt:dedbd0cecac0b1be faf1f0efedece7e5
+xxbrq xa:e5e7ecedeff0f1fa beb1c0caced0dbde xt:ffffffffffffffff ffffffffffffffff =>  xt:dedbd0cecac0b1be faf1f0efedece7e5
+xxbrq xa:00115e7eadbabec0 ced0deede5ecef00 xt:0000000000000000 0000000000000000 =>  xt:00efece5edded0ce c0bebaad7e5e1100
+xxbrq xa:00115e7eadbabec0 ced0deede5ecef00 xt:ffffffffffffffff ffffffffffffffff =>  xt:00efece5edded0ce c0bebaad7e5e1100
+xxbrq xa:00111e7ea5abadb1 becad0deedeffe00 xt:0000000000000000 0000000000000000 =>  xt:00feefedded0cabe b1adaba57e1e1100
+xxbrq xa:00111e7ea5abadb1 becad0deedeffe00 xt:ffffffffffffffff ffffffffffffffff =>  xt:00feefedded0cabe b1adaba57e1e1100
+xxbrq xa:0011223344556677 8899aabbccddeeff xt:0000000000000000 0000000000000000 =>  xt:ffeeddccbbaa9988 7766554433221100
+xxbrq xa:0011223344556677 8899aabbccddeeff xt:ffffffffffffffff ffffffffffffffff =>  xt:ffeeddccbbaa9988 7766554433221100
+xxbrq xa:f0e0d0c0b0a09080 7060504030201000 xt:0000000000000000 0000000000000000 =>  xt:0010203040506070 8090a0b0c0d0e0f0
+xxbrq xa:f0e0d0c0b0a09080 7060504030201000 xt:ffffffffffffffff ffffffffffffffff =>  xt:0010203040506070 8090a0b0c0d0e0f0
+xxbrq xa:0000100000001002 0000100800001010 xt:0000000000000000 0000000000000000 =>  xt:1010000008100000 0210000000100000
+xxbrq xa:0000100000001002 0000100800001010 xt:ffffffffffffffff ffffffffffffffff =>  xt:1010000008100000 0210000000100000
+xxbrq xa:0010100000101002 0010100800101010 xt:0000000000000000 0000000000000000 =>  xt:1010100008101000 0210100000101000
+xxbrq xa:0010100000101002 0010100800101010 xt:ffffffffffffffff ffffffffffffffff =>  xt:1010100008101000 0210100000101000
+xxbrq xa:00001c0000001c02 00001c0800001c10 xt:0000000000000000 0000000000000000 =>  xt:101c0000081c0000 021c0000001c0000
+xxbrq xa:00001c0000001c02 00001c0800001c10 xt:ffffffffffffffff ffffffffffffffff =>  xt:101c0000081c0000 021c0000001c0000
+xxbrq xa:00101c0000101c02 00101c0800101c10 xt:0000000000000000 0000000000000000 =>  xt:101c1000081c1000 021c1000001c1000
+xxbrq xa:00101c0000101c02 00101c0800101c10 xt:ffffffffffffffff ffffffffffffffff =>  xt:101c1000081c1000 021c1000001c1000
+xxbrq xa:00001f0000001f02 00001f0800001f10 xt:0000000000000000 0000000000000000 =>  xt:101f0000081f0000 021f0000001f0000
+xxbrq xa:00001f0000001f02 00001f0800001f10 xt:ffffffffffffffff ffffffffffffffff =>  xt:101f0000081f0000 021f0000001f0000
+xxbrq xa:00101f0000101f02 00101f0800101f10 xt:0000000000000000 0000000000000000 =>  xt:101f1000081f1000 021f1000001f1000
+xxbrq xa:00101f0000101f02 00101f0800101f10 xt:ffffffffffffffff ffffffffffffffff =>  xt:101f1000081f1000 021f1000001f1000
+
+All done. Tested 8 different instructions
+ppc vector permutes:
+Test instruction group [ppc vector permutes]
+xxperm 0000000000000000 0000000000000000 0102010201020102 0102030405060708, pcv[12021a0817141317 100d1b05070f0205] =>  0100030002010202 0100040000000000 (00000000)
+xxperm 0000000000000000 0000000000000000 0102010201020102 0102030405060708, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  0006000200000000 0001000301010605 (00000000)
+xxperm 0000000000000000 0000000000000000 0102010201020102 0102030405060708, pcv[100d1b070f020505 0e201f1400130105] =>  0100040000000000 0000080100020000 (00000000)
+xxperm 0000000000000000 0000000000000000 0102010201020102 0102030405060708, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  0000000000000000 0000000000000000 (00000000)
+xxperm aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 5555555555555555 5555555555555555, pcv[12021a0817141317 100d1b05070f0205] =>  55aa55aa55555555 55aa55aaaaaaaaaa (00000000)
+xxperm aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 5555555555555555 5555555555555555, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  aa55aa55aaaaaaaa aa55aa5555555555 (00000000)
+xxperm aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 5555555555555555 5555555555555555, pcv[100d1b070f020505 0e201f1400130105] =>  55aa55aaaaaaaaaa aaaa5555aa55aaaa (00000000)
+xxperm aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 5555555555555555 5555555555555555, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa (00000000)
+xxperm 0102010201020102 08090a0b0c0d0e0f f8f9fafbfcfdfeff f0f1f2f3f4f5f6f7, pcv[12021a0817141317 100d1b05070f0205] =>  fa01f208fffcfbff f80df302020f0102 (00000000)
+xxperm 0102010201020102 08090a0b0c0d0e0f f8f9fafbfcfdfeff f0f1f2f3f4f5f6f7, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  0df502ff080b0c08 0ffa01f2f0f8f5f4 (00000000)
+xxperm 0102010201020102 08090a0b0c0d0e0f f8f9fafbfcfdfeff f0f1f2f3f4f5f6f7, pcv[100d1b070f020505 0e201f1400130105] =>  f80df3020f010202 0e01f7fc01fb0202 (00000000)
+xxperm 0102010201020102 08090a0b0c0d0e0f f8f9fafbfcfdfeff f0f1f2f3f4f5f6f7, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  0202020a0b020a0c 0e0c09020101080d (00000000)
+xxperm 070d111d1e555e70 7ea1a5a7abadb0ba beb1c0caced0dbde e5e7ecedeff0f1fa, pcv[12021a0817141317 100d1b05070f0205] =>  c011ec7edececade beaded5570ba1155 (00000000)
+xxperm 070d111d1e555e70 7ea1a5a7abadb0ba beb1c0caced0dbde e5e7ecedeff0f1fa, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  adf055de7ea7ab7e bac01eece5bef0ef (00000000)
+xxperm 070d111d1e555e70 7ea1a5a7abadb0ba beb1c0caced0dbde e5e7ecedeff0f1fa, pcv[100d1b070f020505 0e201f1400130105] =>  beaded70ba115555 b007face07ca0d55 (00000000)
+xxperm 070d111d1e555e70 7ea1a5a7abadb0ba beb1c0caced0dbde e5e7ecedeff0f1fa, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  70551da5a70da5ab b0aba10d5e117ead (00000000)
+xxperm ced0deede5ecef00 00115e7eadbabec0 becad0deedeffe00 00111e7ea5abadb1, pcv[12021a0817141317 100d1b05070f0205] =>  d0de1e0000edde00 beba7eec00c0deec (00000000)
+xxperm ced0deede5ecef00 00115e7eadbabec0 becad0deedeffe00 00111e7ea5abadb1, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  baabec00007ead00 c0d0e51e00beaba5 (00000000)
+xxperm ced0deede5ecef00 00115e7eadbabec0 becad0deedeffe00 00111e7ea5abadb1, pcv[100d1b070f020505 0e201f1400130105] =>  beba7e00c0deecec beceb1edceded0ec (00000000)
+xxperm ced0deede5ecef00 00115e7eadbabec0 becad0deedeffe00 00111e7ea5abadb1, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  00eced5e7ed05ead bead11d0efde00ba (00000000)
+xxperm 8899aabbccddeeff 0011223344556677 7060504030201000 f0e0d0c0b0a09080, pcv[12021a0817141317 100d1b05070f0205] =>  50aad00000304000 7055c0ddff77aadd (00000000)
+xxperm 8899aabbccddeeff 0011223344556677 7060504030201000 f0e0d0c0b0a09080, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  55a0dd0000334400 7750ccd0f070a0b0 (00000000)
+xxperm 8899aabbccddeeff 0011223344556677 7060504030201000 f0e0d0c0b0a09080, pcv[100d1b070f020505 0e201f1400130105] =>  7055c0ff77aadddd 66888030884099dd (00000000)
+xxperm 8899aabbccddeeff 0011223344556677 7060504030201000 f0e0d0c0b0a09080, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  ffddbb2233992244 66441199eeaa0055 (00000000)
+xxperm 0000100800001010 0000100000001002 0010100800101010 0010100000101002, pcv[12021a0817141317 100d1b05070f0205] =>  1010100010000810 0000000010021000 (00000000)
+xxperm 0000100800001010 0000100000001002 0010100800101010 0010100000101002, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  0010001000000000 0210001000001000 (00000000)
+xxperm 0000100800001010 0000100000001002 0010100800101010 0010100000101002, pcv[100d1b070f020505 0e201f1400130105] =>  0000001002100000 1000020000080000 (00000000)
+xxperm 0000100800001010 0000100000001002 0010100800101010 0010100000101002, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  1000081000001000 1000000010100000 (00000000)
+xxperm 00001c0800001c10 00001c0000001c02 00101c0800101c10 00101c0000101c02, pcv[12021a0817141317 100d1b05070f0205] =>  1c1c1c0010000810 0000000010021c00 (00000000)
+xxperm 00001c0800001c10 00001c0000001c02 00101c0800101c10 00101c0000101c02, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  0010001000000000 021c001c00001000 (00000000)
+xxperm 00001c0800001c10 00001c0000001c02 00101c0800101c10 00101c0000101c02, pcv[100d1b070f020505 0e201f1400130105] =>  00000010021c0000 1c00020000080000 (00000000)
+xxperm 00001c0800001c10 00001c0000001c02 00101c0800101c10 00101c0000101c02, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  1000081c00001c00 1c0000001c1c0000 (00000000)
+xxperm 00001f0800001f10 00001f0000001f02 00101f0800101f10 00101f0000101f02, pcv[12021a0817141317 100d1b05070f0205] =>  1f1f1f0010000810 0000000010021f00 (00000000)
+xxperm 00001f0800001f10 00001f0000001f02 00101f0800101f10 00101f0000101f02, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  0010001000000000 021f001f00001000 (00000000)
+xxperm 00001f0800001f10 00001f0000001f02 00101f0800101f10 00101f0000101f02, pcv[100d1b070f020505 0e201f1400130105] =>  00000010021f0000 1f00020000080000 (00000000)
+xxperm 00001f0800001f10 00001f0000001f02 00101f0800101f10 00101f0000101f02, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  1000081f00001f00 1f0000001f1f0000 (00000000)
+
+xxpermr 0000000000000000 0000000000000000 0102010201020102 0102030405060708, pcv[12021a0817141317 100d1b05070f0205] =>  0006000200000000 0001000301010603 (00000000)
+xxpermr 0000000000000000 0000000000000000 0102010201020102 0102030405060708, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  0100030002010202 0100040000000000 (00000000)
+xxpermr 0000000000000000 0000000000000000 0102010201020102 0102030405060708, pcv[100d1b070f020505 0e201f1400130105] =>  0001000101060303 0208000008000703 (00000000)
+xxpermr 0000000000000000 0000000000000000 0102010201020102 0102030405060708, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  0103050201070202 0202010702060201 (00000000)
+xxpermr aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 5555555555555555 5555555555555555, pcv[12021a0817141317 100d1b05070f0205] =>  aa55aa55aaaaaaaa aa55aa5555555555 (00000000)
+xxpermr aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 5555555555555555 5555555555555555, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  55aa55aa55555555 55aa55aaaaaaaaaa (00000000)
+xxpermr aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 5555555555555555 5555555555555555, pcv[100d1b070f020505 0e201f1400130105] =>  aa55aa5555555555 5555aaaa55aa5555 (00000000)
+xxpermr aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 5555555555555555 5555555555555555, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  5555555555555555 5555555555555555 (00000000)
+xxpermr 0102010201020102 08090a0b0c0d0e0f f8f9fafbfcfdfeff f0f1f2f3f4f5f6f7, pcv[12021a0817141317 100d1b05070f0205] =>  0df502ff080b0c08 0ffa01f2f0f8f5f2 (00000000)
+xxpermr 0102010201020102 08090a0b0c0d0e0f f8f9fafbfcfdfeff f0f1f2f3f4f5f6f7, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  fa01f208fffcfbff f80df302020f0102 (00000000)
+xxpermr 0102010201020102 08090a0b0c0d0e0f f8f9fafbfcfdfeff f0f1f2f3f4f5f6f7, pcv[100d1b070f020505 0e201f1400130105] =>  0ffa01f0f8f5f2f2 f9f7010bf70cf6f2 (00000000)
+xxpermr 0102010201020102 08090a0b0c0d0e0f f8f9fafbfcfdfeff f0f1f2f3f4f5f6f7, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  f0f2f4fdfcf6fdfb f9fbfef6f1f5fffa (00000000)
+xxpermr 070d111d1e555e70 7ea1a5a7abadb0ba beb1c0caced0dbde e5e7ecedeff0f1fa, pcv[12021a0817141317 100d1b05070f0205] =>  adf055de7ea7ab7e bac01eece5bef0ec (00000000)
+xxpermr 070d111d1e555e70 7ea1a5a7abadb0ba beb1c0caced0dbde e5e7ecedeff0f1fa, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  c011ec7edececade beaded5570ba111d (00000000)
+xxpermr 070d111d1e555e70 7ea1a5a7abadb0ba beb1c0caced0dbde e5e7ecedeff0f1fa, pcv[100d1b070f020505 0e201f1400130105] =>  bac01ee5bef0ecec b1fa07a7faabf1ec (00000000)
+xxpermr 070d111d1e555e70 7ea1a5a7abadb0ba beb1c0caced0dbde e5e7ecedeff0f1fa, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  e5ecefd0cef1d0ca b1cadbf1e7f0dec0 (00000000)
+xxpermr ced0deede5ecef00 00115e7eadbabec0 becad0deedeffe00 00111e7ea5abadb1, pcv[12021a0817141317 100d1b05070f0205] =>  baabec00007ead00 c0d0e51e00beab1e (00000000)
+xxpermr ced0deede5ecef00 00115e7eadbabec0 becad0deedeffe00 00111e7ea5abadb1, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  d0de1e0000edde00 beba7eec00c0deed (00000000)
+xxpermr ced0deede5ecef00 00115e7eadbabec0 becad0deedeffe00 00111e7ea5abadb1, pcv[100d1b070f020505 0e201f1400130105] =>  c0d0e500beab1e1e cab1ce7eb1adad1e (00000000)
+xxpermr ced0deede5ecef00 00115e7eadbabec0 becad0deedeffe00 00111e7ea5abadb1, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  001ea5efedadefde cadefead11ab00d0 (00000000)
+xxpermr 8899aabbccddeeff 0011223344556677 7060504030201000 f0e0d0c0b0a09080, pcv[12021a0817141317 100d1b05070f0205] =>  55a0dd0000334400 7750ccd0f070a0d0 (00000000)
+xxpermr 8899aabbccddeeff 0011223344556677 7060504030201000 f0e0d0c0b0a09080, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  50aad00000304000 7055c0ddff77aabb (00000000)
+xxpermr 8899aabbccddeeff 0011223344556677 7060504030201000 f0e0d0c0b0a09080, pcv[100d1b070f020505 0e201f1400130105] =>  7750ccf070a0d0d0 60808833804490d0 (00000000)
+xxpermr 8899aabbccddeeff 0011223344556677 7060504030201000 f0e0d0c0b0a09080, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  f0d0b02030902040 60401090e0a00050 (00000000)
+xxpermr 0000100800001010 0000100000001002 0010100800101010 0010100000101002, pcv[12021a0817141317 100d1b05070f0205] =>  0010001000000000 0210001000001010 (00000000)
+xxpermr 0000100800001010 0000100000001002 0010100800101010 0010100000101002, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  1010100010000810 0000000010021008 (00000000)
+xxpermr 0000100800001010 0000100000001002 0010100800101010 0010100000101002, pcv[100d1b070f020505 0e201f1400130105] =>  0210000000101010 1002000002001010 (00000000)
+xxpermr 0000100800001010 0000100000001002 0010100800101010 0010100000101002, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  0010001000101008 1008101010101010 (00000000)
+xxpermr 00001c0800001c10 00001c0000001c02 00101c0800101c10 00101c0000101c02, pcv[12021a0817141317 100d1b05070f0205] =>  0010001000000000 021c001c0000101c (00000000)
+xxpermr 00001c0800001c10 00001c0000001c02 00101c0800101c10 00101c0000101c02, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  1c1c1c0010000810 0000000010021c08 (00000000)
+xxpermr 00001c0800001c10 00001c0000001c02 00101c0800101c10 00101c0000101c02, pcv[100d1b070f020505 0e201f1400130105] =>  021c000000101c1c 1002000002001c1c (00000000)
+xxpermr 00001c0800001c10 00001c0000001c02 00101c0800101c10 00101c0000101c02, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  001c0010001c1008 10081c1c1010101c (00000000)
+xxpermr 00001f0800001f10 00001f0000001f02 00101f0800101f10 00101f0000101f02, pcv[12021a0817141317 100d1b05070f0205] =>  0010001000000000 021f001f0000101f (00000000)
+xxpermr 00001f0800001f10 00001f0000001f02 00101f0800101f10 00101f0000101f02, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  1f1f1f0010000810 0000000010021f08 (00000000)
+xxpermr 00001f0800001f10 00001f0000001f02 00101f0800101f10 00101f0000101f02, pcv[100d1b070f020505 0e201f1400130105] =>  021f000000101f1f 1002000002001f1f (00000000)
+xxpermr 00001f0800001f10 00001f0000001f02 00101f0800101f10 00101f0000101f02, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  001f0010001f1008 10081f1f1010101f (00000000)
+
+All done. Tested 10 different instructions
+ppc vector three args + dest:
+Test instruction group [ppc vector three args + dest]
+vpermr 0000000000000000 0000000000000000 0000000000000000 0000000000000000, pcv[12021a0817141317 100d1b05070f0205] =>  0000000000000000 0000000000000000 (00000000)
+vpermr 0000000000000000 0000000000000000 0000000000000000 0000000000000000, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  0000000000000000 0000000000000000 (00000000)
+vpermr 0000000000000000 0000000000000000 0000000000000000 0000000000000000, pcv[100d1b070f020505 0e201f1400130105] =>  0000000000000000 0000000000000000 (00000000)
+vpermr 0000000000000000 0000000000000000 0000000000000000 0000000000000000, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  0000000000000000 0000000000000000 (00000000)
+vpermr 0000000000000000 0000000000000000 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa, pcv[12021a0817141317 100d1b05070f0205] =>  00aa00aa00000000 00aa00aaaaaaaaaa (00000000)
+vpermr 0000000000000000 0000000000000000 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  aa00aa00aaaaaaaa aa00aa0000000000 (00000000)
+vpermr 0000000000000000 0000000000000000 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa, pcv[100d1b070f020505 0e201f1400130105] =>  00aa00aaaaaaaaaa aaaa0000aa00aaaa (00000000)
+vpermr 0000000000000000 0000000000000000 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa (00000000)
+vpermr 0000000000000000 0000000000000000 0102010201020102 08090a0b0c0d0e0f, pcv[12021a0817141317 100d1b05070f0205] =>  000d000200000000 0001000a08010d0a (00000000)
+vpermr 0000000000000000 0000000000000000 0102010201020102 08090a0b0c0d0e0f, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  01000a0002010202 01000b0000000000 (00000000)
+vpermr 0000000000000000 0000000000000000 0102010201020102 08090a0b0c0d0e0f, pcv[100d1b070f020505 0e201f1400130105] =>  00010008010d0a0a 020f00000f000e0a (00000000)
+vpermr 0000000000000000 0000000000000000 0102010201020102 08090a0b0c0d0e0f, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  080a0c02010e0202 0202010e090d0201 (00000000)
+vpermr 0000000000000000 0000000000000000 070d111d1e555e70 7ea1a5a7abadb0ba, pcv[12021a0817141317 100d1b05070f0205] =>  00ad007000000000 001100a57e07ada5 (00000000)
+vpermr 0000000000000000 0000000000000000 070d111d1e555e70 7ea1a5a7abadb0ba, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  1100a500701e1d70 0700a70000000000 (00000000)
+vpermr 0000000000000000 0000000000000000 070d111d1e555e70 7ea1a5a7abadb0ba, pcv[100d1b070f020505 0e201f1400130105] =>  0011007e07ada5a5 0dba0000ba00b0a5 (00000000)
+vpermr 0000000000000000 0000000000000000 070d111d1e555e70 7ea1a5a7abadb0ba, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  7ea5ab551eb0551d 0d1d5eb0a1ad7011 (00000000)
+vpermr 0000000000000000 0000000000000000 ced0deede5ecef00 00115e7eadbabec0, pcv[12021a0817141317 100d1b05070f0205] =>  00ba000000000000 00de005e00ceba5e (00000000)
+vpermr 0000000000000000 0000000000000000 ced0deede5ecef00 00115e7eadbabec0, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  de005e0000e5ed00 ce007e0000000000 (00000000)
+vpermr 0000000000000000 0000000000000000 ced0deede5ecef00 00115e7eadbabec0, pcv[100d1b070f020505 0e201f1400130105] =>  00de0000ceba5e5e d0c00000c000be5e (00000000)
+vpermr 0000000000000000 0000000000000000 ced0deede5ecef00 00115e7eadbabec0, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  005eadece5beeced d0edefbe11ba00de (00000000)
+vpermr 0000000000000000 0000000000000000 8899aabbccddeeff 0011223344556677, pcv[12021a0817141317 100d1b05070f0205] =>  005500ff00000000 00aa002200885522 (00000000)
+vpermr 0000000000000000 0000000000000000 8899aabbccddeeff 0011223344556677, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  aa002200ffccbbff 8800330000000000 (00000000)
+vpermr 0000000000000000 0000000000000000 8899aabbccddeeff 0011223344556677, pcv[100d1b070f020505 0e201f1400130105] =>  00aa000088552222 9977000077006622 (00000000)
+vpermr 0000000000000000 0000000000000000 8899aabbccddeeff 0011223344556677, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  002244ddcc66ddbb 99bbee661155ffaa (00000000)
+vpermr 0000000000000000 0000000000000000 0000100800001010 0000100000001002, pcv[12021a0817141317 100d1b05070f0205] =>  0000001000000000 0010001000000010 (00000000)
+vpermr 0000000000000000 0000000000000000 0000100800001010 0000100000001002, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  1000100010000810 0000000000000000 (00000000)
+vpermr 0000000000000000 0000000000000000 0000100800001010 0000100000001002, pcv[100d1b070f020505 0e201f1400130105] =>  0010000000001010 0002000002001010 (00000000)
+vpermr 0000000000000000 0000000000000000 0000100800001010 0000100000001002, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  0010000000100008 0008101000001010 (00000000)
+vpermr 0000000000000000 0000000000000000 00001c0800001c10 00001c0000001c02, pcv[12021a0817141317 100d1b05070f0205] =>  0000001000000000 001c001c0000001c (00000000)
+vpermr 0000000000000000 0000000000000000 00001c0800001c10 00001c0000001c02, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  1c001c0010000810 0000000000000000 (00000000)
+vpermr 0000000000000000 0000000000000000 00001c0800001c10 00001c0000001c02, pcv[100d1b070f020505 0e201f1400130105] =>  001c000000001c1c 0002000002001c1c (00000000)
+vpermr 0000000000000000 0000000000000000 00001c0800001c10 00001c0000001c02, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  001c0000001c0008 00081c1c0000101c (00000000)
+vpermr 0000000000000000 0000000000000000 00001f0800001f10 00001f0000001f02, pcv[12021a0817141317 100d1b05070f0205] =>  0000001000000000 001f001f0000001f (00000000)
+vpermr 0000000000000000 0000000000000000 00001f0800001f10 00001f0000001f02, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  1f001f0010000810 0000000000000000 (00000000)
+vpermr 0000000000000000 0000000000000000 00001f0800001f10 00001f0000001f02, pcv[100d1b070f020505 0e201f1400130105] =>  001f000000001f1f 0002000002001f1f (00000000)
+vpermr 0000000000000000 0000000000000000 00001f0800001f10 00001f0000001f02, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  001f0000001f0008 00081f1f0000101f (00000000)
+vpermr aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 0000000000000000 0000000000000000, pcv[12021a0817141317 100d1b05070f0205] =>  aa00aa00aaaaaaaa aa00aa0000000000 (00000000)
+vpermr aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 0000000000000000 0000000000000000, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  00aa00aa00000000 00aa00aaaaaaaaaa (00000000)
+vpermr aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 0000000000000000 0000000000000000, pcv[100d1b070f020505 0e201f1400130105] =>  aa00aa0000000000 0000aaaa00aa0000 (00000000)
+vpermr aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 0000000000000000 0000000000000000, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  0000000000000000 0000000000000000 (00000000)
+vpermr aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa, pcv[12021a0817141317 100d1b05070f0205] =>  aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa (00000000)
+vpermr aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa (00000000)
+vpermr aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa, pcv[100d1b070f020505 0e201f1400130105] =>  aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa (00000000)
+vpermr aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa (00000000)
+vpermr aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 0102010201020102 08090a0b0c0d0e0f, pcv[12021a0817141317 100d1b05070f0205] =>  aa0daa02aaaaaaaa aa01aa0a08010d0a (00000000)
+vpermr aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 0102010201020102 08090a0b0c0d0e0f, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  01aa0aaa02010202 01aa0baaaaaaaaaa (00000000)
+vpermr aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 0102010201020102 08090a0b0c0d0e0f, pcv[100d1b070f020505 0e201f1400130105] =>  aa01aa08010d0a0a 020faaaa0faa0e0a (00000000)
+vpermr aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 0102010201020102 08090a0b0c0d0e0f, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  080a0c02010e0202 0202010e090d0201 (00000000)
+vpermr aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 070d111d1e555e70 7ea1a5a7abadb0ba, pcv[12021a0817141317 100d1b05070f0205] =>  aaadaa70aaaaaaaa aa11aaa57e07ada5 (00000000)
+vpermr aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 070d111d1e555e70 7ea1a5a7abadb0ba, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  11aaa5aa701e1d70 07aaa7aaaaaaaaaa (00000000)
+vpermr aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 070d111d1e555e70 7ea1a5a7abadb0ba, pcv[100d1b070f020505 0e201f1400130105] =>  aa11aa7e07ada5a5 0dbaaaaabaaab0a5 (00000000)
+vpermr aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 070d111d1e555e70 7ea1a5a7abadb0ba, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  7ea5ab551eb0551d 0d1d5eb0a1ad7011 (00000000)
+vpermr aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ced0deede5ecef00 00115e7eadbabec0, pcv[12021a0817141317 100d1b05070f0205] =>  aabaaa00aaaaaaaa aadeaa5e00ceba5e (00000000)
+vpermr aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ced0deede5ecef00 00115e7eadbabec0, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  deaa5eaa00e5ed00 ceaa7eaaaaaaaaaa (00000000)
+vpermr aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ced0deede5ecef00 00115e7eadbabec0, pcv[100d1b070f020505 0e201f1400130105] =>  aadeaa00ceba5e5e d0c0aaaac0aabe5e (00000000)
+vpermr aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ced0deede5ecef00 00115e7eadbabec0, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  005eadece5beeced d0edefbe11ba00de (00000000)
+vpermr aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 8899aabbccddeeff 0011223344556677, pcv[12021a0817141317 100d1b05070f0205] =>  aa55aaffaaaaaaaa aaaaaa2200885522 (00000000)
+vpermr aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 8899aabbccddeeff 0011223344556677, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  aaaa22aaffccbbff 88aa33aaaaaaaaaa (00000000)
+vpermr aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 8899aabbccddeeff 0011223344556677, pcv[100d1b070f020505 0e201f1400130105] =>  aaaaaa0088552222 9977aaaa77aa6622 (00000000)
+vpermr aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 8899aabbccddeeff 0011223344556677, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  002244ddcc66ddbb 99bbee661155ffaa (00000000)
+vpermr aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 0000100800001010 0000100000001002, pcv[12021a0817141317 100d1b05070f0205] =>  aa00aa10aaaaaaaa aa10aa1000000010 (00000000)
+vpermr aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 0000100800001010 0000100000001002, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  10aa10aa10000810 00aa00aaaaaaaaaa (00000000)
+vpermr aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 0000100800001010 0000100000001002, pcv[100d1b070f020505 0e201f1400130105] =>  aa10aa0000001010 0002aaaa02aa1010 (00000000)
+vpermr aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 0000100800001010 0000100000001002, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  0010000000100008 0008101000001010 (00000000)
+vpermr aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 00001c0800001c10 00001c0000001c02, pcv[12021a0817141317 100d1b05070f0205] =>  aa00aa10aaaaaaaa aa1caa1c0000001c (00000000)
+vpermr aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 00001c0800001c10 00001c0000001c02, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  1caa1caa10000810 00aa00aaaaaaaaaa (00000000)
+vpermr aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 00001c0800001c10 00001c0000001c02, pcv[100d1b070f020505 0e201f1400130105] =>  aa1caa0000001c1c 0002aaaa02aa1c1c (00000000)
+vpermr aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 00001c0800001c10 00001c0000001c02, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  001c0000001c0008 00081c1c0000101c (00000000)
+vpermr aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 00001f0800001f10 00001f0000001f02, pcv[12021a0817141317 100d1b05070f0205] =>  aa00aa10aaaaaaaa aa1faa1f0000001f (00000000)
+vpermr aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 00001f0800001f10 00001f0000001f02, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  1faa1faa10000810 00aa00aaaaaaaaaa (00000000)
+vpermr aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 00001f0800001f10 00001f0000001f02, pcv[100d1b070f020505 0e201f1400130105] =>  aa1faa0000001f1f 0002aaaa02aa1f1f (00000000)
+vpermr aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 00001f0800001f10 00001f0000001f02, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  001f0000001f0008 00081f1f0000101f (00000000)
+vpermr 0102010201020102 08090a0b0c0d0e0f 0000000000000000 0000000000000000, pcv[12021a0817141317 100d1b05070f0205] =>  0d000200080b0c08 0f00010000000000 (00000000)
+vpermr 0102010201020102 08090a0b0c0d0e0f 0000000000000000 0000000000000000, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  0001000800000000 000d0002020f0102 (00000000)
+vpermr 0102010201020102 08090a0b0c0d0e0f 0000000000000000 0000000000000000, pcv[100d1b070f020505 0e201f1400130105] =>  0f00010000000000 0000010b000c0000 (00000000)
+vpermr 0102010201020102 08090a0b0c0d0e0f 0000000000000000 0000000000000000, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  0000000000000000 0000000000000000 (00000000)
+vpermr 0102010201020102 08090a0b0c0d0e0f aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa, pcv[12021a0817141317 100d1b05070f0205] =>  0daa02aa080b0c08 0faa01aaaaaaaaaa (00000000)
+vpermr 0102010201020102 08090a0b0c0d0e0f aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  aa01aa08aaaaaaaa aa0daa02020f0102 (00000000)
+vpermr 0102010201020102 08090a0b0c0d0e0f aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa, pcv[100d1b070f020505 0e201f1400130105] =>  0faa01aaaaaaaaaa aaaa010baa0caaaa (00000000)
+vpermr 0102010201020102 08090a0b0c0d0e0f aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa (00000000)
+vpermr 0102010201020102 08090a0b0c0d0e0f 0102010201020102 08090a0b0c0d0e0f, pcv[12021a0817141317 100d1b05070f0205] =>  0d0d0202080b0c08 0f01010a08010d0a (00000000)
+vpermr 0102010201020102 08090a0b0c0d0e0f 0102010201020102 08090a0b0c0d0e0f, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  01010a0802010202 010d0b02020f0102 (00000000)
+vpermr 0102010201020102 08090a0b0c0d0e0f 0102010201020102 08090a0b0c0d0e0f, pcv[100d1b070f020505 0e201f1400130105] =>  0f010108010d0a0a 020f010b0f0c0e0a (00000000)
+vpermr 0102010201020102 08090a0b0c0d0e0f 0102010201020102 08090a0b0c0d0e0f, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  080a0c02010e0202 0202010e090d0201 (00000000)
+vpermr 0102010201020102 08090a0b0c0d0e0f 070d111d1e555e70 7ea1a5a7abadb0ba, pcv[12021a0817141317 100d1b05070f0205] =>  0dad0270080b0c08 0f1101a57e07ada5 (00000000)
+vpermr 0102010201020102 08090a0b0c0d0e0f 070d111d1e555e70 7ea1a5a7abadb0ba, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  1101a508701e1d70 070da702020f0102 (00000000)
+vpermr 0102010201020102 08090a0b0c0d0e0f 070d111d1e555e70 7ea1a5a7abadb0ba, pcv[100d1b070f020505 0e201f1400130105] =>  0f11017e07ada5a5 0dba010bba0cb0a5 (00000000)
+vpermr 0102010201020102 08090a0b0c0d0e0f 070d111d1e555e70 7ea1a5a7abadb0ba, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  7ea5ab551eb0551d 0d1d5eb0a1ad7011 (00000000)
+vpermr 0102010201020102 08090a0b0c0d0e0f ced0deede5ecef00 00115e7eadbabec0, pcv[12021a0817141317 100d1b05070f0205] =>  0dba0200080b0c08 0fde015e00ceba5e (00000000)
+vpermr 0102010201020102 08090a0b0c0d0e0f ced0deede5ecef00 00115e7eadbabec0, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  de015e0800e5ed00 ce0d7e02020f0102 (00000000)
+vpermr 0102010201020102 08090a0b0c0d0e0f ced0deede5ecef00 00115e7eadbabec0, pcv[100d1b070f020505 0e201f1400130105] =>  0fde0100ceba5e5e d0c0010bc00cbe5e (00000000)
+vpermr 0102010201020102 08090a0b0c0d0e0f ced0deede5ecef00 00115e7eadbabec0, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  005eadece5beeced d0edefbe11ba00de (00000000)
+vpermr 0102010201020102 08090a0b0c0d0e0f 8899aabbccddeeff 0011223344556677, pcv[12021a0817141317 100d1b05070f0205] =>  0d5502ff080b0c08 0faa012200885522 (00000000)
+vpermr 0102010201020102 08090a0b0c0d0e0f 8899aabbccddeeff 0011223344556677, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  aa012208ffccbbff 880d3302020f0102 (00000000)
+vpermr 0102010201020102 08090a0b0c0d0e0f 8899aabbccddeeff 0011223344556677, pcv[100d1b070f020505 0e201f1400130105] =>  0faa010088552222 9977010b770c6622 (00000000)
+vpermr 0102010201020102 08090a0b0c0d0e0f 8899aabbccddeeff 0011223344556677, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  002244ddcc66ddbb 99bbee661155ffaa (00000000)
+vpermr 0102010201020102 08090a0b0c0d0e0f 0000100800001010 0000100000001002, pcv[12021a0817141317 100d1b05070f0205] =>  0d000210080b0c08 0f10011000000010 (00000000)
+vpermr 0102010201020102 08090a0b0c0d0e0f 0000100800001010 0000100000001002, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  1001100810000810 000d0002020f0102 (00000000)
+vpermr 0102010201020102 08090a0b0c0d0e0f 0000100800001010 0000100000001002, pcv[100d1b070f020505 0e201f1400130105] =>  0f10010000001010 0002010b020c1010 (00000000)
+vpermr 0102010201020102 08090a0b0c0d0e0f 0000100800001010 0000100000001002, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  0010000000100008 0008101000001010 (00000000)
+vpermr 0102010201020102 08090a0b0c0d0e0f 00001c0800001c10 00001c0000001c02, pcv[12021a0817141317 100d1b05070f0205] =>  0d000210080b0c08 0f1c011c0000001c (00000000)
+vpermr 0102010201020102 08090a0b0c0d0e0f 00001c0800001c10 00001c0000001c02, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  1c011c0810000810 000d0002020f0102 (00000000)
+vpermr 0102010201020102 08090a0b0c0d0e0f 00001c0800001c10 00001c0000001c02, pcv[100d1b070f020505 0e201f1400130105] =>  0f1c010000001c1c 0002010b020c1c1c (00000000)
+vpermr 0102010201020102 08090a0b0c0d0e0f 00001c0800001c10 00001c0000001c02, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  001c0000001c0008 00081c1c0000101c (00000000)
+vpermr 0102010201020102 08090a0b0c0d0e0f 00001f0800001f10 00001f0000001f02, pcv[12021a0817141317 100d1b05070f0205] =>  0d000210080b0c08 0f1f011f0000001f (00000000)
+vpermr 0102010201020102 08090a0b0c0d0e0f 00001f0800001f10 00001f0000001f02, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  1f011f0810000810 000d0002020f0102 (00000000)
+vpermr 0102010201020102 08090a0b0c0d0e0f 00001f0800001f10 00001f0000001f02, pcv[100d1b070f020505 0e201f1400130105] =>  0f1f010000001f1f 0002010b020c1f1f (00000000)
+vpermr 0102010201020102 08090a0b0c0d0e0f 00001f0800001f10 00001f0000001f02, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  001f0000001f0008 00081f1f0000101f (00000000)
+vpermr 070d111d1e555e70 7ea1a5a7abadb0ba 0000000000000000 0000000000000000, pcv[12021a0817141317 100d1b05070f0205] =>  ad0055007ea7ab7e ba001e0000000000 (00000000)
+vpermr 070d111d1e555e70 7ea1a5a7abadb0ba 0000000000000000 0000000000000000, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  0011007e00000000 00ad005570ba111d (00000000)
+vpermr 070d111d1e555e70 7ea1a5a7abadb0ba 0000000000000000 0000000000000000, pcv[100d1b070f020505 0e201f1400130105] =>  ba001e0000000000 000007a700ab0000 (00000000)
+vpermr 070d111d1e555e70 7ea1a5a7abadb0ba 0000000000000000 0000000000000000, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  0000000000000000 0000000000000000 (00000000)
+vpermr 070d111d1e555e70 7ea1a5a7abadb0ba aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa, pcv[12021a0817141317 100d1b05070f0205] =>  adaa55aa7ea7ab7e baaa1eaaaaaaaaaa (00000000)
+vpermr 070d111d1e555e70 7ea1a5a7abadb0ba aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  aa11aa7eaaaaaaaa aaadaa5570ba111d (00000000)
+vpermr 070d111d1e555e70 7ea1a5a7abadb0ba aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa, pcv[100d1b070f020505 0e201f1400130105] =>  baaa1eaaaaaaaaaa aaaa07a7aaabaaaa (00000000)
+vpermr 070d111d1e555e70 7ea1a5a7abadb0ba aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa (00000000)
+vpermr 070d111d1e555e70 7ea1a5a7abadb0ba 0102010201020102 08090a0b0c0d0e0f, pcv[12021a0817141317 100d1b05070f0205] =>  ad0d55027ea7ab7e ba011e0a08010d0a (00000000)
+vpermr 070d111d1e555e70 7ea1a5a7abadb0ba 0102010201020102 08090a0b0c0d0e0f, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  01110a7e02010202 01ad0b5570ba111d (00000000)
+vpermr 070d111d1e555e70 7ea1a5a7abadb0ba 0102010201020102 08090a0b0c0d0e0f, pcv[100d1b070f020505 0e201f1400130105] =>  ba011e08010d0a0a 020f07a70fab0e0a (00000000)
+vpermr 070d111d1e555e70 7ea1a5a7abadb0ba 0102010201020102 08090a0b0c0d0e0f, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  080a0c02010e0202 0202010e090d0201 (00000000)
+vpermr 070d111d1e555e70 7ea1a5a7abadb0ba 070d111d1e555e70 7ea1a5a7abadb0ba, pcv[12021a0817141317 100d1b05070f0205] =>  adad55707ea7ab7e ba111ea57e07ada5 (00000000)
+vpermr 070d111d1e555e70 7ea1a5a7abadb0ba 070d111d1e555e70 7ea1a5a7abadb0ba, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  1111a57e701e1d70 07ada75570ba111d (00000000)
+vpermr 070d111d1e555e70 7ea1a5a7abadb0ba 070d111d1e555e70 7ea1a5a7abadb0ba, pcv[100d1b070f020505 0e201f1400130105] =>  ba111e7e07ada5a5 0dba07a7baabb0a5 (00000000)
+vpermr 070d111d1e555e70 7ea1a5a7abadb0ba 070d111d1e555e70 7ea1a5a7abadb0ba, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  7ea5ab551eb0551d 0d1d5eb0a1ad7011 (00000000)
+vpermr 070d111d1e555e70 7ea1a5a7abadb0ba ced0deede5ecef00 00115e7eadbabec0, pcv[12021a0817141317 100d1b05070f0205] =>  adba55007ea7ab7e bade1e5e00ceba5e (00000000)
+vpermr 070d111d1e555e70 7ea1a5a7abadb0ba ced0deede5ecef00 00115e7eadbabec0, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  de115e7e00e5ed00 cead7e5570ba111d (00000000)
+vpermr 070d111d1e555e70 7ea1a5a7abadb0ba ced0deede5ecef00 00115e7eadbabec0, pcv[100d1b070f020505 0e201f1400130105] =>  bade1e00ceba5e5e d0c007a7c0abbe5e (00000000)
+vpermr 070d111d1e555e70 7ea1a5a7abadb0ba ced0deede5ecef00 00115e7eadbabec0, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  005eadece5beeced d0edefbe11ba00de (00000000)
+vpermr 070d111d1e555e70 7ea1a5a7abadb0ba 8899aabbccddeeff 0011223344556677, pcv[12021a0817141317 100d1b05070f0205] =>  ad5555ff7ea7ab7e baaa1e2200885522 (00000000)
+vpermr 070d111d1e555e70 7ea1a5a7abadb0ba 8899aabbccddeeff 0011223344556677, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  aa11227effccbbff 88ad335570ba111d (00000000)
+vpermr 070d111d1e555e70 7ea1a5a7abadb0ba 8899aabbccddeeff 0011223344556677, pcv[100d1b070f020505 0e201f1400130105] =>  baaa1e0088552222 997707a777ab6622 (00000000)
+vpermr 070d111d1e555e70 7ea1a5a7abadb0ba 8899aabbccddeeff 0011223344556677, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  002244ddcc66ddbb 99bbee661155ffaa (00000000)
+vpermr 070d111d1e555e70 7ea1a5a7abadb0ba 0000100800001010 0000100000001002, pcv[12021a0817141317 100d1b05070f0205] =>  ad0055107ea7ab7e ba101e1000000010 (00000000)
+vpermr 070d111d1e555e70 7ea1a5a7abadb0ba 0000100800001010 0000100000001002, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  1011107e10000810 00ad005570ba111d (00000000)
+vpermr 070d111d1e555e70 7ea1a5a7abadb0ba 0000100800001010 0000100000001002, pcv[100d1b070f020505 0e201f1400130105] =>  ba101e0000001010 000207a702ab1010 (00000000)
+vpermr 070d111d1e555e70 7ea1a5a7abadb0ba 0000100800001010 0000100000001002, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  0010000000100008 0008101000001010 (00000000)
+vpermr 070d111d1e555e70 7ea1a5a7abadb0ba 00001c0800001c10 00001c0000001c02, pcv[12021a0817141317 100d1b05070f0205] =>  ad0055107ea7ab7e ba1c1e1c0000001c (00000000)
+vpermr 070d111d1e555e70 7ea1a5a7abadb0ba 00001c0800001c10 00001c0000001c02, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  1c111c7e10000810 00ad005570ba111d (00000000)
+vpermr 070d111d1e555e70 7ea1a5a7abadb0ba 00001c0800001c10 00001c0000001c02, pcv[100d1b070f020505 0e201f1400130105] =>  ba1c1e0000001c1c 000207a702ab1c1c (00000000)
+vpermr 070d111d1e555e70 7ea1a5a7abadb0ba 00001c0800001c10 00001c0000001c02, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  001c0000001c0008 00081c1c0000101c (00000000)
+vpermr 070d111d1e555e70 7ea1a5a7abadb0ba 00001f0800001f10 00001f0000001f02, pcv[12021a0817141317 100d1b05070f0205] =>  ad0055107ea7ab7e ba1f1e1f0000001f (00000000)
+vpermr 070d111d1e555e70 7ea1a5a7abadb0ba 00001f0800001f10 00001f0000001f02, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  1f111f7e10000810 00ad005570ba111d (00000000)
+vpermr 070d111d1e555e70 7ea1a5a7abadb0ba 00001f0800001f10 00001f0000001f02, pcv[100d1b070f020505 0e201f1400130105] =>  ba1f1e0000001f1f 000207a702ab1f1f (00000000)
+vpermr 070d111d1e555e70 7ea1a5a7abadb0ba 00001f0800001f10 00001f0000001f02, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  001f0000001f0008 00081f1f0000101f (00000000)
+vpermr ced0deede5ecef00 00115e7eadbabec0 0000000000000000 0000000000000000, pcv[12021a0817141317 100d1b05070f0205] =>  ba00ec00007ead00 c000e50000000000 (00000000)
+vpermr ced0deede5ecef00 00115e7eadbabec0 0000000000000000 0000000000000000, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  00de000000000000 00ba00ec00c0deed (00000000)
+vpermr ced0deede5ecef00 00115e7eadbabec0 0000000000000000 0000000000000000, pcv[100d1b070f020505 0e201f1400130105] =>  c000e50000000000 0000ce7e00ad0000 (00000000)
+vpermr ced0deede5ecef00 00115e7eadbabec0 0000000000000000 0000000000000000, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  0000000000000000 0000000000000000 (00000000)
+vpermr ced0deede5ecef00 00115e7eadbabec0 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa, pcv[12021a0817141317 100d1b05070f0205] =>  baaaecaa007ead00 c0aae5aaaaaaaaaa (00000000)
+vpermr ced0deede5ecef00 00115e7eadbabec0 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  aadeaa00aaaaaaaa aabaaaec00c0deed (00000000)
+vpermr ced0deede5ecef00 00115e7eadbabec0 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa, pcv[100d1b070f020505 0e201f1400130105] =>  c0aae5aaaaaaaaaa aaaace7eaaadaaaa (00000000)
+vpermr ced0deede5ecef00 00115e7eadbabec0 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa (00000000)
+vpermr ced0deede5ecef00 00115e7eadbabec0 0102010201020102 08090a0b0c0d0e0f, pcv[12021a0817141317 100d1b05070f0205] =>  ba0dec02007ead00 c001e50a08010d0a (00000000)
+vpermr ced0deede5ecef00 00115e7eadbabec0 0102010201020102 08090a0b0c0d0e0f, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  01de0a0002010202 01ba0bec00c0deed (00000000)
+vpermr ced0deede5ecef00 00115e7eadbabec0 0102010201020102 08090a0b0c0d0e0f, pcv[100d1b070f020505 0e201f1400130105] =>  c001e508010d0a0a 020fce7e0fad0e0a (00000000)
+vpermr ced0deede5ecef00 00115e7eadbabec0 0102010201020102 08090a0b0c0d0e0f, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  080a0c02010e0202 0202010e090d0201 (00000000)
+vpermr ced0deede5ecef00 00115e7eadbabec0 070d111d1e555e70 7ea1a5a7abadb0ba, pcv[12021a0817141317 100d1b05070f0205] =>  baadec70007ead00 c011e5a57e07ada5 (00000000)
+vpermr ced0deede5ecef00 00115e7eadbabec0 070d111d1e555e70 7ea1a5a7abadb0ba, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  11dea500701e1d70 07baa7ec00c0deed (00000000)
+vpermr ced0deede5ecef00 00115e7eadbabec0 070d111d1e555e70 7ea1a5a7abadb0ba, pcv[100d1b070f020505 0e201f1400130105] =>  c011e57e07ada5a5 0dbace7ebaadb0a5 (00000000)
+vpermr ced0deede5ecef00 00115e7eadbabec0 070d111d1e555e70 7ea1a5a7abadb0ba, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  7ea5ab551eb0551d 0d1d5eb0a1ad7011 (00000000)
+vpermr ced0deede5ecef00 00115e7eadbabec0 ced0deede5ecef00 00115e7eadbabec0, pcv[12021a0817141317 100d1b05070f0205] =>  babaec00007ead00 c0dee55e00ceba5e (00000000)
+vpermr ced0deede5ecef00 00115e7eadbabec0 ced0deede5ecef00 00115e7eadbabec0, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  dede5e0000e5ed00 ceba7eec00c0deed (00000000)
+vpermr ced0deede5ecef00 00115e7eadbabec0 ced0deede5ecef00 00115e7eadbabec0, pcv[100d1b070f020505 0e201f1400130105] =>  c0dee500ceba5e5e d0c0ce7ec0adbe5e (00000000)
+vpermr ced0deede5ecef00 00115e7eadbabec0 ced0deede5ecef00 00115e7eadbabec0, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  005eadece5beeced d0edefbe11ba00de (00000000)
+vpermr ced0deede5ecef00 00115e7eadbabec0 8899aabbccddeeff 0011223344556677, pcv[12021a0817141317 100d1b05070f0205] =>  ba55ecff007ead00 c0aae52200885522 (00000000)
+vpermr ced0deede5ecef00 00115e7eadbabec0 8899aabbccddeeff 0011223344556677, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  aade2200ffccbbff 88ba33ec00c0deed (00000000)
+vpermr ced0deede5ecef00 00115e7eadbabec0 8899aabbccddeeff 0011223344556677, pcv[100d1b070f020505 0e201f1400130105] =>  c0aae50088552222 9977ce7e77ad6622 (00000000)
+vpermr ced0deede5ecef00 00115e7eadbabec0 8899aabbccddeeff 0011223344556677, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  002244ddcc66ddbb 99bbee661155ffaa (00000000)
+vpermr ced0deede5ecef00 00115e7eadbabec0 0000100800001010 0000100000001002, pcv[12021a0817141317 100d1b05070f0205] =>  ba00ec10007ead00 c010e51000000010 (00000000)
+vpermr ced0deede5ecef00 00115e7eadbabec0 0000100800001010 0000100000001002, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  10de100010000810 00ba00ec00c0deed (00000000)
+vpermr ced0deede5ecef00 00115e7eadbabec0 0000100800001010 0000100000001002, pcv[100d1b070f020505 0e201f1400130105] =>  c010e50000001010 0002ce7e02ad1010 (00000000)
+vpermr ced0deede5ecef00 00115e7eadbabec0 0000100800001010 0000100000001002, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  0010000000100008 0008101000001010 (00000000)
+vpermr ced0deede5ecef00 00115e7eadbabec0 00001c0800001c10 00001c0000001c02, pcv[12021a0817141317 100d1b05070f0205] =>  ba00ec10007ead00 c01ce51c0000001c (00000000)
+vpermr ced0deede5ecef00 00115e7eadbabec0 00001c0800001c10 00001c0000001c02, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  1cde1c0010000810 00ba00ec00c0deed (00000000)
+vpermr ced0deede5ecef00 00115e7eadbabec0 00001c0800001c10 00001c0000001c02, pcv[100d1b070f020505 0e201f1400130105] =>  c01ce50000001c1c 0002ce7e02ad1c1c (00000000)
+vpermr ced0deede5ecef00 00115e7eadbabec0 00001c0800001c10 00001c0000001c02, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  001c0000001c0008 00081c1c0000101c (00000000)
+vpermr ced0deede5ecef00 00115e7eadbabec0 00001f0800001f10 00001f0000001f02, pcv[12021a0817141317 100d1b05070f0205] =>  ba00ec10007ead00 c01fe51f0000001f (00000000)
+vpermr ced0deede5ecef00 00115e7eadbabec0 00001f0800001f10 00001f0000001f02, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  1fde1f0010000810 00ba00ec00c0deed (00000000)
+vpermr ced0deede5ecef00 00115e7eadbabec0 00001f0800001f10 00001f0000001f02, pcv[100d1b070f020505 0e201f1400130105] =>  c01fe50000001f1f 0002ce7e02ad1f1f (00000000)
+vpermr ced0deede5ecef00 00115e7eadbabec0 00001f0800001f10 00001f0000001f02, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  001f0000001f0008 00081f1f0000101f (00000000)
+vpermr 8899aabbccddeeff 0011223344556677 0000000000000000 0000000000000000, pcv[12021a0817141317 100d1b05070f0205] =>  5500dd0000334400 7700cc0000000000 (00000000)
+vpermr 8899aabbccddeeff 0011223344556677 0000000000000000 0000000000000000, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  00aa000000000000 005500ddff77aabb (00000000)
+vpermr 8899aabbccddeeff 0011223344556677 0000000000000000 0000000000000000, pcv[100d1b070f020505 0e201f1400130105] =>  7700cc0000000000 0000883300440000 (00000000)
+vpermr 8899aabbccddeeff 0011223344556677 0000000000000000 0000000000000000, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  0000000000000000 0000000000000000 (00000000)
+vpermr 8899aabbccddeeff 0011223344556677 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa, pcv[12021a0817141317 100d1b05070f0205] =>  55aaddaa00334400 77aaccaaaaaaaaaa (00000000)
+vpermr 8899aabbccddeeff 0011223344556677 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  aaaaaa00aaaaaaaa aa55aaddff77aabb (00000000)
+vpermr 8899aabbccddeeff 0011223344556677 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa, pcv[100d1b070f020505 0e201f1400130105] =>  77aaccaaaaaaaaaa aaaa8833aa44aaaa (00000000)
+vpermr 8899aabbccddeeff 0011223344556677 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa (00000000)
+vpermr 8899aabbccddeeff 0011223344556677 0102010201020102 08090a0b0c0d0e0f, pcv[12021a0817141317 100d1b05070f0205] =>  550ddd0200334400 7701cc0a08010d0a (00000000)
+vpermr 8899aabbccddeeff 0011223344556677 0102010201020102 08090a0b0c0d0e0f, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  01aa0a0002010202 01550bddff77aabb (00000000)
+vpermr 8899aabbccddeeff 0011223344556677 0102010201020102 08090a0b0c0d0e0f, pcv[100d1b070f020505 0e201f1400130105] =>  7701cc08010d0a0a 020f88330f440e0a (00000000)
+vpermr 8899aabbccddeeff 0011223344556677 0102010201020102 08090a0b0c0d0e0f, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  080a0c02010e0202 0202010e090d0201 (00000000)
+vpermr 8899aabbccddeeff 0011223344556677 070d111d1e555e70 7ea1a5a7abadb0ba, pcv[12021a0817141317 100d1b05070f0205] =>  55addd7000334400 7711cca57e07ada5 (00000000)
+vpermr 8899aabbccddeeff 0011223344556677 070d111d1e555e70 7ea1a5a7abadb0ba, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  11aaa500701e1d70 0755a7ddff77aabb (00000000)
+vpermr 8899aabbccddeeff 0011223344556677 070d111d1e555e70 7ea1a5a7abadb0ba, pcv[100d1b070f020505 0e201f1400130105] =>  7711cc7e07ada5a5 0dba8833ba44b0a5 (00000000)
+vpermr 8899aabbccddeeff 0011223344556677 070d111d1e555e70 7ea1a5a7abadb0ba, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  7ea5ab551eb0551d 0d1d5eb0a1ad7011 (00000000)
+vpermr 8899aabbccddeeff 0011223344556677 ced0deede5ecef00 00115e7eadbabec0, pcv[12021a0817141317 100d1b05070f0205] =>  55badd0000334400 77decc5e00ceba5e (00000000)
+vpermr 8899aabbccddeeff 0011223344556677 ced0deede5ecef00 00115e7eadbabec0, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  deaa5e0000e5ed00 ce557eddff77aabb (00000000)
+vpermr 8899aabbccddeeff 0011223344556677 ced0deede5ecef00 00115e7eadbabec0, pcv[100d1b070f020505 0e201f1400130105] =>  77decc00ceba5e5e d0c08833c044be5e (00000000)
+vpermr 8899aabbccddeeff 0011223344556677 ced0deede5ecef00 00115e7eadbabec0, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  005eadece5beeced d0edefbe11ba00de (00000000)
+vpermr 8899aabbccddeeff 0011223344556677 8899aabbccddeeff 0011223344556677, pcv[12021a0817141317 100d1b05070f0205] =>  5555ddff00334400 77aacc2200885522 (00000000)
+vpermr 8899aabbccddeeff 0011223344556677 8899aabbccddeeff 0011223344556677, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  aaaa2200ffccbbff 885533ddff77aabb (00000000)
+vpermr 8899aabbccddeeff 0011223344556677 8899aabbccddeeff 0011223344556677, pcv[100d1b070f020505 0e201f1400130105] =>  77aacc0088552222 9977883377446622 (00000000)
+vpermr 8899aabbccddeeff 0011223344556677 8899aabbccddeeff 0011223344556677, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  002244ddcc66ddbb 99bbee661155ffaa (00000000)
+vpermr 8899aabbccddeeff 0011223344556677 0000100800001010 0000100000001002, pcv[12021a0817141317 100d1b05070f0205] =>  5500dd1000334400 7710cc1000000010 (00000000)
+vpermr 8899aabbccddeeff 0011223344556677 0000100800001010 0000100000001002, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  10aa100010000810 005500ddff77aabb (00000000)
+vpermr 8899aabbccddeeff 0011223344556677 0000100800001010 0000100000001002, pcv[100d1b070f020505 0e201f1400130105] =>  7710cc0000001010 0002883302441010 (00000000)
+vpermr 8899aabbccddeeff 0011223344556677 0000100800001010 0000100000001002, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  0010000000100008 0008101000001010 (00000000)
+vpermr 8899aabbccddeeff 0011223344556677 00001c0800001c10 00001c0000001c02, pcv[12021a0817141317 100d1b05070f0205] =>  5500dd1000334400 771ccc1c0000001c (00000000)
+vpermr 8899aabbccddeeff 0011223344556677 00001c0800001c10 00001c0000001c02, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  1caa1c0010000810 005500ddff77aabb (00000000)
+vpermr 8899aabbccddeeff 0011223344556677 00001c0800001c10 00001c0000001c02, pcv[100d1b070f020505 0e201f1400130105] =>  771ccc0000001c1c 0002883302441c1c (00000000)
+vpermr 8899aabbccddeeff 0011223344556677 00001c0800001c10 00001c0000001c02, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  001c0000001c0008 00081c1c0000101c (00000000)
+vpermr 8899aabbccddeeff 0011223344556677 00001f0800001f10 00001f0000001f02, pcv[12021a0817141317 100d1b05070f0205] =>  5500dd1000334400 771fcc1f0000001f (00000000)
+vpermr 8899aabbccddeeff 0011223344556677 00001f0800001f10 00001f0000001f02, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  1faa1f0010000810 005500ddff77aabb (00000000)
+vpermr 8899aabbccddeeff 0011223344556677 00001f0800001f10 00001f0000001f02, pcv[100d1b070f020505 0e201f1400130105] =>  771fcc0000001f1f 0002883302441f1f (00000000)
+vpermr 8899aabbccddeeff 0011223344556677 00001f0800001f10 00001f0000001f02, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  001f0000001f0008 00081f1f0000101f (00000000)
+vpermr 0000100800001010 0000100000001002 0000000000000000 0000000000000000, pcv[12021a0817141317 100d1b05070f0205] =>  0000000000000000 0200000000000000 (00000000)
+vpermr 0000100800001010 0000100000001002 0000000000000000 0000000000000000, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  0010000000000000 0000000010021008 (00000000)
+vpermr 0000100800001010 0000100000001002 0000000000000000 0000000000000000, pcv[100d1b070f020505 0e201f1400130105] =>  0200000000000000 0000000000000000 (00000000)
+vpermr 0000100800001010 0000100000001002 0000000000000000 0000000000000000, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  0000000000000000 0000000000000000 (00000000)
+vpermr 0000100800001010 0000100000001002 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa, pcv[12021a0817141317 100d1b05070f0205] =>  00aa00aa00000000 02aa00aaaaaaaaaa (00000000)
+vpermr 0000100800001010 0000100000001002 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  aa10aa00aaaaaaaa aa00aa0010021008 (00000000)
+vpermr 0000100800001010 0000100000001002 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa, pcv[100d1b070f020505 0e201f1400130105] =>  02aa00aaaaaaaaaa aaaa0000aa00aaaa (00000000)
+vpermr 0000100800001010 0000100000001002 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa (00000000)
+vpermr 0000100800001010 0000100000001002 0102010201020102 08090a0b0c0d0e0f, pcv[12021a0817141317 100d1b05070f0205] =>  000d000200000000 0201000a08010d0a (00000000)
+vpermr 0000100800001010 0000100000001002 0102010201020102 08090a0b0c0d0e0f, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  01100a0002010202 01000b0010021008 (00000000)
+vpermr 0000100800001010 0000100000001002 0102010201020102 08090a0b0c0d0e0f, pcv[100d1b070f020505 0e201f1400130105] =>  02010008010d0a0a 020f00000f000e0a (00000000)
+vpermr 0000100800001010 0000100000001002 0102010201020102 08090a0b0c0d0e0f, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  080a0c02010e0202 0202010e090d0201 (00000000)
+vpermr 0000100800001010 0000100000001002 070d111d1e555e70 7ea1a5a7abadb0ba, pcv[12021a0817141317 100d1b05070f0205] =>  00ad007000000000 021100a57e07ada5 (00000000)
+vpermr 0000100800001010 0000100000001002 070d111d1e555e70 7ea1a5a7abadb0ba, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  1110a500701e1d70 0700a70010021008 (00000000)
+vpermr 0000100800001010 0000100000001002 070d111d1e555e70 7ea1a5a7abadb0ba, pcv[100d1b070f020505 0e201f1400130105] =>  0211007e07ada5a5 0dba0000ba00b0a5 (00000000)
+vpermr 0000100800001010 0000100000001002 070d111d1e555e70 7ea1a5a7abadb0ba, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  7ea5ab551eb0551d 0d1d5eb0a1ad7011 (00000000)
+vpermr 0000100800001010 0000100000001002 ced0deede5ecef00 00115e7eadbabec0, pcv[12021a0817141317 100d1b05070f0205] =>  00ba000000000000 02de005e00ceba5e (00000000)
+vpermr 0000100800001010 0000100000001002 ced0deede5ecef00 00115e7eadbabec0, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  de105e0000e5ed00 ce007e0010021008 (00000000)
+vpermr 0000100800001010 0000100000001002 ced0deede5ecef00 00115e7eadbabec0, pcv[100d1b070f020505 0e201f1400130105] =>  02de0000ceba5e5e d0c00000c000be5e (00000000)
+vpermr 0000100800001010 0000100000001002 ced0deede5ecef00 00115e7eadbabec0, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  005eadece5beeced d0edefbe11ba00de (00000000)
+vpermr 0000100800001010 0000100000001002 8899aabbccddeeff 0011223344556677, pcv[12021a0817141317 100d1b05070f0205] =>  005500ff00000000 02aa002200885522 (00000000)
+vpermr 0000100800001010 0000100000001002 8899aabbccddeeff 0011223344556677, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  aa102200ffccbbff 8800330010021008 (00000000)
+vpermr 0000100800001010 0000100000001002 8899aabbccddeeff 0011223344556677, pcv[100d1b070f020505 0e201f1400130105] =>  02aa000088552222 9977000077006622 (00000000)
+vpermr 0000100800001010 0000100000001002 8899aabbccddeeff 0011223344556677, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  002244ddcc66ddbb 99bbee661155ffaa (00000000)
+vpermr 0000100800001010 0000100000001002 0000100800001010 0000100000001002, pcv[12021a0817141317 100d1b05070f0205] =>  0000001000000000 0210001000000010 (00000000)
+vpermr 0000100800001010 0000100000001002 0000100800001010 0000100000001002, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  1010100010000810 0000000010021008 (00000000)
+vpermr 0000100800001010 0000100000001002 0000100800001010 0000100000001002, pcv[100d1b070f020505 0e201f1400130105] =>  0210000000001010 0002000002001010 (00000000)
+vpermr 0000100800001010 0000100000001002 0000100800001010 0000100000001002, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  0010000000100008 0008101000001010 (00000000)
+vpermr 0000100800001010 0000100000001002 00001c0800001c10 00001c0000001c02, pcv[12021a0817141317 100d1b05070f0205] =>  0000001000000000 021c001c0000001c (00000000)
+vpermr 0000100800001010 0000100000001002 00001c0800001c10 00001c0000001c02, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  1c101c0010000810 0000000010021008 (00000000)
+vpermr 0000100800001010 0000100000001002 00001c0800001c10 00001c0000001c02, pcv[100d1b070f020505 0e201f1400130105] =>  021c000000001c1c 0002000002001c1c (00000000)
+vpermr 0000100800001010 0000100000001002 00001c0800001c10 00001c0000001c02, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  001c0000001c0008 00081c1c0000101c (00000000)
+vpermr 0000100800001010 0000100000001002 00001f0800001f10 00001f0000001f02, pcv[12021a0817141317 100d1b05070f0205] =>  0000001000000000 021f001f0000001f (00000000)
+vpermr 0000100800001010 0000100000001002 00001f0800001f10 00001f0000001f02, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  1f101f0010000810 0000000010021008 (00000000)
+vpermr 0000100800001010 0000100000001002 00001f0800001f10 00001f0000001f02, pcv[100d1b070f020505 0e201f1400130105] =>  021f000000001f1f 0002000002001f1f (00000000)
+vpermr 0000100800001010 0000100000001002 00001f0800001f10 00001f0000001f02, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  001f0000001f0008 00081f1f0000101f (00000000)
+vpermr 00001c0800001c10 00001c0000001c02 0000000000000000 0000000000000000, pcv[12021a0817141317 100d1b05070f0205] =>  0000000000000000 0200000000000000 (00000000)
+vpermr 00001c0800001c10 00001c0000001c02 0000000000000000 0000000000000000, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  001c000000000000 0000000010021c08 (00000000)
+vpermr 00001c0800001c10 00001c0000001c02 0000000000000000 0000000000000000, pcv[100d1b070f020505 0e201f1400130105] =>  0200000000000000 0000000000000000 (00000000)
+vpermr 00001c0800001c10 00001c0000001c02 0000000000000000 0000000000000000, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  0000000000000000 0000000000000000 (00000000)
+vpermr 00001c0800001c10 00001c0000001c02 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa, pcv[12021a0817141317 100d1b05070f0205] =>  00aa00aa00000000 02aa00aaaaaaaaaa (00000000)
+vpermr 00001c0800001c10 00001c0000001c02 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  aa1caa00aaaaaaaa aa00aa0010021c08 (00000000)
+vpermr 00001c0800001c10 00001c0000001c02 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa, pcv[100d1b070f020505 0e201f1400130105] =>  02aa00aaaaaaaaaa aaaa0000aa00aaaa (00000000)
+vpermr 00001c0800001c10 00001c0000001c02 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa (00000000)
+vpermr 00001c0800001c10 00001c0000001c02 0102010201020102 08090a0b0c0d0e0f, pcv[12021a0817141317 100d1b05070f0205] =>  000d000200000000 0201000a08010d0a (00000000)
+vpermr 00001c0800001c10 00001c0000001c02 0102010201020102 08090a0b0c0d0e0f, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  011c0a0002010202 01000b0010021c08 (00000000)
+vpermr 00001c0800001c10 00001c0000001c02 0102010201020102 08090a0b0c0d0e0f, pcv[100d1b070f020505 0e201f1400130105] =>  02010008010d0a0a 020f00000f000e0a (00000000)
+vpermr 00001c0800001c10 00001c0000001c02 0102010201020102 08090a0b0c0d0e0f, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  080a0c02010e0202 0202010e090d0201 (00000000)
+vpermr 00001c0800001c10 00001c0000001c02 070d111d1e555e70 7ea1a5a7abadb0ba, pcv[12021a0817141317 100d1b05070f0205] =>  00ad007000000000 021100a57e07ada5 (00000000)
+vpermr 00001c0800001c10 00001c0000001c02 070d111d1e555e70 7ea1a5a7abadb0ba, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  111ca500701e1d70 0700a70010021c08 (00000000)
+vpermr 00001c0800001c10 00001c0000001c02 070d111d1e555e70 7ea1a5a7abadb0ba, pcv[100d1b070f020505 0e201f1400130105] =>  0211007e07ada5a5 0dba0000ba00b0a5 (00000000)
+vpermr 00001c0800001c10 00001c0000001c02 070d111d1e555e70 7ea1a5a7abadb0ba, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  7ea5ab551eb0551d 0d1d5eb0a1ad7011 (00000000)
+vpermr 00001c0800001c10 00001c0000001c02 ced0deede5ecef00 00115e7eadbabec0, pcv[12021a0817141317 100d1b05070f0205] =>  00ba000000000000 02de005e00ceba5e (00000000)
+vpermr 00001c0800001c10 00001c0000001c02 ced0deede5ecef00 00115e7eadbabec0, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  de1c5e0000e5ed00 ce007e0010021c08 (00000000)
+vpermr 00001c0800001c10 00001c0000001c02 ced0deede5ecef00 00115e7eadbabec0, pcv[100d1b070f020505 0e201f1400130105] =>  02de0000ceba5e5e d0c00000c000be5e (00000000)
+vpermr 00001c0800001c10 00001c0000001c02 ced0deede5ecef00 00115e7eadbabec0, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  005eadece5beeced d0edefbe11ba00de (00000000)
+vpermr 00001c0800001c10 00001c0000001c02 8899aabbccddeeff 0011223344556677, pcv[12021a0817141317 100d1b05070f0205] =>  005500ff00000000 02aa002200885522 (00000000)
+vpermr 00001c0800001c10 00001c0000001c02 8899aabbccddeeff 0011223344556677, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  aa1c2200ffccbbff 8800330010021c08 (00000000)
+vpermr 00001c0800001c10 00001c0000001c02 8899aabbccddeeff 0011223344556677, pcv[100d1b070f020505 0e201f1400130105] =>  02aa000088552222 9977000077006622 (00000000)
+vpermr 00001c0800001c10 00001c0000001c02 8899aabbccddeeff 0011223344556677, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  002244ddcc66ddbb 99bbee661155ffaa (00000000)
+vpermr 00001c0800001c10 00001c0000001c02 0000100800001010 0000100000001002, pcv[12021a0817141317 100d1b05070f0205] =>  0000001000000000 0210001000000010 (00000000)
+vpermr 00001c0800001c10 00001c0000001c02 0000100800001010 0000100000001002, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  101c100010000810 0000000010021c08 (00000000)
+vpermr 00001c0800001c10 00001c0000001c02 0000100800001010 0000100000001002, pcv[100d1b070f020505 0e201f1400130105] =>  0210000000001010 0002000002001010 (00000000)
+vpermr 00001c0800001c10 00001c0000001c02 0000100800001010 0000100000001002, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  0010000000100008 0008101000001010 (00000000)
+vpermr 00001c0800001c10 00001c0000001c02 00001c0800001c10 00001c0000001c02, pcv[12021a0817141317 100d1b05070f0205] =>  0000001000000000 021c001c0000001c (00000000)
+vpermr 00001c0800001c10 00001c0000001c02 00001c0800001c10 00001c0000001c02, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  1c1c1c0010000810 0000000010021c08 (00000000)
+vpermr 00001c0800001c10 00001c0000001c02 00001c0800001c10 00001c0000001c02, pcv[100d1b070f020505 0e201f1400130105] =>  021c000000001c1c 0002000002001c1c (00000000)
+vpermr 00001c0800001c10 00001c0000001c02 00001c0800001c10 00001c0000001c02, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  001c0000001c0008 00081c1c0000101c (00000000)
+vpermr 00001c0800001c10 00001c0000001c02 00001f0800001f10 00001f0000001f02, pcv[12021a0817141317 100d1b05070f0205] =>  0000001000000000 021f001f0000001f (00000000)
+vpermr 00001c0800001c10 00001c0000001c02 00001f0800001f10 00001f0000001f02, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  1f1c1f0010000810 0000000010021c08 (00000000)
+vpermr 00001c0800001c10 00001c0000001c02 00001f0800001f10 00001f0000001f02, pcv[100d1b070f020505 0e201f1400130105] =>  021f000000001f1f 0002000002001f1f (00000000)
+vpermr 00001c0800001c10 00001c0000001c02 00001f0800001f10 00001f0000001f02, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  001f0000001f0008 00081f1f0000101f (00000000)
+vpermr 00001f0800001f10 00001f0000001f02 0000000000000000 0000000000000000, pcv[12021a0817141317 100d1b05070f0205] =>  0000000000000000 0200000000000000 (00000000)
+vpermr 00001f0800001f10 00001f0000001f02 0000000000000000 0000000000000000, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  001f000000000000 0000000010021f08 (00000000)
+vpermr 00001f0800001f10 00001f0000001f02 0000000000000000 0000000000000000, pcv[100d1b070f020505 0e201f1400130105] =>  0200000000000000 0000000000000000 (00000000)
+vpermr 00001f0800001f10 00001f0000001f02 0000000000000000 0000000000000000, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  0000000000000000 0000000000000000 (00000000)
+vpermr 00001f0800001f10 00001f0000001f02 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa, pcv[12021a0817141317 100d1b05070f0205] =>  00aa00aa00000000 02aa00aaaaaaaaaa (00000000)
+vpermr 00001f0800001f10 00001f0000001f02 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  aa1faa00aaaaaaaa aa00aa0010021f08 (00000000)
+vpermr 00001f0800001f10 00001f0000001f02 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa, pcv[100d1b070f020505 0e201f1400130105] =>  02aa00aaaaaaaaaa aaaa0000aa00aaaa (00000000)
+vpermr 00001f0800001f10 00001f0000001f02 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa (00000000)
+vpermr 00001f0800001f10 00001f0000001f02 0102010201020102 08090a0b0c0d0e0f, pcv[12021a0817141317 100d1b05070f0205] =>  000d000200000000 0201000a08010d0a (00000000)
+vpermr 00001f0800001f10 00001f0000001f02 0102010201020102 08090a0b0c0d0e0f, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  011f0a0002010202 01000b0010021f08 (00000000)
+vpermr 00001f0800001f10 00001f0000001f02 0102010201020102 08090a0b0c0d0e0f, pcv[100d1b070f020505 0e201f1400130105] =>  02010008010d0a0a 020f00000f000e0a (00000000)
+vpermr 00001f0800001f10 00001f0000001f02 0102010201020102 08090a0b0c0d0e0f, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  080a0c02010e0202 0202010e090d0201 (00000000)
+vpermr 00001f0800001f10 00001f0000001f02 070d111d1e555e70 7ea1a5a7abadb0ba, pcv[12021a0817141317 100d1b05070f0205] =>  00ad007000000000 021100a57e07ada5 (00000000)
+vpermr 00001f0800001f10 00001f0000001f02 070d111d1e555e70 7ea1a5a7abadb0ba, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  111fa500701e1d70 0700a70010021f08 (00000000)
+vpermr 00001f0800001f10 00001f0000001f02 070d111d1e555e70 7ea1a5a7abadb0ba, pcv[100d1b070f020505 0e201f1400130105] =>  0211007e07ada5a5 0dba0000ba00b0a5 (00000000)
+vpermr 00001f0800001f10 00001f0000001f02 070d111d1e555e70 7ea1a5a7abadb0ba, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  7ea5ab551eb0551d 0d1d5eb0a1ad7011 (00000000)
+vpermr 00001f0800001f10 00001f0000001f02 ced0deede5ecef00 00115e7eadbabec0, pcv[12021a0817141317 100d1b05070f0205] =>  00ba000000000000 02de005e00ceba5e (00000000)
+vpermr 00001f0800001f10 00001f0000001f02 ced0deede5ecef00 00115e7eadbabec0, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  de1f5e0000e5ed00 ce007e0010021f08 (00000000)
+vpermr 00001f0800001f10 00001f0000001f02 ced0deede5ecef00 00115e7eadbabec0, pcv[100d1b070f020505 0e201f1400130105] =>  02de0000ceba5e5e d0c00000c000be5e (00000000)
+vpermr 00001f0800001f10 00001f0000001f02 ced0deede5ecef00 00115e7eadbabec0, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  005eadece5beeced d0edefbe11ba00de (00000000)
+vpermr 00001f0800001f10 00001f0000001f02 8899aabbccddeeff 0011223344556677, pcv[12021a0817141317 100d1b05070f0205] =>  005500ff00000000 02aa002200885522 (00000000)
+vpermr 00001f0800001f10 00001f0000001f02 8899aabbccddeeff 0011223344556677, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  aa1f2200ffccbbff 8800330010021f08 (00000000)
+vpermr 00001f0800001f10 00001f0000001f02 8899aabbccddeeff 0011223344556677, pcv[100d1b070f020505 0e201f1400130105] =>  02aa000088552222 9977000077006622 (00000000)
+vpermr 00001f0800001f10 00001f0000001f02 8899aabbccddeeff 0011223344556677, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  002244ddcc66ddbb 99bbee661155ffaa (00000000)
+vpermr 00001f0800001f10 00001f0000001f02 0000100800001010 0000100000001002, pcv[12021a0817141317 100d1b05070f0205] =>  0000001000000000 0210001000000010 (00000000)
+vpermr 00001f0800001f10 00001f0000001f02 0000100800001010 0000100000001002, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  101f100010000810 0000000010021f08 (00000000)
+vpermr 00001f0800001f10 00001f0000001f02 0000100800001010 0000100000001002, pcv[100d1b070f020505 0e201f1400130105] =>  0210000000001010 0002000002001010 (00000000)
+vpermr 00001f0800001f10 00001f0000001f02 0000100800001010 0000100000001002, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  0010000000100008 0008101000001010 (00000000)
+vpermr 00001f0800001f10 00001f0000001f02 00001c0800001c10 00001c0000001c02, pcv[12021a0817141317 100d1b05070f0205] =>  0000001000000000 021c001c0000001c (00000000)
+vpermr 00001f0800001f10 00001f0000001f02 00001c0800001c10 00001c0000001c02, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  1c1f1c0010000810 0000000010021f08 (00000000)
+vpermr 00001f0800001f10 00001f0000001f02 00001c0800001c10 00001c0000001c02, pcv[100d1b070f020505 0e201f1400130105] =>  021c000000001c1c 0002000002001c1c (00000000)
+vpermr 00001f0800001f10 00001f0000001f02 00001c0800001c10 00001c0000001c02, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  001c0000001c0008 00081c1c0000101c (00000000)
+vpermr 00001f0800001f10 00001f0000001f02 00001f0800001f10 00001f0000001f02, pcv[12021a0817141317 100d1b05070f0205] =>  0000001000000000 021f001f0000001f (00000000)
+vpermr 00001f0800001f10 00001f0000001f02 00001f0800001f10 00001f0000001f02, pcv[0d1d0517080b0c08 0f12041a18101d1c] =>  1f1f1f0010000810 0000000010021f08 (00000000)
+vpermr 00001f0800001f10 00001f0000001f02 00001f0800001f10 00001f0000001f02, pcv[100d1b070f020505 0e201f1400130105] =>  021f000000001f1f 0002000002001f1f (00000000)
+vpermr 00001f0800001f10 00001f0000001f02 00001f0800001f10 00001f0000001f02, pcv[0705030a0b01ea0c 0e0c09010602080d] =>  001f0000001f0008 00081f1f0000101f (00000000)
+
+All done. Tested 11 different instructions
+ppc vector inserts:
+Test instruction group [ppc vector inserts]
+vinsertb    0102010201020102 0102030405060708 [0] (into zeros) => 0200000000000000 0000000000000000
+vinsertb    0102010201020102 0102030405060708 [0] (into  ones) => 02ffffffffffffff ffffffffffffffff
+vinsertb    0102010201020102 0102030405060708 [1] (into zeros) => 0002000000000000 0000000000000000
+vinsertb    0102010201020102 0102030405060708 [1] (into  ones) => ff02ffffffffffff ffffffffffffffff
+vinsertb    0102010201020102 0102030405060708 [2] (into zeros) => 0000020000000000 0000000000000000
+vinsertb    0102010201020102 0102030405060708 [2] (into  ones) => ffff02ffffffffff ffffffffffffffff
+vinsertb    0102010201020102 0102030405060708 [3] (into zeros) => 0000000200000000 0000000000000000
+vinsertb    0102010201020102 0102030405060708 [3] (into  ones) => ffffff02ffffffff ffffffffffffffff
+vinsertb    0102010201020102 0102030405060708 [4] (into zeros) => 0000000002000000 0000000000000000
+vinsertb    0102010201020102 0102030405060708 [4] (into  ones) => ffffffff02ffffff ffffffffffffffff
+vinsertb    0102010201020102 0102030405060708 [5] (into zeros) => 0000000000020000 0000000000000000
+vinsertb    0102010201020102 0102030405060708 [5] (into  ones) => ffffffffff02ffff ffffffffffffffff
+vinsertb    0102010201020102 0102030405060708 [6] (into zeros) => 0000000000000200 0000000000000000
+vinsertb    0102010201020102 0102030405060708 [6] (into  ones) => ffffffffffff02ff ffffffffffffffff
+vinsertb    0102010201020102 0102030405060708 [7] (into zeros) => 0000000000000002 0000000000000000
+vinsertb    0102010201020102 0102030405060708 [7] (into  ones) => ffffffffffffff02 ffffffffffffffff
+vinsertb    0102010201020102 0102030405060708 [8] (into zeros) => 0000000000000000 0200000000000000
+vinsertb    0102010201020102 0102030405060708 [8] (into  ones) => ffffffffffffffff 02ffffffffffffff
+vinsertb    0102010201020102 0102030405060708 [9] (into zeros) => 0000000000000000 0002000000000000
+vinsertb    0102010201020102 0102030405060708 [9] (into  ones) => ffffffffffffffff ff02ffffffffffff
+vinsertb    0102010201020102 0102030405060708 [10] (into zeros) => 0000000000000000 0000020000000000
+vinsertb    0102010201020102 0102030405060708 [10] (into  ones) => ffffffffffffffff ffff02ffffffffff
+vinsertb    0102010201020102 0102030405060708 [11] (into zeros) => 0000000000000000 0000000200000000
+vinsertb    0102010201020102 0102030405060708 [11] (into  ones) => ffffffffffffffff ffffff02ffffffff
+vinsertb    0102010201020102 0102030405060708 [12] (into zeros) => 0000000000000000 0000000002000000
+vinsertb    0102010201020102 0102030405060708 [12] (into  ones) => ffffffffffffffff ffffffff02ffffff
+vinsertb    0102010201020102 0102030405060708 [13] (into zeros) => 0000000000000000 0000000000020000
+vinsertb    0102010201020102 0102030405060708 [13] (into  ones) => ffffffffffffffff ffffffffff02ffff
+vinsertb    0102010201020102 0102030405060708 [14] (into zeros) => 0000000000000000 0000000000000200
+vinsertb    0102010201020102 0102030405060708 [14] (into  ones) => ffffffffffffffff ffffffffffff02ff
+vinsertb    0102010201020102 0102030405060708 [15] (into zeros) => 0000000000000000 0000000000000002
+vinsertb    0102010201020102 0102030405060708 [15] (into  ones) => ffffffffffffffff ffffffffffffff02
+vinsertb    5555555555555555 5555555555555555 [0] (into zeros) => 5500000000000000 0000000000000000
+vinsertb    5555555555555555 5555555555555555 [0] (into  ones) => 55ffffffffffffff ffffffffffffffff
+vinsertb    5555555555555555 5555555555555555 [1] (into zeros) => 0055000000000000 0000000000000000
+vinsertb    5555555555555555 5555555555555555 [1] (into  ones) => ff55ffffffffffff ffffffffffffffff
+vinsertb    5555555555555555 5555555555555555 [2] (into zeros) => 0000550000000000 0000000000000000
+vinsertb    5555555555555555 5555555555555555 [2] (into  ones) => ffff55ffffffffff ffffffffffffffff
+vinsertb    5555555555555555 5555555555555555 [3] (into zeros) => 0000005500000000 0000000000000000
+vinsertb    5555555555555555 5555555555555555 [3] (into  ones) => ffffff55ffffffff ffffffffffffffff
+vinsertb    5555555555555555 5555555555555555 [4] (into zeros) => 0000000055000000 0000000000000000
+vinsertb    5555555555555555 5555555555555555 [4] (into  ones) => ffffffff55ffffff ffffffffffffffff
+vinsertb    5555555555555555 5555555555555555 [5] (into zeros) => 0000000000550000 0000000000000000
+vinsertb    5555555555555555 5555555555555555 [5] (into  ones) => ffffffffff55ffff ffffffffffffffff
+vinsertb    5555555555555555 5555555555555555 [6] (into zeros) => 0000000000005500 0000000000000000
+vinsertb    5555555555555555 5555555555555555 [6] (into  ones) => ffffffffffff55ff ffffffffffffffff
+vinsertb    5555555555555555 5555555555555555 [7] (into zeros) => 0000000000000055 0000000000000000
+vinsertb    5555555555555555 5555555555555555 [7] (into  ones) => ffffffffffffff55 ffffffffffffffff
+vinsertb    5555555555555555 5555555555555555 [8] (into zeros) => 0000000000000000 5500000000000000
+vinsertb    5555555555555555 5555555555555555 [8] (into  ones) => ffffffffffffffff 55ffffffffffffff
+vinsertb    5555555555555555 5555555555555555 [9] (into zeros) => 0000000000000000 0055000000000000
+vinsertb    5555555555555555 5555555555555555 [9] (into  ones) => ffffffffffffffff ff55ffffffffffff
+vinsertb    5555555555555555 5555555555555555 [10] (into zeros) => 0000000000000000 0000550000000000
+vinsertb    5555555555555555 5555555555555555 [10] (into  ones) => ffffffffffffffff ffff55ffffffffff
+vinsertb    5555555555555555 5555555555555555 [11] (into zeros) => 0000000000000000 0000005500000000
+vinsertb    5555555555555555 5555555555555555 [11] (into  ones) => ffffffffffffffff ffffff55ffffffff
+vinsertb    5555555555555555 5555555555555555 [12] (into zeros) => 0000000000000000 0000000055000000
+vinsertb    5555555555555555 5555555555555555 [12] (into  ones) => ffffffffffffffff ffffffff55ffffff
+vinsertb    5555555555555555 5555555555555555 [13] (into zeros) => 0000000000000000 0000000000550000
+vinsertb    5555555555555555 5555555555555555 [13] (into  ones) => ffffffffffffffff ffffffffff55ffff
+vinsertb    5555555555555555 5555555555555555 [14] (into zeros) => 0000000000000000 0000000000005500
+vinsertb    5555555555555555 5555555555555555 [14] (into  ones) => ffffffffffffffff ffffffffffff55ff
+vinsertb    5555555555555555 5555555555555555 [15] (into zeros) => 0000000000000000 0000000000000055
+vinsertb    5555555555555555 5555555555555555 [15] (into  ones) => ffffffffffffffff ffffffffffffff55
+
+vinserth    0102010201020102 0102030405060708 [0] (into zeros) => 0102000000000000 0000000000000000
+vinserth    0102010201020102 0102030405060708 [0] (into  ones) => 0102ffffffffffff ffffffffffffffff
+vinserth    0102010201020102 0102030405060708 [1] (into zeros) => 0001020000000000 0000000000000000
+vinserth    0102010201020102 0102030405060708 [1] (into  ones) => ff0102ffffffffff ffffffffffffffff
+vinserth    0102010201020102 0102030405060708 [2] (into zeros) => 0000010200000000 0000000000000000
+vinserth    0102010201020102 0102030405060708 [2] (into  ones) => ffff0102ffffffff ffffffffffffffff
+vinserth    0102010201020102 0102030405060708 [3] (into zeros) => 0000000102000000 0000000000000000
+vinserth    0102010201020102 0102030405060708 [3] (into  ones) => ffffff0102ffffff ffffffffffffffff
+vinserth    0102010201020102 0102030405060708 [4] (into zeros) => 0000000001020000 0000000000000000
+vinserth    0102010201020102 0102030405060708 [4] (into  ones) => ffffffff0102ffff ffffffffffffffff
+vinserth    0102010201020102 0102030405060708 [5] (into zeros) => 0000000000010200 0000000000000000
+vinserth    0102010201020102 0102030405060708 [5] (into  ones) => ffffffffff0102ff ffffffffffffffff
+vinserth    0102010201020102 0102030405060708 [6] (into zeros) => 0000000000000102 0000000000000000
+vinserth    0102010201020102 0102030405060708 [6] (into  ones) => ffffffffffff0102 ffffffffffffffff
+vinserth    0102010201020102 0102030405060708 [7] (into zeros) => 0000000000000001 0200000000000000
+vinserth    0102010201020102 0102030405060708 [7] (into  ones) => ffffffffffffff01 02ffffffffffffff
+vinserth    0102010201020102 0102030405060708 [8] (into zeros) => 0000000000000000 0102000000000000
+vinserth    0102010201020102 0102030405060708 [8] (into  ones) => ffffffffffffffff 0102ffffffffffff
+vinserth    0102010201020102 0102030405060708 [9] (into zeros) => 0000000000000000 0001020000000000
+vinserth    0102010201020102 0102030405060708 [9] (into  ones) => ffffffffffffffff ff0102ffffffffff
+vinserth    0102010201020102 0102030405060708 [10] (into zeros) => 0000000000000000 0000010200000000
+vinserth    0102010201020102 0102030405060708 [10] (into  ones) => ffffffffffffffff ffff0102ffffffff
+vinserth    0102010201020102 0102030405060708 [11] (into zeros) => 0000000000000000 0000000102000000
+vinserth    0102010201020102 0102030405060708 [11] (into  ones) => ffffffffffffffff ffffff0102ffffff
+vinserth    0102010201020102 0102030405060708 [12] (into zeros) => 0000000000000000 0000000001020000
+vinserth    0102010201020102 0102030405060708 [12] (into  ones) => ffffffffffffffff ffffffff0102ffff
+vinserth    0102010201020102 0102030405060708 [13] (into zeros) => 0000000000000000 0000000000010200
+vinserth    0102010201020102 0102030405060708 [13] (into  ones) => ffffffffffffffff ffffffffff0102ff
+vinserth    0102010201020102 0102030405060708 [14] (into zeros) => 0000000000000000 0000000000000102
+vinserth    0102010201020102 0102030405060708 [14] (into  ones) => ffffffffffffffff ffffffffffff0102
+vinserth    5555555555555555 5555555555555555 [0] (into zeros) => 5555000000000000 0000000000000000
+vinserth    5555555555555555 5555555555555555 [0] (into  ones) => 5555ffffffffffff ffffffffffffffff
+vinserth    5555555555555555 5555555555555555 [1] (into zeros) => 0055550000000000 0000000000000000
+vinserth    5555555555555555 5555555555555555 [1] (into  ones) => ff5555ffffffffff ffffffffffffffff
+vinserth    5555555555555555 5555555555555555 [2] (into zeros) => 0000555500000000 0000000000000000
+vinserth    5555555555555555 5555555555555555 [2] (into  ones) => ffff5555ffffffff ffffffffffffffff
+vinserth    5555555555555555 5555555555555555 [3] (into zeros) => 0000005555000000 0000000000000000
+vinserth    5555555555555555 5555555555555555 [3] (into  ones) => ffffff5555ffffff ffffffffffffffff
+vinserth    5555555555555555 5555555555555555 [4] (into zeros) => 0000000055550000 0000000000000000
+vinserth    5555555555555555 5555555555555555 [4] (into  ones) => ffffffff5555ffff ffffffffffffffff
+vinserth    5555555555555555 5555555555555555 [5] (into zeros) => 0000000000555500 0000000000000000
+vinserth    5555555555555555 5555555555555555 [5] (into  ones) => ffffffffff5555ff ffffffffffffffff
+vinserth    5555555555555555 5555555555555555 [6] (into zeros) => 0000000000005555 0000000000000000
+vinserth    5555555555555555 5555555555555555 [6] (into  ones) => ffffffffffff5555 ffffffffffffffff
+vinserth    5555555555555555 5555555555555555 [7] (into zeros) => 0000000000000055 5500000000000000
+vinserth    5555555555555555 5555555555555555 [7] (into  ones) => ffffffffffffff55 55ffffffffffffff
+vinserth    5555555555555555 5555555555555555 [8] (into zeros) => 0000000000000000 5555000000000000
+vinserth    5555555555555555 5555555555555555 [8] (into  ones) => ffffffffffffffff 5555ffffffffffff
+vinserth    5555555555555555 5555555555555555 [9] (into zeros) => 0000000000000000 0055550000000000
+vinserth    5555555555555555 5555555555555555 [9] (into  ones) => ffffffffffffffff ff5555ffffffffff
+vinserth    5555555555555555 5555555555555555 [10] (into zeros) => 0000000000000000 0000555500000000
+vinserth    5555555555555555 5555555555555555 [10] (into  ones) => ffffffffffffffff ffff5555ffffffff
+vinserth    5555555555555555 5555555555555555 [11] (into zeros) => 0000000000000000 0000005555000000
+vinserth    5555555555555555 5555555555555555 [11] (into  ones) => ffffffffffffffff ffffff5555ffffff
+vinserth    5555555555555555 5555555555555555 [12] (into zeros) => 0000000000000000 0000000055550000
+vinserth    5555555555555555 5555555555555555 [12] (into  ones) => ffffffffffffffff ffffffff5555ffff
+vinserth    5555555555555555 5555555555555555 [13] (into zeros) => 0000000000000000 0000000000555500
+vinserth    5555555555555555 5555555555555555 [13] (into  ones) => ffffffffffffffff ffffffffff5555ff
+vinserth    5555555555555555 5555555555555555 [14] (into zeros) => 0000000000000000 0000000000005555
+vinserth    5555555555555555 5555555555555555 [14] (into  ones) => ffffffffffffffff ffffffffffff5555
+
+vinsertw    0102010201020102 0102030405060708 [0] (into zeros) => 0102010200000000 0000000000000000
+vinsertw    0102010201020102 0102030405060708 [0] (into  ones) => 01020102ffffffff ffffffffffffffff
+vinsertw    0102010201020102 0102030405060708 [1] (into zeros) => 0001020102000000 0000000000000000
+vinsertw    0102010201020102 0102030405060708 [1] (into  ones) => ff01020102ffffff ffffffffffffffff
+vinsertw    0102010201020102 0102030405060708 [2] (into zeros) => 0000010201020000 0000000000000000
+vinsertw    0102010201020102 0102030405060708 [2] (into  ones) => ffff01020102ffff ffffffffffffffff
+vinsertw    0102010201020102 0102030405060708 [3] (into zeros) => 0000000102010200 0000000000000000
+vinsertw    0102010201020102 0102030405060708 [3] (into  ones) => ffffff01020102ff ffffffffffffffff
+vinsertw    0102010201020102 0102030405060708 [4] (into zeros) => 0000000001020102 0000000000000000
+vinsertw    0102010201020102 0102030405060708 [4] (into  ones) => ffffffff01020102 ffffffffffffffff
+vinsertw    0102010201020102 0102030405060708 [5] (into zeros) => 0000000000010201 0200000000000000
+vinsertw    0102010201020102 0102030405060708 [5] (into  ones) => ffffffffff010201 02ffffffffffffff
+vinsertw    0102010201020102 0102030405060708 [6] (into zeros) => 0000000000000102 0102000000000000
+vinsertw    0102010201020102 0102030405060708 [6] (into  ones) => ffffffffffff0102 0102ffffffffffff
+vinsertw    0102010201020102 0102030405060708 [7] (into zeros) => 0000000000000001 0201020000000000
+vinsertw    0102010201020102 0102030405060708 [7] (into  ones) => ffffffffffffff01 020102ffffffffff
+vinsertw    0102010201020102 0102030405060708 [8] (into zeros) => 0000000000000000 0102010200000000
+vinsertw    0102010201020102 0102030405060708 [8] (into  ones) => ffffffffffffffff 01020102ffffffff
+vinsertw    0102010201020102 0102030405060708 [9] (into zeros) => 0000000000000000 0001020102000000
+vinsertw    0102010201020102 0102030405060708 [9] (into  ones) => ffffffffffffffff ff01020102ffffff
+vinsertw    0102010201020102 0102030405060708 [10] (into zeros) => 0000000000000000 0000010201020000
+vinsertw    0102010201020102 0102030405060708 [10] (into  ones) => ffffffffffffffff ffff01020102ffff
+vinsertw    0102010201020102 0102030405060708 [11] (into zeros) => 0000000000000000 0000000102010200
+vinsertw    0102010201020102 0102030405060708 [11] (into  ones) => ffffffffffffffff ffffff01020102ff
+vinsertw    0102010201020102 0102030405060708 [12] (into zeros) => 0000000000000000 0000000001020102
+vinsertw    0102010201020102 0102030405060708 [12] (into  ones) => ffffffffffffffff ffffffff01020102
+vinsertw    5555555555555555 5555555555555555 [0] (into zeros) => 5555555500000000 0000000000000000
+vinsertw    5555555555555555 5555555555555555 [0] (into  ones) => 55555555ffffffff ffffffffffffffff
+vinsertw    5555555555555555 5555555555555555 [1] (into zeros) => 0055555555000000 0000000000000000
+vinsertw    5555555555555555 5555555555555555 [1] (into  ones) => ff55555555ffffff ffffffffffffffff
+vinsertw    5555555555555555 5555555555555555 [2] (into zeros) => 0000555555550000 0000000000000000
+vinsertw    5555555555555555 5555555555555555 [2] (into  ones) => ffff55555555ffff ffffffffffffffff
+vinsertw    5555555555555555 5555555555555555 [3] (into zeros) => 0000005555555500 0000000000000000
+vinsertw    5555555555555555 5555555555555555 [3] (into  ones) => ffffff55555555ff ffffffffffffffff
+vinsertw    5555555555555555 5555555555555555 [4] (into zeros) => 0000000055555555 0000000000000000
+vinsertw    5555555555555555 5555555555555555 [4] (into  ones) => ffffffff55555555 ffffffffffffffff
+vinsertw    5555555555555555 5555555555555555 [5] (into zeros) => 0000000000555555 5500000000000000
+vinsertw    5555555555555555 5555555555555555 [5] (into  ones) => ffffffffff555555 55ffffffffffffff
+vinsertw    5555555555555555 5555555555555555 [6] (into zeros) => 0000000000005555 5555000000000000
+vinsertw    5555555555555555 5555555555555555 [6] (into  ones) => ffffffffffff5555 5555ffffffffffff
+vinsertw    5555555555555555 5555555555555555 [7] (into zeros) => 0000000000000055 5555550000000000
+vinsertw    5555555555555555 5555555555555555 [7] (into  ones) => ffffffffffffff55 555555ffffffffff
+vinsertw    5555555555555555 5555555555555555 [8] (into zeros) => 0000000000000000 5555555500000000
+vinsertw    5555555555555555 5555555555555555 [8] (into  ones) => ffffffffffffffff 55555555ffffffff
+vinsertw    5555555555555555 5555555555555555 [9] (into zeros) => 0000000000000000 0055555555000000
+vinsertw    5555555555555555 5555555555555555 [9] (into  ones) => ffffffffffffffff ff55555555ffffff
+vinsertw    5555555555555555 5555555555555555 [10] (into zeros) => 0000000000000000 0000555555550000
+vinsertw    5555555555555555 5555555555555555 [10] (into  ones) => ffffffffffffffff ffff55555555ffff
+vinsertw    5555555555555555 5555555555555555 [11] (into zeros) => 0000000000000000 0000005555555500
+vinsertw    5555555555555555 5555555555555555 [11] (into  ones) => ffffffffffffffff ffffff55555555ff
+vinsertw    5555555555555555 5555555555555555 [12] (into zeros) => 0000000000000000 0000000055555555
+vinsertw    5555555555555555 5555555555555555 [12] (into  ones) => ffffffffffffffff ffffffff55555555
+
+vinsertd    0102010201020102 0102030405060708 [0] (into zeros) => 0102010201020102 0000000000000000
+vinsertd    0102010201020102 0102030405060708 [0] (into  ones) => 0102010201020102 ffffffffffffffff
+vinsertd    0102010201020102 0102030405060708 [1] (into zeros) => 0001020102010201 0200000000000000
+vinsertd    0102010201020102 0102030405060708 [1] (into  ones) => ff01020102010201 02ffffffffffffff
+vinsertd    0102010201020102 0102030405060708 [2] (into zeros) => 0000010201020102 0102000000000000
+vinsertd    0102010201020102 0102030405060708 [2] (into  ones) => ffff010201020102 0102ffffffffffff
+vinsertd    0102010201020102 0102030405060708 [3] (into zeros) => 0000000102010201 0201020000000000
+vinsertd    0102010201020102 0102030405060708 [3] (into  ones) => ffffff0102010201 020102ffffffffff
+vinsertd    0102010201020102 0102030405060708 [4] (into zeros) => 0000000001020102 0102010200000000
+vinsertd    0102010201020102 0102030405060708 [4] (into  ones) => ffffffff01020102 01020102ffffffff
+vinsertd    0102010201020102 0102030405060708 [5] (into zeros) => 0000000000010201 0201020102000000
+vinsertd    0102010201020102 0102030405060708 [5] (into  ones) => ffffffffff010201 0201020102ffffff
+vinsertd    0102010201020102 0102030405060708 [6] (into zeros) => 0000000000000102 0102010201020000
+vinsertd    0102010201020102 0102030405060708 [6] (into  ones) => ffffffffffff0102 010201020102ffff
+vinsertd    0102010201020102 0102030405060708 [7] (into zeros) => 0000000000000001 0201020102010200
+vinsertd    0102010201020102 0102030405060708 [7] (into  ones) => ffffffffffffff01 02010201020102ff
+vinsertd    0102010201020102 0102030405060708 [8] (into zeros) => 0000000000000000 0102010201020102
+vinsertd    0102010201020102 0102030405060708 [8] (into  ones) => ffffffffffffffff 0102010201020102
+vinsertd    5555555555555555 5555555555555555 [0] (into zeros) => 5555555555555555 0000000000000000
+vinsertd    5555555555555555 5555555555555555 [0] (into  ones) => 5555555555555555 ffffffffffffffff
+vinsertd    5555555555555555 5555555555555555 [1] (into zeros) => 0055555555555555 5500000000000000
+vinsertd    5555555555555555 5555555555555555 [1] (into  ones) => ff55555555555555 55ffffffffffffff
+vinsertd    5555555555555555 5555555555555555 [2] (into zeros) => 0000555555555555 5555000000000000
+vinsertd    5555555555555555 5555555555555555 [2] (into  ones) => ffff555555555555 5555ffffffffffff
+vinsertd    5555555555555555 5555555555555555 [3] (into zeros) => 0000005555555555 5555550000000000
+vinsertd    5555555555555555 5555555555555555 [3] (into  ones) => ffffff5555555555 555555ffffffffff
+vinsertd    5555555555555555 5555555555555555 [4] (into zeros) => 0000000055555555 5555555500000000
+vinsertd    5555555555555555 5555555555555555 [4] (into  ones) => ffffffff55555555 55555555ffffffff
+vinsertd    5555555555555555 5555555555555555 [5] (into zeros) => 0000000000555555 5555555555000000
+vinsertd    5555555555555555 5555555555555555 [5] (into  ones) => ffffffffff555555 5555555555ffffff
+vinsertd    5555555555555555 5555555555555555 [6] (into zeros) => 0000000000005555 5555555555550000
+vinsertd    5555555555555555 5555555555555555 [6] (into  ones) => ffffffffffff5555 555555555555ffff
+vinsertd    5555555555555555 5555555555555555 [7] (into zeros) => 0000000000000055 5555555555555500
+vinsertd    5555555555555555 5555555555555555 [7] (into  ones) => ffffffffffffff55 55555555555555ff
+vinsertd    5555555555555555 5555555555555555 [8] (into zeros) => 0000000000000000 5555555555555555
+vinsertd    5555555555555555 5555555555555555 [8] (into  ones) => ffffffffffffffff 5555555555555555
+
+vextractub  0102010201020102 0102030405060708 [0] (into zeros) => 0000000000000001 0000000000000000
+vextractub  0102010201020102 0102030405060708 [0] (into  ones) => 0000000000000001 0000000000000000
+vextractub  0102010201020102 0102030405060708 [1] (into zeros) => 0000000000000002 0000000000000000
+vextractub  0102010201020102 0102030405060708 [1] (into  ones) => 0000000000000002 0000000000000000
+vextractub  0102010201020102 0102030405060708 [2] (into zeros) => 0000000000000001 0000000000000000
+vextractub  0102010201020102 0102030405060708 [2] (into  ones) => 0000000000000001 0000000000000000
+vextractub  0102010201020102 0102030405060708 [3] (into zeros) => 0000000000000002 0000000000000000
+vextractub  0102010201020102 0102030405060708 [3] (into  ones) => 0000000000000002 0000000000000000
+vextractub  0102010201020102 0102030405060708 [4] (into zeros) => 0000000000000001 0000000000000000
+vextractub  0102010201020102 0102030405060708 [4] (into  ones) => 0000000000000001 0000000000000000
+vextractub  0102010201020102 0102030405060708 [5] (into zeros) => 0000000000000002 0000000000000000
+vextractub  0102010201020102 0102030405060708 [5] (into  ones) => 0000000000000002 0000000000000000
+vextractub  0102010201020102 0102030405060708 [6] (into zeros) => 0000000000000001 0000000000000000
+vextractub  0102010201020102 0102030405060708 [6] (into  ones) => 0000000000000001 0000000000000000
+vextractub  0102010201020102 0102030405060708 [7] (into zeros) => 0000000000000002 0000000000000000
+vextractub  0102010201020102 0102030405060708 [7] (into  ones) => 0000000000000002 0000000000000000
+vextractub  0102010201020102 0102030405060708 [8] (into zeros) => 0000000000000001 0000000000000000
+vextractub  0102010201020102 0102030405060708 [8] (into  ones) => 0000000000000001 0000000000000000
+vextractub  0102010201020102 0102030405060708 [9] (into zeros) => 0000000000000002 0000000000000000
+vextractub  0102010201020102 0102030405060708 [9] (into  ones) => 0000000000000002 0000000000000000
+vextractub  0102010201020102 0102030405060708 [10] (into zeros) => 0000000000000003 0000000000000000
+vextractub  0102010201020102 0102030405060708 [10] (into  ones) => 0000000000000003 0000000000000000
+vextractub  0102010201020102 0102030405060708 [11] (into zeros) => 0000000000000004 0000000000000000
+vextractub  0102010201020102 0102030405060708 [11] (into  ones) => 0000000000000004 0000000000000000
+vextractub  0102010201020102 0102030405060708 [12] (into zeros) => 0000000000000005 0000000000000000
+vextractub  0102010201020102 0102030405060708 [12] (into  ones) => 0000000000000005 0000000000000000
+vextractub  0102010201020102 0102030405060708 [13] (into zeros) => 0000000000000006 0000000000000000
+vextractub  0102010201020102 0102030405060708 [13] (into  ones) => 0000000000000006 0000000000000000
+vextractub  0102010201020102 0102030405060708 [14] (into zeros) => 0000000000000007 0000000000000000
+vextractub  0102010201020102 0102030405060708 [14] (into  ones) => 0000000000000007 0000000000000000
+vextractub  0102010201020102 0102030405060708 [15] (into zeros) => 0000000000000008 0000000000000000
+vextractub  0102010201020102 0102030405060708 [15] (into  ones) => 0000000000000008 0000000000000000
+vextractub  5555555555555555 5555555555555555 [0] (into zeros) => 0000000000000055 0000000000000000
+vextractub  5555555555555555 5555555555555555 [0] (into  ones) => 0000000000000055 0000000000000000
+vextractub  5555555555555555 5555555555555555 [1] (into zeros) => 0000000000000055 0000000000000000
+vextractub  5555555555555555 5555555555555555 [1] (into  ones) => 0000000000000055 0000000000000000
+vextractub  5555555555555555 5555555555555555 [2] (into zeros) => 0000000000000055 0000000000000000
+vextractub  5555555555555555 5555555555555555 [2] (into  ones) => 0000000000000055 0000000000000000
+vextractub  5555555555555555 5555555555555555 [3] (into zeros) => 0000000000000055 0000000000000000
+vextractub  5555555555555555 5555555555555555 [3] (into  ones) => 0000000000000055 0000000000000000
+vextractub  5555555555555555 5555555555555555 [4] (into zeros) => 0000000000000055 0000000000000000
+vextractub  5555555555555555 5555555555555555 [4] (into  ones) => 0000000000000055 0000000000000000
+vextractub  5555555555555555 5555555555555555 [5] (into zeros) => 0000000000000055 0000000000000000
+vextractub  5555555555555555 5555555555555555 [5] (into  ones) => 0000000000000055 0000000000000000
+vextractub  5555555555555555 5555555555555555 [6] (into zeros) => 0000000000000055 0000000000000000
+vextractub  5555555555555555 5555555555555555 [6] (into  ones) => 0000000000000055 0000000000000000
+vextractub  5555555555555555 5555555555555555 [7] (into zeros) => 0000000000000055 0000000000000000
+vextractub  5555555555555555 5555555555555555 [7] (into  ones) => 0000000000000055 0000000000000000
+vextractub  5555555555555555 5555555555555555 [8] (into zeros) => 0000000000000055 0000000000000000
+vextractub  5555555555555555 5555555555555555 [8] (into  ones) => 0000000000000055 0000000000000000
+vextractub  5555555555555555 5555555555555555 [9] (into zeros) => 0000000000000055 0000000000000000
+vextractub  5555555555555555 5555555555555555 [9] (into  ones) => 0000000000000055 0000000000000000
+vextractub  5555555555555555 5555555555555555 [10] (into zeros) => 0000000000000055 0000000000000000
+vextractub  5555555555555555 5555555555555555 [10] (into  ones) => 0000000000000055 0000000000000000
+vextractub  5555555555555555 5555555555555555 [11] (into zeros) => 0000000000000055 0000000000000000
+vextractub  5555555555555555 5555555555555555 [11] (into  ones) => 0000000000000055 0000000000000000
+vextractub  5555555555555555 5555555555555555 [12] (into zeros) => 0000000000000055 0000000000000000
+vextractub  5555555555555555 5555555555555555 [12] (into  ones) => 0000000000000055 0000000000000000
+vextractub  5555555555555555 5555555555555555 [13] (into zeros) => 0000000000000055 0000000000000000
+vextractub  5555555555555555 5555555555555555 [13] (into  ones) => 0000000000000055 0000000000000000
+vextractub  5555555555555555 5555555555555555 [14] (into zeros) => 0000000000000055 0000000000000000
+vextractub  5555555555555555 5555555555555555 [14] (into  ones) => 0000000000000055 0000000000000000
+vextractub  5555555555555555 5555555555555555 [15] (into zeros) => 0000000000000055 0000000000000000
+vextractub  5555555555555555 5555555555555555 [15] (into  ones) => 0000000000000055 0000000000000000
+
+vextractuh  0102010201020102 0102030405060708 [0] (into zeros) => 0000000000000102 0000000000000000
+vextractuh  0102010201020102 0102030405060708 [0] (into  ones) => 0000000000000102 0000000000000000
+vextractuh  0102010201020102 0102030405060708 [1] (into zeros) => 0000000000000201 0000000000000000
+vextractuh  0102010201020102 0102030405060708 [1] (into  ones) => 0000000000000201 0000000000000000
+vextractuh  0102010201020102 0102030405060708 [2] (into zeros) => 0000000000000102 0000000000000000
+vextractuh  0102010201020102 0102030405060708 [2] (into  ones) => 0000000000000102 0000000000000000
+vextractuh  0102010201020102 0102030405060708 [3] (into zeros) => 0000000000000201 0000000000000000
+vextractuh  0102010201020102 0102030405060708 [3] (into  ones) => 0000000000000201 0000000000000000
+vextractuh  0102010201020102 0102030405060708 [4] (into zeros) => 0000000000000102 0000000000000000
+vextractuh  0102010201020102 0102030405060708 [4] (into  ones) => 0000000000000102 0000000000000000
+vextractuh  0102010201020102 0102030405060708 [5] (into zeros) => 0000000000000201 0000000000000000
+vextractuh  0102010201020102 0102030405060708 [5] (into  ones) => 0000000000000201 0000000000000000
+vextractuh  0102010201020102 0102030405060708 [6] (into zeros) => 0000000000000102 0000000000000000
+vextractuh  0102010201020102 0102030405060708 [6] (into  ones) => 0000000000000102 0000000000000000
+vextractuh  0102010201020102 0102030405060708 [7] (into zeros) => 0000000000000201 0000000000000000
+vextractuh  0102010201020102 0102030405060708 [7] (into  ones) => 0000000000000201 0000000000000000
+vextractuh  0102010201020102 0102030405060708 [8] (into zeros) => 0000000000000102 0000000000000000
+vextractuh  0102010201020102 0102030405060708 [8] (into  ones) => 0000000000000102 0000000000000000
+vextractuh  0102010201020102 0102030405060708 [9] (into zeros) => 0000000000000203 0000000000000000
+vextractuh  0102010201020102 0102030405060708 [9] (into  ones) => 0000000000000203 0000000000000000
+vextractuh  0102010201020102 0102030405060708 [10] (into zeros) => 0000000000000304 0000000000000000
+vextractuh  0102010201020102 0102030405060708 [10] (into  ones) => 0000000000000304 0000000000000000
+vextractuh  0102010201020102 0102030405060708 [11] (into zeros) => 0000000000000405 0000000000000000
+vextractuh  0102010201020102 0102030405060708 [11] (into  ones) => 0000000000000405 0000000000000000
+vextractuh  0102010201020102 0102030405060708 [12] (into zeros) => 0000000000000506 0000000000000000
+vextractuh  0102010201020102 0102030405060708 [12] (into  ones) => 0000000000000506 0000000000000000
+vextractuh  0102010201020102 0102030405060708 [13] (into zeros) => 0000000000000607 0000000000000000
+vextractuh  0102010201020102 0102030405060708 [13] (into  ones) => 0000000000000607 0000000000000000
+vextractuh  0102010201020102 0102030405060708 [14] (into zeros) => 0000000000000708 0000000000000000
+vextractuh  0102010201020102 0102030405060708 [14] (into  ones) => 0000000000000708 0000000000000000
+vextractuh  5555555555555555 5555555555555555 [0] (into zeros) => 0000000000005555 0000000000000000
+vextractuh  5555555555555555 5555555555555555 [0] (into  ones) => 0000000000005555 0000000000000000
+vextractuh  5555555555555555 5555555555555555 [1] (into zeros) => 0000000000005555 0000000000000000
+vextractuh  5555555555555555 5555555555555555 [1] (into  ones) => 0000000000005555 0000000000000000
+vextractuh  5555555555555555 5555555555555555 [2] (into zeros) => 0000000000005555 0000000000000000
+vextractuh  5555555555555555 5555555555555555 [2] (into  ones) => 0000000000005555 0000000000000000
+vextractuh  5555555555555555 5555555555555555 [3] (into zeros) => 0000000000005555 0000000000000000
+vextractuh  5555555555555555 5555555555555555 [3] (into  ones) => 0000000000005555 0000000000000000
+vextractuh  5555555555555555 5555555555555555 [4] (into zeros) => 0000000000005555 0000000000000000
+vextractuh  5555555555555555 5555555555555555 [4] (into  ones) => 0000000000005555 0000000000000000
+vextractuh  5555555555555555 5555555555555555 [5] (into zeros) => 0000000000005555 0000000000000000
+vextractuh  5555555555555555 5555555555555555 [5] (into  ones) => 0000000000005555 0000000000000000
+vextractuh  5555555555555555 5555555555555555 [6] (into zeros) => 0000000000005555 0000000000000000
+vextractuh  5555555555555555 5555555555555555 [6] (into  ones) => 0000000000005555 0000000000000000
+vextractuh  5555555555555555 5555555555555555 [7] (into zeros) => 0000000000005555 0000000000000000
+vextractuh  5555555555555555 5555555555555555 [7] (into  ones) => 0000000000005555 0000000000000000
+vextractuh  5555555555555555 5555555555555555 [8] (into zeros) => 0000000000005555 0000000000000000
+vextractuh  5555555555555555 5555555555555555 [8] (into  ones) => 0000000000005555 0000000000000000
+vextractuh  5555555555555555 5555555555555555 [9] (into zeros) => 0000000000005555 0000000000000000
+vextractuh  5555555555555555 5555555555555555 [9] (into  ones) => 0000000000005555 0000000000000000
+vextractuh  5555555555555555 5555555555555555 [10] (into zeros) => 0000000000005555 0000000000000000
+vextractuh  5555555555555555 5555555555555555 [10] (into  ones) => 0000000000005555 0000000000000000
+vextractuh  5555555555555555 5555555555555555 [11] (into zeros) => 0000000000005555 0000000000000000
+vextractuh  5555555555555555 5555555555555555 [11] (into  ones) => 0000000000005555 0000000000000000
+vextractuh  5555555555555555 5555555555555555 [12] (into zeros) => 0000000000005555 0000000000000000
+vextractuh  5555555555555555 5555555555555555 [12] (into  ones) => 0000000000005555 0000000000000000
+vextractuh  5555555555555555 5555555555555555 [13] (into zeros) => 0000000000005555 0000000000000000
+vextractuh  5555555555555555 5555555555555555 [13] (into  ones) => 0000000000005555 0000000000000000
+vextractuh  5555555555555555 5555555555555555 [14] (into zeros) => 0000000000005555 0000000000000000
+vextractuh  5555555555555555 5555555555555555 [14] (into  ones) => 0000000000005555 0000000000000000
+
+vextractuw  0102010201020102 0102030405060708 [0] (into zeros) => 0000000001020102 0000000000000000
+vextractuw  0102010201020102 0102030405060708 [0] (into  ones) => 0000000001020102 0000000000000000
+vextractuw  0102010201020102 0102030405060708 [1] (into zeros) => 0000000002010201 0000000000000000
+vextractuw  0102010201020102 0102030405060708 [1] (into  ones) => 0000000002010201 0000000000000000
+vextractuw  0102010201020102 0102030405060708 [2] (into zeros) => 0000000001020102 0000000000000000
+vextractuw  0102010201020102 0102030405060708 [2] (into  ones) => 0000000001020102 0000000000000000
+vextractuw  0102010201020102 0102030405060708 [3] (into zeros) => 0000000002010201 0000000000000000
+vextractuw  0102010201020102 0102030405060708 [3] (into  ones) => 0000000002010201 0000000000000000
+vextractuw  0102010201020102 0102030405060708 [4] (into zeros) => 0000000001020102 0000000000000000
+vextractuw  0102010201020102 0102030405060708 [4] (into  ones) => 0000000001020102 0000000000000000
+vextractuw  0102010201020102 0102030405060708 [5] (into zeros) => 0000000002010201 0000000000000000
+vextractuw  0102010201020102 0102030405060708 [5] (into  ones) => 0000000002010201 0000000000000000
+vextractuw  0102010201020102 0102030405060708 [6] (into zeros) => 0000000001020102 0000000000000000
+vextractuw  0102010201020102 0102030405060708 [6] (into  ones) => 0000000001020102 0000000000000000
+vextractuw  0102010201020102 0102030405060708 [7] (into zeros) => 0000000002010203 0000000000000000
+vextractuw  0102010201020102 0102030405060708 [7] (into  ones) => 0000000002010203 0000000000000000
+vextractuw  0102010201020102 0102030405060708 [8] (into zeros) => 0000000001020304 0000000000000000
+vextractuw  0102010201020102 0102030405060708 [8] (into  ones) => 0000000001020304 0000000000000000
+vextractuw  0102010201020102 0102030405060708 [9] (into zeros) => 0000000002030405 0000000000000000
+vextractuw  0102010201020102 0102030405060708 [9] (into  ones) => 0000000002030405 0000000000000000
+vextractuw  0102010201020102 0102030405060708 [10] (into zeros) => 0000000003040506 0000000000000000
+vextractuw  0102010201020102 0102030405060708 [10] (into  ones) => 0000000003040506 0000000000000000
+vextractuw  0102010201020102 0102030405060708 [11] (into zeros) => 0000000004050607 0000000000000000
+vextractuw  0102010201020102 0102030405060708 [11] (into  ones) => 0000000004050607 0000000000000000
+vextractuw  5555555555555555 5555555555555555 [0] (into zeros) => 0000000055555555 0000000000000000
+vextractuw  5555555555555555 5555555555555555 [0] (into  ones) => 0000000055555555 0000000000000000
+vextractuw  5555555555555555 5555555555555555 [1] (into zeros) => 0000000055555555 0000000000000000
+vextractuw  5555555555555555 5555555555555555 [1] (into  ones) => 0000000055555555 0000000000000000
+vextractuw  5555555555555555 5555555555555555 [2] (into zeros) => 0000000055555555 0000000000000000
+vextractuw  5555555555555555 5555555555555555 [2] (into  ones) => 0000000055555555 0000000000000000
+vextractuw  5555555555555555 5555555555555555 [3] (into zeros) => 0000000055555555 0000000000000000
+vextractuw  5555555555555555 5555555555555555 [3] (into  ones) => 0000000055555555 0000000000000000
+vextractuw  5555555555555555 5555555555555555 [4] (into zeros) => 0000000055555555 0000000000000000
+vextractuw  5555555555555555 5555555555555555 [4] (into  ones) => 0000000055555555 0000000000000000
+vextractuw  5555555555555555 5555555555555555 [5] (into zeros) => 0000000055555555 0000000000000000
+vextractuw  5555555555555555 5555555555555555 [5] (into  ones) => 0000000055555555 0000000000000000
+vextractuw  5555555555555555 5555555555555555 [6] (into zeros) => 0000000055555555 0000000000000000
+vextractuw  5555555555555555 5555555555555555 [6] (into  ones) => 0000000055555555 0000000000000000
+vextractuw  5555555555555555 5555555555555555 [7] (into zeros) => 0000000055555555 0000000000000000
+vextractuw  5555555555555555 5555555555555555 [7] (into  ones) => 0000000055555555 0000000000000000
+vextractuw  5555555555555555 5555555555555555 [8] (into zeros) => 0000000055555555 0000000000000000
+vextractuw  5555555555555555 5555555555555555 [8] (into  ones) => 0000000055555555 0000000000000000
+vextractuw  5555555555555555 5555555555555555 [9] (into zeros) => 0000000055555555 0000000000000000
+vextractuw  5555555555555555 5555555555555555 [9] (into  ones) => 0000000055555555 0000000000000000
+vextractuw  5555555555555555 5555555555555555 [10] (into zeros) => 0000000055555555 0000000000000000
+vextractuw  5555555555555555 5555555555555555 [10] (into  ones) => 0000000055555555 0000000000000000
+vextractuw  5555555555555555 5555555555555555 [11] (into zeros) => 0000000055555555 0000000000000000
+vextractuw  5555555555555555 5555555555555555 [11] (into  ones) => 0000000055555555 0000000000000000
+
+vextractd   0102010201020102 0102030405060708 [0] (into zeros) => 0102010201020102 0000000000000000
+vextractd   0102010201020102 0102030405060708 [0] (into  ones) => 0102010201020102 0000000000000000
+vextractd   0102010201020102 0102030405060708 [1] (into zeros) => 0201020102010201 0000000000000000
+vextractd   0102010201020102 0102030405060708 [1] (into  ones) => 0201020102010201 0000000000000000
+vextractd   0102010201020102 0102030405060708 [2] (into zeros) => 0102010201020102 0000000000000000
+vextractd   0102010201020102 0102030405060708 [2] (into  ones) => 0102010201020102 0000000000000000
+vextractd   0102010201020102 0102030405060708 [3] (into zeros) => 0201020102010203 0000000000000000
+vextractd   0102010201020102 0102030405060708 [3] (into  ones) => 0201020102010203 0000000000000000
+vextractd   0102010201020102 0102030405060708 [4] (into zeros) => 0102010201020304 0000000000000000
+vextractd   0102010201020102 0102030405060708 [4] (into  ones) => 0102010201020304 0000000000000000
+vextractd   0102010201020102 0102030405060708 [5] (into zeros) => 0201020102030405 0000000000000000
+vextractd   0102010201020102 0102030405060708 [5] (into  ones) => 0201020102030405 0000000000000000
+vextractd   0102010201020102 0102030405060708 [6] (into zeros) => 0102010203040506 0000000000000000
+vextractd   0102010201020102 0102030405060708 [6] (into  ones) => 0102010203040506 0000000000000000
+vextractd   0102010201020102 0102030405060708 [7] (into zeros) => 0201020304050607 0000000000000000
+vextractd   0102010201020102 0102030405060708 [7] (into  ones) => 0201020304050607 0000000000000000
+vextractd   0102010201020102 0102030405060708 [8] (into zeros) => 0102030405060708 0000000000000000
+vextractd   0102010201020102 0102030405060708 [8] (into  ones) => 0102030405060708 0000000000000000
+vextractd   5555555555555555 5555555555555555 [0] (into zeros) => 5555555555555555 0000000000000000
+vextractd   5555555555555555 5555555555555555 [0] (into  ones) => 5555555555555555 0000000000000000
+vextractd   5555555555555555 5555555555555555 [1] (into zeros) => 5555555555555555 0000000000000000
+vextractd   5555555555555555 5555555555555555 [1] (into  ones) => 5555555555555555 0000000000000000
+vextractd   5555555555555555 5555555555555555 [2] (into zeros) => 5555555555555555 0000000000000000
+vextractd   5555555555555555 5555555555555555 [2] (into  ones) => 5555555555555555 0000000000000000
+vextractd   5555555555555555 5555555555555555 [3] (into zeros) => 5555555555555555 0000000000000000
+vextractd   5555555555555555 5555555555555555 [3] (into  ones) => 5555555555555555 0000000000000000
+vextractd   5555555555555555 5555555555555555 [4] (into zeros) => 5555555555555555 0000000000000000
+vextractd   5555555555555555 5555555555555555 [4] (into  ones) => 5555555555555555 0000000000000000
+vextractd   5555555555555555 5555555555555555 [5] (into zeros) => 5555555555555555 0000000000000000
+vextractd   5555555555555555 5555555555555555 [5] (into  ones) => 5555555555555555 0000000000000000
+vextractd   5555555555555555 5555555555555555 [6] (into zeros) => 5555555555555555 0000000000000000
+vextractd   5555555555555555 5555555555555555 [6] (into  ones) => 5555555555555555 0000000000000000
+vextractd   5555555555555555 5555555555555555 [7] (into zeros) => 5555555555555555 0000000000000000
+vextractd   5555555555555555 5555555555555555 [7] (into  ones) => 5555555555555555 0000000000000000
+vextractd   5555555555555555 5555555555555555 [8] (into zeros) => 5555555555555555 0000000000000000
+vextractd   5555555555555555 5555555555555555 [8] (into  ones) => 5555555555555555 0000000000000000
+
+xxinsertw   0102010201020102 0102030405060708 [0] (into zeros) => 0102010200000000 0000000000000000
+xxinsertw   0102010201020102 0102030405060708 [0] (into  ones) => 01020102ffffffff ffffffffffffffff
+xxinsertw   0102010201020102 0102030405060708 [1] (into zeros) => 0001020102000000 0000000000000000
+xxinsertw   0102010201020102 0102030405060708 [1] (into  ones) => ff01020102ffffff ffffffffffffffff
+xxinsertw   0102010201020102 0102030405060708 [2] (into zeros) => 0000010201020000 0000000000000000
+xxinsertw   0102010201020102 0102030405060708 [2] (into  ones) => ffff01020102ffff ffffffffffffffff
+xxinsertw   0102010201020102 0102030405060708 [3] (into zeros) => 0000000102010200 0000000000000000
+xxinsertw   0102010201020102 0102030405060708 [3] (into  ones) => ffffff01020102ff ffffffffffffffff
+xxinsertw   0102010201020102 0102030405060708 [4] (into zeros) => 0000000001020102 0000000000000000
+xxinsertw   0102010201020102 0102030405060708 [4] (into  ones) => ffffffff01020102 ffffffffffffffff
+xxinsertw   0102010201020102 0102030405060708 [5] (into zeros) => 0000000000010201 0200000000000000
+xxinsertw   0102010201020102 0102030405060708 [5] (into  ones) => ffffffffff010201 02ffffffffffffff
+xxinsertw   0102010201020102 0102030405060708 [6] (into zeros) => 0000000000000102 0102000000000000
+xxinsertw   0102010201020102 0102030405060708 [6] (into  ones) => ffffffffffff0102 0102ffffffffffff
+xxinsertw   0102010201020102 0102030405060708 [7] (into zeros) => 0000000000000001 0201020000000000
+xxinsertw   0102010201020102 0102030405060708 [7] (into  ones) => ffffffffffffff01 020102ffffffffff
+xxinsertw   0102010201020102 0102030405060708 [8] (into zeros) => 0000000000000000 0102010200000000
+xxinsertw   0102010201020102 0102030405060708 [8] (into  ones) => ffffffffffffffff 01020102ffffffff
+xxinsertw   0102010201020102 0102030405060708 [9] (into zeros) => 0000000000000000 0001020102000000
+xxinsertw   0102010201020102 0102030405060708 [9] (into  ones) => ffffffffffffffff ff01020102ffffff
+xxinsertw   0102010201020102 0102030405060708 [10] (into zeros) => 0000000000000000 0000010201020000
+xxinsertw   0102010201020102 0102030405060708 [10] (into  ones) => ffffffffffffffff ffff01020102ffff
+xxinsertw   0102010201020102 0102030405060708 [11] (into zeros) => 0000000000000000 0000000102010200
+xxinsertw   0102010201020102 0102030405060708 [11] (into  ones) => ffffffffffffffff ffffff01020102ff
+xxinsertw   0102010201020102 0102030405060708 [12] (into zeros) => 0000000000000000 0000000001020102
+xxinsertw   0102010201020102 0102030405060708 [12] (into  ones) => ffffffffffffffff ffffffff01020102
+xxinsertw   5555555555555555 5555555555555555 [0] (into zeros) => 5555555500000000 0000000000000000
+xxinsertw   5555555555555555 5555555555555555 [0] (into  ones) => 55555555ffffffff ffffffffffffffff
+xxinsertw   5555555555555555 5555555555555555 [1] (into zeros) => 0055555555000000 0000000000000000
+xxinsertw   5555555555555555 5555555555555555 [1] (into  ones) => ff55555555ffffff ffffffffffffffff
+xxinsertw   5555555555555555 5555555555555555 [2] (into zeros) => 0000555555550000 0000000000000000
+xxinsertw   5555555555555555 5555555555555555 [2] (into  ones) => ffff55555555ffff ffffffffffffffff
+xxinsertw   5555555555555555 5555555555555555 [3] (into zeros) => 0000005555555500 0000000000000000
+xxinsertw   5555555555555555 5555555555555555 [3] (into  ones) => ffffff55555555ff ffffffffffffffff
+xxinsertw   5555555555555555 5555555555555555 [4] (into zeros) => 0000000055555555 0000000000000000
+xxinsertw   5555555555555555 5555555555555555 [4] (into  ones) => ffffffff55555555 ffffffffffffffff
+xxinsertw   5555555555555555 5555555555555555 [5] (into zeros) => 0000000000555555 5500000000000000
+xxinsertw   5555555555555555 5555555555555555 [5] (into  ones) => ffffffffff555555 55ffffffffffffff
+xxinsertw   5555555555555555 5555555555555555 [6] (into zeros) => 0000000000005555 5555000000000000
+xxinsertw   5555555555555555 5555555555555555 [6] (into  ones) => ffffffffffff5555 5555ffffffffffff
+xxinsertw   5555555555555555 5555555555555555 [7] (into zeros) => 0000000000000055 5555550000000000
+xxinsertw   5555555555555555 5555555555555555 [7] (into  ones) => ffffffffffffff55 555555ffffffffff
+xxinsertw   5555555555555555 5555555555555555 [8] (into zeros) => 0000000000000000 5555555500000000
+xxinsertw   5555555555555555 5555555555555555 [8] (into  ones) => ffffffffffffffff 55555555ffffffff
+xxinsertw   5555555555555555 5555555555555555 [9] (into zeros) => 0000000000000000 0055555555000000
+xxinsertw   5555555555555555 5555555555555555 [9] (into  ones) => ffffffffffffffff ff55555555ffffff
+xxinsertw   5555555555555555 5555555555555555 [10] (into zeros) => 0000000000000000 0000555555550000
+xxinsertw   5555555555555555 5555555555555555 [10] (into  ones) => ffffffffffffffff ffff55555555ffff
+xxinsertw   5555555555555555 5555555555555555 [11] (into zeros) => 0000000000000000 0000005555555500
+xxinsertw   5555555555555555 5555555555555555 [11] (into  ones) => ffffffffffffffff ffffff55555555ff
+xxinsertw   5555555555555555 5555555555555555 [12] (into zeros) => 0000000000000000 0000000055555555
+xxinsertw   5555555555555555 5555555555555555 [12] (into  ones) => ffffffffffffffff ffffffff55555555
+
+xxextractuw 0102010201020102 0102030405060708 [0] (into zeros) => 0000000001020102 0000000000000000
+xxextractuw 0102010201020102 0102030405060708 [0] (into  ones) => 0000000001020102 0000000000000000
+xxextractuw 0102010201020102 0102030405060708 [1] (into zeros) => 0000000002010201 0000000000000000
+xxextractuw 0102010201020102 0102030405060708 [1] (into  ones) => 0000000002010201 0000000000000000
+xxextractuw 0102010201020102 0102030405060708 [2] (into zeros) => 0000000001020102 0000000000000000
+xxextractuw 0102010201020102 0102030405060708 [2] (into  ones) => 0000000001020102 0000000000000000
+xxextractuw 0102010201020102 0102030405060708 [3] (into zeros) => 0000000002010201 0000000000000000
+xxextractuw 0102010201020102 0102030405060708 [3] (into  ones) => 0000000002010201 0000000000000000
+xxextractuw 0102010201020102 0102030405060708 [4] (into zeros) => 0000000001020102 0000000000000000
+xxextractuw 0102010201020102 0102030405060708 [4] (into  ones) => 0000000001020102 0000000000000000
+xxextractuw 0102010201020102 0102030405060708 [5] (into zeros) => 0000000002010201 0000000000000000
+xxextractuw 0102010201020102 0102030405060708 [5] (into  ones) => 0000000002010201 0000000000000000
+xxextractuw 0102010201020102 0102030405060708 [6] (into zeros) => 0000000001020102 0000000000000000
+xxextractuw 0102010201020102 0102030405060708 [6] (into  ones) => 0000000001020102 0000000000000000
+xxextractuw 0102010201020102 0102030405060708 [7] (into zeros) => 0000000002010203 0000000000000000
+xxextractuw 0102010201020102 0102030405060708 [7] (into  ones) => 0000000002010203 0000000000000000
+xxextractuw 0102010201020102 0102030405060708 [8] (into zeros) => 0000000001020304 0000000000000000
+xxextractuw 0102010201020102 0102030405060708 [8] (into  ones) => 0000000001020304 0000000000000000
+xxextractuw 0102010201020102 0102030405060708 [9] (into zeros) => 0000000002030405 0000000000000000
+xxextractuw 0102010201020102 0102030405060708 [9] (into  ones) => 0000000002030405 0000000000000000
+xxextractuw 0102010201020102 0102030405060708 [10] (into zeros) => 0000000003040506 0000000000000000
+xxextractuw 0102010201020102 0102030405060708 [10] (into  ones) => 0000000003040506 0000000000000000
+xxextractuw 0102010201020102 0102030405060708 [11] (into zeros) => 0000000004050607 0000000000000000
+xxextractuw 0102010201020102 0102030405060708 [11] (into  ones) => 0000000004050607 0000000000000000
+xxextractuw 0102010201020102 0102030405060708 [12] (into zeros) => 0000000005060708 0000000000000000
+xxextractuw 0102010201020102 0102030405060708 [12] (into  ones) => 0000000005060708 0000000000000000
+xxextractuw 5555555555555555 5555555555555555 [0] (into zeros) => 0000000055555555 0000000000000000
+xxextractuw 5555555555555555 5555555555555555 [0] (into  ones) => 0000000055555555 0000000000000000
+xxextractuw 5555555555555555 5555555555555555 [1] (into zeros) => 0000000055555555 0000000000000000
+xxextractuw 5555555555555555 5555555555555555 [1] (into  ones) => 0000000055555555 0000000000000000
+xxextractuw 5555555555555555 5555555555555555 [2] (into zeros) => 0000000055555555 0000000000000000
+xxextractuw 5555555555555555 5555555555555555 [2] (into  ones) => 0000000055555555 0000000000000000
+xxextractuw 5555555555555555 5555555555555555 [3] (into zeros) => 0000000055555555 0000000000000000
+xxextractuw 5555555555555555 5555555555555555 [3] (into  ones) => 0000000055555555 0000000000000000
+xxextractuw 5555555555555555 5555555555555555 [4] (into zeros) => 0000000055555555 0000000000000000
+xxextractuw 5555555555555555 5555555555555555 [4] (into  ones) => 0000000055555555 0000000000000000
+xxextractuw 5555555555555555 5555555555555555 [5] (into zeros) => 0000000055555555 0000000000000000
+xxextractuw 5555555555555555 5555555555555555 [5] (into  ones) => 0000000055555555 0000000000000000
+xxextractuw 5555555555555555 5555555555555555 [6] (into zeros) => 0000000055555555 0000000000000000
+xxextractuw 5555555555555555 5555555555555555 [6] (into  ones) => 0000000055555555 0000000000000000
+xxextractuw 5555555555555555 5555555555555555 [7] (into zeros) => 0000000055555555 0000000000000000
+xxextractuw 5555555555555555 5555555555555555 [7] (into  ones) => 0000000055555555 0000000000000000
+xxextractuw 5555555555555555 5555555555555555 [8] (into zeros) => 0000000055555555 0000000000000000
+xxextractuw 5555555555555555 5555555555555555 [8] (into  ones) => 0000000055555555 0000000000000000
+xxextractuw 5555555555555555 5555555555555555 [9] (into zeros) => 0000000055555555 0000000000000000
+xxextractuw 5555555555555555 5555555555555555 [9] (into  ones) => 0000000055555555 0000000000000000
+xxextractuw 5555555555555555 5555555555555555 [10] (into zeros) => 0000000055555555 0000000000000000
+xxextractuw 5555555555555555 5555555555555555 [10] (into  ones) => 0000000055555555 0000000000000000
+xxextractuw 5555555555555555 5555555555555555 [11] (into zeros) => 0000000055555555 0000000000000000
+xxextractuw 5555555555555555 5555555555555555 [11] (into  ones) => 0000000055555555 0000000000000000
+xxextractuw 5555555555555555 5555555555555555 [12] (into zeros) => 0000000055555555 0000000000000000
+xxextractuw 5555555555555555 5555555555555555 [12] (into  ones) => 0000000055555555 0000000000000000
+
+All done. Tested 21 different instructions
+ppc vector load/store:
+Test instruction group [ppc vector load/store]
+lxvx 0000000000000000 0000000000000000 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvx ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvx aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvx 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvx 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    5a05a05a05a05a05 5a05a05a05a05a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvx 5a05a05a05a05a05 5a05a05a05a05a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0102030405060708 0102030405060708 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvx 0102010201020102 0102030405060708 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvx ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvx aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvx 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvx 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    5a05a05a05a05a05 5a05a05a05a05a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvx 5a05a05a05a05a05 5a05a05a05a05a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0102030405060708 0102030405060708 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvx aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvx ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvx aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvx 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvx 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    5a05a05a05a05a05 5a05a05a05a05a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvx 5a05a05a05a05a05 5a05a05a05a05a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0102030405060708 0102030405060708 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvx 5555555555555555 5555555555555555 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvx ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvx aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvx 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvx 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    5a05a05a05a05a05 5a05a05a05a05a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvx 5a05a05a05a05a05 5a05a05a05a05a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0102030405060708 0102030405060708 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvx 0102010201020102 08090a0b0c0d0e0f [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvx ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvx aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvx 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvx 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    5a05a05a05a05a05 5a05a05a05a05a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvx 5a05a05a05a05a05 5a05a05a05a05a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0102030405060708 0102030405060708 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvx f8f9fafbfcfdfeff f0f1f2f3f4f5f6f7 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvx ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvx aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvx 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvx 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    5a05a05a05a05a05 5a05a05a05a05a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvx 5a05a05a05a05a05 5a05a05a05a05a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0102030405060708 0102030405060708 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvx 070d111d1e555e70 7ea1a5a7abadb0ba [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvx ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvx aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvx 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvx 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    5a05a05a05a05a05 5a05a05a05a05a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvx 5a05a05a05a05a05 5a05a05a05a05a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0102030405060708 0102030405060708 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvx beb1c0caced0dbde e5e7ecedeff0f1fa [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvx ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvx aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvx 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvx 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    5a05a05a05a05a05 5a05a05a05a05a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvx 5a05a05a05a05a05 5a05a05a05a05a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0102030405060708 0102030405060708 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvx ced0deede5ecef00 00115e7eadbabec0 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvx ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvx aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvx 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvx 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    5a05a05a05a05a05 5a05a05a05a05a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvx 5a05a05a05a05a05 5a05a05a05a05a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0102030405060708 0102030405060708 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvx becad0deedeffe00 00111e7ea5abadb1 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvx ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvx aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvx 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvx 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    5a05a05a05a05a05 5a05a05a05a05a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvx 5a05a05a05a05a05 5a05a05a05a05a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0102030405060708 0102030405060708 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvx 8899aabbccddeeff 0011223344556677 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvx ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvx aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvx 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvx 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    5a05a05a05a05a05 5a05a05a05a05a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvx 5a05a05a05a05a05 5a05a05a05a05a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0102030405060708 0102030405060708 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvx 7060504030201000 f0e0d0c0b0a09080 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvx ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvx aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvx 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvx 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    5a05a05a05a05a05 5a05a05a05a05a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvx 5a05a05a05a05a05 5a05a05a05a05a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0102030405060708 0102030405060708 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvx 0000100800001010 0000100000001002 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvx ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvx aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvx 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvx 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    5a05a05a05a05a05 5a05a05a05a05a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvx 5a05a05a05a05a05 5a05a05a05a05a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0102030405060708 0102030405060708 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvx 0010100800101010 0010100000101002 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvx ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvx aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvx 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvx 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    5a05a05a05a05a05 5a05a05a05a05a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvx 5a05a05a05a05a05 5a05a05a05a05a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0102030405060708 0102030405060708 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvx 00001c0800001c10 00001c0000001c02 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvx ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvx aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvx 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvx 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    5a05a05a05a05a05 5a05a05a05a05a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvx 5a05a05a05a05a05 5a05a05a05a05a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0102030405060708 0102030405060708 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvx 00101c0800101c10 00101c0000101c02 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvx ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvx aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvx 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvx 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    5a05a05a05a05a05 5a05a05a05a05a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvx 5a05a05a05a05a05 5a05a05a05a05a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0102030405060708 0102030405060708 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvx 00001f0800001f10 00001f0000001f02 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvx ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvx aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvx 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvx 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    5a05a05a05a05a05 5a05a05a05a05a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvx 5a05a05a05a05a05 5a05a05a05a05a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0102030405060708 0102030405060708 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvx 00101f0800101f10 00101f0000101f02 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvx ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvx aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvx 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvx 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    5a05a05a05a05a05 5a05a05a05a05a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvx 5a05a05a05a05a05 5a05a05a05a05a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0102030405060708 0102030405060708 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+
+lxvwsx 0000000000000000 0000000000000000 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvwsx ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvwsx aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvwsx 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvwsx 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    05a05a0505a05a05 05a05a0505a05a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvwsx 05a05a0505a05a05 05a05a0505a05a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0506070805060708 0506070805060708 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvwsx 0102010201020102 0102030405060708 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvwsx ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvwsx aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvwsx 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvwsx 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    05a05a0505a05a05 05a05a0505a05a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvwsx 05a05a0505a05a05 05a05a0505a05a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0506070805060708 0506070805060708 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvwsx aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvwsx ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvwsx aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvwsx 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvwsx 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    05a05a0505a05a05 05a05a0505a05a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvwsx 05a05a0505a05a05 05a05a0505a05a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0506070805060708 0506070805060708 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvwsx 5555555555555555 5555555555555555 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvwsx ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvwsx aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvwsx 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvwsx 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    05a05a0505a05a05 05a05a0505a05a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvwsx 05a05a0505a05a05 05a05a0505a05a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0506070805060708 0506070805060708 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvwsx 0102010201020102 08090a0b0c0d0e0f [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvwsx ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvwsx aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvwsx 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvwsx 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    05a05a0505a05a05 05a05a0505a05a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvwsx 05a05a0505a05a05 05a05a0505a05a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0506070805060708 0506070805060708 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvwsx f8f9fafbfcfdfeff f0f1f2f3f4f5f6f7 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvwsx ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvwsx aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvwsx 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvwsx 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    05a05a0505a05a05 05a05a0505a05a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvwsx 05a05a0505a05a05 05a05a0505a05a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0506070805060708 0506070805060708 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvwsx 070d111d1e555e70 7ea1a5a7abadb0ba [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvwsx ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvwsx aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvwsx 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvwsx 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    05a05a0505a05a05 05a05a0505a05a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvwsx 05a05a0505a05a05 05a05a0505a05a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0506070805060708 0506070805060708 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvwsx beb1c0caced0dbde e5e7ecedeff0f1fa [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvwsx ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvwsx aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvwsx 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvwsx 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    05a05a0505a05a05 05a05a0505a05a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvwsx 05a05a0505a05a05 05a05a0505a05a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0506070805060708 0506070805060708 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvwsx ced0deede5ecef00 00115e7eadbabec0 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvwsx ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvwsx aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvwsx 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvwsx 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    05a05a0505a05a05 05a05a0505a05a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvwsx 05a05a0505a05a05 05a05a0505a05a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0506070805060708 0506070805060708 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvwsx becad0deedeffe00 00111e7ea5abadb1 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvwsx ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvwsx aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvwsx 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvwsx 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    05a05a0505a05a05 05a05a0505a05a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvwsx 05a05a0505a05a05 05a05a0505a05a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0506070805060708 0506070805060708 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvwsx 8899aabbccddeeff 0011223344556677 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvwsx ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvwsx aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvwsx 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvwsx 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    05a05a0505a05a05 05a05a0505a05a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvwsx 05a05a0505a05a05 05a05a0505a05a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0506070805060708 0506070805060708 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvwsx 7060504030201000 f0e0d0c0b0a09080 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvwsx ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvwsx aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvwsx 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvwsx 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    05a05a0505a05a05 05a05a0505a05a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvwsx 05a05a0505a05a05 05a05a0505a05a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0506070805060708 0506070805060708 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvwsx 0000100800001010 0000100000001002 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvwsx ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvwsx aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvwsx 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvwsx 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    05a05a0505a05a05 05a05a0505a05a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvwsx 05a05a0505a05a05 05a05a0505a05a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0506070805060708 0506070805060708 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvwsx 0010100800101010 0010100000101002 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvwsx ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvwsx aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvwsx 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvwsx 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    05a05a0505a05a05 05a05a0505a05a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvwsx 05a05a0505a05a05 05a05a0505a05a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0506070805060708 0506070805060708 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvwsx 00001c0800001c10 00001c0000001c02 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvwsx ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvwsx aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvwsx 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvwsx 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    05a05a0505a05a05 05a05a0505a05a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvwsx 05a05a0505a05a05 05a05a0505a05a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0506070805060708 0506070805060708 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvwsx 00101c0800101c10 00101c0000101c02 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvwsx ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvwsx aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvwsx 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvwsx 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    05a05a0505a05a05 05a05a0505a05a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvwsx 05a05a0505a05a05 05a05a0505a05a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0506070805060708 0506070805060708 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvwsx 00001f0800001f10 00001f0000001f02 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvwsx ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvwsx aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvwsx 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvwsx 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    05a05a0505a05a05 05a05a0505a05a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvwsx 05a05a0505a05a05 05a05a0505a05a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0506070805060708 0506070805060708 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvwsx 00101f0800101f10 00101f0000101f02 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvwsx ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvwsx aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvwsx 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvwsx 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    05a05a0505a05a05 05a05a0505a05a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvwsx 05a05a0505a05a05 05a05a0505a05a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0506070805060708 0506070805060708 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+
+lxvh8x 0000000000000000 0000000000000000 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvh8x ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvh8x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvh8x 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvh8x 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    5a0505a0a05a5a05 5a0505a0a05a5a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvh8x 5a0505a0a05a5a05 5a0505a0a05a5a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0708050603040102 0708050603040102 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvh8x 0102010201020102 0102030405060708 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvh8x ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvh8x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvh8x 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvh8x 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    5a0505a0a05a5a05 5a0505a0a05a5a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvh8x 5a0505a0a05a5a05 5a0505a0a05a5a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0708050603040102 0708050603040102 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvh8x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvh8x ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvh8x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvh8x 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvh8x 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    5a0505a0a05a5a05 5a0505a0a05a5a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvh8x 5a0505a0a05a5a05 5a0505a0a05a5a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0708050603040102 0708050603040102 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvh8x 5555555555555555 5555555555555555 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvh8x ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvh8x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvh8x 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvh8x 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    5a0505a0a05a5a05 5a0505a0a05a5a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvh8x 5a0505a0a05a5a05 5a0505a0a05a5a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0708050603040102 0708050603040102 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvh8x 0102010201020102 08090a0b0c0d0e0f [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvh8x ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvh8x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvh8x 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvh8x 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    5a0505a0a05a5a05 5a0505a0a05a5a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvh8x 5a0505a0a05a5a05 5a0505a0a05a5a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0708050603040102 0708050603040102 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvh8x f8f9fafbfcfdfeff f0f1f2f3f4f5f6f7 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvh8x ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvh8x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvh8x 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvh8x 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    5a0505a0a05a5a05 5a0505a0a05a5a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvh8x 5a0505a0a05a5a05 5a0505a0a05a5a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0708050603040102 0708050603040102 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvh8x 070d111d1e555e70 7ea1a5a7abadb0ba [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvh8x ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvh8x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvh8x 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvh8x 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    5a0505a0a05a5a05 5a0505a0a05a5a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvh8x 5a0505a0a05a5a05 5a0505a0a05a5a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0708050603040102 0708050603040102 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvh8x beb1c0caced0dbde e5e7ecedeff0f1fa [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvh8x ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvh8x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvh8x 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvh8x 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    5a0505a0a05a5a05 5a0505a0a05a5a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvh8x 5a0505a0a05a5a05 5a0505a0a05a5a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0708050603040102 0708050603040102 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvh8x ced0deede5ecef00 00115e7eadbabec0 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvh8x ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvh8x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvh8x 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvh8x 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    5a0505a0a05a5a05 5a0505a0a05a5a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvh8x 5a0505a0a05a5a05 5a0505a0a05a5a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0708050603040102 0708050603040102 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvh8x becad0deedeffe00 00111e7ea5abadb1 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvh8x ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvh8x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvh8x 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvh8x 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    5a0505a0a05a5a05 5a0505a0a05a5a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvh8x 5a0505a0a05a5a05 5a0505a0a05a5a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0708050603040102 0708050603040102 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvh8x 8899aabbccddeeff 0011223344556677 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvh8x ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvh8x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvh8x 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvh8x 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    5a0505a0a05a5a05 5a0505a0a05a5a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvh8x 5a0505a0a05a5a05 5a0505a0a05a5a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0708050603040102 0708050603040102 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvh8x 7060504030201000 f0e0d0c0b0a09080 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvh8x ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvh8x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvh8x 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvh8x 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    5a0505a0a05a5a05 5a0505a0a05a5a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvh8x 5a0505a0a05a5a05 5a0505a0a05a5a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0708050603040102 0708050603040102 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvh8x 0000100800001010 0000100000001002 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvh8x ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvh8x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvh8x 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvh8x 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    5a0505a0a05a5a05 5a0505a0a05a5a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvh8x 5a0505a0a05a5a05 5a0505a0a05a5a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0708050603040102 0708050603040102 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvh8x 0010100800101010 0010100000101002 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvh8x ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvh8x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvh8x 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvh8x 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    5a0505a0a05a5a05 5a0505a0a05a5a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvh8x 5a0505a0a05a5a05 5a0505a0a05a5a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0708050603040102 0708050603040102 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvh8x 00001c0800001c10 00001c0000001c02 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvh8x ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvh8x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvh8x 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvh8x 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    5a0505a0a05a5a05 5a0505a0a05a5a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvh8x 5a0505a0a05a5a05 5a0505a0a05a5a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0708050603040102 0708050603040102 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvh8x 00101c0800101c10 00101c0000101c02 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvh8x ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvh8x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvh8x 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvh8x 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    5a0505a0a05a5a05 5a0505a0a05a5a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvh8x 5a0505a0a05a5a05 5a0505a0a05a5a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0708050603040102 0708050603040102 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvh8x 00001f0800001f10 00001f0000001f02 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvh8x ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvh8x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvh8x 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvh8x 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    5a0505a0a05a5a05 5a0505a0a05a5a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvh8x 5a0505a0a05a5a05 5a0505a0a05a5a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0708050603040102 0708050603040102 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvh8x 00101f0800101f10 00101f0000101f02 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvh8x ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvh8x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvh8x 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvh8x 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    5a0505a0a05a5a05 5a0505a0a05a5a05 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvh8x 5a0505a0a05a5a05 5a0505a0a05a5a05 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0708050603040102 0708050603040102 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+
+lxvb16x 0000000000000000 0000000000000000 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvb16x ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvb16x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvb16x 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvb16x 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    055aa0055aa0055a 055aa0055aa0055a [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvb16x 055aa0055aa0055a 055aa0055aa0055a [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0807060504030201 0807060504030201 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvb16x 0102010201020102 0102030405060708 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvb16x ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvb16x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvb16x 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvb16x 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    055aa0055aa0055a 055aa0055aa0055a [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvb16x 055aa0055aa0055a 055aa0055aa0055a [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0807060504030201 0807060504030201 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvb16x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvb16x ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvb16x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvb16x 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvb16x 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    055aa0055aa0055a 055aa0055aa0055a [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvb16x 055aa0055aa0055a 055aa0055aa0055a [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0807060504030201 0807060504030201 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvb16x 5555555555555555 5555555555555555 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvb16x ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvb16x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvb16x 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvb16x 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    055aa0055aa0055a 055aa0055aa0055a [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvb16x 055aa0055aa0055a 055aa0055aa0055a [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0807060504030201 0807060504030201 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvb16x 0102010201020102 08090a0b0c0d0e0f [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvb16x ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvb16x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvb16x 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvb16x 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    055aa0055aa0055a 055aa0055aa0055a [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvb16x 055aa0055aa0055a 055aa0055aa0055a [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0807060504030201 0807060504030201 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvb16x f8f9fafbfcfdfeff f0f1f2f3f4f5f6f7 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvb16x ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvb16x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvb16x 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvb16x 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    055aa0055aa0055a 055aa0055aa0055a [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvb16x 055aa0055aa0055a 055aa0055aa0055a [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0807060504030201 0807060504030201 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvb16x 070d111d1e555e70 7ea1a5a7abadb0ba [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvb16x ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvb16x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvb16x 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvb16x 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    055aa0055aa0055a 055aa0055aa0055a [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvb16x 055aa0055aa0055a 055aa0055aa0055a [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0807060504030201 0807060504030201 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvb16x beb1c0caced0dbde e5e7ecedeff0f1fa [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvb16x ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvb16x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvb16x 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvb16x 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    055aa0055aa0055a 055aa0055aa0055a [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvb16x 055aa0055aa0055a 055aa0055aa0055a [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0807060504030201 0807060504030201 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvb16x ced0deede5ecef00 00115e7eadbabec0 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvb16x ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvb16x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvb16x 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvb16x 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    055aa0055aa0055a 055aa0055aa0055a [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvb16x 055aa0055aa0055a 055aa0055aa0055a [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0807060504030201 0807060504030201 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvb16x becad0deedeffe00 00111e7ea5abadb1 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvb16x ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvb16x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvb16x 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvb16x 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    055aa0055aa0055a 055aa0055aa0055a [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvb16x 055aa0055aa0055a 055aa0055aa0055a [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0807060504030201 0807060504030201 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvb16x 8899aabbccddeeff 0011223344556677 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvb16x ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvb16x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvb16x 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvb16x 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    055aa0055aa0055a 055aa0055aa0055a [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvb16x 055aa0055aa0055a 055aa0055aa0055a [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0807060504030201 0807060504030201 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvb16x 7060504030201000 f0e0d0c0b0a09080 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvb16x ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvb16x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvb16x 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvb16x 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    055aa0055aa0055a 055aa0055aa0055a [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvb16x 055aa0055aa0055a 055aa0055aa0055a [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0807060504030201 0807060504030201 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvb16x 0000100800001010 0000100000001002 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvb16x ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvb16x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvb16x 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvb16x 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    055aa0055aa0055a 055aa0055aa0055a [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvb16x 055aa0055aa0055a 055aa0055aa0055a [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0807060504030201 0807060504030201 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvb16x 0010100800101010 0010100000101002 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvb16x ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvb16x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvb16x 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvb16x 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    055aa0055aa0055a 055aa0055aa0055a [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvb16x 055aa0055aa0055a 055aa0055aa0055a [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0807060504030201 0807060504030201 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvb16x 00001c0800001c10 00001c0000001c02 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvb16x ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvb16x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvb16x 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvb16x 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    055aa0055aa0055a 055aa0055aa0055a [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvb16x 055aa0055aa0055a 055aa0055aa0055a [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0807060504030201 0807060504030201 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvb16x 00101c0800101c10 00101c0000101c02 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvb16x ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvb16x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvb16x 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvb16x 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    055aa0055aa0055a 055aa0055aa0055a [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvb16x 055aa0055aa0055a 055aa0055aa0055a [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0807060504030201 0807060504030201 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvb16x 00001f0800001f10 00001f0000001f02 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvb16x ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvb16x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvb16x 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvb16x 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    055aa0055aa0055a 055aa0055aa0055a [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvb16x 055aa0055aa0055a 055aa0055aa0055a [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0807060504030201 0807060504030201 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+lxvb16x 00101f0800101f10 00101f0000101f02 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    ffffffffffffffff ffffffffffffffff [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ]
+lxvb16x ffffffffffffffff ffffffffffffffff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+lxvb16x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+lxvb16x 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+lxvb16x 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    055aa0055aa0055a 055aa0055aa0055a [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ]
+lxvb16x 055aa0055aa0055a 055aa0055aa0055a [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0807060504030201 0807060504030201 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ]
+
+stxvx 0000000000000000 0000000000000000 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 ffffffffffffffff ffffffffffffffff ]
+stxvx 0000000000000000 0000000000000000 [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvx 0000000000000000 0000000000000000 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 5555555555555555 5555555555555555 ]
+stxvx 0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+stxvx 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvx 0000000000000000 0000000000000000 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0102030405060708 0102030405060708 ]
+stxvx 0102010201020102 0102030405060708 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    0102030405060708 0102010201020102 [ 0102030405060708 0102010201020102 ffffffffffffffff ffffffffffffffff ]
+stxvx 0102030405060708 0102010201020102 [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    0102010201020102 0102030405060708 [ 0102010201020102 0102030405060708 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvx 0102010201020102 0102030405060708 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    0102030405060708 0102010201020102 [ 0102030405060708 0102010201020102 5555555555555555 5555555555555555 ]
+stxvx 0102030405060708 0102010201020102 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0102010201020102 0102030405060708 [ 0102010201020102 0102030405060708 0000000000000000 0000000000000000 ]
+stxvx 0102010201020102 0102030405060708 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    0102030405060708 0102010201020102 [ 0102030405060708 0102010201020102 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvx 0102030405060708 0102010201020102 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0102010201020102 0102030405060708 [ 0102010201020102 0102030405060708 0102030405060708 0102030405060708 ]
+stxvx aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ffffffffffffffff ffffffffffffffff ]
+stxvx aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvx aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 5555555555555555 5555555555555555 ]
+stxvx aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 0000000000000000 0000000000000000 ]
+stxvx aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvx aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 0102030405060708 0102030405060708 ]
+stxvx 5555555555555555 5555555555555555 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 ffffffffffffffff ffffffffffffffff ]
+stxvx 5555555555555555 5555555555555555 [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvx 5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+stxvx 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 0000000000000000 0000000000000000 ]
+stxvx 5555555555555555 5555555555555555 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvx 5555555555555555 5555555555555555 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 0102030405060708 0102030405060708 ]
+stxvx 0102010201020102 08090a0b0c0d0e0f [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    08090a0b0c0d0e0f 0102010201020102 [ 08090a0b0c0d0e0f 0102010201020102 ffffffffffffffff ffffffffffffffff ]
+stxvx 08090a0b0c0d0e0f 0102010201020102 [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    0102010201020102 08090a0b0c0d0e0f [ 0102010201020102 08090a0b0c0d0e0f aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvx 0102010201020102 08090a0b0c0d0e0f [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    08090a0b0c0d0e0f 0102010201020102 [ 08090a0b0c0d0e0f 0102010201020102 5555555555555555 5555555555555555 ]
+stxvx 08090a0b0c0d0e0f 0102010201020102 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0102010201020102 08090a0b0c0d0e0f [ 0102010201020102 08090a0b0c0d0e0f 0000000000000000 0000000000000000 ]
+stxvx 0102010201020102 08090a0b0c0d0e0f [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    08090a0b0c0d0e0f 0102010201020102 [ 08090a0b0c0d0e0f 0102010201020102 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvx 08090a0b0c0d0e0f 0102010201020102 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0102010201020102 08090a0b0c0d0e0f [ 0102010201020102 08090a0b0c0d0e0f 0102030405060708 0102030405060708 ]
+stxvx f8f9fafbfcfdfeff f0f1f2f3f4f5f6f7 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    f0f1f2f3f4f5f6f7 f8f9fafbfcfdfeff [ f0f1f2f3f4f5f6f7 f8f9fafbfcfdfeff ffffffffffffffff ffffffffffffffff ]
+stxvx f0f1f2f3f4f5f6f7 f8f9fafbfcfdfeff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    f8f9fafbfcfdfeff f0f1f2f3f4f5f6f7 [ f8f9fafbfcfdfeff f0f1f2f3f4f5f6f7 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvx f8f9fafbfcfdfeff f0f1f2f3f4f5f6f7 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    f0f1f2f3f4f5f6f7 f8f9fafbfcfdfeff [ f0f1f2f3f4f5f6f7 f8f9fafbfcfdfeff 5555555555555555 5555555555555555 ]
+stxvx f0f1f2f3f4f5f6f7 f8f9fafbfcfdfeff [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    f8f9fafbfcfdfeff f0f1f2f3f4f5f6f7 [ f8f9fafbfcfdfeff f0f1f2f3f4f5f6f7 0000000000000000 0000000000000000 ]
+stxvx f8f9fafbfcfdfeff f0f1f2f3f4f5f6f7 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    f0f1f2f3f4f5f6f7 f8f9fafbfcfdfeff [ f0f1f2f3f4f5f6f7 f8f9fafbfcfdfeff 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvx f0f1f2f3f4f5f6f7 f8f9fafbfcfdfeff [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    f8f9fafbfcfdfeff f0f1f2f3f4f5f6f7 [ f8f9fafbfcfdfeff f0f1f2f3f4f5f6f7 0102030405060708 0102030405060708 ]
+stxvx 070d111d1e555e70 7ea1a5a7abadb0ba [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    7ea1a5a7abadb0ba 070d111d1e555e70 [ 7ea1a5a7abadb0ba 070d111d1e555e70 ffffffffffffffff ffffffffffffffff ]
+stxvx 7ea1a5a7abadb0ba 070d111d1e555e70 [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    070d111d1e555e70 7ea1a5a7abadb0ba [ 070d111d1e555e70 7ea1a5a7abadb0ba aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvx 070d111d1e555e70 7ea1a5a7abadb0ba [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    7ea1a5a7abadb0ba 070d111d1e555e70 [ 7ea1a5a7abadb0ba 070d111d1e555e70 5555555555555555 5555555555555555 ]
+stxvx 7ea1a5a7abadb0ba 070d111d1e555e70 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    070d111d1e555e70 7ea1a5a7abadb0ba [ 070d111d1e555e70 7ea1a5a7abadb0ba 0000000000000000 0000000000000000 ]
+stxvx 070d111d1e555e70 7ea1a5a7abadb0ba [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    7ea1a5a7abadb0ba 070d111d1e555e70 [ 7ea1a5a7abadb0ba 070d111d1e555e70 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvx 7ea1a5a7abadb0ba 070d111d1e555e70 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    070d111d1e555e70 7ea1a5a7abadb0ba [ 070d111d1e555e70 7ea1a5a7abadb0ba 0102030405060708 0102030405060708 ]
+stxvx beb1c0caced0dbde e5e7ecedeff0f1fa [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    e5e7ecedeff0f1fa beb1c0caced0dbde [ e5e7ecedeff0f1fa beb1c0caced0dbde ffffffffffffffff ffffffffffffffff ]
+stxvx e5e7ecedeff0f1fa beb1c0caced0dbde [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    beb1c0caced0dbde e5e7ecedeff0f1fa [ beb1c0caced0dbde e5e7ecedeff0f1fa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvx beb1c0caced0dbde e5e7ecedeff0f1fa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    e5e7ecedeff0f1fa beb1c0caced0dbde [ e5e7ecedeff0f1fa beb1c0caced0dbde 5555555555555555 5555555555555555 ]
+stxvx e5e7ecedeff0f1fa beb1c0caced0dbde [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    beb1c0caced0dbde e5e7ecedeff0f1fa [ beb1c0caced0dbde e5e7ecedeff0f1fa 0000000000000000 0000000000000000 ]
+stxvx beb1c0caced0dbde e5e7ecedeff0f1fa [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    e5e7ecedeff0f1fa beb1c0caced0dbde [ e5e7ecedeff0f1fa beb1c0caced0dbde 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvx e5e7ecedeff0f1fa beb1c0caced0dbde [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    beb1c0caced0dbde e5e7ecedeff0f1fa [ beb1c0caced0dbde e5e7ecedeff0f1fa 0102030405060708 0102030405060708 ]
+stxvx ced0deede5ecef00 00115e7eadbabec0 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    00115e7eadbabec0 ced0deede5ecef00 [ 00115e7eadbabec0 ced0deede5ecef00 ffffffffffffffff ffffffffffffffff ]
+stxvx 00115e7eadbabec0 ced0deede5ecef00 [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    ced0deede5ecef00 00115e7eadbabec0 [ ced0deede5ecef00 00115e7eadbabec0 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvx ced0deede5ecef00 00115e7eadbabec0 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    00115e7eadbabec0 ced0deede5ecef00 [ 00115e7eadbabec0 ced0deede5ecef00 5555555555555555 5555555555555555 ]
+stxvx 00115e7eadbabec0 ced0deede5ecef00 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    ced0deede5ecef00 00115e7eadbabec0 [ ced0deede5ecef00 00115e7eadbabec0 0000000000000000 0000000000000000 ]
+stxvx ced0deede5ecef00 00115e7eadbabec0 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    00115e7eadbabec0 ced0deede5ecef00 [ 00115e7eadbabec0 ced0deede5ecef00 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvx 00115e7eadbabec0 ced0deede5ecef00 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    ced0deede5ecef00 00115e7eadbabec0 [ ced0deede5ecef00 00115e7eadbabec0 0102030405060708 0102030405060708 ]
+stxvx becad0deedeffe00 00111e7ea5abadb1 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    00111e7ea5abadb1 becad0deedeffe00 [ 00111e7ea5abadb1 becad0deedeffe00 ffffffffffffffff ffffffffffffffff ]
+stxvx 00111e7ea5abadb1 becad0deedeffe00 [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    becad0deedeffe00 00111e7ea5abadb1 [ becad0deedeffe00 00111e7ea5abadb1 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvx becad0deedeffe00 00111e7ea5abadb1 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    00111e7ea5abadb1 becad0deedeffe00 [ 00111e7ea5abadb1 becad0deedeffe00 5555555555555555 5555555555555555 ]
+stxvx 00111e7ea5abadb1 becad0deedeffe00 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    becad0deedeffe00 00111e7ea5abadb1 [ becad0deedeffe00 00111e7ea5abadb1 0000000000000000 0000000000000000 ]
+stxvx becad0deedeffe00 00111e7ea5abadb1 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    00111e7ea5abadb1 becad0deedeffe00 [ 00111e7ea5abadb1 becad0deedeffe00 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvx 00111e7ea5abadb1 becad0deedeffe00 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    becad0deedeffe00 00111e7ea5abadb1 [ becad0deedeffe00 00111e7ea5abadb1 0102030405060708 0102030405060708 ]
+stxvx 8899aabbccddeeff 0011223344556677 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    0011223344556677 8899aabbccddeeff [ 0011223344556677 8899aabbccddeeff ffffffffffffffff ffffffffffffffff ]
+stxvx 0011223344556677 8899aabbccddeeff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    8899aabbccddeeff 0011223344556677 [ 8899aabbccddeeff 0011223344556677 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvx 8899aabbccddeeff 0011223344556677 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    0011223344556677 8899aabbccddeeff [ 0011223344556677 8899aabbccddeeff 5555555555555555 5555555555555555 ]
+stxvx 0011223344556677 8899aabbccddeeff [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    8899aabbccddeeff 0011223344556677 [ 8899aabbccddeeff 0011223344556677 0000000000000000 0000000000000000 ]
+stxvx 8899aabbccddeeff 0011223344556677 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    0011223344556677 8899aabbccddeeff [ 0011223344556677 8899aabbccddeeff 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvx 0011223344556677 8899aabbccddeeff [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    8899aabbccddeeff 0011223344556677 [ 8899aabbccddeeff 0011223344556677 0102030405060708 0102030405060708 ]
+stxvx 7060504030201000 f0e0d0c0b0a09080 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    f0e0d0c0b0a09080 7060504030201000 [ f0e0d0c0b0a09080 7060504030201000 ffffffffffffffff ffffffffffffffff ]
+stxvx f0e0d0c0b0a09080 7060504030201000 [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    7060504030201000 f0e0d0c0b0a09080 [ 7060504030201000 f0e0d0c0b0a09080 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvx 7060504030201000 f0e0d0c0b0a09080 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    f0e0d0c0b0a09080 7060504030201000 [ f0e0d0c0b0a09080 7060504030201000 5555555555555555 5555555555555555 ]
+stxvx f0e0d0c0b0a09080 7060504030201000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    7060504030201000 f0e0d0c0b0a09080 [ 7060504030201000 f0e0d0c0b0a09080 0000000000000000 0000000000000000 ]
+stxvx 7060504030201000 f0e0d0c0b0a09080 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    f0e0d0c0b0a09080 7060504030201000 [ f0e0d0c0b0a09080 7060504030201000 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvx f0e0d0c0b0a09080 7060504030201000 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    7060504030201000 f0e0d0c0b0a09080 [ 7060504030201000 f0e0d0c0b0a09080 0102030405060708 0102030405060708 ]
+stxvx 0000100800001010 0000100000001002 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    0000100000001002 0000100800001010 [ 0000100000001002 0000100800001010 ffffffffffffffff ffffffffffffffff ]
+stxvx 0000100000001002 0000100800001010 [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    0000100800001010 0000100000001002 [ 0000100800001010 0000100000001002 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvx 0000100800001010 0000100000001002 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    0000100000001002 0000100800001010 [ 0000100000001002 0000100800001010 5555555555555555 5555555555555555 ]
+stxvx 0000100000001002 0000100800001010 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000100800001010 0000100000001002 [ 0000100800001010 0000100000001002 0000000000000000 0000000000000000 ]
+stxvx 0000100800001010 0000100000001002 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    0000100000001002 0000100800001010 [ 0000100000001002 0000100800001010 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvx 0000100000001002 0000100800001010 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0000100800001010 0000100000001002 [ 0000100800001010 0000100000001002 0102030405060708 0102030405060708 ]
+stxvx 0010100800101010 0010100000101002 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    0010100000101002 0010100800101010 [ 0010100000101002 0010100800101010 ffffffffffffffff ffffffffffffffff ]
+stxvx 0010100000101002 0010100800101010 [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    0010100800101010 0010100000101002 [ 0010100800101010 0010100000101002 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvx 0010100800101010 0010100000101002 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    0010100000101002 0010100800101010 [ 0010100000101002 0010100800101010 5555555555555555 5555555555555555 ]
+stxvx 0010100000101002 0010100800101010 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0010100800101010 0010100000101002 [ 0010100800101010 0010100000101002 0000000000000000 0000000000000000 ]
+stxvx 0010100800101010 0010100000101002 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    0010100000101002 0010100800101010 [ 0010100000101002 0010100800101010 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvx 0010100000101002 0010100800101010 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0010100800101010 0010100000101002 [ 0010100800101010 0010100000101002 0102030405060708 0102030405060708 ]
+stxvx 00001c0800001c10 00001c0000001c02 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    00001c0000001c02 00001c0800001c10 [ 00001c0000001c02 00001c0800001c10 ffffffffffffffff ffffffffffffffff ]
+stxvx 00001c0000001c02 00001c0800001c10 [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    00001c0800001c10 00001c0000001c02 [ 00001c0800001c10 00001c0000001c02 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvx 00001c0800001c10 00001c0000001c02 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    00001c0000001c02 00001c0800001c10 [ 00001c0000001c02 00001c0800001c10 5555555555555555 5555555555555555 ]
+stxvx 00001c0000001c02 00001c0800001c10 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    00001c0800001c10 00001c0000001c02 [ 00001c0800001c10 00001c0000001c02 0000000000000000 0000000000000000 ]
+stxvx 00001c0800001c10 00001c0000001c02 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    00001c0000001c02 00001c0800001c10 [ 00001c0000001c02 00001c0800001c10 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvx 00001c0000001c02 00001c0800001c10 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    00001c0800001c10 00001c0000001c02 [ 00001c0800001c10 00001c0000001c02 0102030405060708 0102030405060708 ]
+stxvx 00101c0800101c10 00101c0000101c02 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    00101c0000101c02 00101c0800101c10 [ 00101c0000101c02 00101c0800101c10 ffffffffffffffff ffffffffffffffff ]
+stxvx 00101c0000101c02 00101c0800101c10 [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    00101c0800101c10 00101c0000101c02 [ 00101c0800101c10 00101c0000101c02 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvx 00101c0800101c10 00101c0000101c02 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    00101c0000101c02 00101c0800101c10 [ 00101c0000101c02 00101c0800101c10 5555555555555555 5555555555555555 ]
+stxvx 00101c0000101c02 00101c0800101c10 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    00101c0800101c10 00101c0000101c02 [ 00101c0800101c10 00101c0000101c02 0000000000000000 0000000000000000 ]
+stxvx 00101c0800101c10 00101c0000101c02 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    00101c0000101c02 00101c0800101c10 [ 00101c0000101c02 00101c0800101c10 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvx 00101c0000101c02 00101c0800101c10 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    00101c0800101c10 00101c0000101c02 [ 00101c0800101c10 00101c0000101c02 0102030405060708 0102030405060708 ]
+stxvx 00001f0800001f10 00001f0000001f02 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    00001f0000001f02 00001f0800001f10 [ 00001f0000001f02 00001f0800001f10 ffffffffffffffff ffffffffffffffff ]
+stxvx 00001f0000001f02 00001f0800001f10 [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    00001f0800001f10 00001f0000001f02 [ 00001f0800001f10 00001f0000001f02 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvx 00001f0800001f10 00001f0000001f02 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    00001f0000001f02 00001f0800001f10 [ 00001f0000001f02 00001f0800001f10 5555555555555555 5555555555555555 ]
+stxvx 00001f0000001f02 00001f0800001f10 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    00001f0800001f10 00001f0000001f02 [ 00001f0800001f10 00001f0000001f02 0000000000000000 0000000000000000 ]
+stxvx 00001f0800001f10 00001f0000001f02 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    00001f0000001f02 00001f0800001f10 [ 00001f0000001f02 00001f0800001f10 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvx 00001f0000001f02 00001f0800001f10 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    00001f0800001f10 00001f0000001f02 [ 00001f0800001f10 00001f0000001f02 0102030405060708 0102030405060708 ]
+stxvx 00101f0800101f10 00101f0000101f02 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    00101f0000101f02 00101f0800101f10 [ 00101f0000101f02 00101f0800101f10 ffffffffffffffff ffffffffffffffff ]
+stxvx 00101f0000101f02 00101f0800101f10 [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    00101f0800101f10 00101f0000101f02 [ 00101f0800101f10 00101f0000101f02 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvx 00101f0800101f10 00101f0000101f02 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    00101f0000101f02 00101f0800101f10 [ 00101f0000101f02 00101f0800101f10 5555555555555555 5555555555555555 ]
+stxvx 00101f0000101f02 00101f0800101f10 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    00101f0800101f10 00101f0000101f02 [ 00101f0800101f10 00101f0000101f02 0000000000000000 0000000000000000 ]
+stxvx 00101f0800101f10 00101f0000101f02 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    00101f0000101f02 00101f0800101f10 [ 00101f0000101f02 00101f0800101f10 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvx 00101f0000101f02 00101f0800101f10 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    00101f0800101f10 00101f0000101f02 [ 00101f0800101f10 00101f0000101f02 0102030405060708 0102030405060708 ]
+
+stxvh8x 0000000000000000 0000000000000000 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 ffffffffffffffff ffffffffffffffff ]
+stxvh8x 0000000000000000 0000000000000000 [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvh8x 0000000000000000 0000000000000000 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 5555555555555555 5555555555555555 ]
+stxvh8x 0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+stxvh8x 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvh8x 0000000000000000 0000000000000000 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0102030405060708 0102030405060708 ]
+stxvh8x 0102010201020102 0102030405060708 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    0102030405060708 0102010201020102 [ 0708050603040102 0102010201020102 ffffffffffffffff ffffffffffffffff ]
+stxvh8x 0102030405060708 0102010201020102 [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    0102010201020102 0102030405060708 [ 0102010201020102 0708050603040102 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvh8x 0102010201020102 0102030405060708 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    0102030405060708 0102010201020102 [ 0708050603040102 0102010201020102 5555555555555555 5555555555555555 ]
+stxvh8x 0102030405060708 0102010201020102 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0102010201020102 0102030405060708 [ 0102010201020102 0708050603040102 0000000000000000 0000000000000000 ]
+stxvh8x 0102010201020102 0102030405060708 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    0102030405060708 0102010201020102 [ 0708050603040102 0102010201020102 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvh8x 0102030405060708 0102010201020102 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0102010201020102 0102030405060708 [ 0102010201020102 0708050603040102 0102030405060708 0102030405060708 ]
+stxvh8x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ffffffffffffffff ffffffffffffffff ]
+stxvh8x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvh8x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 5555555555555555 5555555555555555 ]
+stxvh8x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 0000000000000000 0000000000000000 ]
+stxvh8x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvh8x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 0102030405060708 0102030405060708 ]
+stxvh8x 5555555555555555 5555555555555555 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 ffffffffffffffff ffffffffffffffff ]
+stxvh8x 5555555555555555 5555555555555555 [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvh8x 5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+stxvh8x 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 0000000000000000 0000000000000000 ]
+stxvh8x 5555555555555555 5555555555555555 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvh8x 5555555555555555 5555555555555555 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 0102030405060708 0102030405060708 ]
+stxvh8x 0102010201020102 08090a0b0c0d0e0f [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    08090a0b0c0d0e0f 0102010201020102 [ 0e0f0c0d0a0b0809 0102010201020102 ffffffffffffffff ffffffffffffffff ]
+stxvh8x 08090a0b0c0d0e0f 0102010201020102 [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    0102010201020102 08090a0b0c0d0e0f [ 0102010201020102 0e0f0c0d0a0b0809 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvh8x 0102010201020102 08090a0b0c0d0e0f [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    08090a0b0c0d0e0f 0102010201020102 [ 0e0f0c0d0a0b0809 0102010201020102 5555555555555555 5555555555555555 ]
+stxvh8x 08090a0b0c0d0e0f 0102010201020102 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0102010201020102 08090a0b0c0d0e0f [ 0102010201020102 0e0f0c0d0a0b0809 0000000000000000 0000000000000000 ]
+stxvh8x 0102010201020102 08090a0b0c0d0e0f [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    08090a0b0c0d0e0f 0102010201020102 [ 0e0f0c0d0a0b0809 0102010201020102 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvh8x 08090a0b0c0d0e0f 0102010201020102 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0102010201020102 08090a0b0c0d0e0f [ 0102010201020102 0e0f0c0d0a0b0809 0102030405060708 0102030405060708 ]
+stxvh8x f8f9fafbfcfdfeff f0f1f2f3f4f5f6f7 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    f0f1f2f3f4f5f6f7 f8f9fafbfcfdfeff [ f6f7f4f5f2f3f0f1 fefffcfdfafbf8f9 ffffffffffffffff ffffffffffffffff ]
+stxvh8x f0f1f2f3f4f5f6f7 f8f9fafbfcfdfeff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    f8f9fafbfcfdfeff f0f1f2f3f4f5f6f7 [ fefffcfdfafbf8f9 f6f7f4f5f2f3f0f1 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvh8x f8f9fafbfcfdfeff f0f1f2f3f4f5f6f7 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    f0f1f2f3f4f5f6f7 f8f9fafbfcfdfeff [ f6f7f4f5f2f3f0f1 fefffcfdfafbf8f9 5555555555555555 5555555555555555 ]
+stxvh8x f0f1f2f3f4f5f6f7 f8f9fafbfcfdfeff [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    f8f9fafbfcfdfeff f0f1f2f3f4f5f6f7 [ fefffcfdfafbf8f9 f6f7f4f5f2f3f0f1 0000000000000000 0000000000000000 ]
+stxvh8x f8f9fafbfcfdfeff f0f1f2f3f4f5f6f7 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    f0f1f2f3f4f5f6f7 f8f9fafbfcfdfeff [ f6f7f4f5f2f3f0f1 fefffcfdfafbf8f9 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvh8x f0f1f2f3f4f5f6f7 f8f9fafbfcfdfeff [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    f8f9fafbfcfdfeff f0f1f2f3f4f5f6f7 [ fefffcfdfafbf8f9 f6f7f4f5f2f3f0f1 0102030405060708 0102030405060708 ]
+stxvh8x 070d111d1e555e70 7ea1a5a7abadb0ba [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    7ea1a5a7abadb0ba 070d111d1e555e70 [ b0baabada5a77ea1 5e701e55111d070d ffffffffffffffff ffffffffffffffff ]
+stxvh8x 7ea1a5a7abadb0ba 070d111d1e555e70 [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    070d111d1e555e70 7ea1a5a7abadb0ba [ 5e701e55111d070d b0baabada5a77ea1 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvh8x 070d111d1e555e70 7ea1a5a7abadb0ba [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    7ea1a5a7abadb0ba 070d111d1e555e70 [ b0baabada5a77ea1 5e701e55111d070d 5555555555555555 5555555555555555 ]
+stxvh8x 7ea1a5a7abadb0ba 070d111d1e555e70 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    070d111d1e555e70 7ea1a5a7abadb0ba [ 5e701e55111d070d b0baabada5a77ea1 0000000000000000 0000000000000000 ]
+stxvh8x 070d111d1e555e70 7ea1a5a7abadb0ba [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    7ea1a5a7abadb0ba 070d111d1e555e70 [ b0baabada5a77ea1 5e701e55111d070d 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvh8x 7ea1a5a7abadb0ba 070d111d1e555e70 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    070d111d1e555e70 7ea1a5a7abadb0ba [ 5e701e55111d070d b0baabada5a77ea1 0102030405060708 0102030405060708 ]
+stxvh8x beb1c0caced0dbde e5e7ecedeff0f1fa [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    e5e7ecedeff0f1fa beb1c0caced0dbde [ f1faeff0ecede5e7 dbdeced0c0cabeb1 ffffffffffffffff ffffffffffffffff ]
+stxvh8x e5e7ecedeff0f1fa beb1c0caced0dbde [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    beb1c0caced0dbde e5e7ecedeff0f1fa [ dbdeced0c0cabeb1 f1faeff0ecede5e7 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvh8x beb1c0caced0dbde e5e7ecedeff0f1fa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    e5e7ecedeff0f1fa beb1c0caced0dbde [ f1faeff0ecede5e7 dbdeced0c0cabeb1 5555555555555555 5555555555555555 ]
+stxvh8x e5e7ecedeff0f1fa beb1c0caced0dbde [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    beb1c0caced0dbde e5e7ecedeff0f1fa [ dbdeced0c0cabeb1 f1faeff0ecede5e7 0000000000000000 0000000000000000 ]
+stxvh8x beb1c0caced0dbde e5e7ecedeff0f1fa [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    e5e7ecedeff0f1fa beb1c0caced0dbde [ f1faeff0ecede5e7 dbdeced0c0cabeb1 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvh8x e5e7ecedeff0f1fa beb1c0caced0dbde [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    beb1c0caced0dbde e5e7ecedeff0f1fa [ dbdeced0c0cabeb1 f1faeff0ecede5e7 0102030405060708 0102030405060708 ]
+stxvh8x ced0deede5ecef00 00115e7eadbabec0 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    00115e7eadbabec0 ced0deede5ecef00 [ bec0adba5e7e0011 ef00e5ecdeedced0 ffffffffffffffff ffffffffffffffff ]
+stxvh8x 00115e7eadbabec0 ced0deede5ecef00 [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    ced0deede5ecef00 00115e7eadbabec0 [ ef00e5ecdeedced0 bec0adba5e7e0011 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvh8x ced0deede5ecef00 00115e7eadbabec0 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    00115e7eadbabec0 ced0deede5ecef00 [ bec0adba5e7e0011 ef00e5ecdeedced0 5555555555555555 5555555555555555 ]
+stxvh8x 00115e7eadbabec0 ced0deede5ecef00 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    ced0deede5ecef00 00115e7eadbabec0 [ ef00e5ecdeedced0 bec0adba5e7e0011 0000000000000000 0000000000000000 ]
+stxvh8x ced0deede5ecef00 00115e7eadbabec0 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    00115e7eadbabec0 ced0deede5ecef00 [ bec0adba5e7e0011 ef00e5ecdeedced0 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvh8x 00115e7eadbabec0 ced0deede5ecef00 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    ced0deede5ecef00 00115e7eadbabec0 [ ef00e5ecdeedced0 bec0adba5e7e0011 0102030405060708 0102030405060708 ]
+stxvh8x becad0deedeffe00 00111e7ea5abadb1 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    00111e7ea5abadb1 becad0deedeffe00 [ adb1a5ab1e7e0011 fe00edefd0debeca ffffffffffffffff ffffffffffffffff ]
+stxvh8x 00111e7ea5abadb1 becad0deedeffe00 [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    becad0deedeffe00 00111e7ea5abadb1 [ fe00edefd0debeca adb1a5ab1e7e0011 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvh8x becad0deedeffe00 00111e7ea5abadb1 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    00111e7ea5abadb1 becad0deedeffe00 [ adb1a5ab1e7e0011 fe00edefd0debeca 5555555555555555 5555555555555555 ]
+stxvh8x 00111e7ea5abadb1 becad0deedeffe00 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    becad0deedeffe00 00111e7ea5abadb1 [ fe00edefd0debeca adb1a5ab1e7e0011 0000000000000000 0000000000000000 ]
+stxvh8x becad0deedeffe00 00111e7ea5abadb1 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    00111e7ea5abadb1 becad0deedeffe00 [ adb1a5ab1e7e0011 fe00edefd0debeca 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvh8x 00111e7ea5abadb1 becad0deedeffe00 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    becad0deedeffe00 00111e7ea5abadb1 [ fe00edefd0debeca adb1a5ab1e7e0011 0102030405060708 0102030405060708 ]
+stxvh8x 8899aabbccddeeff 0011223344556677 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    0011223344556677 8899aabbccddeeff [ 6677445522330011 eeffccddaabb8899 ffffffffffffffff ffffffffffffffff ]
+stxvh8x 0011223344556677 8899aabbccddeeff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    8899aabbccddeeff 0011223344556677 [ eeffccddaabb8899 6677445522330011 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvh8x 8899aabbccddeeff 0011223344556677 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    0011223344556677 8899aabbccddeeff [ 6677445522330011 eeffccddaabb8899 5555555555555555 5555555555555555 ]
+stxvh8x 0011223344556677 8899aabbccddeeff [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    8899aabbccddeeff 0011223344556677 [ eeffccddaabb8899 6677445522330011 0000000000000000 0000000000000000 ]
+stxvh8x 8899aabbccddeeff 0011223344556677 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    0011223344556677 8899aabbccddeeff [ 6677445522330011 eeffccddaabb8899 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvh8x 0011223344556677 8899aabbccddeeff [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    8899aabbccddeeff 0011223344556677 [ eeffccddaabb8899 6677445522330011 0102030405060708 0102030405060708 ]
+stxvh8x 7060504030201000 f0e0d0c0b0a09080 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    f0e0d0c0b0a09080 7060504030201000 [ 9080b0a0d0c0f0e0 1000302050407060 ffffffffffffffff ffffffffffffffff ]
+stxvh8x f0e0d0c0b0a09080 7060504030201000 [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    7060504030201000 f0e0d0c0b0a09080 [ 1000302050407060 9080b0a0d0c0f0e0 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvh8x 7060504030201000 f0e0d0c0b0a09080 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    f0e0d0c0b0a09080 7060504030201000 [ 9080b0a0d0c0f0e0 1000302050407060 5555555555555555 5555555555555555 ]
+stxvh8x f0e0d0c0b0a09080 7060504030201000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    7060504030201000 f0e0d0c0b0a09080 [ 1000302050407060 9080b0a0d0c0f0e0 0000000000000000 0000000000000000 ]
+stxvh8x 7060504030201000 f0e0d0c0b0a09080 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    f0e0d0c0b0a09080 7060504030201000 [ 9080b0a0d0c0f0e0 1000302050407060 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvh8x f0e0d0c0b0a09080 7060504030201000 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    7060504030201000 f0e0d0c0b0a09080 [ 1000302050407060 9080b0a0d0c0f0e0 0102030405060708 0102030405060708 ]
+stxvh8x 0000100800001010 0000100000001002 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    0000100000001002 0000100800001010 [ 1002000010000000 1010000010080000 ffffffffffffffff ffffffffffffffff ]
+stxvh8x 0000100000001002 0000100800001010 [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    0000100800001010 0000100000001002 [ 1010000010080000 1002000010000000 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvh8x 0000100800001010 0000100000001002 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    0000100000001002 0000100800001010 [ 1002000010000000 1010000010080000 5555555555555555 5555555555555555 ]
+stxvh8x 0000100000001002 0000100800001010 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000100800001010 0000100000001002 [ 1010000010080000 1002000010000000 0000000000000000 0000000000000000 ]
+stxvh8x 0000100800001010 0000100000001002 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    0000100000001002 0000100800001010 [ 1002000010000000 1010000010080000 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvh8x 0000100000001002 0000100800001010 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0000100800001010 0000100000001002 [ 1010000010080000 1002000010000000 0102030405060708 0102030405060708 ]
+stxvh8x 0010100800101010 0010100000101002 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    0010100000101002 0010100800101010 [ 1002001010000010 1010001010080010 ffffffffffffffff ffffffffffffffff ]
+stxvh8x 0010100000101002 0010100800101010 [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    0010100800101010 0010100000101002 [ 1010001010080010 1002001010000010 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvh8x 0010100800101010 0010100000101002 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    0010100000101002 0010100800101010 [ 1002001010000010 1010001010080010 5555555555555555 5555555555555555 ]
+stxvh8x 0010100000101002 0010100800101010 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0010100800101010 0010100000101002 [ 1010001010080010 1002001010000010 0000000000000000 0000000000000000 ]
+stxvh8x 0010100800101010 0010100000101002 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    0010100000101002 0010100800101010 [ 1002001010000010 1010001010080010 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvh8x 0010100000101002 0010100800101010 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0010100800101010 0010100000101002 [ 1010001010080010 1002001010000010 0102030405060708 0102030405060708 ]
+stxvh8x 00001c0800001c10 00001c0000001c02 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    00001c0000001c02 00001c0800001c10 [ 1c0200001c000000 1c1000001c080000 ffffffffffffffff ffffffffffffffff ]
+stxvh8x 00001c0000001c02 00001c0800001c10 [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    00001c0800001c10 00001c0000001c02 [ 1c1000001c080000 1c0200001c000000 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvh8x 00001c0800001c10 00001c0000001c02 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    00001c0000001c02 00001c0800001c10 [ 1c0200001c000000 1c1000001c080000 5555555555555555 5555555555555555 ]
+stxvh8x 00001c0000001c02 00001c0800001c10 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    00001c0800001c10 00001c0000001c02 [ 1c1000001c080000 1c0200001c000000 0000000000000000 0000000000000000 ]
+stxvh8x 00001c0800001c10 00001c0000001c02 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    00001c0000001c02 00001c0800001c10 [ 1c0200001c000000 1c1000001c080000 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvh8x 00001c0000001c02 00001c0800001c10 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    00001c0800001c10 00001c0000001c02 [ 1c1000001c080000 1c0200001c000000 0102030405060708 0102030405060708 ]
+stxvh8x 00101c0800101c10 00101c0000101c02 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    00101c0000101c02 00101c0800101c10 [ 1c0200101c000010 1c1000101c080010 ffffffffffffffff ffffffffffffffff ]
+stxvh8x 00101c0000101c02 00101c0800101c10 [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    00101c0800101c10 00101c0000101c02 [ 1c1000101c080010 1c0200101c000010 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvh8x 00101c0800101c10 00101c0000101c02 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    00101c0000101c02 00101c0800101c10 [ 1c0200101c000010 1c1000101c080010 5555555555555555 5555555555555555 ]
+stxvh8x 00101c0000101c02 00101c0800101c10 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    00101c0800101c10 00101c0000101c02 [ 1c1000101c080010 1c0200101c000010 0000000000000000 0000000000000000 ]
+stxvh8x 00101c0800101c10 00101c0000101c02 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    00101c0000101c02 00101c0800101c10 [ 1c0200101c000010 1c1000101c080010 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvh8x 00101c0000101c02 00101c0800101c10 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    00101c0800101c10 00101c0000101c02 [ 1c1000101c080010 1c0200101c000010 0102030405060708 0102030405060708 ]
+stxvh8x 00001f0800001f10 00001f0000001f02 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    00001f0000001f02 00001f0800001f10 [ 1f0200001f000000 1f1000001f080000 ffffffffffffffff ffffffffffffffff ]
+stxvh8x 00001f0000001f02 00001f0800001f10 [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    00001f0800001f10 00001f0000001f02 [ 1f1000001f080000 1f0200001f000000 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvh8x 00001f0800001f10 00001f0000001f02 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    00001f0000001f02 00001f0800001f10 [ 1f0200001f000000 1f1000001f080000 5555555555555555 5555555555555555 ]
+stxvh8x 00001f0000001f02 00001f0800001f10 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    00001f0800001f10 00001f0000001f02 [ 1f1000001f080000 1f0200001f000000 0000000000000000 0000000000000000 ]
+stxvh8x 00001f0800001f10 00001f0000001f02 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    00001f0000001f02 00001f0800001f10 [ 1f0200001f000000 1f1000001f080000 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvh8x 00001f0000001f02 00001f0800001f10 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    00001f0800001f10 00001f0000001f02 [ 1f1000001f080000 1f0200001f000000 0102030405060708 0102030405060708 ]
+stxvh8x 00101f0800101f10 00101f0000101f02 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    00101f0000101f02 00101f0800101f10 [ 1f0200101f000010 1f1000101f080010 ffffffffffffffff ffffffffffffffff ]
+stxvh8x 00101f0000101f02 00101f0800101f10 [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    00101f0800101f10 00101f0000101f02 [ 1f1000101f080010 1f0200101f000010 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvh8x 00101f0800101f10 00101f0000101f02 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    00101f0000101f02 00101f0800101f10 [ 1f0200101f000010 1f1000101f080010 5555555555555555 5555555555555555 ]
+stxvh8x 00101f0000101f02 00101f0800101f10 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    00101f0800101f10 00101f0000101f02 [ 1f1000101f080010 1f0200101f000010 0000000000000000 0000000000000000 ]
+stxvh8x 00101f0800101f10 00101f0000101f02 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    00101f0000101f02 00101f0800101f10 [ 1f0200101f000010 1f1000101f080010 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvh8x 00101f0000101f02 00101f0800101f10 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    00101f0800101f10 00101f0000101f02 [ 1f1000101f080010 1f0200101f000010 0102030405060708 0102030405060708 ]
+
+stxvb16x 0000000000000000 0000000000000000 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 ffffffffffffffff ffffffffffffffff ]
+stxvb16x 0000000000000000 0000000000000000 [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvb16x 0000000000000000 0000000000000000 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 5555555555555555 5555555555555555 ]
+stxvb16x 0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ]
+stxvb16x 0000000000000000 0000000000000000 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvb16x 0000000000000000 0000000000000000 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0000000000000000 0000000000000000 [ 0000000000000000 0000000000000000 0102030405060708 0102030405060708 ]
+stxvb16x 0102010201020102 0102030405060708 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    0102030405060708 0102010201020102 [ 0807060504030201 0201020102010201 ffffffffffffffff ffffffffffffffff ]
+stxvb16x 0102030405060708 0102010201020102 [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    0102010201020102 0102030405060708 [ 0201020102010201 0807060504030201 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvb16x 0102010201020102 0102030405060708 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    0102030405060708 0102010201020102 [ 0807060504030201 0201020102010201 5555555555555555 5555555555555555 ]
+stxvb16x 0102030405060708 0102010201020102 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0102010201020102 0102030405060708 [ 0201020102010201 0807060504030201 0000000000000000 0000000000000000 ]
+stxvb16x 0102010201020102 0102030405060708 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    0102030405060708 0102010201020102 [ 0807060504030201 0201020102010201 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvb16x 0102030405060708 0102010201020102 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0102010201020102 0102030405060708 [ 0201020102010201 0807060504030201 0102030405060708 0102030405060708 ]
+stxvb16x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ffffffffffffffff ffffffffffffffff ]
+stxvb16x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvb16x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 5555555555555555 5555555555555555 ]
+stxvb16x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 0000000000000000 0000000000000000 ]
+stxvb16x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvb16x aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa 0102030405060708 0102030405060708 ]
+stxvb16x 5555555555555555 5555555555555555 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 ffffffffffffffff ffffffffffffffff ]
+stxvb16x 5555555555555555 5555555555555555 [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvb16x 5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ]
+stxvb16x 5555555555555555 5555555555555555 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 0000000000000000 0000000000000000 ]
+stxvb16x 5555555555555555 5555555555555555 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvb16x 5555555555555555 5555555555555555 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    5555555555555555 5555555555555555 [ 5555555555555555 5555555555555555 0102030405060708 0102030405060708 ]
+stxvb16x 0102010201020102 08090a0b0c0d0e0f [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    08090a0b0c0d0e0f 0102010201020102 [ 0f0e0d0c0b0a0908 0201020102010201 ffffffffffffffff ffffffffffffffff ]
+stxvb16x 08090a0b0c0d0e0f 0102010201020102 [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    0102010201020102 08090a0b0c0d0e0f [ 0201020102010201 0f0e0d0c0b0a0908 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvb16x 0102010201020102 08090a0b0c0d0e0f [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    08090a0b0c0d0e0f 0102010201020102 [ 0f0e0d0c0b0a0908 0201020102010201 5555555555555555 5555555555555555 ]
+stxvb16x 08090a0b0c0d0e0f 0102010201020102 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0102010201020102 08090a0b0c0d0e0f [ 0201020102010201 0f0e0d0c0b0a0908 0000000000000000 0000000000000000 ]
+stxvb16x 0102010201020102 08090a0b0c0d0e0f [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    08090a0b0c0d0e0f 0102010201020102 [ 0f0e0d0c0b0a0908 0201020102010201 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvb16x 08090a0b0c0d0e0f 0102010201020102 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0102010201020102 08090a0b0c0d0e0f [ 0201020102010201 0f0e0d0c0b0a0908 0102030405060708 0102030405060708 ]
+stxvb16x f8f9fafbfcfdfeff f0f1f2f3f4f5f6f7 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    f0f1f2f3f4f5f6f7 f8f9fafbfcfdfeff [ f7f6f5f4f3f2f1f0 fffefdfcfbfaf9f8 ffffffffffffffff ffffffffffffffff ]
+stxvb16x f0f1f2f3f4f5f6f7 f8f9fafbfcfdfeff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    f8f9fafbfcfdfeff f0f1f2f3f4f5f6f7 [ fffefdfcfbfaf9f8 f7f6f5f4f3f2f1f0 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvb16x f8f9fafbfcfdfeff f0f1f2f3f4f5f6f7 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    f0f1f2f3f4f5f6f7 f8f9fafbfcfdfeff [ f7f6f5f4f3f2f1f0 fffefdfcfbfaf9f8 5555555555555555 5555555555555555 ]
+stxvb16x f0f1f2f3f4f5f6f7 f8f9fafbfcfdfeff [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    f8f9fafbfcfdfeff f0f1f2f3f4f5f6f7 [ fffefdfcfbfaf9f8 f7f6f5f4f3f2f1f0 0000000000000000 0000000000000000 ]
+stxvb16x f8f9fafbfcfdfeff f0f1f2f3f4f5f6f7 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    f0f1f2f3f4f5f6f7 f8f9fafbfcfdfeff [ f7f6f5f4f3f2f1f0 fffefdfcfbfaf9f8 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvb16x f0f1f2f3f4f5f6f7 f8f9fafbfcfdfeff [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    f8f9fafbfcfdfeff f0f1f2f3f4f5f6f7 [ fffefdfcfbfaf9f8 f7f6f5f4f3f2f1f0 0102030405060708 0102030405060708 ]
+stxvb16x 070d111d1e555e70 7ea1a5a7abadb0ba [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    7ea1a5a7abadb0ba 070d111d1e555e70 [ bab0adaba7a5a17e 705e551e1d110d07 ffffffffffffffff ffffffffffffffff ]
+stxvb16x 7ea1a5a7abadb0ba 070d111d1e555e70 [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    070d111d1e555e70 7ea1a5a7abadb0ba [ 705e551e1d110d07 bab0adaba7a5a17e aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvb16x 070d111d1e555e70 7ea1a5a7abadb0ba [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    7ea1a5a7abadb0ba 070d111d1e555e70 [ bab0adaba7a5a17e 705e551e1d110d07 5555555555555555 5555555555555555 ]
+stxvb16x 7ea1a5a7abadb0ba 070d111d1e555e70 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    070d111d1e555e70 7ea1a5a7abadb0ba [ 705e551e1d110d07 bab0adaba7a5a17e 0000000000000000 0000000000000000 ]
+stxvb16x 070d111d1e555e70 7ea1a5a7abadb0ba [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    7ea1a5a7abadb0ba 070d111d1e555e70 [ bab0adaba7a5a17e 705e551e1d110d07 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvb16x 7ea1a5a7abadb0ba 070d111d1e555e70 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    070d111d1e555e70 7ea1a5a7abadb0ba [ 705e551e1d110d07 bab0adaba7a5a17e 0102030405060708 0102030405060708 ]
+stxvb16x beb1c0caced0dbde e5e7ecedeff0f1fa [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    e5e7ecedeff0f1fa beb1c0caced0dbde [ faf1f0efedece7e5 dedbd0cecac0b1be ffffffffffffffff ffffffffffffffff ]
+stxvb16x e5e7ecedeff0f1fa beb1c0caced0dbde [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    beb1c0caced0dbde e5e7ecedeff0f1fa [ dedbd0cecac0b1be faf1f0efedece7e5 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvb16x beb1c0caced0dbde e5e7ecedeff0f1fa [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    e5e7ecedeff0f1fa beb1c0caced0dbde [ faf1f0efedece7e5 dedbd0cecac0b1be 5555555555555555 5555555555555555 ]
+stxvb16x e5e7ecedeff0f1fa beb1c0caced0dbde [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    beb1c0caced0dbde e5e7ecedeff0f1fa [ dedbd0cecac0b1be faf1f0efedece7e5 0000000000000000 0000000000000000 ]
+stxvb16x beb1c0caced0dbde e5e7ecedeff0f1fa [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    e5e7ecedeff0f1fa beb1c0caced0dbde [ faf1f0efedece7e5 dedbd0cecac0b1be 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvb16x e5e7ecedeff0f1fa beb1c0caced0dbde [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    beb1c0caced0dbde e5e7ecedeff0f1fa [ dedbd0cecac0b1be faf1f0efedece7e5 0102030405060708 0102030405060708 ]
+stxvb16x ced0deede5ecef00 00115e7eadbabec0 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    00115e7eadbabec0 ced0deede5ecef00 [ c0bebaad7e5e1100 00efece5edded0ce ffffffffffffffff ffffffffffffffff ]
+stxvb16x 00115e7eadbabec0 ced0deede5ecef00 [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    ced0deede5ecef00 00115e7eadbabec0 [ 00efece5edded0ce c0bebaad7e5e1100 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvb16x ced0deede5ecef00 00115e7eadbabec0 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    00115e7eadbabec0 ced0deede5ecef00 [ c0bebaad7e5e1100 00efece5edded0ce 5555555555555555 5555555555555555 ]
+stxvb16x 00115e7eadbabec0 ced0deede5ecef00 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    ced0deede5ecef00 00115e7eadbabec0 [ 00efece5edded0ce c0bebaad7e5e1100 0000000000000000 0000000000000000 ]
+stxvb16x ced0deede5ecef00 00115e7eadbabec0 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    00115e7eadbabec0 ced0deede5ecef00 [ c0bebaad7e5e1100 00efece5edded0ce 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvb16x 00115e7eadbabec0 ced0deede5ecef00 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    ced0deede5ecef00 00115e7eadbabec0 [ 00efece5edded0ce c0bebaad7e5e1100 0102030405060708 0102030405060708 ]
+stxvb16x becad0deedeffe00 00111e7ea5abadb1 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    00111e7ea5abadb1 becad0deedeffe00 [ b1adaba57e1e1100 00feefedded0cabe ffffffffffffffff ffffffffffffffff ]
+stxvb16x 00111e7ea5abadb1 becad0deedeffe00 [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    becad0deedeffe00 00111e7ea5abadb1 [ 00feefedded0cabe b1adaba57e1e1100 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvb16x becad0deedeffe00 00111e7ea5abadb1 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    00111e7ea5abadb1 becad0deedeffe00 [ b1adaba57e1e1100 00feefedded0cabe 5555555555555555 5555555555555555 ]
+stxvb16x 00111e7ea5abadb1 becad0deedeffe00 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    becad0deedeffe00 00111e7ea5abadb1 [ 00feefedded0cabe b1adaba57e1e1100 0000000000000000 0000000000000000 ]
+stxvb16x becad0deedeffe00 00111e7ea5abadb1 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    00111e7ea5abadb1 becad0deedeffe00 [ b1adaba57e1e1100 00feefedded0cabe 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvb16x 00111e7ea5abadb1 becad0deedeffe00 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    becad0deedeffe00 00111e7ea5abadb1 [ 00feefedded0cabe b1adaba57e1e1100 0102030405060708 0102030405060708 ]
+stxvb16x 8899aabbccddeeff 0011223344556677 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    0011223344556677 8899aabbccddeeff [ 7766554433221100 ffeeddccbbaa9988 ffffffffffffffff ffffffffffffffff ]
+stxvb16x 0011223344556677 8899aabbccddeeff [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    8899aabbccddeeff 0011223344556677 [ ffeeddccbbaa9988 7766554433221100 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvb16x 8899aabbccddeeff 0011223344556677 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    0011223344556677 8899aabbccddeeff [ 7766554433221100 ffeeddccbbaa9988 5555555555555555 5555555555555555 ]
+stxvb16x 0011223344556677 8899aabbccddeeff [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    8899aabbccddeeff 0011223344556677 [ ffeeddccbbaa9988 7766554433221100 0000000000000000 0000000000000000 ]
+stxvb16x 8899aabbccddeeff 0011223344556677 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    0011223344556677 8899aabbccddeeff [ 7766554433221100 ffeeddccbbaa9988 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvb16x 0011223344556677 8899aabbccddeeff [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    8899aabbccddeeff 0011223344556677 [ ffeeddccbbaa9988 7766554433221100 0102030405060708 0102030405060708 ]
+stxvb16x 7060504030201000 f0e0d0c0b0a09080 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    f0e0d0c0b0a09080 7060504030201000 [ 8090a0b0c0d0e0f0 0010203040506070 ffffffffffffffff ffffffffffffffff ]
+stxvb16x f0e0d0c0b0a09080 7060504030201000 [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    7060504030201000 f0e0d0c0b0a09080 [ 0010203040506070 8090a0b0c0d0e0f0 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvb16x 7060504030201000 f0e0d0c0b0a09080 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    f0e0d0c0b0a09080 7060504030201000 [ 8090a0b0c0d0e0f0 0010203040506070 5555555555555555 5555555555555555 ]
+stxvb16x f0e0d0c0b0a09080 7060504030201000 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    7060504030201000 f0e0d0c0b0a09080 [ 0010203040506070 8090a0b0c0d0e0f0 0000000000000000 0000000000000000 ]
+stxvb16x 7060504030201000 f0e0d0c0b0a09080 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    f0e0d0c0b0a09080 7060504030201000 [ 8090a0b0c0d0e0f0 0010203040506070 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvb16x f0e0d0c0b0a09080 7060504030201000 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    7060504030201000 f0e0d0c0b0a09080 [ 0010203040506070 8090a0b0c0d0e0f0 0102030405060708 0102030405060708 ]
+stxvb16x 0000100800001010 0000100000001002 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    0000100000001002 0000100800001010 [ 0210000000100000 1010000008100000 ffffffffffffffff ffffffffffffffff ]
+stxvb16x 0000100000001002 0000100800001010 [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    0000100800001010 0000100000001002 [ 1010000008100000 0210000000100000 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvb16x 0000100800001010 0000100000001002 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    0000100000001002 0000100800001010 [ 0210000000100000 1010000008100000 5555555555555555 5555555555555555 ]
+stxvb16x 0000100000001002 0000100800001010 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0000100800001010 0000100000001002 [ 1010000008100000 0210000000100000 0000000000000000 0000000000000000 ]
+stxvb16x 0000100800001010 0000100000001002 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    0000100000001002 0000100800001010 [ 0210000000100000 1010000008100000 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvb16x 0000100000001002 0000100800001010 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0000100800001010 0000100000001002 [ 1010000008100000 0210000000100000 0102030405060708 0102030405060708 ]
+stxvb16x 0010100800101010 0010100000101002 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    0010100000101002 0010100800101010 [ 0210100000101000 1010100008101000 ffffffffffffffff ffffffffffffffff ]
+stxvb16x 0010100000101002 0010100800101010 [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    0010100800101010 0010100000101002 [ 1010100008101000 0210100000101000 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvb16x 0010100800101010 0010100000101002 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    0010100000101002 0010100800101010 [ 0210100000101000 1010100008101000 5555555555555555 5555555555555555 ]
+stxvb16x 0010100000101002 0010100800101010 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    0010100800101010 0010100000101002 [ 1010100008101000 0210100000101000 0000000000000000 0000000000000000 ]
+stxvb16x 0010100800101010 0010100000101002 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    0010100000101002 0010100800101010 [ 0210100000101000 1010100008101000 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvb16x 0010100000101002 0010100800101010 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    0010100800101010 0010100000101002 [ 1010100008101000 0210100000101000 0102030405060708 0102030405060708 ]
+stxvb16x 00001c0800001c10 00001c0000001c02 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    00001c0000001c02 00001c0800001c10 [ 021c0000001c0000 101c0000081c0000 ffffffffffffffff ffffffffffffffff ]
+stxvb16x 00001c0000001c02 00001c0800001c10 [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    00001c0800001c10 00001c0000001c02 [ 101c0000081c0000 021c0000001c0000 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvb16x 00001c0800001c10 00001c0000001c02 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    00001c0000001c02 00001c0800001c10 [ 021c0000001c0000 101c0000081c0000 5555555555555555 5555555555555555 ]
+stxvb16x 00001c0000001c02 00001c0800001c10 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    00001c0800001c10 00001c0000001c02 [ 101c0000081c0000 021c0000001c0000 0000000000000000 0000000000000000 ]
+stxvb16x 00001c0800001c10 00001c0000001c02 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    00001c0000001c02 00001c0800001c10 [ 021c0000001c0000 101c0000081c0000 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvb16x 00001c0000001c02 00001c0800001c10 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    00001c0800001c10 00001c0000001c02 [ 101c0000081c0000 021c0000001c0000 0102030405060708 0102030405060708 ]
+stxvb16x 00101c0800101c10 00101c0000101c02 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    00101c0000101c02 00101c0800101c10 [ 021c1000001c1000 101c1000081c1000 ffffffffffffffff ffffffffffffffff ]
+stxvb16x 00101c0000101c02 00101c0800101c10 [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    00101c0800101c10 00101c0000101c02 [ 101c1000081c1000 021c1000001c1000 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvb16x 00101c0800101c10 00101c0000101c02 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    00101c0000101c02 00101c0800101c10 [ 021c1000001c1000 101c1000081c1000 5555555555555555 5555555555555555 ]
+stxvb16x 00101c0000101c02 00101c0800101c10 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    00101c0800101c10 00101c0000101c02 [ 101c1000081c1000 021c1000001c1000 0000000000000000 0000000000000000 ]
+stxvb16x 00101c0800101c10 00101c0000101c02 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    00101c0000101c02 00101c0800101c10 [ 021c1000001c1000 101c1000081c1000 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvb16x 00101c0000101c02 00101c0800101c10 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    00101c0800101c10 00101c0000101c02 [ 101c1000081c1000 021c1000001c1000 0102030405060708 0102030405060708 ]
+stxvb16x 00001f0800001f10 00001f0000001f02 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    00001f0000001f02 00001f0800001f10 [ 021f0000001f0000 101f0000081f0000 ffffffffffffffff ffffffffffffffff ]
+stxvb16x 00001f0000001f02 00001f0800001f10 [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    00001f0800001f10 00001f0000001f02 [ 101f0000081f0000 021f0000001f0000 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvb16x 00001f0800001f10 00001f0000001f02 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    00001f0000001f02 00001f0800001f10 [ 021f0000001f0000 101f0000081f0000 5555555555555555 5555555555555555 ]
+stxvb16x 00001f0000001f02 00001f0800001f10 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    00001f0800001f10 00001f0000001f02 [ 101f0000081f0000 021f0000001f0000 0000000000000000 0000000000000000 ]
+stxvb16x 00001f0800001f10 00001f0000001f02 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    00001f0000001f02 00001f0800001f10 [ 021f0000001f0000 101f0000081f0000 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvb16x 00001f0000001f02 00001f0800001f10 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    00001f0800001f10 00001f0000001f02 [ 101f0000081f0000 021f0000001f0000 0102030405060708 0102030405060708 ]
+stxvb16x 00101f0800101f10 00101f0000101f02 [ ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ] =>
+    00101f0000101f02 00101f0800101f10 [ 021f1000001f1000 101f1000081f1000 ffffffffffffffff ffffffffffffffff ]
+stxvb16x 00101f0000101f02 00101f0800101f10 [ aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ] =>
+    00101f0800101f10 00101f0000101f02 [ 101f1000081f1000 021f1000001f1000 aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ]
+stxvb16x 00101f0800101f10 00101f0000101f02 [ 5555555555555555 5555555555555555 5555555555555555 5555555555555555 ] =>
+    00101f0000101f02 00101f0800101f10 [ 021f1000001f1000 101f1000081f1000 5555555555555555 5555555555555555 ]
+stxvb16x 00101f0000101f02 00101f0800101f10 [ 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ] =>
+    00101f0800101f10 00101f0000101f02 [ 101f1000081f1000 021f1000001f1000 0000000000000000 0000000000000000 ]
+stxvb16x 00101f0800101f10 00101f0000101f02 [ 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 5a05a05a05a05a05 ] =>
+    00101f0000101f02 00101f0800101f10 [ 021f1000001f1000 101f1000081f1000 5a05a05a05a05a05 5a05a05a05a05a05 ]
+stxvb16x 00101f0000101f02 00101f0800101f10 [ 0102030405060708 0102030405060708 0102030405060708 0102030405060708 ] =>
+    00101f0800101f10 00101f0000101f02 [ 101f1000081f1000 021f1000001f1000 0102030405060708 0102030405060708 ]
+
+All done. Tested 28 different instructions
diff --git a/none/tests/ppc64/test_isa_3_0_altivec.vgtest b/none/tests/ppc64/test_isa_3_0_altivec.vgtest
new file mode 100644 (file)
index 0000000..7557d86
--- /dev/null
@@ -0,0 +1,2 @@
+prereq: ../../../tests/check_ppc64_auxv_cap arch_3_0
+prog: test_isa_3_0  -a
diff --git a/none/tests/ppc64/test_isa_3_0_other.stderr.exp b/none/tests/ppc64/test_isa_3_0_other.stderr.exp
new file mode 100644 (file)
index 0000000..139597f
--- /dev/null
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/ppc64/test_isa_3_0_other.stdout.exp b/none/tests/ppc64/test_isa_3_0_other.stdout.exp
new file mode 100644 (file)
index 0000000..019ab9b
--- /dev/null
@@ -0,0 +1,131 @@
+PPC integer arith instructions with two args:
+Test instruction group [PPC integer arith instructions with two args]
+modsw 0000000000000000, 0000000000000000 => 0000000000000000 (00000000)
+modsw 0000000000000000, 0000001cbe991def => 0000000000000000 (00000000)
+modsw 0000000000000000, ffffffffffffffff => 0000000000000000 (00000000)
+modsw 0000001cbe991def, 0000000000000000 => 0000000000000000 (00000000)
+modsw 0000001cbe991def, 0000001cbe991def => 0000000000000000 (00000000)
+modsw 0000001cbe991def, ffffffffffffffff => 0000000000000000 (00000000)
+modsw ffffffffffffffff, 0000000000000000 => 0000000000000000 (00000000)
+modsw ffffffffffffffff, 0000001cbe991def => ffffffffffffffff (00000000)
+modsw ffffffffffffffff, ffffffffffffffff => 0000000000000000 (00000000)
+
+moduw 0000000000000000, 0000000000000000 => 0000000000000000 (00000000)
+moduw 0000000000000000, 0000001cbe991def => 0000000000000000 (00000000)
+moduw 0000000000000000, ffffffffffffffff => 0000000000000000 (00000000)
+moduw 0000001cbe991def, 0000000000000000 => 0000000000000000 (00000000)
+moduw 0000001cbe991def, 0000001cbe991def => 0000000000000000 (00000000)
+moduw 0000001cbe991def, ffffffffffffffff => 00000000be991def (00000000)
+moduw ffffffffffffffff, 0000000000000000 => 0000000000000000 (00000000)
+moduw ffffffffffffffff, 0000001cbe991def => 000000004166e210 (00000000)
+moduw ffffffffffffffff, ffffffffffffffff => 0000000000000000 (00000000)
+
+modsd 0000000000000000, 0000000000000000 => 0000000000000000 (00000000)
+modsd 0000000000000000, 0000001cbe991def => 0000000000000000 (00000000)
+modsd 0000000000000000, ffffffffffffffff => 0000000000000000 (00000000)
+modsd 0000001cbe991def, 0000000000000000 => 0000000000000000 (00000000)
+modsd 0000001cbe991def, 0000001cbe991def => 0000000000000000 (00000000)
+modsd 0000001cbe991def, ffffffffffffffff => 0000000000000000 (00000000)
+modsd ffffffffffffffff, 0000000000000000 => 0000000000000000 (00000000)
+modsd ffffffffffffffff, 0000001cbe991def => ffffffffffffffff (00000000)
+modsd ffffffffffffffff, ffffffffffffffff => 0000000000000000 (00000000)
+
+modud 0000000000000000, 0000000000000000 => 0000000000000000 (00000000)
+modud 0000000000000000, 0000001cbe991def => 0000000000000000 (00000000)
+modud 0000000000000000, ffffffffffffffff => 0000000000000000 (00000000)
+modud 0000001cbe991def, 0000000000000000 => 0000000000000000 (00000000)
+modud 0000001cbe991def, 0000001cbe991def => 0000000000000000 (00000000)
+modud 0000001cbe991def, ffffffffffffffff => 0000001cbe991def (00000000)
+modud ffffffffffffffff, 0000000000000000 => 0000000000000000 (00000000)
+modud ffffffffffffffff, 0000001cbe991def => 000000043eb0c0b2 (00000000)
+modud ffffffffffffffff, ffffffffffffffff => 0000000000000000 (00000000)
+
+All done. Tested 4 different instructions
+ppc three parameter ops:
+Test instruction group [ppc three parameter ops]
+maddhd  0000000000000000, 0000000000000000, 0000000000000000  => 0000000000000000 (00000000)
+maddhd  0000000000000000, 0000000000000000, 0000001cbe991def  => 0000000000000000 (00000000)
+maddhd  0000000000000000, 0000000000000000, ffffffffffffffff  => ffffffffffffffff (00000000)
+maddhd  0000000000000000, 0000001cbe991def, 0000000000000000  => 0000000000000000 (00000000)
+maddhd  0000000000000000, 0000001cbe991def, 0000001cbe991def  => 0000000000000000 (00000000)
+maddhd  0000000000000000, 0000001cbe991def, ffffffffffffffff  => ffffffffffffffff (00000000)
+maddhd  0000000000000000, ffffffffffffffff, 0000000000000000  => 0000000000000000 (00000000)
+maddhd  0000000000000000, ffffffffffffffff, 0000001cbe991def  => 0000000000000000 (00000000)
+maddhd  0000000000000000, ffffffffffffffff, ffffffffffffffff  => ffffffffffffffff (00000000)
+maddhd  0000001cbe991def, 0000000000000000, 0000000000000000  => 0000000000000000 (00000000)
+maddhd  0000001cbe991def, 0000000000000000, 0000001cbe991def  => 0000000000000000 (00000000)
+maddhd  0000001cbe991def, 0000000000000000, ffffffffffffffff  => ffffffffffffffff (00000000)
+maddhd  0000001cbe991def, 0000001cbe991def, 0000000000000000  => 000000000000033a (00000000)
+maddhd  0000001cbe991def, 0000001cbe991def, 0000001cbe991def  => 000000000000033a (00000000)
+maddhd  0000001cbe991def, 0000001cbe991def, ffffffffffffffff  => 000000000000033a (00000000)
+maddhd  0000001cbe991def, ffffffffffffffff, 0000000000000000  => ffffffffffffffff (00000000)
+maddhd  0000001cbe991def, ffffffffffffffff, 0000001cbe991def  => 0000000000000000 (00000000)
+maddhd  0000001cbe991def, ffffffffffffffff, ffffffffffffffff  => ffffffffffffffff (00000000)
+maddhd  ffffffffffffffff, 0000000000000000, 0000000000000000  => 0000000000000000 (00000000)
+maddhd  ffffffffffffffff, 0000000000000000, 0000001cbe991def  => 0000000000000000 (00000000)
+maddhd  ffffffffffffffff, 0000000000000000, ffffffffffffffff  => ffffffffffffffff (00000000)
+maddhd  ffffffffffffffff, 0000001cbe991def, 0000000000000000  => ffffffffffffffff (00000000)
+maddhd  ffffffffffffffff, 0000001cbe991def, 0000001cbe991def  => 0000000000000000 (00000000)
+maddhd  ffffffffffffffff, 0000001cbe991def, ffffffffffffffff  => ffffffffffffffff (00000000)
+maddhd  ffffffffffffffff, ffffffffffffffff, 0000000000000000  => 0000000000000000 (00000000)
+maddhd  ffffffffffffffff, ffffffffffffffff, 0000001cbe991def  => 0000000000000000 (00000000)
+maddhd  ffffffffffffffff, ffffffffffffffff, ffffffffffffffff  => 0000000000000000 (00000000)
+
+maddhdu 0000000000000000, 0000000000000000, 0000000000000000  => 0000000000000000 (00000000)
+maddhdu 0000000000000000, 0000000000000000, 0000001cbe991def  => 0000000000000000 (00000000)
+maddhdu 0000000000000000, 0000000000000000, ffffffffffffffff  => 0000000000000000 (00000000)
+maddhdu 0000000000000000, 0000001cbe991def, 0000000000000000  => 0000000000000000 (00000000)
+maddhdu 0000000000000000, 0000001cbe991def, 0000001cbe991def  => 0000000000000000 (00000000)
+maddhdu 0000000000000000, 0000001cbe991def, ffffffffffffffff  => 0000000000000000 (00000000)
+maddhdu 0000000000000000, ffffffffffffffff, 0000000000000000  => 0000000000000000 (00000000)
+maddhdu 0000000000000000, ffffffffffffffff, 0000001cbe991def  => 0000000000000000 (00000000)
+maddhdu 0000000000000000, ffffffffffffffff, ffffffffffffffff  => 0000000000000000 (00000000)
+maddhdu 0000001cbe991def, 0000000000000000, 0000000000000000  => 0000000000000000 (00000000)
+maddhdu 0000001cbe991def, 0000000000000000, 0000001cbe991def  => 0000000000000000 (00000000)
+maddhdu 0000001cbe991def, 0000000000000000, ffffffffffffffff  => 0000000000000000 (00000000)
+maddhdu 0000001cbe991def, 0000001cbe991def, 0000000000000000  => 000000000000033a (00000000)
+maddhdu 0000001cbe991def, 0000001cbe991def, 0000001cbe991def  => 000000000000033a (00000000)
+maddhdu 0000001cbe991def, 0000001cbe991def, ffffffffffffffff  => 000000000000033b (00000000)
+maddhdu 0000001cbe991def, ffffffffffffffff, 0000000000000000  => 0000001cbe991dee (00000000)
+maddhdu 0000001cbe991def, ffffffffffffffff, 0000001cbe991def  => 0000001cbe991def (00000000)
+maddhdu 0000001cbe991def, ffffffffffffffff, ffffffffffffffff  => 0000001cbe991def (00000000)
+maddhdu ffffffffffffffff, 0000000000000000, 0000000000000000  => 0000000000000000 (00000000)
+maddhdu ffffffffffffffff, 0000000000000000, 0000001cbe991def  => 0000000000000000 (00000000)
+maddhdu ffffffffffffffff, 0000000000000000, ffffffffffffffff  => 0000000000000000 (00000000)
+maddhdu ffffffffffffffff, 0000001cbe991def, 0000000000000000  => 0000001cbe991dee (00000000)
+maddhdu ffffffffffffffff, 0000001cbe991def, 0000001cbe991def  => 0000001cbe991def (00000000)
+maddhdu ffffffffffffffff, 0000001cbe991def, ffffffffffffffff  => 0000001cbe991def (00000000)
+maddhdu ffffffffffffffff, ffffffffffffffff, 0000000000000000  => fffffffffffffffe (00000000)
+maddhdu ffffffffffffffff, ffffffffffffffff, 0000001cbe991def  => fffffffffffffffe (00000000)
+maddhdu ffffffffffffffff, ffffffffffffffff, ffffffffffffffff  => ffffffffffffffff (00000000)
+
+maddld  0000000000000000, 0000000000000000, 0000000000000000  => 0000000000000000 (00000000)
+maddld  0000000000000000, 0000000000000000, 0000001cbe991def  => 0000001cbe991def (00000000)
+maddld  0000000000000000, 0000000000000000, ffffffffffffffff  => ffffffffffffffff (00000000)
+maddld  0000000000000000, 0000001cbe991def, 0000000000000000  => 0000000000000000 (00000000)
+maddld  0000000000000000, 0000001cbe991def, 0000001cbe991def  => 0000001cbe991def (00000000)
+maddld  0000000000000000, 0000001cbe991def, ffffffffffffffff  => ffffffffffffffff (00000000)
+maddld  0000000000000000, ffffffffffffffff, 0000000000000000  => 0000000000000000 (00000000)
+maddld  0000000000000000, ffffffffffffffff, 0000001cbe991def  => 0000001cbe991def (00000000)
+maddld  0000000000000000, ffffffffffffffff, ffffffffffffffff  => ffffffffffffffff (00000000)
+maddld  0000001cbe991def, 0000000000000000, 0000000000000000  => 0000000000000000 (00000000)
+maddld  0000001cbe991def, 0000000000000000, 0000001cbe991def  => 0000001cbe991def (00000000)
+maddld  0000001cbe991def, 0000000000000000, ffffffffffffffff  => ffffffffffffffff (00000000)
+maddld  0000001cbe991def, 0000001cbe991def, 0000000000000000  => 3f66304b8f2e0521 (00000000)
+maddld  0000001cbe991def, 0000001cbe991def, 0000001cbe991def  => 3f6630684dc72310 (00000000)
+maddld  0000001cbe991def, 0000001cbe991def, ffffffffffffffff  => 3f66304b8f2e0520 (00000000)
+maddld  0000001cbe991def, ffffffffffffffff, 0000000000000000  => ffffffe34166e211 (00000000)
+maddld  0000001cbe991def, ffffffffffffffff, 0000001cbe991def  => 0000000000000000 (00000000)
+maddld  0000001cbe991def, ffffffffffffffff, ffffffffffffffff  => ffffffe34166e210 (00000000)
+maddld  ffffffffffffffff, 0000000000000000, 0000000000000000  => 0000000000000000 (00000000)
+maddld  ffffffffffffffff, 0000000000000000, 0000001cbe991def  => 0000001cbe991def (00000000)
+maddld  ffffffffffffffff, 0000000000000000, ffffffffffffffff  => ffffffffffffffff (00000000)
+maddld  ffffffffffffffff, 0000001cbe991def, 0000000000000000  => ffffffe34166e211 (00000000)
+maddld  ffffffffffffffff, 0000001cbe991def, 0000001cbe991def  => 0000000000000000 (00000000)
+maddld  ffffffffffffffff, 0000001cbe991def, ffffffffffffffff  => ffffffe34166e210 (00000000)
+maddld  ffffffffffffffff, ffffffffffffffff, 0000000000000000  => 0000000000000001 (00000000)
+maddld  ffffffffffffffff, ffffffffffffffff, 0000001cbe991def  => 0000001cbe991df0 (00000000)
+maddld  ffffffffffffffff, ffffffffffffffff, ffffffffffffffff  => 0000000000000000 (00000000)
+
+All done. Tested 7 different instructions
+ERROR: unknown instruction family 00080000
diff --git a/none/tests/ppc64/test_isa_3_0_other.vgtest b/none/tests/ppc64/test_isa_3_0_other.vgtest
new file mode 100644 (file)
index 0000000..704ab1b
--- /dev/null
@@ -0,0 +1,2 @@
+prereq: ../../../tests/check_ppc64_auxv_cap arch_3_0
+prog: test_isa_3_0 -i -m