--- /dev/null
+/*
+ * 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");
+ }
+}
--- /dev/null
+/* 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;
+}
--- /dev/null
+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